The unit test PomModuleDescriptorWriterTest should be adpated.
http://vmgump.apache.org/gump/public/ivy/ivy-tests/gump_file/TEST-org.apache.ivy.plugins.parser.m2.PomModuleDescriptorWriterTest.xml.html

Gilles

On 12/03/2008, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Author: xavier
>  Date: Wed Mar 12 01:44:56 2008
>  New Revision: 636252
>
>  URL: http://svn.apache.org/viewvc?rev=636252&view=rev
>  Log:
>  - IMPROVEMENT: Parse description information in ivy files (IVY-766)
>  - IMPROVEMENT: Parse description and home page from poms (IVY-767)
>
>  Modified:
>     ant/ivy/core/trunk/CHANGES.txt
>     
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultModuleDescriptor.java
>     
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/ModuleDescriptor.java
>     
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>     
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
>     
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
>     
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
>     
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
>     
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java
>
>  Modified: ant/ivy/core/trunk/CHANGES.txt
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- ant/ivy/core/trunk/CHANGES.txt (original)
>  +++ ant/ivy/core/trunk/CHANGES.txt Wed Mar 12 01:44:56 2008
>  @@ -69,6 +69,8 @@
>
>   - IMPROVEMENT: Make Ivy standalone runnable with no required dependencies 
> (IVY-757)
>   - IMPROVEMENT: add branch attribute in ivy:install task (IVY-727)
>  +- IMPROVEMENT: Parse description information in ivy files (IVY-766)
>  +- IMPROVEMENT: Parse description and home page from poms (IVY-767)
>
>   - FIX: Ivy reports a conflict when the same file is supposed to be 
> retrieved at the same location twice (or more) (IVY-743)
>   - FIX: StackOverflowError when configuration extends itself (IVY-696)
>
>  Modified: 
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultModuleDescriptor.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultModuleDescriptor.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultModuleDescriptor.java
>  (original)
>  +++ 
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultModuleDescriptor.java
>  Wed Mar 12 01:44:56 2008
>  @@ -167,6 +167,7 @@
>          }
>          nmd.licenses.addAll(Arrays.asList(md.getLicenses()));
>          nmd.homePage = md.getHomePage();
>  +        nmd.description = md.getDescription();
>          nmd.lastModified = md.getLastModified();
>          nmd.extraAttributesNamespaces = md.getExtraAttributesNamespaces();
>          nmd.extraInfo = md.getExtraInfo();
>  @@ -203,6 +204,8 @@
>
>      private String homePage;
>
>  +    private String description = "";
>  +
>      private long lastModified = 0;
>
>      private Namespace namespace;
>  @@ -483,6 +486,14 @@
>
>      public void setHomePage(String homePage) {
>          this.homePage = homePage;
>  +    }
>  +
>  +    public String getDescription() {
>  +        return description;
>  +    }
>  +
>  +    public void setDescription(String description) {
>  +        this.description = description;
>      }
>
>      public long getLastModified() {
>
>  Modified: 
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/ModuleDescriptor.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/ModuleDescriptor.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/ModuleDescriptor.java
>  (original)
>  +++ 
> ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/ModuleDescriptor.java
>  Wed Mar 12 01:44:56 2008
>  @@ -151,6 +151,8 @@
>      License[] getLicenses();
>
>      String getHomePage();
>  +
>  +    String getDescription();
>
>      long getLastModified();
>
>
>  Modified: 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>  (original)
>  +++ 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>  Wed Mar 12 01:44:56 2008
>  @@ -187,6 +187,14 @@
>          mrid = ModuleRevisionId.newInstance(groupId, artifactId, version);
>          ivyModuleDescriptor.setModuleRevisionId(mrid);
>       }
>  +
>  +    public void setHomePage(String homePage) {
>  +        ivyModuleDescriptor.setHomePage(homePage);
>  +    }
>  +
>  +    public void setDescription(String description) {
>  +        ivyModuleDescriptor.setDescription(description);
>  +    }
>
>
>      public void addArtifact(String artifactId, String packaging) {
>
>  Modified: 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
>  (original)
>  +++ 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
>  Wed Mar 12 01:44:56 2008
>  @@ -117,6 +117,9 @@
>              String artifactId = domReader.getArtifactId();
>              String version = domReader.getVersion();
>              mdBuilder.setModuleRevId(groupId , artifactId , version);
>  +
>  +            mdBuilder.setHomePage(domReader.getHomePage());
>  +            mdBuilder.setDescription(domReader.getDescription());
>
>              ModuleRevisionId relocation = domReader.getRelocation();
>
>
>  Modified: 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java 
> (original)
>  +++ 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java 
> Wed Mar 12 01:44:56 2008
>  @@ -53,6 +53,8 @@
>      private static final String GROUP_ID = "groupId";
>      private static final String ARTIFACT_ID = "artifactId";
>      private static final String VERSION = "version";
>  +    private static final String DESCRIPTION = "description";
>  +    private static final String HOMEPAGE = "url";
>      private static final String PARENT = "parent";
>      private static final String SCOPE = "scope";
>      private static final String CLASSIFIER = "classifier";
>  @@ -158,6 +160,22 @@
>              val = "jar";
>          }
>          return val;
>  +    }
>  +
>  +    public String getHomePage() {
>  +        String val = getFirstChildText(projectElement , HOMEPAGE);
>  +        if (val == null) {
>  +            val = "";
>  +        }
>  +        return val;
>  +    }
>  +
>  +    public String getDescription() {
>  +        String val = getFirstChildText(projectElement , DESCRIPTION);
>  +        if (val == null) {
>  +            val = "";
>  +        }
>  +        return val.trim();
>      }
>
>
>
>  Modified: 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
>  (original)
>  +++ 
> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
>  Wed Mar 12 01:44:56 2008
>  @@ -267,6 +267,7 @@
>              try {
>                  if (state == DESCRIPTION) {
>                      //make sure we don't interpret any tag while in 
> description tag
>  +                    buffer.append("<" + qName + ">");
>                      return;
>                  } else if ("ivy-module".equals(qName)) {
>                      ivyModuleStarted(attributes);
>  @@ -278,6 +279,7 @@
>                  } else if (state == INFO && "description".equals(qName)) {
>                      
> getMd().setHomePage(ivy.substitute(attributes.getValue("homepage")));
>                      state = DESCRIPTION;
>  +                    buffer = new StringBuffer();
>                  } else if (state == INFO && "ivyauthor".equals(qName)) {
>                      // nothing to do, we don't store this
>                  } else if (state == INFO && "repository".equals(qName)) {
>  @@ -779,11 +781,20 @@
>              } else if (state == INFO && "info".equals(qName)) {
>                  state = NONE;
>              } else if (state == DESCRIPTION && "description".equals(qName)) {
>  +                getMd().setDescription(buffer == null ? "" : 
> buffer.toString().trim());
>  +                buffer = null;
>                  state = INFO;
>              } else if (state == EXTRA_INFO) {
>                  getMd().addExtraInfo(qName, buffer == null ? "" : 
> buffer.toString());
>                  buffer = null;
>                  state = INFO;
>  +            } else if (state == DESCRIPTION) {
>  +                if (buffer.toString().endsWith("<" + qName + ">")) {
>  +                    buffer.deleteCharAt(buffer.length() - 1);
>  +                    buffer.append("/>");
>  +                } else {
>  +                    buffer.append("</" + qName + ">");
>  +                }
>              }
>          }
>
>
>  Modified: 
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
>  (original)
>  +++ 
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
>  Wed Mar 12 01:44:56 2008
>  @@ -465,6 +465,22 @@
>          assertEquals(0, dds.length);
>      }
>
>  +    public void testHomeAndDescription() throws Exception {
>  +        ModuleDescriptor md = 
> PomModuleDescriptorParser.getInstance().parseDescriptor(
>  +            settings, getClass().getResource("mule-1.3.3.pom"), false);
>  +        assertNotNull(md);
>  +
>  +        assertEquals(ModuleRevisionId.newInstance("org.mule", "mule", 
> "1.3.3"), md
>  +                .getModuleRevisionId());
>  +
>  +        assertEquals("http://mule.mulesource.org";, md.getHomePage());
>  +        assertEquals("Mule is a simple yet robust and highly scalable 
> Integration and ESB services "
>  +                       + "framework. It is designed\n        as a 
> light-weight, event-driven component "
>  +                       + "technology that handles communication with 
> disparate systems\n        "
>  +                       + "transparently providing a simple component 
> interface.",
>  +                       md.getDescription().replace("\n\r", 
> "\n").replace("\r", "\n"));
>  +    }
>  +
>
>      public void testDependencyManagment() throws ParseException, IOException 
> {
>          ModuleDescriptor md = 
> PomModuleDescriptorParser.getInstance().parseDescriptor(
>
>  Modified: 
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java
>  URL: 
> http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java?rev=636252&r1=636251&r2=636252&view=diff
>  
> ==============================================================================
>  --- 
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java
>  (original)
>  +++ 
> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java
>  Wed Mar 12 01:44:56 2008
>  @@ -204,6 +204,10 @@
>          assertEquals("http://www.my.org/mymodule/mylicense.html";, 
> licenses[0].getUrl());
>
>          assertEquals("http://www.my.org/mymodule/";, md.getHomePage());
>  +        assertEquals("This module is <b>great</b> !<br/>\n\t"
>  +                       + "You can use it especially with myconf1 and 
> myconf2, "
>  +                       + "and myconf4 is not too bad too.",
>  +                       md.getDescription().replace("\n\r", 
> "\n").replace("\r", "\n"));
>
>          assertEquals(1, md.getExtraInfo().size());
>          assertEquals("56576", md.getExtraInfo().get("e:someExtra"));
>
>
>


-- 
Gilles Scokart

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to