You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by ep...@apache.org on 2004/09/24 14:22:16 UTC

cvs commit: maven-plugins/eclipse/xdocs changes.xml

epugh       2004/09/24 05:22:15

  Modified:    eclipse/src/plugin-test project.xml maven.xml
               eclipse/xdocs changes.xml
  Log:
  MPECLIPSE-38 Jar overrides are not supported.  Unit test to verify fix
  
  Revision  Changes    Path
  1.7       +5 -0      maven-plugins/eclipse/src/plugin-test/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/eclipse/src/plugin-test/project.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- project.xml	10 Aug 2004 07:41:16 -0000	1.6
  +++ project.xml	24 Sep 2004 12:22:15 -0000	1.7
  @@ -54,6 +54,11 @@
   
     <dependencies>
       <dependency>
  +      <id>maven</id>
  +      <version>beta-8</version>
  +      <jar>maven.jar</jar>
  +    </dependency>
  +    <dependency>
         <groupId>commons-jelly</groupId>
         <artifactId>commons-jelly-tags-xml</artifactId>
         <version>20030211.142705</version>
  
  
  
  1.11      +14 -1     maven-plugins/eclipse/src/plugin-test/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/eclipse/src/plugin-test/maven.xml,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- maven.xml	10 Aug 2004 07:41:17 -0000	1.10
  +++ maven.xml	24 Sep 2004 12:22:15 -0000	1.11
  @@ -20,7 +20,7 @@
            xmlns:u="jelly:util"
            xmlns:x="jelly:xml">
   
  -  <goal name="testPlugin" prereqs="test-eclipse,test-natures,test-builders,test-natures-and-builders,test-classpath-has-generated-source">
  +  <goal name="testPlugin" prereqs="test-eclipse,test-natures,test-builders,test-natures-and-builders,test-classpath-has-generated-source,test-classpath-has-overridden-jar">
     </goal>
     
     <goal name="test-init">
  @@ -114,5 +114,18 @@
       <assert:assertEquals expected="3" value="${count.intValue().toString()}"/>  
   
     </goal>
  +  
  +  <goal name="test-classpath-has-overridden-jar">
  +	<attainGoal name="test-init"/>
  +    <attainGoal name="eclipse"/>
  +
  +    <assert:assertFileExists file="${dotClasspath}" />
  +
  +    <u:file var="classpathFile" name="${dotClasspath}"/>
  +    <x:parse var="classpathDoc" xml="${classpathFile.toURL()}" />
  +    <x:set var="count" select="count($classpathDoc/classpath/classpathentry[contains(@path,'MAVEN_REPO/maven/jars/maven.jar')])"/>
  +    <assert:assertEquals expected="1" value="${count.intValue().toString()}"/>  
  +
  +  </goal>  
   
   </project>
  
  
  
  1.29      +1 -0      maven-plugins/eclipse/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/maven-plugins/eclipse/xdocs/changes.xml,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- changes.xml	14 Aug 2004 19:43:30 -0000	1.28
  +++ changes.xml	24 Sep 2004 12:22:15 -0000	1.29
  @@ -25,6 +25,7 @@
     </properties>
     <body>
       <release version="1.9" date="in cvs">
  +      <action dev="epugh" type="fix" issue="MPECLIPSE-38">Jar overrides are not supported.  Unit test to verify fix</action>
       </release>
       <release version="1.8" date="2004-08-14">
         <action dev="epugh" type="fix" issue="MPECLIPSE-37" due-to="Felipe Leme">Fixed a 'race condition' where Cactus dependency is added twice to .classpath.</action>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


RE: cvs commit: maven-plugins/eclipse/xdocs changes.xml

Posted by Eric Pugh <ep...@upstate.com>.
Thanks for the detailed help!  It turns out that the
<maven:makeRelativePath> tag did everything I needed..  Turned out to be
pretty simple..  At least, I think so..

Eric

