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/07/15 00:09:46 UTC
svn commit: r676752 - in /maven/sandbox/trunk/shared/maven-shared-model/src:
main/java/org/apache/maven/shared/model/
main/java/org/apache/maven/shared/model/impl/
test/java/org/apache/maven/shared/model/impl/
Author: sisbell
Date: Mon Jul 14 15:09:45 2008
New Revision: 676752
URL: http://svn.apache.org/viewvc?rev=676752&view=rev
Log:
Fix for mergeing collections of collections.
Modified:
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/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java
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=676752&r1=676751&r2=676752&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 Mon Jul 14 15:09:45 2008
@@ -28,15 +28,6 @@
}
}
- private static boolean aContainsAnyOfB(List<ModelProperty> a, List<ModelProperty> b) {
- for (ModelProperty mp : b) {
- if (a.contains(mp)) {
- return true;
- }
- }
- return false;
- }
-
/**
* Default constructor
*
Modified: maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java?rev=676752&r1=676751&r2=676752&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/main/java/org/apache/maven/shared/model/impl/DefaultModelDataSource.java Mon Jul 14 15:09:45 2008
@@ -233,7 +233,15 @@
private static int findLastIndexOfParent(ModelProperty modelProperty, List<ModelProperty> modelProperties) {
for (int i = modelProperties.size() - 1; i >= 0; i--) {
- if (modelProperties.get(i).isParentOf(modelProperty)) {
+ if(modelProperties.get(i).getUri().equals(modelProperty.getUri())) {
+ for(int j = i; i <= modelProperties.size(); j++) {
+ if(!modelProperties.get(j).getUri().startsWith(modelProperty.getUri())) {
+ return j -1;
+ }
+ }
+ return modelProperties.size() - 1;
+ }
+ else if (modelProperties.get(i).isParentOf(modelProperty)) {
return i;
}
}
@@ -248,19 +256,27 @@
* @return list of merged properties
*/
protected static List<ModelProperty> mergeModelContainers(ModelContainer a, ModelContainer b) {
+ System.out.println("Merge");
List<ModelProperty> m = new ArrayList<ModelProperty>();
m.addAll(a.getProperties());
m.addAll(b.getProperties());
LinkedList<ModelProperty> processedProperties = new LinkedList<ModelProperty>();
List<String> uris = new ArrayList<String>();
-
+ String baseUri = a.getProperties().get(0).getUri();
for (ModelProperty p : m) {
- if (!uris.contains(p.getUri())) {
+ // System.out.println("A:" + p.getUri());
+ // System.out.println("B:" + baseUri);
+ String subUri = p.getUri().substring(baseUri.length(), p.getUri().length());
+ if (!uris.contains(p.getUri())
+ || (subUri.contains("#collection") && !subUri.endsWith("#collection"))) {
processedProperties.add(findLastIndexOfParent(p, processedProperties) + 1, p);
uris.add(p.getUri());
}
}
+ for(ModelProperty mp : processedProperties) {
+ System.out.println(mp);
+ }
return processedProperties;
}
Modified: maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java?rev=676752&r1=676751&r2=676752&view=diff
==============================================================================
--- maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java (original)
+++ maven/sandbox/trunk/shared/maven-shared-model/src/test/java/org/apache/maven/shared/model/impl/DefaultModelDataSourceTest.java Mon Jul 14 15:09:45 2008
@@ -19,7 +19,7 @@
}
@Test
- public void mergeModelContainers() throws IOException {
+ public void mergeModelContainersCollectionsOfCollections() throws IOException {
List<ModelProperty> modelProperties = Arrays.asList(
new ModelProperty("http://apache.org/maven/project", null),
new ModelProperty("http://apache.org/maven/project/build", null),
@@ -31,11 +31,53 @@
new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/artifactId", "maven-compiler-plugin"),
new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/groupId", "org.apache.maven.plugins"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/groupId", "gid1"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/artifactId", "art1"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/version", "2.0"),
+
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "2.0.2"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/artifactId", "maven-compiler-plugin"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/groupId", "org.apache.maven.plugins"),
+
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/groupId", "gid1"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/artifactId", "art1"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/dependencies#collection/dependency/version", "1.0")
+ );
+
+
+ DummyModelContainerFactory factory = new DummyModelContainerFactory();
+
+ DefaultModelDataSource datasource = new DefaultModelDataSource();
+ datasource.init(modelProperties, factories);
+
+ List<ModelProperty> mps = datasource.mergeModelContainers(
+ factory.create(new ArrayList<ModelProperty>(modelProperties.subList(4, 13))),
+ factory.create(new ArrayList<ModelProperty>(modelProperties.subList(13, 21))));
+ assertTrue(mps.containsAll(new ArrayList<ModelProperty>(modelProperties.subList(4, 8))));
+ }
+
+ @Test
+ public void mergeModelContainers() throws IOException {
+ List<ModelProperty> modelProperties = Arrays.asList(
+ new ModelProperty("http://apache.org/maven/project", null),
+ new ModelProperty("http://apache.org/maven/project/build", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection", null),
+
new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null),
new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "2.0.2"),
new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/artifactId", "maven-compiler-plugin"),
new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/groupId", "org.apache.maven.plugins"),
- new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/a", "a")
+
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin", null),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/version", "2.0.2"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/artifactId", "maven-compiler-plugin"),
+ new ModelProperty("http://apache.org/maven/project/build/pluginManagement/plugins#collection/plugin/groupId", "org.apache.maven.plugins")
);
@@ -46,7 +88,7 @@
List<ModelProperty> mps = datasource.mergeModelContainers(
factory.create(new ArrayList<ModelProperty>(modelProperties.subList(4, 8))),
- factory.create(new ArrayList<ModelProperty>(modelProperties.subList(8, 13))));
+ factory.create(new ArrayList<ModelProperty>(modelProperties.subList(8, 12))));
assertTrue(mps.containsAll(new ArrayList<ModelProperty>(modelProperties.subList(4, 8))));
}