[jdom-interest] JDOM2 Update - maven

Rolf jdom at tuis.net
Wed Sep 14 21:39:44 PDT 2011


Hi Brad, all.

So I have spent hours on this today... (and have spent *no* time working 
on finishing the jUnit coverage....).

The impact of this change is (potentially) farther-reaching than I had 
hoped, and I am concerned...

... also, I am considering this all from the perspective of JDOM 1.1.x 
only, so any concerns have no bearing (yet) on JDOM2.

There are a number of conflicting goals/requirements here, and there are 
going to have to be compromises to make it work, so, someone is going to 
have to make decisions (Jason?).

In my analysis I see the following issues (please correct me if I have 
something wrong):
1. we intend to use http://jdom.org/downloads/ as the 'official' release 
location of jdom, and maven-central will be 'useful'
2. we intend to keep the existing ant build processes in their entirety 
for 1.1.2. We do not want to be trying out a new compile and packaging 
process for it, especially if the final build will likely be done with 
Java 1.4 or even older (Maven requires 1.5 I believe) (Jason, what did 
you use to compile 1.1.1?).
3. Maven typically 'hooks' in to the project at a very low level. It 
often establishes the whole 'personality' of the project before any code 
is even written. But we only want the 'sweetness' of maven central, not 
all the 'joys' of dependency management.


So, I don't believe what we have at the moment will work, so I have been 
researching what it is that we can actually do.... and, (at least for 
1.1.2), here's what I think we need, and 95% of it is administrative 
rather than technical... so:

1. leave the ant build (mostly) alone.
2. Register on oss.sonatype.org (I have registered) which is a 'gateway' 
service for 'feeding' OSS artifacts to maven central (it may have been 
easier if we were an apache project... ) Go and read: 
https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
3. 'reclaim' the org.jdom "Group ID".
4. Create and register GPG signing keys as per sonatype.org instructions
5. modify the ant build (slightly) to build the jars that conform to the 
oss.sonatype.org requirements:  need jdom-javadocs and jdom-sources jars.
6. Consider doing something similar for jdom-contrib (but skil jdom-test)
7. publish the jars on jdom.org

 From this point on each maven 'release' will be a manual-ish process:

8. Create a 'deploy-only' pom.xml as per the instructions at sonatype
9. push the 'release' to the sonatype staging area using either option 
7b or 7c in the sonatype usage guide
10. check on the oss.sonatype.org website, log in, and 'release' the 
artifacts.
11. Comment on the JIRA created by me today so that the 'maven-central' 
sync is activated.


Form my perspective we can do steps 5, 6, and 7, at any time prior to 
actually releasing in maven-central. (I only put them there because I 
think there still need to be some fixes applied to 1.1.2, and I 
anticipate that steps 1 through 4 will be done before we have all the 
fixes applied and are 'ready' to release 1.1.2)

The rest of the process is just going to be an administrative process, 
with the usual red tape to negotiate.

What it means in the short term is that, as far as I can tell, it is not 
the 'right thing' to commit Brad's pom.xml files yet:
1. we will only need one pom.xml for 1.1.2
2. 90% of the content in Brad's poms are for building the code, which we 
will use ant for anyway.
3. 90% of what is required for sonatype.org deployment is not in Brad's 
poms (and the stuff that's missing is more administrative in nature and 
I don't know the right answers for them all....)
4. Brad was right the first time, the actual building content is 
relatively trivial to reproduce if we ever need it.

So, I apologize for sounding 'negative' about the maven process, but I 
am not trying to be.... honestly!

Oh, one other option we have is to just simply push JDOM up on to 
maven-central via a 'third-party' dependency, which is how I think JDOM 
1.0 and earlier got on to maven-central before in the 'jdom' group ID, 
and how jdom 1.1 made it in as part of the 'org.jdom' group ID. See 
https://docs.sonatype.org/display/Repository/Uploading+3rd-party+Artifacts+to+Maven+Central

Thanks again

Rolf


On 14/09/2011 5:53 PM, Rolf wrote:
> Excellent.
>
> I have not head back from Sonatype about the 'org.jdom' group id.
>
> I will pull the dropbox copy, make sure it works for me, then push the
> changes up to github.
>
> As for the build process, yes, there are warnings. Most of them relate
> to using a null value to what has become a varargs method in the
> reflection API. It can be safely ignored, and is one of the things that
> will be fixed when the junit testing is done.
>
> There is another warning in the junit tests because I am directly
> referencing an internal com.sun.* package to pull in an alternate parser.
>
> Will get back to you later on where things are at.
>
> Thanks
>
> Rolf
>
> On 14/09/2011 5:37 PM, Brad Cox wrote:
>> Rolf and Jason, I made a quick first pass at the 4 poms for your updated
>> files. They're at the new dropbox address
>> https://www.dropbox.com/home/jdom#:::66844801
>>
>> I copied them from the .zip file, not git. Couldn't make it work and
>> only now see why. Should be clone, not pull.
>> Hopefully the zip files will do. I didn't change anything except adding
>> the 4 poms, so they should work if you need to move them elsewhere.
>>
> ...
> _______________________________________________
> To control your jdom-interest membership:
> http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com
>



More information about the jdom-interest mailing list