> -----Original Message-----
> From: Brett Porter [mailto:brett@apache.org]
> Sent: Friday, September 24, 2004 4:08 PM
> To: Maven Developers List
> Subject: Re: cvs commit: maven-plugins/eclipse/xdocs changes.xml
>
>
> That's a poorly named property if ever I saw one :)
>
> lib is an artifact, not a dependency. I don't see why modifying the
> dependency helps, and its not the right thing to do (model/runtime
> separation - and yes, I notice that the version does this anyway).
>
> lib.urlPath here should give you the
> /commons-logging/jars/commons-logging-1.0.3.jar part, but this isn't
> what you want.
>
> A path jar override is unlikely to be in the repository (people often
> use it to test, because the jars are there though). It's actually
> usually in basedir.
>
> I suggest you do the following:
> - take lib.path
> - if it starts with ${maven.repo.local}, swap it for MAVEN_REPO
> - if it starts with ${basedir}/, remove it.
>
> Sound right?
>
> Cheers,
> Brett
>
> Eric Pugh wrote:
>
> >Thanks Brett,
> >
> >That clears things up a bit..  Unfortunantly, this doesn't seem
> as easy to
> >fix as I think it should..  ArtifactListBuilder is responsible
> for all the
> >setup
> >of the artifacts.  However, ArtifactListBuilder properly updates the path
> >variable of the artifact.  So, if I change my jelly in
> classpath.jelly from:
> >          <classpathentry kind="var" path="MAVEN_REPO${lib.urlPath}"/>
> >to
> >          <classpathentry kind="var" path="${lib.path}"/>
> >
> >it takes into account the correct version or location.
> Unfortunantly that
> >means that I get a URL like this
> >
> c:\java\maven\repository\commons-logging\jars\commons-logging-1.0.3.jar
> >
> >And what I really need is just the
> >/commons-logging/jars/commons-logging-1.0.3.jar part.  While I could get
> >slick w/ the textediting, it seems like something along the lines of this
> >should be applied:
> >
> >Index: ArtifactListBuilder.java
> >===================================================================
> >RCS file:
> >/home/cvs/maven/src/java/org/apache/maven/ArtifactListBuilder.java,v
> >retrieving revision 1.16
> >diff -u -r1.16 ArtifactListBuilder.java
> >--- ArtifactListBuilder.java	23 Mar 2004 02:18:18 -0000	1.16
> >+++ ArtifactListBuilder.java	24 Sep 2004 13:47:41 -0000
> >@@ -68,13 +68,15 @@
> >                     // User is requesting a specific version of a
> >dependency
> >                     // be used.
> >                     d.setVersion( mavenJarProperty );
> >+
> >artifact.getDependency().setUrl(artifact.generatePath());
> >                     artifact.setPath(
> >project.getContext().getMavenRepoLocal() + artifact.generatePath() );
> >                 }
> >                 else
> >                 {
> >                     // User is requesting a specific path to a
> dependency
> >-                    // be used.
> >+                    // be used.
> >                     artifact.setPath( new File(
> >mavenJarProperty ).getAbsolutePath() );
> >+                    artifact.getDependency().setUrl(mavenJarProperty);
> >                 }
> >             }
> >             else
> >
> >
> >
> >It boils down to needing the URL, not the full path.
> >
> >Eric
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: cvs commit: maven-plugins/eclipse/xdocs changes.xml

Posted by Brett Porter <br...@apache.org>.
That's a poorly named property if ever I saw one :)

lib is an artifact, not a dependency. I don't see why modifying the 
dependency helps, and its not the right thing to do (model/runtime 
separation - and yes, I notice that the version does this anyway).

lib.urlPath here should give you the 
/commons-logging/jars/commons-logging-1.0.3.jar part, but this isn't 
what you want.

A path jar override is unlikely to be in the repository (people often 
use it to test, because the jars are there though). It's actually 
usually in basedir.

I suggest you do the following:
- take lib.path
- if it starts with ${maven.repo.local}, swap it for MAVEN_REPO
- if it starts with ${basedir}/, remove it.

Sound right?

Cheers,
Brett

Eric Pugh wrote:

