diff --git a/.cvsignore b/.cvsignore
index dd3848e6f9..4e333b5b47 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -7,3 +7,4 @@ maven-component.i*
.settings
mboot.jar
dummy
+build.ajproperties
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index ddb5aa2b40..f42c6f2b93 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -31,6 +31,11 @@
maven-model
2.0-SNAPSHOT
+
+ maven
+ maven-user-model
+ 2.0-SNAPSHOT
+
maven
maven-artifact
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 55d1554cef..9489da0bb9 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -267,6 +267,7 @@ public class DefaultMaven
{
return new MavenSession( container,
pluginManager,
+ request.getUserModel(),
request.getLocalRepository(),
request.getEventDispatcher(),
request.getLog(),
diff --git a/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
index 76a3f4bcd9..300baee7a0 100644
--- a/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
+++ b/maven-core/src/main/java/org/apache/maven/cli/MavenCli.java
@@ -33,11 +33,13 @@ import org.apache.maven.execution.MavenExecutionResponse;
import org.apache.maven.execution.MavenInitializingExecutionRequest;
import org.apache.maven.execution.MavenProjectExecutionRequest;
import org.apache.maven.execution.MavenReactorExecutionRequest;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.DefaultEventDispatcher;
import org.apache.maven.monitor.event.DefaultEventMonitor;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.monitor.logging.DefaultLog;
import org.apache.maven.plugin.Plugin;
+import org.apache.maven.util.UserModelUtils;
import org.codehaus.classworlds.ClassWorld;
import org.codehaus.plexus.embed.ArtifactEnabledEmbedder;
import org.codehaus.plexus.logging.Logger;
@@ -117,7 +119,9 @@ public class MavenCli
File projectFile = new File( userDir, POMv4 );
EventDispatcher eventDispatcher = new DefaultEventDispatcher();
-
+
+ UserModel userModel = UserModelUtils.getUserModel();
+
if ( projectFile.exists() )
{
if ( commandLine.hasOption( CLIManager.REACTOR ) )
@@ -127,6 +131,7 @@ public class MavenCli
String excludes = System.getProperty( "maven.reactor.excludes", POMv4 );
request = new MavenReactorExecutionRequest( localRepository,
+ userModel,
eventDispatcher,
mavenProperties,
commandLine.getArgList(),
@@ -137,6 +142,7 @@ public class MavenCli
else
{
request = new MavenProjectExecutionRequest( localRepository,
+ userModel,
eventDispatcher,
mavenProperties,
commandLine.getArgList(),
@@ -145,7 +151,7 @@ public class MavenCli
}
else
{
- request = new MavenInitializingExecutionRequest( localRepository, eventDispatcher, mavenProperties, commandLine.getArgList() );
+ request = new MavenInitializingExecutionRequest( localRepository, userModel, eventDispatcher, mavenProperties, commandLine.getArgList() );
}
// ----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/execution/AbstractMavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/AbstractMavenExecutionRequest.java
index eab0430925..6e6a5153a7 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/AbstractMavenExecutionRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/AbstractMavenExecutionRequest.java
@@ -18,7 +18,7 @@ package org.apache.maven.execution;
*/
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.monitor.event.DefaultEventDispatcher;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.monitor.logging.Log;
@@ -48,9 +48,13 @@ implements MavenExecutionRequest
private EventDispatcher eventDispatcher;
- public AbstractMavenExecutionRequest( ArtifactRepository localRepository, EventDispatcher eventDispatcher, Properties parameters, List goals )
+ private final UserModel userModel;
+
+ public AbstractMavenExecutionRequest( ArtifactRepository localRepository, UserModel userModel, EventDispatcher eventDispatcher, Properties parameters, List goals )
{
this.localRepository = localRepository;
+
+ this.userModel = userModel;
this.parameters = parameters;
@@ -58,6 +62,11 @@ implements MavenExecutionRequest
this.eventDispatcher = eventDispatcher;
}
+
+ public UserModel getUserModel()
+ {
+ return userModel;
+ }
public ArtifactRepository getLocalRepository()
{
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
index 3516ada668..14eb734090 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenExecutionRequest.java
@@ -18,6 +18,7 @@ package org.apache.maven.execution;
*/
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.monitor.event.EventMonitor;
import org.apache.maven.monitor.logging.Log;
@@ -52,4 +53,6 @@ public interface MavenExecutionRequest
void addEventMonitor( EventMonitor monitor );
EventDispatcher getEventDispatcher();
+
+ UserModel getUserModel();
}
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenInitializingExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/MavenInitializingExecutionRequest.java
index 557ea9db19..e3ee1ad154 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenInitializingExecutionRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenInitializingExecutionRequest.java
@@ -18,6 +18,7 @@ package org.apache.maven.execution;
*/
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.EventDispatcher;
import java.util.List;
@@ -30,9 +31,9 @@ import java.util.Properties;
public class MavenInitializingExecutionRequest
extends AbstractMavenExecutionRequest
{
- public MavenInitializingExecutionRequest( ArtifactRepository localRepository, EventDispatcher eventDispatcher, Properties properties, List goals )
+ public MavenInitializingExecutionRequest( ArtifactRepository localRepository, UserModel userModel, EventDispatcher eventDispatcher, Properties properties, List goals )
{
- super( localRepository, eventDispatcher, properties, goals );
+ super( localRepository, userModel, eventDispatcher, properties, goals );
type = "initializing";
}
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenProjectExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/MavenProjectExecutionRequest.java
index 97f442e380..e1c443a15c 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenProjectExecutionRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenProjectExecutionRequest.java
@@ -18,6 +18,7 @@ package org.apache.maven.execution;
*/
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.EventDispatcher;
import java.io.File;
@@ -35,12 +36,13 @@ extends AbstractMavenExecutionRequest
private File pom;
public MavenProjectExecutionRequest( ArtifactRepository localRepository,
+ UserModel userModel,
EventDispatcher eventDispatcher,
Properties properties,
List goals,
File pom )
{
- super( localRepository, eventDispatcher, properties, goals );
+ super( localRepository, userModel, eventDispatcher, properties, goals );
this.pom = pom;
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenReactorExecutionRequest.java b/maven-core/src/main/java/org/apache/maven/execution/MavenReactorExecutionRequest.java
index e2a57bcd47..df9db0117d 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenReactorExecutionRequest.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenReactorExecutionRequest.java
@@ -18,6 +18,7 @@ package org.apache.maven.execution;
*/
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.FileUtils;
@@ -40,11 +41,11 @@ extends AbstractMavenExecutionRequest
private File baseDirectory;
- public MavenReactorExecutionRequest( ArtifactRepository localRepository, EventDispatcher eventDispatcher,
+ public MavenReactorExecutionRequest( ArtifactRepository localRepository, UserModel userModel, EventDispatcher eventDispatcher,
Properties properties, List goals, String includes,
String excludes, File baseDirectory )
{
- super( localRepository, eventDispatcher, properties, goals );
+ super( localRepository, userModel, eventDispatcher, properties, goals );
this.includes = includes;
@@ -78,6 +79,6 @@ extends AbstractMavenExecutionRequest
public MavenProjectExecutionRequest createProjectExecutionRequest( MavenProject project )
{
- return new MavenProjectExecutionRequest( localRepository, getEventDispatcher(), parameters, goals, project.getFile() );
+ return new MavenProjectExecutionRequest( localRepository, getUserModel(), getEventDispatcher(), parameters, goals, project.getFile() );
}
}
diff --git a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
index f4e0a004ec..d646b7c865 100644
--- a/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
+++ b/maven-core/src/main/java/org/apache/maven/execution/MavenSession.java
@@ -18,6 +18,7 @@ package org.apache.maven.execution;
*/
import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.EventDispatcher;
import org.apache.maven.monitor.logging.Log;
import org.apache.maven.plugin.PluginManager;
@@ -62,12 +63,16 @@ public class MavenSession
private Log log;
- public MavenSession( PlexusContainer container, PluginManager pluginManager, ArtifactRepository localRepository,
+ private final UserModel userModel;
+
+ public MavenSession( PlexusContainer container, PluginManager pluginManager, UserModel userModel, ArtifactRepository localRepository,
EventDispatcher eventDispatcher, Log log, List goals )
{
this.container = container;
this.pluginManager = pluginManager;
+
+ this.userModel = userModel;
this.localRepository = localRepository;
@@ -79,7 +84,7 @@ public class MavenSession
this.goals = goals;
}
-
+
public PlexusContainer getContainer()
{
return container;
@@ -143,6 +148,11 @@ public class MavenSession
{
return log;
}
+
+ public UserModel getUserModel()
+ {
+ return userModel;
+ }
public void addImpliedExecution( String goal, String implied ) throws CycleDetectedException
{
diff --git a/maven-core/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java b/maven-core/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
index e8d3a4c8d4..3087afcb0c 100644
--- a/maven-core/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
+++ b/maven-core/src/main/java/org/apache/maven/project/interpolation/RegexBasedModelInterpolator.java
@@ -38,7 +38,7 @@ public class RegexBasedModelInterpolator
implements ModelInterpolator
{
- private static final Pattern EXPRESSION_PATTERN = Pattern.compile( "\\$\\{([^}]+)\\}" );
+ private static final Pattern EXPRESSION_PATTERN = Pattern.compile( "\\$\\{(pom|project\\.)?([^}]+)\\}" );
/**
* Added: Feb 3, 2005 by jdcasey
@@ -87,7 +87,7 @@ public class RegexBasedModelInterpolator
while ( matcher.find() )
{
String wholeExpr = matcher.group( 0 );
- String realExpr = matcher.group( 1 );
+ String realExpr = matcher.group( 2 );
String value = null;
try
diff --git a/maven-core/src/main/java/org/apache/maven/util/UserModelUtils.java b/maven-core/src/main/java/org/apache/maven/util/UserModelUtils.java
new file mode 100644
index 0000000000..c1facf021e
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/util/UserModelUtils.java
@@ -0,0 +1,193 @@
+package org.apache.maven.util;
+
+import org.apache.maven.model.user.JdkProfile;
+import org.apache.maven.model.user.MavenProfile;
+import org.apache.maven.model.user.ServerProfile;
+import org.apache.maven.model.user.UserModel;
+import org.apache.maven.model.user.io.xpp3.MavenUserModelXpp3Reader;
+import org.apache.maven.model.user.io.xpp3.MavenUserModelXpp3Writer;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author jdcasey
+ */
+public final class UserModelUtils
+{
+
+ public static final String JDK_PROFILE_ENVAR = "maven.jdkVersion";
+
+ public static final String MAVEN_PROFILE_ENVAR = "maven.mavenProfileId";
+
+ public static final String SERVER_PROFILE_ENVAR = "maven.serverProfileId";
+
+ private static final String USER_MODEL_LOCATION = "/.m2/user.xml";
+
+ private UserModelUtils()
+ {
+ }
+
+ public static ServerProfile getActiveServer( UserModel userModel )
+ {
+ List servers = userModel.getServerProfiles();
+
+ String serverId = System.getProperty( SERVER_PROFILE_ENVAR );
+ if ( serverId == null || serverId.trim().length() < 1 )
+ {
+ serverId = userModel.getDefaultProfiles().getServerProfileId();
+ }
+
+ ServerProfile active = null;
+ for ( Iterator it = servers.iterator(); it.hasNext(); )
+ {
+ ServerProfile server = (ServerProfile) it.next();
+ if ( serverId.equals( server.getId() ) )
+ {
+ active = server;
+ break;
+ }
+ }
+
+ return active;
+ }
+
+ public static JdkProfile getActiveJdk( UserModel userModel )
+ {
+ List jdks = userModel.getJdkProfiles();
+
+ String jdkId = System.getProperty( JDK_PROFILE_ENVAR );
+ if ( jdkId == null || jdkId.trim().length() < 1 )
+ {
+ jdkId = userModel.getDefaultProfiles().getJdkVersion();
+ }
+
+ JdkProfile active = null;
+ for ( Iterator it = jdks.iterator(); it.hasNext(); )
+ {
+ JdkProfile jdk = (JdkProfile) it.next();
+ if ( jdkId.equals( jdk.getVersion() ) )
+ {
+ active = jdk;
+ break;
+ }
+ }
+
+ return active;
+ }
+
+ public static MavenProfile getActiveRuntimeProfile( UserModel userModel )
+ {
+ List mavenProfiles = userModel.getMavenProfiles();
+
+ String mavenProfileId = System.getProperty( MAVEN_PROFILE_ENVAR );
+ if ( mavenProfileId == null || mavenProfileId.trim().length() < 1 )
+ {
+ mavenProfileId = userModel.getDefaultProfiles().getMavenProfileId();
+ }
+
+ MavenProfile active = null;
+ for ( Iterator it = mavenProfiles.iterator(); it.hasNext(); )
+ {
+ MavenProfile mavenProfile = (MavenProfile) it.next();
+ if ( mavenProfileId.equals( mavenProfile.getId() ) )
+ {
+ active = mavenProfile;
+ break;
+ }
+ }
+
+ return active;
+ }
+
+ // TODO: don't throw Exception.
+ public static UserModel getUserModel() throws Exception
+ {
+ UserModel model = null;
+
+ File modelFile = getUserModelFile();
+ if ( modelFile.exists() && modelFile.isFile() )
+ {
+ MavenUserModelXpp3Reader modelReader = new MavenUserModelXpp3Reader();
+ FileReader reader = null;
+ try
+ {
+ reader = new FileReader( modelFile );
+
+ model = modelReader.read( reader );
+ }
+ finally
+ {
+ if ( reader != null )
+ {
+ try
+ {
+ reader.close();
+ }
+ catch ( IOException e )
+ {
+ }
+ }
+ }
+ }
+
+ return model;
+ }
+
+ // TODO: don't throw Exception.
+ public static void setUserModel( UserModel userModel ) throws Exception
+ {
+ File modelFile = getUserModelFile();
+
+ File modelDir = modelFile.getParentFile();
+ if ( !modelDir.exists() )
+ {
+ modelDir.mkdirs();
+ }
+
+ MavenUserModelXpp3Writer modelWriter = new MavenUserModelXpp3Writer();
+
+ FileWriter writer = null;
+ try
+ {
+ writer = new FileWriter( modelFile );
+
+ modelWriter.write( writer, userModel );
+
+ writer.flush();
+ }
+ finally
+ {
+ if ( writer != null )
+ {
+ try
+ {
+ writer.close();
+ }
+ catch ( IOException e )
+ {
+ }
+ }
+ }
+
+ }
+
+ private static File getUserModelFile()
+ {
+ String userDir = System.getProperty( "user.home" );
+
+ String modelPath = userDir + USER_MODEL_LOCATION;
+
+ modelPath = modelPath.replaceAll( "\\\\", "/" );
+ modelPath = modelPath.replaceAll( "//", "/" );
+
+ File userModelFile = new File( modelPath );
+
+ return userModelFile;
+ }
+
+}
\ No newline at end of file
diff --git a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
index b060a9219f..b68da12089 100644
--- a/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
+++ b/maven-core/src/test/java/org/apache/maven/plugin/PluginParameterExpressionEvaluatorTest.java
@@ -5,6 +5,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Build;
import org.apache.maven.model.Model;
+import org.apache.maven.model.user.UserModel;
import org.apache.maven.monitor.event.DefaultEventDispatcher;
import org.apache.maven.monitor.logging.DefaultLog;
import org.apache.maven.project.MavenProject;
@@ -41,7 +42,7 @@ public class PluginParameterExpressionEvaluatorTest
PluginManager mgr = (PluginManager)lookup(PluginManager.ROLE);
PlexusContainer container = getContainer();
- MavenSession session = new MavenSession(container, mgr, repo, new DefaultEventDispatcher(), new DefaultLog(container.getLogger()), Collections.EMPTY_LIST);
+ MavenSession session = new MavenSession(container, mgr, new UserModel(), repo, new DefaultEventDispatcher(), new DefaultLog(container.getLogger()), Collections.EMPTY_LIST);
Build build = new Build();
build.setDirectory(expected.substring(0, expected.length() - "/classes".length()));
@@ -73,7 +74,7 @@ public class PluginParameterExpressionEvaluatorTest
PluginManager mgr = (PluginManager)lookup(PluginManager.ROLE);
PlexusContainer container = getContainer();
- MavenSession session = new MavenSession(container, mgr, repo, new DefaultEventDispatcher(), new DefaultLog(container.getLogger()), Collections.EMPTY_LIST);
+ MavenSession session = new MavenSession(container, mgr, new UserModel(), repo, new DefaultEventDispatcher(), new DefaultLog(container.getLogger()), Collections.EMPTY_LIST);
Object value = PluginParameterExpressionEvaluator.evaluate( role, session );
assertNotNull( value );
@@ -86,7 +87,7 @@ public class PluginParameterExpressionEvaluatorTest
PluginManager mgr = (PluginManager)lookup(PluginManager.ROLE);
PlexusContainer container = getContainer();
- MavenSession session = new MavenSession(container, mgr, repo, new DefaultEventDispatcher(), new DefaultLog(container.getLogger()), Collections.EMPTY_LIST);
+ MavenSession session = new MavenSession(container, mgr, new UserModel(), repo, new DefaultEventDispatcher(), new DefaultLog(container.getLogger()), Collections.EMPTY_LIST);
Object value = PluginParameterExpressionEvaluator.evaluate( "#localRepository", session );
diff --git a/maven-mboot2/src/main/java/MBoot.java b/maven-mboot2/src/main/java/MBoot.java
index 1906745426..f0e53b8bda 100644
--- a/maven-mboot2/src/main/java/MBoot.java
+++ b/maven-mboot2/src/main/java/MBoot.java
@@ -79,6 +79,7 @@ public class MBoot
String[] builds = new String[] {
"maven-model",
+ "maven-user-model",
"maven-monitor",
"maven-plugin",
"maven-artifact",
@@ -477,9 +478,21 @@ public class MBoot
// Generating sources
// ----------------------------------------------------------------------
- File model = new File( basedir, "maven.mdo" );
+ File base = new File(basedir);
+
+ String[] basedirFiles = base.list();
+
+ File model = null;
+ for ( int i = 0; i < basedirFiles.length; i++ )
+ {
+ if(basedirFiles[i].endsWith(".mdo"))
+ {
+ model = new File(base, basedirFiles[i]);
+ break;
+ }
+ }
- if ( model.exists() )
+ if ( model != null && model.exists() )
{
System.out.println( "Model exists!" );
diff --git a/maven-user-model/maven-user.mdo b/maven-user-model/maven-user.mdo
new file mode 100644
index 0000000000..8b0c1d2d2d
--- /dev/null
+++ b/maven-user-model/maven-user.mdo
@@ -0,0 +1,165 @@
+
+ mavenUserModel
+ MavenUserModel
+
+
+
+ package
+ org.apache.maven.model.user
+
+
+
+
+ UserModel
+ 4.0.0
+
+
+ jdkProfiles
+ 4.0.0
+
+
+ JdkProfile
+ *
+
+
+
+ serverProfiles
+ 4.0.0
+
+
+ ServerProfile
+ *
+
+
+
+ mavenProfiles
+ 4.0.0
+
+
+ MavenProfile
+ *
+
+
+
+ defaultProfiles
+ 4.0.0
+
+ DefaultProfiles
+
+
+
+
+
+
+
+ JdkProfile
+ 4.0.0
+
+
+
+ version
+ 4.0.0
+ true
+
+ String
+
+
+ javaHome
+ 4.0.0
+ true
+
+ String
+
+
+
+
+ ServerProfile
+ 4.0.0
+
+
+ id
+ 4.0.0
+ true
+
+ String
+
+
+ host
+ 4.0.0
+ true
+
+ String
+
+
+ username
+ 4.0.0
+
+ String
+
+
+ passphrase
+ 4.0.0
+
+ String
+
+
+ privateKey
+ 4.0.0
+
+ String
+
+
+
+
+ MavenProfile
+ 4.0.0
+
+
+ id
+ 4.0.0
+ true
+
+ String
+
+
+ localRepository
+ 4.0.0
+ true
+
+ String
+
+
+ passwordStore
+ 4.0.0
+ true
+
+ String
+
+
+
+
+ DefaultProfiles
+ 4.0.0
+
+
+ serverProfileId
+ 4.0.0
+ false
+ String
+
+
+ mavenProfileId
+ 4.0.0
+ true
+ String
+
+
+ jdkVersion
+ 4.0.0
+ false
+ String
+
+
+
+
+
\ No newline at end of file
diff --git a/maven-user-model/pom.xml b/maven-user-model/pom.xml
new file mode 100644
index 0000000000..4672679562
--- /dev/null
+++ b/maven-user-model/pom.xml
@@ -0,0 +1,10 @@
+
+ 4.0.0
+
+ maven
+ maven-component
+ 2.0-SNAPSHOT
+
+
+ maven-user-model
+
\ No newline at end of file