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"));