>Thanks Brett,
>
>That clears things up a bit..  Unfortunantly, this doesn't seem as easy to
>fix as I think it should..  ArtifactListBuilder is responsible for all the
>setup
>of the artifacts.  However, ArtifactListBuilder properly updates the path
>variable of the artifact.  So, if I change my jelly in classpath.jelly from:
>          <classpathentry kind="var" path="MAVEN_REPO${lib.urlPath}"/>
>to
>          <classpathentry kind="var" path="${lib.path}"/>
>
>it takes into account the correct version or location.  Unfortunantly that
>means that I get a URL like this
>	c:\java\maven\repository\commons-logging\jars\commons-logging-1.0.3.jar
>
>And what I really need is just the
>/commons-logging/jars/commons-logging-1.0.3.jar part.  While I could get
>slick w/ the textediting, it seems like something along the lines of this
>should be applied:
>
>Index: ArtifactListBuilder.java
>===================================================================
>RCS file:
>/home/cvs/maven/src/java/org/apache/maven/ArtifactListBuilder.java,v
>retrieving revision 1.16
>diff -u -r1.16 ArtifactListBuilder.java
>--- ArtifactListBuilder.java	23 Mar 2004 02:18:18 -0000	1.16
>+++ ArtifactListBuilder.java	24 Sep 2004 13:47:41 -0000
>@@ -68,13 +68,15 @@
>                     // User is requesting a specific version of a
>dependency
>                     // be used.
>                     d.setVersion( mavenJarProperty );
>+
>artifact.getDependency().setUrl(artifact.generatePath());
>                     artifact.setPath(
>project.getContext().getMavenRepoLocal() + artifact.generatePath() );
>                 }
>                 else
>                 {
>                     // User is requesting a specific path to a dependency
>-                    // be used.
>+                    // be used.
>                     artifact.setPath( new File(
>mavenJarProperty ).getAbsolutePath() );
>+                    artifact.getDependency().setUrl(mavenJarProperty);
>                 }
>             }
>             else
>
>
>
>It boils down to needing the URL, not the full path.
>
>Eric
>
>  
>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


RE: cvs commit: maven-plugins/eclipse/xdocs changes.xml

Posted by Eric Pugh <ep...@upstate.com>.
Thanks Brett,

That clears things up a bit..  Unfortunantly, this doesn't seem as easy to
fix as I think it should..  ArtifactListBuilder is responsible for all the
setup
of the artifacts.  However, ArtifactListBuilder properly updates the path
variable of the artifact.  So, if I change my jelly in classpath.jelly from:
          <classpathentry kind="var" path="MAVEN_REPO${lib.urlPath}"/>
to
          <classpathentry kind="var" path="${lib.path}"/>

it takes into account the correct version or location.  Unfortunantly that
means that I get a URL like this
	c:\java\maven\repository\commons-logging\jars\commons-logging-1.0.3.jar

And what I really need is just the
/commons-logging/jars/commons-logging-1.0.3.jar part.  While I could get
slick w/ the textediting, it seems like something along the lines of this
should be applied:

Index: ArtifactListBuilder.java
===================================================================
RCS file:
/home/cvs/maven/src/java/org/apache/maven/ArtifactListBuilder.java,v
retrieving revision 1.16
diff -u -r1.16 ArtifactListBuilder.java
--- ArtifactListBuilder.java	23 Mar 2004 02:18:18 -0000	1.16
+++ ArtifactListBuilder.java	24 Sep 2004 13:47:41 -0000
@@ -68,13 +68,15 @@
                     // User is requesting a specific version of a
dependency
                     // be used.
                     d.setVersion( mavenJarProperty );
+
artifact.getDependency().setUrl(artifact.generatePath());
                     artifact.setPath(
project.getContext().getMavenRepoLocal() + artifact.generatePath() );
                 }
                 else
                 {
                     // User is requesting a specific path to a dependency
-                    // be used.
+                    // be used.
                     artifact.setPath( new File(
mavenJarProperty ).getAbsolutePath() );
+                    artifact.getDependency().setUrl(mavenJarProperty);
                 }
             }
             else



It boils down to needing the URL, not the full path.

Eric

