[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

How to go on with JBoss AS?



Hi guys,

I am currently in the process of integrating a few java applications
into a custom application stack. I have been using Debian/Ubuntu for
quite some time. That's why I thought that dpkg could be a nice
framework to do the integration. I also hoped that by sticking to a
widely used standard I could do something useful to others.

One of the applications I want to integrate is JBoss AS. I therefore
analysed the existing Debian jbossas4 package as well as the upstream
JBoss AS build process. There still seems to be quite some work to be
done to make JBoss working on Debian. I contacted the current
maintainers of the jbossas4 package (Torsten Werner and Varun Hiremath).
Torsten thought it would be a good idea to give them a hand. If I
understood Torsten right his own development efforts are currently stale
as he does not find the necessary time to contribute. (Torsten this is
right, isn't it?)

I have no previous Debian packaging experience. That's why I hoped
someone on the list could revise my proposed "roadmap" and give me some
hints/direction on how to proceed. (I did post here and not on
debian-mentors as my questions are very Java specific.)



*General approach*

JBoss AS has lots of dependencies. I therefore propose the following
short term goal: Build an "unofficial" running binary package including
non-free libraries where free versions are missing in debian. This would
have the following benefits:
* Moving to contrib and/or main will be quicker as soon as a free
runtime (OpenJDK?) or missing packages become available
* A running version is needed to test compatibility of already existing
free modules.
* We get a clear roadmap by identifying the gaps towards a real contrib
and/or main release (missing packages, incompatibilities with free
libraries).
* Even an "unofficial" package may be of some use (as has been Michael's
maven2 package).

Credits go to Michael Koch who seems to have pioneered this approach to
get maven2 going...


This means that I propose the following steps:

* Ask upstream developers whether they are interested in seeing JBoss AS
as part of Debian. After all JBoss is now RedHat and Ubuntu is
officially partnering with Sun/Glassfish ;-). I think it will be
difficult to overcome remaining packaging problems without responsive
upstream developers. Does anybody of you have experience with JBoss?
What's their current "Debian policy"? Torsten, Varun, do you have any
contacts there?

* Go through all jboss modules... for every module
~  - review existing debian and upstream build system
~  - review existing depencies on packages already present in Debian
~  - see whether RFPs exist for all missing dependencies, file missing
~    RFPs
~  - add required non-free binaries that still need packaging to an
~    "unofficial" temporary package and depend on that package
~  - gjc compile module to byte code
~  - package resulting jars within a libXXX-java package (most JBoss
~    jars are probably libraries and not application parts)
~  - depend jbossas4 package on libXXX-java packages
~  - package configuration within central jbossas4 package
~  - package docs/api etc. according to debian java policy
~  - let a DD review and upload the advances (Torsten?, Varun?,
~    anybody else?)

* Move http://code.google.com/p/bollin/wiki/TODO to debian wiki and
update packaging state.

* Test the resulting "unofficial" webapp server package with a real
world application to find the more subtle compatibility bugs
~  - file bugs with upstream or with debian library developers
~  - move to non-free "original" jars until bugs are fixed
~  - more sponsor review/upload

* Then later on:
~  - look at the compatibility bugs and provide patches to
~    upstream/deb library maintainers
~  - start packaging missing dependencies or let others do so
~    (by way of RFPs)

What do you think of that approach?



*Choosing the right Debian build system*

* JBoss AS was traditionally built with Ant using several JBoss-specific
Ant extensions. They implement ideas similar to Maven's (automatically
download dependencies, allow for a hierarchical modular structure).
These extensions are no longer developed. The upstream source code is
badly broken, files have been completely deleted from SVN (no idea how
they did that :-D ). JBoss distributes an old binary jar to build from
source. There also exists an old JPackage source code snapshot that may
probably be used to re-compile JBoss Ant extensions with free tools.

* I think that the current debian maintainers chose to fully
re-implement the build process using core Ant tasks.

* JBoss AS seems to move to Maven2 as a build system. I didn't check
that with Upstream. There are some posts on mailing lists that point in
that direction and there are already some pom.xml files checked in.

What do you recommend in this situation?
1) Should I try to rebuild JBoss Ant extensions with JPackage source
code and use the traditional upstream build system (probably with some
Debian patches)?
2) Should I go on to re-implement the build process from scratch in Ant?
3) Should I patch/develop pom.xml's and use some maven-ant-helper
approach (like the one in debian doxia package)? This probably comes
close to re-inventing the build process in Ant. I could however build on
some existing JBoss Maven efforts and I could feed my patches back
upstream so Debian/JBoss build systems would probably converge in the
long run.
4) Something completely different? ;-)



*Re-using existing efforts*

RedHat: RedHat obviously integrated JBoss into their distribution some
long time ago (based on JPackage). Now after the merger there was
probably quite some investment to integrate JBoss even further into
RH-Linux.

Any ideas how I could efficiently build on what was invented at
RedHat's? Does anybody of you have experience with "re-using" packages
from RedHat?

JPackage: I have seen that some many years ago there have been contacts
between the Debian and JPackage communities. AFAICS there was however no
direct link established between the two communities. If I understand it
right, all .rpm based distributions (SuSE, RedHat, Mandrake, ...) build
heavily on the efforts of the JPackage community.

What are the reasons for Debian not directly re-using JPackage efforts?



Ok, so many questions. I hope that somebody out there will find the time
to give me some responses!

Florian



Btw: I am subscribed to debian-java, no need to put me CC.

Some personal background: I have just quit my previous job and therefore
have some spare time now. I am a German who moved to Brazil 3 years ago.
I am living about 300km west of Rio de Janeiro in a town called Juiz de
Fora. Anybody needs some sun? You're welcome!


Reply to: