[Yanel-dev] [Bug 7551] Duplicate Apache commons-io in .m2

Mehmet Birgi mehmet.birgi at wyona.com
Wed Apr 7 14:55:34 CEST 2010


I did some more checks for the other duplicates. It looks like we have 5
different versions of commons-logging in our repository, one of them twice:

$ find ~/.m2/repository/ -type f | grep "commons-logging"
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-l=
ogging/1.0.4/apache-jakarta-commons-logging-1.0.4.jar
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-l=
ogging/1.0.4/apache-jakarta-commons-logging-1.0.4.jar.md5
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-l=
ogging/1.0.4/apache-jakarta-commons-logging-1.0.4.pom
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-l=
ogging/1.0.4/apache-jakarta-commons-logging-1.0.4.pom.md5
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0/commons-log=
ging-1.0.pom
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0/commons-log=
ging-1.0.pom.sha1
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0.3/commons-l=
ogging-1.0.3.pom
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0.3/commons-l=
ogging-1.0.3.pom.sha1
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0.4/commons-l=
ogging-1.0.4.jar
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0.4/commons-l=
ogging-1.0.4.jar.sha1
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0.4/commons-l=
ogging-1.0.4.pom
/Users/memo/.m2/repository//commons-logging/commons-logging/1.0.4/commons-l=
ogging-1.0.4.pom.sha1
/Users/memo/.m2/repository//commons-logging/commons-logging/1.1/commons-log=
ging-1.1.jar
/Users/memo/.m2/repository//commons-logging/commons-logging/1.1/commons-log=
ging-1.1.jar.sha1
/Users/memo/.m2/repository//commons-logging/commons-logging/1.1/commons-log=
ging-1.1.pom
/Users/memo/.m2/repository//commons-logging/commons-logging/1.1/commons-log=
ging-1.1.pom.sha1
/Users/memo/.m2/repository//commons-logging/commons-logging/1.1.1/commons-l=
ogging-1.1.1.pom
/Users/memo/.m2/repository//commons-logging/commons-logging/1.1.1/commons-l=
ogging-1.1.1.pom.sha1

Is it necessary to have so many versions? At least the 2 1.0.4 versions seem
to be the same (checked jar file contents).

commons-discovery is also included twice (they are identical):

$ find ~/.m2/repository/ -type f | grep
"commons-discovery"/Users/memo/.m2/repository//apache-jakarta-commons/apach=
e-jakarta-commons-discovery/0.2/apache-jakarta-commons-discovery-0.2.jar
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-d=
iscovery/0.2/apache-jakarta-commons-discovery-0.2.jar.md5
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-d=
iscovery/0.2/apache-jakarta-commons-discovery-0.2.pom
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-d=
iscovery/0.2/apache-jakarta-commons-discovery-0.2.pom.md5
/Users/memo/.m2/repository//commons-discovery/commons-discovery/0.2/commons=
-discovery-0.2.jar
/Users/memo/.m2/repository//commons-discovery/commons-discovery/0.2/commons=
-discovery-0.2.jar.sha1
/Users/memo/.m2/repository//commons-discovery/commons-discovery/0.2/commons=
-discovery-0.2.pom
/Users/memo/.m2/repository//commons-discovery/commons-discovery/0.2/commons=
-discovery-0.2.pom.sha1

while commons-id is there only once, but with the jakarta-groupId:

$ find ~/.m2/repository/ -type f | grep "commons-id"
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-i=
d/0.1-dev-lcr357257/apache-jakarta-commons-id-0.1-dev-lcr357257.jar
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-i=
d/0.1-dev-lcr357257/apache-jakarta-commons-id-0.1-dev-lcr357257.jar.md5
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-i=
d/0.1-dev-lcr357257/apache-jakarta-commons-id-0.1-dev-lcr357257.pom
/Users/memo/.m2/repository//apache-jakarta-commons/apache-jakarta-commons-i=
d/0.1-dev-lcr357257/apache-jakarta-commons-id-0.1-dev-lcr357257.pom.md5

Shall we continue with the cleaning now, or just put this info into bugzilla
for later?

Thanks,

memo






On Wed, Apr 7, 2010 at 11:48 AM, Mehmet Birgi <mehmet.birgi at wyona.com>wrote:

>
>
> On Wed, Apr 7, 2010 at 11:27 AM, Michael Wechner <
> michael.wechner at wyona.com> wrote:
>
>> Mehmet Birgi wrote:
>>
>>> Re which one to use: in the maven documentation, it is suggested (
>>> http://maven.apache.org/guides/getting-started/index.html#How_do_I_use_=
external_dependencies,
>>> 7. paragraph) that one use http://ibiblio.org/maven2 as a reference to
>>> what the artifact id should be for any (apache) dependency. According to
>>> that, we should use "commons-io", rather than "apache-jakarta-commons-i=
o".
>>>
>>
>> ibiblio is just one of the many Maven repositories. I think we need to
>> approach this slightly different. First  we should check if these
>> libs are really the same. One first simple check is to open the jar files
>> and compare:
>>
>> jar -tf
>> /Users/michaelwechner/.m2/repository/apache-jakarta-commons/apache-jakar=
ta-commons-io/1.2/apache-jakarta-commons-io-1.2.jar
>>
>> another simple one is to count the number of files
>>
>> jar -tf
>> /Users/michaelwechner/.m2/repository/apache-jakarta-commons/apache-jakar=
ta-commons-io/1.2/apache-jakarta-commons-io-1.2.jar
>> | wc -l
>>
>> and another is to compare the size
>>
>> ls -l
>> /Users/michaelwechner/.m2/repository/commons-io/commons-io/1.2/commons-i=
o-1.2.jar
>>
>> and yes it really seems that these are the same libs -;-)
>>
>> Yes,  ibiblio contains
>>
>>
>> http://mirrors.ibiblio.org/pub/mirrors/maven2/commons-io/commons-io/
>>
>> but does not contain apache-jakarta-commons.
>>
>> Also commons is an ex-subproject of the jakarta project
>>
>> http://jakarta.apache.org/
>>
>> which is now
>>
>> http://commons.apache.org/io/
>> http://commons.apache.org/io/download_io.cgi
>>
>> http://svn.apache.org/repos/asf/commons/proper/io/tags/commons-io-1.4/po=
m.xml
>>
>> so based on this I would agree to replace the apache-jakarta-commons-io
>>  by commons-io.
>>
>> I have done this now at
>>
>> https://svn.wyona.com/repos/public/yanel/trunk/src/build/dependencies.xml
>>
>> and
>>
>>
>> https://svn.wyona.com/repos/public/security/trunk/dependencies.xml
>>
>
> Thanks
>
>
>>
>>
>>
>>  So I would suggest that we change all the dependencies referring to
>>> "apache-jakarta-commons-io" to refer to "commons-io". Is that OK, or are
>>> there other things to consider? If you agree, I will try to find out if=
 this
>>> is documented somewhere, and if not, add it to the best practices, OK?
>>>
>>
>> I am not sure if the best practices are the best place for this, but I
>> guess it's better to add it there than nowhere
>
>
> We could add it here:
> http://wiki.wyona.com/WyonaWiki/Wiki.jsp?page=3DCodingGuidelines
> or better make a new page "MavenGuidelines", add it there, and link to it
> from here: http://documentation.yanel.wyona.org/wiki/wiki/Guidelines
>
> wdyt?
>
>
>
>>
>>>
>>>  Of the files above, commons-discovery and commons-logging are download=
ed
>>> twice (like commons-io) while commons-id is only downloaded once (but t=
o the
>>> "wrong" path in the maven repository).
>>>
>>> Shall I continue looking for inconsistencies? (There is also the grep
>>> output of the src directory below to consider, I think there are a lot =
of
>>> "wrong" references that might still download to this second location if=
 we
>>> correct the ref in wyona-org-security-core-0.2-dev-r48408.pom) The sure=
 way