> -----Original Message-----
> From: Brett Porter [mailto:brett@apache.org]
> Sent: Friday, September 24, 2004 2:57 PM
> To: Maven Developers List
> Subject: Re: cvs commit: maven-plugins/eclipse/xdocs changes.xml
>
>
> Hi Eric,
>
> That's not a jar override... try
>
> maven.jar.override=on
> with
> # path override
> maven.jar.commons-jelly-tags-xml=${basedir}/lib/commons-jelly-tags
> -xml-1.0.jar
> or
> # version override
> maven.jar.commons-jelly-tags-xml=1.0
>
> for example.
>
> See touchstone or MAVEN-581 for some test cases I've been looking at
> recently.
>
> Cheers,
> Brett
>
> epugh@apache.org wrote:
>
> >epugh       2004/09/24 05:22:15
> >
> >  Modified:    eclipse/src/plugin-test project.xml maven.xml
> >               eclipse/xdocs changes.xml
> >  Log:
> >  MPECLIPSE-38 Jar overrides are not supported.  Unit test to verify fix
> >
> >  Revision  Changes    Path
> >  1.7       +5 -0      maven-plugins/eclipse/src/plugin-test/project.xml
> >
> >  Index: project.xml
> >  ===================================================================
> >  RCS file: /home/cvs/maven-plugins/eclipse/src/plugin-test/project.xml,v
> >  retrieving revision 1.6
> >  retrieving revision 1.7
> >  diff -u -r1.6 -r1.7
> >  --- project.xml	10 Aug 2004 07:41:16 -0000	1.6
> >  +++ project.xml	24 Sep 2004 12:22:15 -0000	1.7
> >  @@ -54,6 +54,11 @@
> >
> >     <dependencies>
> >       <dependency>
> >  +      <id>maven</id>
> >  +      <version>beta-8</version>
> >  +      <jar>maven.jar</jar>
> >  +    </dependency>
> >  +    <dependency>
> >         <groupId>commons-jelly</groupId>
> >         <artifactId>commons-jelly-tags-xml</artifactId>
> >         <version>20030211.142705</version>
> >
> >
> >
> >  1.11      +14 -1     maven-plugins/eclipse/src/plugin-test/maven.xml
> >
> >  Index: maven.xml
> >  ===================================================================
> >  RCS file: /home/cvs/maven-plugins/eclipse/src/plugin-test/maven.xml,v
> >  retrieving revision 1.10
> >  retrieving revision 1.11
> >  diff -u -r1.10 -r1.11
> >  --- maven.xml	10 Aug 2004 07:41:17 -0000	1.10
> >  +++ maven.xml	24 Sep 2004 12:22:15 -0000	1.11
> >  @@ -20,7 +20,7 @@
> >            xmlns:u="jelly:util"
> >            xmlns:x="jelly:xml">
> >
> >  -  <goal name="testPlugin"
> prereqs="test-eclipse,test-natures,test-builders,test-natures-and-
> builders,test-classpath-has-generated-source">
> >  +  <goal name="testPlugin"
> prereqs="test-eclipse,test-natures,test-builders,test-natures-and-
> builders,test-classpath-has-generated-source,test-classpath-has-ov
> erridden-jar">
> >     </goal>
> >
> >     <goal name="test-init">
> >  @@ -114,5 +114,18 @@
> >       <assert:assertEquals expected="3"
> value="${count.intValue().toString()}"/>
> >
> >     </goal>
> >  +
> >  +  <goal name="test-classpath-has-overridden-jar">
> >  +	<attainGoal name="test-init"/>
> >  +    <attainGoal name="eclipse"/>
> >  +
> >  +    <assert:assertFileExists file="${dotClasspath}" />
> >  +
> >  +    <u:file var="classpathFile" name="${dotClasspath}"/>
> >  +    <x:parse var="classpathDoc" xml="${classpathFile.toURL()}" />
> >  +    <x:set var="count"
> select="count($classpathDoc/classpath/classpathentry[contains(@pat
> h,'MAVEN_REPO/maven/jars/maven.jar')])"/>
> >  +    <assert:assertEquals expected="1"
> value="${count.intValue().toString()}"/>
> >  +
> >  +  </goal>
> >
> >   </project>
> >
> >
> >
> >  1.29      +1 -0      maven-plugins/eclipse/xdocs/changes.xml
> >
> >  Index: changes.xml
> >  ===================================================================
> >  RCS file: /home/cvs/maven-plugins/eclipse/xdocs/changes.xml,v
> >  retrieving revision 1.28
> >  retrieving revision 1.29
> >  diff -u -r1.28 -r1.29
> >  --- changes.xml	14 Aug 2004 19:43:30 -0000	1.28
> >  +++ changes.xml	24 Sep 2004 12:22:15 -0000	1.29
> >  @@ -25,6 +25,7 @@
> >     </properties>
> >     <body>
> >       <release version="1.9" date="in cvs">
> >  +      <action dev="epugh" type="fix" issue="MPECLIPSE-38">Jar
> overrides are not supported.  Unit test to verify fix</action>
> >       </release>
> >       <release version="1.8" date="2004-08-14">
> >         <action dev="epugh" type="fix" issue="MPECLIPSE-37"
> due-to="Felipe Leme">Fixed a 'race condition' where Cactus
> dependency is added twice to .classpath.</action>
> >
> >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> >For additional commands, e-mail: dev-help@maven.apache.org
> >
> >
> >
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: cvs commit: maven-plugins/eclipse/xdocs changes.xml

Posted by Brett Porter <br...@apache.org>.
Hi Eric,

That's not a jar override... try

maven.jar.override=on
with
# path override
maven.jar.commons-jelly-tags-xml=${basedir}/lib/commons-jelly-tags-xml-1.0.jar
or
# version override
maven.jar.commons-jelly-tags-xml=1.0

for example.

See touchstone or MAVEN-581 for some test cases I've been looking at 
recently.

