You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by si...@apache.org on 2008/06/27 18:54:29 UTC

svn commit: r672322 - in /maven/sandbox/trunk/shared/maven-shared-model/src: main/java/org/apache/maven/shared/model/ test/java/org/apache/maven/shared/model/

Author: sisbell
Date: Fri Jun 27 09:54:29 2008
New Revision: 672322

URL: http://svn.apache.org/viewvc?rev=672322&view=rev
Log:
Various bug fixes

Modified:
    maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
    maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java
    maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
    maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java

Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java?rev=672322&r1=672321&r2=672322&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelMarshaller.java Fri Jun 27 09:54:29 2008
@@ -47,7 +47,7 @@
         String tagValue = null;
 
         try {
-           for (;;parser.next()) {
+            for (; ; parser.next()) {
                 int type = parser.getEventType();
                 switch (type) {
                     case XmlPullParser.TEXT: {
@@ -58,6 +58,10 @@
                         break;
                     }
                     case XmlPullParser.START_TAG: {
+                        if (parser.isEmptyElementTag()) {
+                            tagValue = "";
+                        }
+
                         if (!tagName.equals(baseUri)) {
                             modelProperties.add(new ModelProperty(tagName, tagValue));
                         }
@@ -123,7 +127,7 @@
             }
             lastUriTags = tagNames;
         }
-        for (int i = lastUriTags.size() - 2; i >= 0; i--) {
+        for (int i = lastUriTags.size() - 1; i >= 1; i--) {
             sb.append(toEndTag(lastUriTags.get(i)));
         }
         return sb.toString();

Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java?rev=672322&r1=672321&r2=672322&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelProperty.java Fri Jun 27 09:54:29 2008
@@ -80,10 +80,10 @@
     }
 
     public InterpolatorProperty asInterpolatorProperty(String baseUri) {
-        if(uri.contains("#collection") || value == null) {
+        if (uri.contains("#collection") || value == null) {
             return null;
         }
-        String key = "${" + uri.replace(baseUri +"/", "").replace("/", ".") + "}";
+        String key = "${" + uri.replace(baseUri + "/", "").replace("/", ".") + "}";
         return new InterpolatorProperty(key, value);
     }
 
@@ -94,21 +94,17 @@
         if (isResolved()) {
             return;
         }
-        boolean isModified = false;
         for (String expression : expressions) {
             if (property.getKey().equals(expression)) {
                 resolvedValue = resolvedValue.replace(property.getKey(), property.getValue());
-                isModified = true;
+                expressions.clear();
+                Matcher matcher = EXPRESSION_PATTERN.matcher(resolvedValue);
+                while (matcher.find()) {
+                    expressions.add(matcher.group(0));
+                }
                 break;
             }
         }
-        if (isModified) {
-            expressions.clear();
-            Matcher matcher = EXPRESSION_PATTERN.matcher(value);
-            while (matcher.find()) {
-                expressions.add(matcher.group(0));
-            }
-        }
     }
 
     public String toString() {

Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java?rev=672322&r1=672321&r2=672322&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/ModelTransformerContext.java Fri Jun 27 09:54:29 2008
@@ -32,11 +32,22 @@
         this.factories = (factories == null) ? Collections.EMPTY_LIST : factories;
     }
 
+    /**
+     * Transforms and interpolates specified hierarchical list of domain models (inheritence) to target domain model.
+     * Unlike ModelTransformerContext#transform(java.util.List, ModelTransformer, ModelTransformer), this method requires
+     * the user to add interpolator properties. It's intended to be used by IDEs.
+     *
+     * @param domainModels
+     * @param fromModelTransformer
+     * @param toModelTransformer
+     * @param interpolatorProperties properties to use during interpolation.
+     * @return
+     * @throws IOException
+     */
     public DomainModel transform(List<DomainModel> domainModels, ModelTransformer fromModelTransformer,
                                  ModelTransformer toModelTransformer,
                                  Collection<InterpolatorProperty> interpolatorProperties) throws IOException {
-        List<InterpolatorProperty> properties = new ArrayList<InterpolatorProperty>(systemInterpolatorProperties);
-        properties.addAll(interpolatorProperties);
+        List<InterpolatorProperty> properties = new ArrayList<InterpolatorProperty>(interpolatorProperties);
 
         String baseUriForModel = fromModelTransformer.getBaseUri();
         List<ModelProperty> modelProperties = sort(fromModelTransformer.transformToModelProperties(domainModels),
@@ -74,8 +85,8 @@
         }
 
         List<ModelProperty> unresolvedProperties = new ArrayList<ModelProperty>();
-        for(ModelProperty mp : mps) {
-            if(!mp.isResolved()) {
+        for (ModelProperty mp : mps) {
+            if (!mp.isResolved()) {
                 unresolvedProperties.add(mp);
             }
         }
@@ -89,21 +100,24 @@
         return toModelTransformer.transformToDomainModel(mps);
     }
 
-
     /**
-     * Transforms specified hierarchical list of domain models (inheritence) to target domain model.
+     * Transforms and interpolates specified hierarchical list of domain models (inheritence) to target domain model.
+     * Uses standard environmental and system properties for intepolation.
      *
      * @param domainModels
      * @param fromModelTransformer
      * @param toModelTransformer
-     * @return
+     * @return 
+     * @throws IOException
      */
     public DomainModel transform(List<DomainModel> domainModels, ModelTransformer fromModelTransformer,
                                  ModelTransformer toModelTransformer)
             throws IOException {
-        return this.transform(domainModels, fromModelTransformer, toModelTransformer, new ArrayList<InterpolatorProperty>());
+        return this.transform(domainModels, fromModelTransformer, toModelTransformer, systemInterpolatorProperties);
     }
 
+    
+
     /**
      * Sorts specified list of model properties. Typically the list contain property information from the entire
      * hierarchy of models, with most specialized model first in the list.

Modified: maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java?rev=672322&r1=672321&r2=672322&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/ModelMarshallerTest.java Fri Jun 27 09:54:29 2008
@@ -7,6 +7,7 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -14,7 +15,17 @@
 public class ModelMarshallerTest {
 
     @Test
-    public void marshal() throws IOException {       
+    public void unmarshalWithemptyTags() throws IOException {
+        List<ModelProperty> modelProperties = Arrays.asList(
+                new ModelProperty("http://apache.org/maven/project", null),
+                new ModelProperty("http://apache.org/maven/project/dependencies#collection", null)
+        );
+        String xml = ModelMarshaller.unmarshalModelPropertiesToXml(modelProperties, "http://apache.org/maven");
+        System.out.println("COMPLETE:" + xml); //TODO: Verify proper xml
+    }
+
+    @Test
+    public void marshal() throws IOException {
         List<ModelProperty> modelProperties = ModelMarshaller.marshallXmlToModelProperties(
                 new ByteArrayInputStream("<project><version>1.1</version></project>".getBytes()),
                 "http://apache.org/maven", null);