You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Stefan Bodewig <bo...@apache.org> on 2010/07/27 08:22:09 UTC

[ApacheDS] Gump Build Failure of protocol-ldap

Hi,

Gump is pretty successful in building much of the directory code-base
but the build of protocol-ldap has been failing for quite some time now.
<http://vmgump.apache.org/gump/public/apacheds/apacheds-protocol-ldap/gump_work/build_apacheds_apacheds-protocol-ldap.html>

It looks as if protocol-ldap depended on protocol-shared but didn't
specify this inside its POM.  I would expect it to receive this
dependency transitively via kerberos-shared (albeit a non-transitive
dependency would be cleaner IMHO) but for some reason mvn doesn't.

Any ideas?

Stefan

Re: [ApacheDS] Gump Build Failure of protocol-ldap

Posted by Stefan Bodewig <bo...@apache.org>.
On 2010-07-28, Stefan Seelmann wrote:

> On Wed, Jul 28, 2010 at 9:22 AM, Stefan Bodewig <bo...@apache.org> wrote:

>> On 2010-07-27, Stefan Seelmann wrote:

>>> Anyway, you are right. Direct dependencies should be added to the pom.
>>> I checked with mvn dependency:analyze and added
>>> apacheds-protocol-shared and shared-asn1. Could you please test again?

>> Looks as if you'd also need apacheds-core-constants.

> I added this dependency.

Thanks, it works now.

> It is reported as 'unused declared' by dependency:analyze, but used.

I don't know how dependency:analyze works, but it likely analyzes the
bytecode of your compiled classes.  Since you only use "static final"
constants the compiler will inline any references and the bytecode
doesn't contain any traces of the dependency anymore.

Stefan

Re: [ApacheDS] Gump Build Failure of protocol-ldap

Posted by Stefan Seelmann <ma...@stefan-seelmann.de>.
On Wed, Jul 28, 2010 at 9:22 AM, Stefan Bodewig <bo...@apache.org> wrote:
> On 2010-07-27, Stefan Seelmann wrote:
>
>> Anyway, you are right. Direct dependencies should be added to the pom.
>> I checked with mvn dependency:analyze and added
>> apacheds-protocol-shared and shared-asn1. Could you please test again?
>
> Looks as if you'd also need apacheds-core-constants.

I added this dependency. It is reported as 'unused declared' by
dependency:analyze, but used.

Kind Regards,
Stefan

Re: [ApacheDS] Gump Build Failure of protocol-ldap

Posted by Stefan Bodewig <bo...@apache.org>.
On 2010-07-27, Stefan Seelmann wrote:

> Anyway, you are right. Direct dependencies should be added to the pom.
> I checked with mvn dependency:analyze and added
> apacheds-protocol-shared and shared-asn1. Could you please test again?

Looks as if you'd also need apacheds-core-constants.

Again, you get this via transitive dependencies and by now I understand
why this doesn't happen inside the Gump build (protocol-shared-ldap uses
a different local repository from the other builds because of a circular
dependency between it and activemq-core).  I can fix it on the Gump side
by pre-publishing a few POMs into that separate local repository or you
can add an explicit dependency on core-constants - I'll go with whatever
you prefer.

Thanks

        Stefan

Re: [ApacheDS] Gump Build Failure of protocol-ldap

Posted by Stefan Bodewig <bo...@apache.org>.
On 2010-07-27, Stefan Seelmann wrote:

>> It looks as if protocol-ldap depended on protocol-shared but didn't
>> specify this inside its POM.  I would expect it to receive this
>> dependency transitively via kerberos-shared (albeit a non-transitive
>> dependency would be cleaner IMHO) but for some reason mvn doesn't.

> Which Maven version are you using?

2.2.1

> Anyway, you are right. Direct dependencies should be added to the pom.
> I checked with mvn dependency:analyze and added
> apacheds-protocol-shared and shared-asn1.

That's great, thanks.

> Could you please test again?

Will happen automatically during the next run and there isn't much I
could do in the meantime anyway.

> Another question: The snapshot repository you are using
> (http://localhost:8192/repo/m2-snapshot-repository/....), is that the
> official snapshot repository http://repository.apache.org/snapshots/ ?

I need to explain what Gump is used for before I can properly answer
this.

Gump is not your usual continuous integration server, it fills a very
special purpose.  For most of your dependencies it will completely
ignore the version you ask for and will always give you the current
trunk of your dependency.  It expects projects to build, this is
integration at a larger scale and Gump tries to find changes that break
downstream dependencies before they become part of releases.

This is valuable for projects that have many downstream users -
typically libraries like the Apache Commons projects but also things
like Ant where the API may change in ways that break third party Ant
tasks.

It is also valuable for projects that depend on many projects since they
will know if they can safely upgrade - and can even try to lobby their
dependencies to avoid backwards incompatible changes before they become
part of a released API.

END OF GUMP COMMERCIAL.

For some build tools like Ant, Gump support comes built-in - when Gump
was created initially, Ant was the only Java tool around.  For mvn Gump
installs a local web application and registers it as mirror for most
common repositories.  This web application is the one listening at the
port above.

If mvn asks the web application for a jar that belongs to a project that
Gump builds, it will return the jar built from trunk - no matter which
version has been asked for.  If it asks for a jar the web application
doesn't know about the webapp works as a proxy to the real repository
mvn would have asked.

In your case the snapshots are current because the web application
serves them from the freshly built trunk jars.  If you asked for
something not built by Gump it would be a proxy of the official Apache
snapshots repository.

Stefan

Re: [ApacheDS] Gump Build Failure of protocol-ldap

Posted by Stefan Seelmann <se...@apache.org>.
Hi Stefan,

> Gump is pretty successful in building much of the directory code-base
> but the build of protocol-ldap has been failing for quite some time now.
> <http://vmgump.apache.org/gump/public/apacheds/apacheds-protocol-ldap/gump_work/build_apacheds_apacheds-protocol-ldap.html>
>
> It looks as if protocol-ldap depended on protocol-shared but didn't
> specify this inside its POM.  I would expect it to receive this
> dependency transitively via kerberos-shared (albeit a non-transitive
> dependency would be cleaner IMHO) but for some reason mvn doesn't.

Which Maven version are you using?

Anyway, you are right. Direct dependencies should be added to the pom.
I checked with mvn dependency:analyze and added
apacheds-protocol-shared and shared-asn1. Could you please test again?

Another question: The snapshot repository you are using
(http://localhost:8192/repo/m2-snapshot-repository/....), is that the
official snapshot repository http://repository.apache.org/snapshots/ ?
I'm asking because I wonder why the snapshots are up-to-date because
Continuum [1] doesn't seem to work atm.

Kind Regards,
Stefan

[1] http://vmbuild.apache.org/continuum/projectGroupSummary.action?projectGroupId=139