Cheers,
Brett

epugh@apache.org wrote:

>epugh       2004/09/24 05:22:15
>
>  Modified:    eclipse/src/plugin-test project.xml maven.xml
>               eclipse/xdocs changes.xml
>  Log:
>  MPECLIPSE-38 Jar overrides are not supported.  Unit test to verify fix
>  
>  Revision  Changes    Path
>  1.7       +5 -0      maven-plugins/eclipse/src/plugin-test/project.xml
>  
>  Index: project.xml
>  ===================================================================
>  RCS file: /home/cvs/maven-plugins/eclipse/src/plugin-test/project.xml,v
>  retrieving revision 1.6
>  retrieving revision 1.7
>  diff -u -r1.6 -r1.7
>  --- project.xml	10 Aug 2004 07:41:16 -0000	1.6
>  +++ project.xml	24 Sep 2004 12:22:15 -0000	1.7
>  @@ -54,6 +54,11 @@
>   
>     <dependencies>
>       <dependency>
>  +      <id>maven</id>
>  +      <version>beta-8</version>
>  +      <jar>maven.jar</jar>
>  +    </dependency>
>  +    <dependency>
>         <groupId>commons-jelly</groupId>
>         <artifactId>commons-jelly-tags-xml</artifactId>
>         <version>20030211.142705</version>
>  
>  
>  
>  1.11      +14 -1     maven-plugins/eclipse/src/plugin-test/maven.xml
>  
>  Index: maven.xml
>  ===================================================================
>  RCS file: /home/cvs/maven-plugins/eclipse/src/plugin-test/maven.xml,v
>  retrieving revision 1.10
>  retrieving revision 1.11
>  diff -u -r1.10 -r1.11
>  --- maven.xml	10 Aug 2004 07:41:17 -0000	1.10
>  +++ maven.xml	24 Sep 2004 12:22:15 -0000	1.11
>  @@ -20,7 +20,7 @@
>            xmlns:u="jelly:util"
>            xmlns:x="jelly:xml">
>   
>  -  <goal name="testPlugin" prereqs="test-eclipse,test-natures,test-builders,test-natures-and-builders,test-classpath-has-generated-source">
>  +  <goal name="testPlugin" prereqs="test-eclipse,test-natures,test-builders,test-natures-and-builders,test-classpath-has-generated-source,test-classpath-has-overridden-jar">
>     </goal>
>     
>     <goal name="test-init">
>  @@ -114,5 +114,18 @@
>       <assert:assertEquals expected="3" value="${count.intValue().toString()}"/>  
>   
>     </goal>
>  +  
>  +  <goal name="test-classpath-has-overridden-jar">
>  +	<attainGoal name="test-init"/>
>  +    <attainGoal name="eclipse"/>
>  +
>  +    <assert:assertFileExists file="${dotClasspath}" />
>  +
>  +    <u:file var="classpathFile" name="${dotClasspath}"/>
>  +    <x:parse var="classpathDoc" xml="${classpathFile.toURL()}" />
>  +    <x:set var="count" select="count($classpathDoc/classpath/classpathentry[contains(@path,'MAVEN_REPO/maven/jars/maven.jar')])"/>
>  +    <assert:assertEquals expected="1" value="${count.intValue().toString()}"/>  
>  +
>  +  </goal>  
>   
>   </project>
>  
>  
>  
>  1.29      +1 -0      maven-plugins/eclipse/xdocs/changes.xml
>  
>  Index: changes.xml
>  ===================================================================
>  RCS file: /home/cvs/maven-plugins/eclipse/xdocs/changes.xml,v
>  retrieving revision 1.28
>  retrieving revision 1.29
>  diff -u -r1.28 -r1.29
>  --- changes.xml	14 Aug 2004 19:43:30 -0000	1.28
>  +++ changes.xml	24 Sep 2004 12:22:15 -0000	1.29
>  @@ -25,6 +25,7 @@
>     </properties>
>     <body>
>       <release version="1.9" date="in cvs">
>  +      <action dev="epugh" type="fix" issue="MPECLIPSE-38">Jar overrides are not supported.  Unit test to verify fix</action>
>       </release>
>       <release version="1.8" date="2004-08-14">
>         <action dev="epugh" type="fix" issue="MPECLIPSE-37" due-to="Felipe Leme">Fixed a 'race condition' where Cactus dependency is added twice to .classpath.</action>
>  
>  
>  
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>For additional commands, e-mail: dev-help@maven.apache.org
>
>
>
>
>  
>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org