>>> to clean this all up would probably be to go through the ~/.m2 director=
y and
>>> check for each artifact if it is in the proper place, wdyt?
>>>
>>
>> I think we should do it incrementally. If we find something, then let's
>> replace, otherwise it doesn't hurt.
>>
>> Re commons-logging and the others we need to first check if these are
>> really the same libs. Have you done this?
>>
>
> no, i will check those and report back
>
> Thanks,
>
> memo
>
>
>
>>
>> Thanks
>>
>> Michi
>>
>>
>>
>>> Cheers,
>>>
>>> Memo
>>>
>>>
>>>
>>>    Cheers
>>>
>>>    Michi
>>>
>>>    Mehmet Birgi wrote:
>>>
>>>        What I could find out so far:
>>>
>>>        1. The correct artifact-id is "commons-io", according to the
>>>        Maven docs, that point to ibiblio.org/maven2
>>>        <http://ibiblio.org/maven2> <http://ibiblio.org/maven2> as the
>>>
>>>        reference
>>>        (
>>> http://mirrors.ibiblio.org/pub/mirrors/maven2/commons-io/commons-io/mav=
en-metadata.xml
>>> )
>>>
>>>
>>>
>>>        2. I have found a reference to the "incorrect" artifact-id,
>>>        "apache-jakarta-commons-io", but there seem to be several
>>>        others too:
>>>
>>>        memo at Memos-MacSilver:~/Wyona/Work/Yanel $ grep -riI
>>>        apache-jakarta-commons-io src | grep -v '/\.svn/' | grep -v
>>>        '\.yarep/'
>>>        src/build/dependencies.xml:      <dependency
>>>        groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io"
>>>        src/contributions/resources/xinha/src/build/dependencies.xml:
>>>             <dependency groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io" version=3D"1.2"/>
>>>
>>>  src/realms/welcome-admin/yanel/resources/update-webapp/src/build/depen=
dencies.xml:
>>>             <dependency groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io" version=3D"1.2"/>
>>>        src/resources/add-realm/src/build/dependencies.xml:
>>> <dependency groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io" version=3D"1.2"/>
>>>        src/resources/testing-control/src/build/dependencies.xml:
>>>     <dependency groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io" version=3D"1.2"/>
>>>        src/resources/tinymce/src/build/dependencies.xml:
>>> <dependency groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io" version=3D"1.2"/>
>>>        src/resources/xml/src/build/dependencies.xml:      <dependency
>>>        groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io" version=3D"1.2"/>
>>>        src/test/build.xml:      <dependency
>>>        groupId=3D"apache-jakarta-commons"
>>>        artifactId=3D"apache-jakarta-commons-io" version=3D"1.2"/>
>>>
>>>
>>>        I am attaching the new build.log after deleting ~/.m2 to this
>>>        mail, I couldn't gain any new insights from it, but I will
>>>        gladly pursue any further hints.
>>>
>>>        That's it for now, cheers & good night
>>>
>>>        Memo
>>>
>>>
>>>
>>>
>>>
>>>        On Tue, Apr 6, 2010 at 4:39 PM, Michael Wechner
>>>        <michael.wechner at wyona.com <mailto:michael.wechner at wyona.com>
>>>        <mailto:michael.wechner at wyona.com
>>>        <mailto:michael.wechner at wyona.com>>> wrote:
>>>
>>>           From your log-file it seems that these libraries are
>>>        downloaded at
>>>           the very beginning of the build:
>>>
>>>           Apache Ant version 1.7.1 compiled on June 27 2008
>>>           INFO: Building Yanel...
>>>           Buildfile: src/build/build.xml
>>>
>>>           init:
>>>              [echo] INFO: Building with Apache Ant version 1.7.1
>>>        compiled on
>>>           June 27 2008 and Java version 1.6
>>>              [echo] Yanel Home Dir:
>>>           /Users/memo/Wyona/Work/Yanel/src/build/../../
>>>
>>>           probe-proxy:
>>>              [echo] Check if proxy has been set ...
>>>
>>>           proxy:
>>>
>>>
>>>           dependencies:
>>>           [artifact:dependencies] Downloading:
>>>           commons-io/commons-io/1.2/commons-io-1.2.pom from
>>>           wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>           commons-io/commons-io/1.2/commons-io-1.2.pom from central
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-discovery/0.2/apache-jak=
arta-commons-discovery-0.2.pom
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 0K from
>>>        wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-id/0.1-dev-lcr357257/apa=
che-jakarta-commons-id-0.1-dev-lcr357257.pom
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 0K from
>>>        wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-logging/1.0.4/apache-jak=
arta-commons-logging-1.0.4.pom
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 0K from
>>>        wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-io/1.2/apache-jakarta-co=
mmons-io-1.2.pom
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 0K from
>>>        wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>           commons-io/commons-io/1.2/commons-io-1.2.jar from
>>>           wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>           commons-io/commons-io/1.2/commons-io-1.2.jar from central
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-discovery/0.2/apache-jak=
arta-commons-discovery-0.2.jar
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 70K from
>>>        wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-id/0.1-dev-lcr357257/apa=
che-jakarta-commons-id-0.1-dev-lcr357257.jar
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 53K from
>>>        wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-logging/1.0.4/apache-jak=
arta-commons-logging-1.0.4.jar
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 37K from
>>>        wyona.remote.repository
>>>           [artifact:dependencies] Downloading:
>>>
>>>  apache-jakarta-commons/apache-jakarta-commons-io/1.2/apache-jakarta-co=
mmons-io-1.2.jar
>>>           from wyona.remote.repository
>>>           [artifact:dependencies] Transferring 64K from
>>>        wyona.remote.repository
>>>             [unzip] Expanding:
>>>
>>>  /Users/memo/.m2/repository/ext/gwtext/2.0.2/gwtext-2.0.2.zip into
>>>
>>>  /Users/memo/Wyona/Work/Yanel/build/webapps/yanel/htdocs/gwt-ext-2.0.2
>>>
>>>
>>>           Now one has to analyze why. I guess the easiest is to
>>>        delete the
>>>           whole local Maven repo and build/log again and then analyze it
>>>           again. (I assume you just deleted this libs instead the whole
>>>           local repo, right?)
>>>
>>>           Thanks
>>>
>>>           Michi
>>>
>>>           Mehmet Birgi wrote:
>>>
>>>               Hi Michael
>>>
>>>
>>>               On Tue, Apr 6, 2010 at 3:52 PM, <bugzilla at wyona.com
>>>        <mailto:bugzilla at wyona.com>
>>>               <mailto:bugzilla at wyona.com <mailto:bugzilla at wyona.com>>
>>>        <mailto:bugzilla at wyona.com <mailto:bugzilla at wyona.com>
>>>
>>>               <mailto:bugzilla at wyona.com
>>>        <mailto:bugzilla at wyona.com>>>> wrote:
>>>
>>>
>>> http://bugzilla.wyona.com/cgi-bin/bugzilla/show_bug.cgi?id=3D7551
>>>
>>>
>>>                  michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>
>>>               <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>>
>>>               <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>
>>>               <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>>> changed:
>>>
>>>
>>>                            What    |Removed                     |Added
>>>
>>>  ----------------------------------------------------------------------=
------
>>>                          AssignedTo|michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>
>>>               <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>>
>>>                  <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>
>>>               <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>>>   |mehmet.birgi at wyona.com
>>>        <mailto:mehmet.birgi at wyona.com>
>>>               <mailto:mehmet.birgi at wyona.com
>>>        <mailto:mehmet.birgi at wyona.com>>
>>>                  <mailto:mehmet.birgi at wyona.com
>>>        <mailto:mehmet.birgi at wyona.com>
>>>               <mailto:mehmet.birgi at wyona.com
>>>        <mailto:mehmet.birgi at wyona.com>>>
>>>
>>>
>>>
>>>
>>>
>>>                  ------- Comment #3 from michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>
>>>               <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>>
>>>                  <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>
>>>               <mailto:michael.wechner at wyona.org
>>>        <mailto:michael.wechner at wyona.org>>>  2010-04-06 14:48 -------
>>>
>>>                  It would be important that you add the piece of the log
>>>               file where
>>>                  one can see
>>>                  from where the Maven download is actually started. Rig=
ht
>>>               now one
>>>                  can only see,
>>>                  that it is downloaded, but not which resource or
>>>        realm or
>>>                  component is actually
>>>                  triggering the download
>>>
>>>
>>>               I am not sure I understand what you mean, I have
>>>        attached the
>>>               whole log file, can you point me to the proper entries?
>>>        Maybe
>>>               this information is not logged?
>>>
>>>               Thanks,
>>>
>>>               Memo
>>>
>>>
>>>
>>>                  --
>>>                  Configure bugmail:
>>>
>>> http://bugzilla.wyona.com/cgi-bin/bugzilla/userprefs.cgi?tab=3Demail
>>>                  ------- You are receiving this mail because: -------
>>>                  You are the QA contact for the bug, or are watching
>>>        the QA
>>>               contact.
>>>                  --
>>>                  Yanel-development mailing list
>>>        Yanel-development at wyona.com <mailto:Yanel-development at wyona.com>
>>>               <mailto:Yanel-development at wyona.com
>>>        <mailto:Yanel-development at wyona.com>>
>>>                  <mailto:Yanel-development at wyona.com
>>>        <mailto:Yanel-development at wyona.com>
>>>               <mailto:Yanel-development at wyona.com
>>>        <mailto:Yanel-development at wyona.com>>>
>>>
>>>
>>> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>>>
>>>
>>>
>>>
>>>               --         Mehmet Birgi
>>>               www.wyona.com <http://www.wyona.com>
>>>        <http://www.wyona.com> <http://www.wyona.com>
>>>
>>>
>>>
>>>           --     Yanel-development mailing list
>>>        Yanel-development at wyona.com <mailto:Yanel-development at wyona.com>
>>>           <mailto:Yanel-development at wyona.com
>>>        <mailto:Yanel-development at wyona.com>>
>>>
>>> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>>>
>>>
>>>
>>>
>>>        --         Mehmet Birgi
>>>        www.wyona.com <http://www.wyona.com> <http://www.wyona.com>
>>>
>>>
>>>    --     Yanel-development mailing list Yanel-development at wyona.com
>>>    <mailto:Yanel-development at wyona.com>
>>>    http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>>>
>>>
>>>
>>>
>>> --
>>> Mehmet Birgi
>>> www.wyona.com <http://www.wyona.com>
>>>
>>>
>> --
>> Yanel-development mailing list Yanel-development at wyona.com
>> http://lists.wyona.org/cgi-bin/mailman/listinfo/yanel-development
>>
>
>
>
> --
> Mehmet Birgi
> www.wyona.com
>
>


-- =

Mehmet Birgi
www.wyona.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010040=
7/b96b0ba0/attachment-0001.htm


More information about the Yanel-development mailing list