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/05/23 20:04:28 UTC
svn commit: r659611 - in /maven/sandbox/trunk/other/maven-project: ./ src/
src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/maven/ src/main/java/org/apache/maven/project/
src/main/java/org/apache/maven/proj...
Author: sisbell
Date: Fri May 23 11:04:27 2008
New Revision: 659611
URL: http://svn.apache.org/viewvc?rev=659611&view=rev
Log:
Partial prototype of maven-project.
Added:
maven/sandbox/trunk/other/maven-project/
maven/sandbox/trunk/other/maven-project/README.txt
maven/sandbox/trunk/other/maven-project/src/
maven/sandbox/trunk/other/maven-project/src/main/
maven/sandbox/trunk/other/maven-project/src/main/java/
maven/sandbox/trunk/other/maven-project/src/main/java/org/
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/DomainModel.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProcessor.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProperty.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelPropertySorter.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformer.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformerContext.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelUri.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/codegenerator/
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/DependencyManagementProcessor.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomClassicTransformer.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomDomainModel.java
maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/ProjectProcessor.java
maven/sandbox/trunk/other/maven-project/src/main/resources/
maven/sandbox/trunk/other/maven-project/src/main/resources/pom.xml
maven/sandbox/trunk/other/maven-project/src/test/
maven/sandbox/trunk/other/maven-project/src/test/java/
maven/sandbox/trunk/other/maven-project/src/test/java/org/
maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/
maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/maven/
maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/maven/project/
maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/maven/project/PomBuilder.java
Added: maven/sandbox/trunk/other/maven-project/README.txt
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/README.txt?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/README.txt (added)
+++ maven/sandbox/trunk/other/maven-project/README.txt Fri May 23 11:04:27 2008
@@ -0,0 +1,25 @@
+Implementation:
+This implementation maps all primitive values to a uri. Model structure is determined by ordering of list and by the
+uri itself, as it is easy to determine children and parents.
+
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection, Value = null
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency, Value = null
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/version, Value = 1.4
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/artifactId, Value = artifact-dep
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/groupId, Value = org.apache.maven.dep
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/scope, Value = compile
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/version, Value = 1.1
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/artifactId, Value = artifact-dep
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/groupId, Value = org.apache.maven.dep
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency, Value = null
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/version, Value = 1.0
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/artifactId, Value = bogus-dep
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/groupId, Value = org.bogus
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency, Value = null
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/version, Value = 1.1
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/artifactId, Value = artifact-dep
+Uri = http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/groupId, Value = org.apache.maven.dep
+Uri = http://apache.org/model/project/dependencies#collection, Value = null
+Uri = http://apache.org/model/project/dependencies#collection/dependency, Value = null
+Uri = http://apache.org/model/project/dependencies#collection/dependency/artifactId, Value = org.apache.maven.dep
+
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/DomainModel.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/DomainModel.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/DomainModel.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/DomainModel.java Fri May 23 11:04:27 2008
@@ -0,0 +1,4 @@
+package org.apache.maven.project;
+
+public interface DomainModel {
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProcessor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProcessor.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProcessor.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProcessor.java Fri May 23 11:04:27 2008
@@ -0,0 +1,12 @@
+package org.apache.maven.project;
+
+import java.util.List;
+
+/**
+ * Process the list of properties in some way: inserting version values (dependency management), removing properties that
+ * have been overriden, copying info from profiles to repsective parts of pom, interpolation etc.
+ */
+public interface ModelProcessor {
+
+ void process(List<ModelProperty> list);
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProperty.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProperty.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProperty.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelProperty.java Fri May 23 11:04:27 2008
@@ -0,0 +1,66 @@
+package org.apache.maven.project;
+
+import java.util.UUID;
+
+public class ModelProperty {
+
+ private String uri;
+
+ private String value;
+
+ private UUID id;
+
+ /**
+ *
+ * @param uri
+ * @param value Value associated with specified uri. Value may be null if uri does not map to primitive type.
+ */
+ public ModelProperty(String uri, String value) {
+ this(uri, value, UUID.randomUUID());
+ }
+
+ public ModelProperty(String uri, String value, String id) {
+ this(uri, value, UUID.fromString(id));
+ }
+
+ public String toString() {
+ return "Uri = " + uri + ", Value = " + value;
+ }
+
+ public ModelProperty(String uri, String value, UUID id) {
+ if(uri == null) {
+ throw new IllegalArgumentException("uri");
+ }
+
+ if(id == null) {
+ throw new IllegalArgumentException("id") ;
+ }
+
+ this.uri = uri;
+ this.value = value;
+ this.id = id;
+ }
+
+ public String getUri() {
+ return uri;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ ModelProperty that = (ModelProperty) o;
+
+ if (!id.equals(that.id)) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ return id.hashCode();
+ }
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelPropertySorter.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelPropertySorter.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelPropertySorter.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelPropertySorter.java Fri May 23 11:04:27 2008
@@ -0,0 +1,52 @@
+package org.apache.maven.project;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ArrayList;
+
+public class ModelPropertySorter {
+
+ /**
+ * 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.
+ *
+ * Define Sorting Rules: Sorting also removes duplicate values (same URI) unless the value contains a parent with
+ * a #collection (http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency)
+ *
+ * @param properties list of model properties
+ * @return
+ */
+ public static List<ModelProperty> sort(List<ModelProperty> properties) {
+ LinkedList<ModelProperty> processedProperties = new LinkedList<ModelProperty>();
+ List<String> position = new ArrayList<String>();
+
+ for (ModelProperty p : properties) {
+ //System.out.println("Process : " + p);
+ if (ModelUri.matches(ModelUri.PROJECT, p.getUri())) {
+ continue;
+ } else {
+ boolean isContained = position.contains(p.getUri());
+ if (p.getUri().endsWith("#collection") && isContained) {
+ // System.out.println("COND1: " + p);
+ continue;
+ }
+
+ String parentUri = getParentUri(p.getUri());
+ if (!isContained || parentUri.contains("#collection")) {
+ int pst = position.indexOf(parentUri);
+ processedProperties.add(pst + 1, p);
+ position.add(pst + 1, p.getUri());
+ // System.out.println("Added: " + p);
+ } else if (!parentUri.contains("#collection") && isContained) {
+ // System.out.println("ALready added: " + p);
+ continue;//already added
+ }
+ }
+ }
+ return processedProperties;
+ }
+
+ private static String getParentUri(String uri) {
+ return uri.substring(0, uri.lastIndexOf("/"));
+ }
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformer.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformer.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformer.java Fri May 23 11:04:27 2008
@@ -0,0 +1,11 @@
+package org.apache.maven.project;
+
+import java.util.List;
+
+public interface ModelTransformer {
+
+ DomainModel transformToDomainModel(List<ModelProperty> properties);
+
+ List<ModelProperty> transformToModelProperties(List<DomainModel> domainModels);
+
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformerContext.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformerContext.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformerContext.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelTransformerContext.java Fri May 23 11:04:27 2008
@@ -0,0 +1,82 @@
+package org.apache.maven.project;
+
+import java.util.Map;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+
+
+/**
+ * Primary context for this package. Provides methods for doing transforms.
+ */
+public class ModelTransformerContext {
+
+ private Map<String, ModelTransformer> modelTransformers;
+
+ private final static int basePosition = ModelUri.BASE.getUri().length();
+
+ public ModelTransformerContext() {
+ this.modelTransformers = new HashMap<String, ModelTransformer>();
+ }
+
+ /**
+ * Transforms specified hierarchical list of domain models (inheritence) to target domain model.
+ *
+ * @param domainModels
+ * @param fromModelTransformer
+ * @param toModelTransformer
+ * @return
+ */
+ public DomainModel transform(List<DomainModel> domainModels, ModelTransformer fromModelTransformer, ModelTransformer toModelTransformer) {
+ List<ModelProperty> modelProperties = fromModelTransformer.transformToModelProperties(domainModels);
+ ModelPropertySorter.sort(modelProperties);
+ return toModelTransformer.transformToDomainModel(modelProperties);
+ }
+
+ public DomainModel transformToDomainModel(String transformerName, List<ModelProperty> modelProperties) {
+ ModelTransformer modelTransformer = modelTransformers.get(transformerName);
+ return modelTransformer.transformToDomainModel(ModelPropertySorter.sort(modelProperties));
+ }
+
+ public ModelTransformer getModelTransformerFor(String transformerName) {
+ return modelTransformers.get(transformerName);
+ }
+
+ public void addModelTransformer(String name, ModelTransformer modelTransformer) {
+ modelTransformers.put(name, modelTransformer);
+ }
+
+ public String marshalModelPropertiesToXml(List<ModelProperty> modelProperties) {
+ StringBuffer sb = new StringBuffer();
+ String lastTag = null;
+ for(ModelProperty mp : modelProperties) {
+ String uri = mp.getUri();
+ List<String> tagNames = getTagNamesFromUri(uri);
+ // lastTag = tagNames.get(tagsNames.)
+ }
+ return sb.toString();
+ }
+
+ private static List<String> getTagNamesFromUri(String uri) {
+ List<String> methodNames = new ArrayList<String>();
+ for (String name : uri.substring(basePosition).replace("#collection", "").split("/")) {
+ methodNames.add(name);
+ }
+ return methodNames;
+ }
+
+ private static class SimpleMarshaller {
+
+ static String getStartTag(String value) {
+ StringBuffer sb = new StringBuffer();
+ sb.append("<" + value +">");
+ return sb.toString();
+ }
+
+ static String getEndTag(String value) {
+ StringBuffer sb = new StringBuffer();
+ sb.append("</" + value +">");
+ return sb.toString();
+ }
+ }
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelUri.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelUri.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelUri.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/ModelUri.java Fri May 23 11:04:27 2008
@@ -0,0 +1,57 @@
+package org.apache.maven.project;
+
+/**
+ * Defines all the unique ids for canonical data model.
+ */
+public enum ModelUri {
+ BASE("http://apache.org/model/"),
+ PROJECT("http://apache.org/model/project"),
+ PROJECT_MODELVERSION("http://apache.org/model/project/modelVersion"),
+ PROJECT_PREREQUSITIES_MAVEN("http://apache.org/model/project/prerequisites/maven"),
+ PROJECT_ISSUEMANAGEMENT_SYSTEM("http://apache.org/model/project/issueManagement/system"),
+ PROJECT_ISSUEMANAGEMENT_URL("http://apache.org/model/project/issueManagment/url"),
+ PROJECT_ARTIFACTID("http://apache.org/model/project/artifactId"),
+ PROJECT_BUILD("http://apache.org/model/project/build"),
+ PROJECT_BUILD_TESTSOURCEDIRECTORY("http://apache.org/model/project/build/testSourceDirectory"),
+ PROJECT_BUILD_OUTPUTDIRECTORY("http://apache.org/model/project/build/outputDirectory"),
+ PROJECT_BUILD_SCRIPTSOURCEDIRECTORY("http://apache.org/model/project/build/scriptSourceDirectory"),
+ PROJECT_BUILD_SOURCEDIRECTORY("http://apache.org/model/project/build/sourceDirectory"),
+ PROJECT_DESCRIPTION("http://apache.org/model/project/description"),
+
+ PROJECT_DEPENDENCIES("http://apache.org/model/project/dependencies#collection"),
+ PROJECT_DEPENDENCIES_DEPENDENCY("http://apache.org/model/project/dependencies#collection/dependency"),
+ PROJECT_DEPENDENCIES_DEPENDENCY_VERSION("http://apache.org/model/project/dependencies#collection/dependency/version"),
+ PROJECT_DEPENDENCIES_DEPENDENCY_ARTIFACTID("http://apache.org/model/project/dependencies#collection/dependency/artifactId"),
+
+ PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES("http://apache.org/model/project/dependencyManagement/dependencies#collection"),
+ PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY("http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency"),
+ PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION("http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/version"),
+ PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID("http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/artifactId"),
+ PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID("http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/groupId"),
+ PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_SCOPE("http://apache.org/model/project/dependencyManagement/dependencies#collection/dependency/scope"),
+
+ PROJECT_GROUPID("http://apache.org/model/project/groupId"),
+ PROJECT_ISSUEMANAGEMENT("http://apache.org/model/project/issueManagement"),
+ PROJECT_NAME("http://apache.org/model/project/name"),
+ PROJECT_MODULES("http://apache.org/model/project/modules#collection"),
+ PROJECT_PACKAGING("http://apache.org/model/packaging"),
+ PROJECT_PROFILES("http://apache.org/model/project/profiles#collection"),
+ PROJECT_PROPERTIES("http://apache.org/model/project/properties#collection"),
+ PROJECT_PREREQUISITES("http://apache.org/model/project/prerequisites"),
+ PROJECT_URL("http://apache.org/model/project/url"),
+ PROJECT_VERSION("http://apache.org/model/project/version");
+
+ private String uri;
+
+ ModelUri(String uri) {
+ this.uri = uri;
+ }
+
+ public String getUri() {
+ return uri;
+ }
+
+ public static boolean matches(ModelUri domainUri, String uri) {
+ return uri.equals(domainUri.getUri());
+ }
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/DependencyManagementProcessor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/DependencyManagementProcessor.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/DependencyManagementProcessor.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/DependencyManagementProcessor.java Fri May 23 11:04:27 2008
@@ -0,0 +1,117 @@
+package org.apache.maven.project.impl;
+
+import org.apache.maven.project.ModelProperty;
+import org.apache.maven.project.ModelUri;
+import org.apache.maven.project.ModelProcessor;
+
+import java.util.*;
+
+public class DependencyManagementProcessor implements ModelProcessor {
+
+ public void process(List<ModelProperty> list) {
+/*
+ Stack<Dependency> p = new Stack<Dependency>();
+ int j = 0;
+ for (Iterator<ModelProperty> i = list.iterator(); i.hasNext();) {
+ ModelProperty mp = i.next(); j++;
+ if (ModelUri.matches(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES, mp.getUri())) {
+
+ while (i.hasNext()) {
+ if (mp.getUri().startsWith(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY.getUri())) {
+
+ p.push(mp);
+ } else {
+ break;
+ }
+ }
+ }
+ }
+
+ Collections.reverse();
+ List<Dependency> n = new ArrayList<Dependency>();
+
+ // List<Map<String, List<ModelProperty>>> l = new ArrayList<Map<String, List<ModelProperty>>>();
+ for (ModelProperty mp : p) {
+ String artifactId = "";
+ String groupId = "";
+ if (ModelUri.matches(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID, mp.getUri())) {
+ artifactId = mp.getValue();
+ } else
+ if (ModelUri.matches(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID, mp.getUri())) {
+ groupId = mp.getValue();
+ } else if (ModelUri.matches(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY, mp.getUri())) {
+ String id = groupId + ":" + artifactId;
+ Map<String, List<ModelProperty>> m = new HashMap<String, List<ModelProperty>>();
+ }
+ }
+ System.out.println("-------------");
+
+ System.out.println("-------------");
+ */
+
+ }
+
+ private class Dependency {
+ private String groupId;
+
+ private String artifactId;
+
+ private String version;
+
+ private int position;
+
+ public String getGroupId() {
+ return groupId;
+ }
+
+ public void setGroupId(String groupId) {
+ this.groupId = groupId;
+ }
+
+ public String getArtifactId() {
+ return artifactId;
+ }
+
+ public void setArtifactId(String artifactId) {
+ this.artifactId = artifactId;
+ }
+
+ public String getVersion() {
+ return version;
+ }
+
+ public void setVersion(String version) {
+ this.version = version;
+ }
+
+ public int getPosition() {
+ return position;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ Dependency that = (Dependency) o;
+
+ if (!artifactId.equals(that.artifactId)) return false;
+ if (!groupId.equals(that.groupId)) return false;
+ if (!version.equals(that.version)) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = groupId.hashCode();
+ result = 31 * result + artifactId.hashCode();
+ result = 31 * result + version.hashCode();
+ result = 31 * result + position;
+ return result;
+ }
+
+ public void setPosition(int position) {
+ this.position = position;
+ }
+ }
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomClassicTransformer.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomClassicTransformer.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomClassicTransformer.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomClassicTransformer.java Fri May 23 11:04:27 2008
@@ -0,0 +1,74 @@
+package org.apache.maven.project.impl;
+
+import org.apache.maven.project.*;
+import org.apache.maven.project.ModelProperty;
+import org.apache.maven.model.Model;
+import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
+
+import java.util.*;
+
+public class PomClassicTransformer implements ModelTransformer {
+
+ private final static int basePosition = ModelUri.BASE.getUri().length();
+
+ public DomainModel transformToDomainModel(List<ModelProperty> properties) {
+ Model model = new Model();
+ Class m = Model.class;
+ // m.getMethod()
+ for (ModelProperty mp : properties) { //Use Reflection
+
+ for (String s : getMethodNamesFromUri(mp.getUri())) {
+ if (mp.getValue() == null) {
+ try {
+ Class c = Class.forName("org.apache.maven.model." + s);
+ System.out.println("Class = " + c.getName());
+
+ } catch (ClassNotFoundException e) {
+ // e.printStackTrace();
+ }
+
+ } else {
+
+ }
+
+ }
+
+ /*
+ if(ModelUri.matches(ModelUri.PROJECT_ARTIFACTID, mp.getUri())) {
+ model.setArtifactId(mp.getValue());
+ }
+ */
+ }
+
+ return new PomDomainModel(model);
+ }
+
+ public List<ModelProperty> transformToModelProperties(List<DomainModel> domainModels) {
+ /*
+ if(mp.getValue() != null) {
+
+ }
+ System.out.println(getDotNotationFromUri(mp.getUri()));
+ try {
+ model = (Model) ReflectionValueExtractor.evaluate(getDotNotationFromUri(mp.getUri()), model, false);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ */
+ return null;
+ }
+
+ private static String getDotNotationFromUri(String uri) {
+ return uri.substring(basePosition).replace("#collection", "").replace("/", ".");
+ }
+
+ private static List<String> getMethodNamesFromUri(String uri) {
+ List<String> methodNames = new ArrayList<String>();
+ for (String name : uri.substring(basePosition).replace("#collection", "").split("/")) {
+ methodNames.add(name.substring(0, 1).toUpperCase() + name.substring(1));
+ }
+ return methodNames;
+ }
+
+}
+
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomDomainModel.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomDomainModel.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomDomainModel.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/PomDomainModel.java Fri May 23 11:04:27 2008
@@ -0,0 +1,16 @@
+package org.apache.maven.project.impl;
+
+import org.apache.maven.project.DomainModel;
+import org.apache.maven.model.Model;
+
+public class PomDomainModel implements DomainModel {
+ private Model model;
+
+ public PomDomainModel(Model model) {
+ this.model = model;
+ }
+
+ public Model getModel() {
+ return model;
+ }
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/ProjectProcessor.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/ProjectProcessor.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/ProjectProcessor.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/java/org/apache/maven/project/impl/ProjectProcessor.java Fri May 23 11:04:27 2008
@@ -0,0 +1,16 @@
+package org.apache.maven.project.impl;
+
+import org.apache.maven.project.ModelProcessor;
+import org.apache.maven.project.ModelProperty;
+import org.apache.maven.project.ModelPropertySorter;
+
+import java.util.List;
+
+public class ProjectProcessor implements ModelProcessor {
+
+ public void process(List<ModelProperty> list) {
+ List<ModelProperty> properties = ModelPropertySorter.sort(list);
+ DependencyManagementProcessor processor = new DependencyManagementProcessor();
+ processor.process(properties);
+ }
+}
Added: maven/sandbox/trunk/other/maven-project/src/main/resources/pom.xml
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/main/resources/pom.xml?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/main/resources/pom.xml (added)
+++ maven/sandbox/trunk/other/maven-project/src/main/resources/pom.xml Fri May 23 11:04:27 2008
@@ -0,0 +1,585 @@
+<project>
+ <parent>
+ <artifactId/>
+ <groupId/>
+ <version/>
+ <relativePath/>
+ </parent>
+ <modelVersion/>
+ <groupId/>
+ <artifactId/>
+ <packaging/>
+ <name/>
+ <version/>
+ <description/>
+ <url/>
+ <prerequisites>
+ <maven/>
+ </prerequisites>
+ <issueManagement>
+ <system/>
+ <url/>
+ </issueManagement>
+ <ciManagement>
+ <system/>
+ <url/>
+ <notifiers>
+ <notifier>
+ <type/>
+ <sendOnError/>
+ <sendOnFailure/>
+ <sendOnSuccess/>
+ <sendOnWarning/>
+ <address/>
+ <configuration/>
+ </notifier>
+ </notifiers>
+ </ciManagement>
+ <inceptionYear/>
+ <mailingLists>
+ <mailingList>
+ <name/>
+ <subscribe/>
+ <unsubscribe/>
+ <post/>
+ <archive/>
+ <otherArchives/>
+ </mailingList>
+ </mailingLists>
+ <developers>
+ <developer>
+ <id/>
+ <name/>
+ <email/>
+ <url/>
+ <organization/>
+ <organizationUrl/>
+ <roles/>
+ <timezone/>
+ <properties/>
+ </developer>
+ </developers>
+ <contributors>
+ <contributor>
+ <name/>
+ <email/>
+ <url/>
+ <organization/>
+ <organizationUrl/>
+ <roles/>
+ <timezone/>
+ <properties/>
+ </contributor>
+ </contributors>
+ <licenses>
+ <license>
+ <name/>
+ <url/>
+ <distribution/>
+ <comments/>
+ </license>
+ </licenses>
+ <scm>
+ <connection/>
+ <developerConnection/>
+ <tag/>
+ <url/>
+ </scm>
+ <organization>
+ <name/>
+ <url/>
+ </organization>
+ <build>
+ <sourceDirectory/>
+ <scriptSourceDirectory/>
+ <testSourceDirectory/>
+ <outputDirectory/>
+ <testOutputDirectory/>
+ <extensions>
+ <extension>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ </extension>
+ </extensions>
+ <defaultGoal/>
+ <resources>
+ <resource>
+ <targetPath/>
+ <filtering/>
+ <directory/>
+ <includes/>
+ <excludes/>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <targetPath/>
+ <filtering/>
+ <directory/>
+ <includes/>
+ <excludes/>
+ </testResource>
+ </testResources>
+ <directory/>
+ <finalName/>
+ <filters/>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <extensions/>
+ <executions>
+ <execution>
+ <id/>
+ <phase/>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <extensions/>
+ <executions>
+ <execution>
+ <id/>
+ <phase/>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id/>
+ <activation>
+ <activeByDefault/>
+ <jdk/>
+ <os>
+ <name/>
+ <family/>
+ <arch/>
+ <version/>
+ </os>
+ <property>
+ <name/>
+ <value/>
+ </property>
+ <file>
+ <missing/>
+ <exists/>
+ </file>
+ </activation>
+ <build>
+ <defaultGoal/>
+ <resources>
+ <resource>
+ <targetPath/>
+ <filtering/>
+ <directory/>
+ <includes/>
+ <excludes/>
+ </resource>
+ </resources>
+ <testResources>
+ <testResource>
+ <targetPath/>
+ <filtering/>
+ <directory/>
+ <includes/>
+ <excludes/>
+ </testResource>
+ </testResources>
+ <directory/>
+ <finalName/>
+ <filters/>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <extensions/>
+ <executions>
+ <execution>
+ <id/>
+ <phase/>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <extensions/>
+ <executions>
+ <execution>
+ <id/>
+ <phase/>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ <goals/>
+ <inherited/>
+ <configuration/>
+ </plugin>
+ </plugins>
+ </build>
+ <modules/>
+ <repositories>
+ <repository>
+ <releases>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </releases>
+ <snapshots>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </snapshots>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <releases>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </releases>
+ <snapshots>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </snapshots>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </pluginRepository>
+ </pluginRepositories>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ <reports/>
+ <reporting>
+ <excludeDefaults/>
+ <outputDirectory/>
+ <plugins>
+ <plugin>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <inherited/>
+ <configuration/>
+ <reportSets>
+ <reportSet>
+ <id/>
+ <configuration/>
+ <inherited/>
+ <reports/>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <distributionManagement>
+ <repository>
+ <uniqueVersion/>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </repository>
+ <snapshotRepository>
+ <uniqueVersion/>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </snapshotRepository>
+ <site>
+ <id/>
+ <name/>
+ <url/>
+ </site>
+ <downloadUrl/>
+ <relocation>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <message/>
+ </relocation>
+ <status/>
+ </distributionManagement>
+ <properties/>
+ </profile>
+ </profiles>
+ <modules/>
+ <repositories>
+ <repository>
+ <releases>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </releases>
+ <snapshots>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </snapshots>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <releases>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </releases>
+ <snapshots>
+ <enabled/>
+ <updatePolicy/>
+ <checksumPolicy/>
+ </snapshots>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </pluginRepository>
+ </pluginRepositories>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ <reports/>
+ <reporting>
+ <excludeDefaults/>
+ <outputDirectory/>
+ <plugins>
+ <plugin>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <inherited/>
+ <configuration/>
+ <reportSets>
+ <reportSet>
+ <id/>
+ <configuration/>
+ <inherited/>
+ <reports/>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <type/>
+ <classifier/>
+ <scope/>
+ <systemPath/>
+ <exclusions>
+ <exclusion>
+ <artifactId/>
+ <groupId/>
+ </exclusion>
+ </exclusions>
+ <optional/>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <distributionManagement>
+ <repository>
+ <uniqueVersion/>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </repository>
+ <snapshotRepository>
+ <uniqueVersion/>
+ <id/>
+ <name/>
+ <url/>
+ <layout/>
+ </snapshotRepository>
+ <site>
+ <id/>
+ <name/>
+ <url/>
+ </site>
+ <downloadUrl/>
+ <relocation>
+ <groupId/>
+ <artifactId/>
+ <version/>
+ <message/>
+ </relocation>
+ <status/>
+ </distributionManagement>
+ <properties/>
+</project>
\ No newline at end of file
Added: maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/maven/project/PomBuilder.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/maven/project/PomBuilder.java?rev=659611&view=auto
==============================================================================
--- maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/maven/project/PomBuilder.java (added)
+++ maven/sandbox/trunk/other/maven-project/src/test/java/org/apache/maven/project/PomBuilder.java Fri May 23 11:04:27 2008
@@ -0,0 +1,159 @@
+package org.apache.maven.project;
+
+import junit.framework.TestCase;
+import org.apache.maven.project.impl.PomClassicTransformer;
+import org.apache.maven.project.impl.PomDomainModel;
+import org.apache.maven.project.interpolation.ModelInterpolationException;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.io.StringWriter;
+import java.io.IOException;
+
+
+public class PomBuilder extends TestCase {
+
+ public void testA() {
+ PomClassicTransformer b = new PomClassicTransformer();
+
+ LinkedList<ModelProperty> mp = new LinkedList<ModelProperty>();
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_ARTIFACTID.getUri(), "org.apache.maven"));
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_ARTIFACTID.getUri(), "org.apache.maven.new"));
+
+ List<ModelProperty> p = ModelPropertySorter.sort(mp);
+ for (ModelProperty prop : p) {
+ System.out.println(prop);
+ }
+ }
+
+ public void testB() {
+ PomClassicTransformer b = new PomClassicTransformer();
+
+ LinkedList<ModelProperty> mp = new LinkedList<ModelProperty>();
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "org.apache.maven.dep"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_ARTIFACTID.getUri(), "org.apache.maven"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "org.apache.maven.dep1"));
+
+ List<ModelProperty> p = ModelPropertySorter.sort(mp);
+ for (ModelProperty prop : p) {
+ System.out.println(prop);
+ }
+ }
+
+ public void testC() {
+ PomClassicTransformer b = new PomClassicTransformer();
+
+ LinkedList<ModelProperty> mp = new LinkedList<ModelProperty>();
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_ARTIFACTID.getUri(), "org.apache.maven"));
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_ARTIFACTID.getUri(), "org.apache.maven.new"));
+
+ Model model = ((PomDomainModel) b.transformToDomainModel(mp)).getModel();
+ assertEquals("org.apache.maven", model.getArtifactId());
+ }
+
+ public void testD() {
+ PomClassicTransformer b = new PomClassicTransformer();
+
+ LinkedList<ModelProperty> mp = new LinkedList<ModelProperty>();
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "org.apache.maven.dep"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.apache.maven.dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "artifact-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.1"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.bogus"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "bogus-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.0"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.apache.maven.dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "artifact-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.1"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_SCOPE.getUri(), "compile"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.apache.maven.dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "artifact-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.4"));
+
+ List<ModelProperty> p = ModelPropertySorter.sort(mp);
+ for (ModelProperty prop : p) {
+ System.out.println(prop);
+ }
+ }
+
+ public void testE() {
+ PomClassicTransformer b = new PomClassicTransformer();
+
+ LinkedList<ModelProperty> mp = new LinkedList<ModelProperty>();
+ mp.add(new ModelProperty(ModelUri.PROJECT.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "org.apache.maven.dep"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.apache.maven.dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "artifact-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.1"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.bogus"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "bogus-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.0"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.apache.maven.dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "artifact-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.1"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_SCOPE.getUri(), "compile"));
+
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES.getUri(), null));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_GROUPID.getUri(), "org.apache.maven.dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_ARTIFACTID.getUri(), "artifact-dep"));
+ mp.add(new ModelProperty(ModelUri.PROJECT_DEPENDENCYMANAGEMENT_DEPENDENCIES_DEPENDENCY_VERSION.getUri(), "1.4"));
+
+ List<ModelProperty> p = ModelPropertySorter.sort(mp);
+ PomClassicTransformer t = new PomClassicTransformer();
+ PomDomainModel dm = (PomDomainModel) t.transformToDomainModel(p);
+ Model model = dm.getModel();
+ if(model == null) {
+ System.out.println("Model null");
+ }
+ StringWriter sWriter = new StringWriter();
+
+ MavenXpp3Writer writer = new MavenXpp3Writer();
+ try
+ {
+ writer.write( sWriter, model );
+ }
+ catch ( IOException e )
+ {
+ e.printStackTrace();
+ }
+ System.out.println(sWriter);
+
+ }
+}