Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Fedorenko2011-02-10 20:11:48 +0000
committerIgor Fedorenko2011-02-10 20:49:14 +0000
commit8bac477d3aff06d5aaa668983f13e3f375267f63 (patch)
tree2ca9091b4bc66114720c76e85a3febc9f509e631
parente63dc1b163926cfb6468d8c691cf6e2f0b5f6404 (diff)
downloadm2e-core-8bac477d3aff06d5aaa668983f13e3f375267f63.tar.gz
m2e-core-8bac477d3aff06d5aaa668983f13e3f375267f63.tar.xz
m2e-core-8bac477d3aff06d5aaa668983f13e3f375267f63.zip
reworked local maven patches
only include minimal required set of changed files. added short README to list changes introduced per-maven release directory structure so we know when to remove local patches Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
-rw-r--r--org.eclipse.m2e.maven.runtime/.classpath5
-rw-r--r--org.eclipse.m2e.maven.runtime/META-INF/MANIFEST.MF3
-rw-r--r--org.eclipse.m2e.maven.runtime/build.properties2
-rw-r--r--org.eclipse.m2e.maven.runtime/jars/plexus-utils-2.0.6.jar (renamed from org.eclipse.m2e.maven.runtime/jars/plexus-utils-2.0.6-SNAPSHOT.jar)bin223401 -> 223425 bytes
-rw-r--r--org.eclipse.m2e.maven.runtime/src/README5
-rw-r--r--org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java200
-rw-r--r--org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/PluginRealmCache.java85
-rw-r--r--org.eclipse.m2e.maven.runtime/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java561
-rw-r--r--org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (renamed from org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java)0
-rw-r--r--org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/DefaultSchedules.java (renamed from org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java)0
-rw-r--r--org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/LifecycleExecutor.java (renamed from org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java)0
-rw-r--r--org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java (renamed from org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java)0
-rw-r--r--org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculator.java (renamed from org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculator.java)0
-rw-r--r--org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java (renamed from org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java)0
-rw-r--r--org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java (renamed from org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java)10
-rw-r--r--org.eclipse.m2e.maven.runtime/update-jars-pom.xml2
16 files changed, 16 insertions, 857 deletions
diff --git a/org.eclipse.m2e.maven.runtime/.classpath b/org.eclipse.m2e.maven.runtime/.classpath
index 368e8af3..464fd685 100644
--- a/org.eclipse.m2e.maven.runtime/.classpath
+++ b/org.eclipse.m2e.maven.runtime/.classpath
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry exported="true" kind="lib" path="local-patches.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src/main/java/"/>
+ <classpathentry kind="src" path="src/maven-3.0.3"/>
<classpathentry exported="true" kind="lib" path="jars/maven-embedder-3.0.2.jar"/>
<classpathentry exported="true" kind="lib" path="jars/maven-settings-3.0.2.jar"/>
<classpathentry exported="true" kind="lib" path="jars/maven-plugin-api-3.0.2.jar"/>
@@ -35,7 +34,7 @@
<classpathentry exported="true" kind="lib" path="jars/guice-plexus-binders-2.0.0.jar"/>
<classpathentry exported="true" kind="lib" path="jars/guice-plexus-scanners-2.0.0.jar"/>
<classpathentry exported="true" kind="lib" path="jars/plexus-classworlds-2.4.jar"/>
- <classpathentry exported="true" kind="lib" path="jars/plexus-utils-2.0.6-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="jars/plexus-utils-2.0.6.jar"/>
<classpathentry exported="true" kind="lib" path="jars/sisu-guice-2.9.4-no_aop.jar"/>
<classpathentry exported="true" kind="lib" path="jars/plexus-build-api-0.0.7-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="jars/aether-connector-wagon-1.10.jar"/>
diff --git a/org.eclipse.m2e.maven.runtime/META-INF/MANIFEST.MF b/org.eclipse.m2e.maven.runtime/META-INF/MANIFEST.MF
index eebadbef..b78fe8dd 100644
--- a/org.eclipse.m2e.maven.runtime/META-INF/MANIFEST.MF
+++ b/org.eclipse.m2e.maven.runtime/META-INF/MANIFEST.MF
@@ -129,7 +129,7 @@ Bundle-ClassPath: local-patches.jar,
jars/guice-plexus-binders-2.0.0.jar,
jars/guice-plexus-scanners-2.0.0.jar,
jars/plexus-classworlds-2.4.jar,
- jars/plexus-utils-2.0.6-SNAPSHOT.jar,
+ jars/plexus-utils-2.0.6.jar,
jars/sisu-guice-2.9.4-no_aop.jar,
jars/plexus-build-api-0.0.7-SNAPSHOT.jar,
jars/aether-connector-wagon-1.10.jar,
@@ -145,4 +145,5 @@ Bundle-Name: Embedded Maven Runtime Bundle
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.m2e.maven.runtime;singleton:=true
Bundle-RequiredExecutionEnvironment: J2SE-1.5, JavaSE-1.6
+Require-Bundle: com.ning.async-http-client;bundle-version="1.4.1"
diff --git a/org.eclipse.m2e.maven.runtime/build.properties b/org.eclipse.m2e.maven.runtime/build.properties
index f10d8cb0..f1df8928 100644
--- a/org.eclipse.m2e.maven.runtime/build.properties
+++ b/org.eclipse.m2e.maven.runtime/build.properties
@@ -15,4 +15,4 @@ bin.includes = META-INF/,\
jars.compile.order = local-patches.jar
source.local-patches.jar = src/main/java/
output.local-patches.jar = target/classes
-source.local-patches.jar = src/main/java/
+source.local-patches.jar = src/maven-3.0.3/
diff --git a/org.eclipse.m2e.maven.runtime/jars/plexus-utils-2.0.6-SNAPSHOT.jar b/org.eclipse.m2e.maven.runtime/jars/plexus-utils-2.0.6.jar
index fb799b8d..25002a4b 100644
--- a/org.eclipse.m2e.maven.runtime/jars/plexus-utils-2.0.6-SNAPSHOT.jar
+++ b/org.eclipse.m2e.maven.runtime/jars/plexus-utils-2.0.6.jar
Binary files differ
diff --git a/org.eclipse.m2e.maven.runtime/src/README b/org.eclipse.m2e.maven.runtime/src/README
new file mode 100644
index 00000000..964d6db8
--- /dev/null
+++ b/org.eclipse.m2e.maven.runtime/src/README
@@ -0,0 +1,5 @@
+The following changes were cherry-picked
+
+maven-3.0.3 (SNAPSHOT)
+MNG-4988 API to calculate execution plan without full mojo execution configuration
+MNG-5003 populate mojo descriptor with cached plugin realm \ No newline at end of file
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java b/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java
deleted file mode 100644
index 89623674..00000000
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/DefaultPluginRealmCache.java
+++ /dev/null
@@ -1,200 +0,0 @@
-package org.apache.maven.plugin;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.classworlds.realm.ClassRealm;
-import org.codehaus.plexus.component.annotations.Component;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.graph.DependencyFilter;
-import org.sonatype.aether.repository.LocalRepository;
-import org.sonatype.aether.repository.RemoteRepository;
-import org.sonatype.aether.repository.WorkspaceRepository;
-
-/**
- * Default PluginCache implementation. Assumes cached data does not change.
- */
-@Component( role = PluginRealmCache.class )
-public class DefaultPluginRealmCache
- implements PluginRealmCache
-{
-
- protected static class CacheKey
- implements Key
- {
-
- private final Plugin plugin;
-
- private final WorkspaceRepository workspace;
-
- private final LocalRepository localRepo;
-
- private final List<RemoteRepository> repositories;
-
- private final ClassLoader parentRealm;
-
- private final Map<String, ClassLoader> foreignImports;
-
- private final DependencyFilter filter;
-
- private final int hashCode;
-
- public CacheKey( Plugin plugin, ClassLoader parentRealm, Map<String, ClassLoader> foreignImports,
- DependencyFilter dependencyFilter, List<RemoteRepository> repositories,
- RepositorySystemSession session )
- {
- this.plugin = plugin.clone();
- this.workspace = CacheUtils.getWorkspace( session );
- this.localRepo = session.getLocalRepository();
- this.repositories = new ArrayList<RemoteRepository>( repositories.size() );
- for ( RemoteRepository repository : repositories )
- {
- if ( repository.isRepositoryManager() )
- {
- this.repositories.addAll( repository.getMirroredRepositories() );
- }
- else
- {
- this.repositories.add( repository );
- }
- }
- this.parentRealm = parentRealm;
- this.foreignImports =
- ( foreignImports != null ) ? foreignImports : Collections.<String, ClassLoader> emptyMap();
- this.filter = dependencyFilter;
-
- int hash = 17;
- hash = hash * 31 + CacheUtils.pluginHashCode( plugin );
- hash = hash * 31 + hash( workspace );
- hash = hash * 31 + hash( localRepo );
- hash = hash * 31 + CacheUtils.repositoriesHashCode( repositories );
- hash = hash * 31 + hash( parentRealm );
- hash = hash * 31 + this.foreignImports.hashCode();
- hash = hash * 31 + hash( dependencyFilter );
- this.hashCode = hash;
- }
-
- @Override
- public String toString()
- {
- return plugin.getId();
- }
-
- @Override
- public int hashCode()
- {
- return hashCode;
- }
-
- private static int hash( Object obj )
- {
- return obj != null ? obj.hashCode() : 0;
- }
-
- @Override
- public boolean equals( Object o )
- {
- if ( o == this )
- {
- return true;
- }
-
- if ( !( o instanceof CacheKey ) )
- {
- return false;
- }
-
- CacheKey that = (CacheKey) o;
-
- return parentRealm == that.parentRealm && CacheUtils.pluginEquals( plugin, that.plugin )
- && eq( workspace, that.workspace ) && eq( localRepo, that.localRepo )
- && CacheUtils.repositoriesEquals( this.repositories, that.repositories ) && eq( filter, that.filter )
- && eq( foreignImports, that.foreignImports );
- }
-
- private static <T> boolean eq( T s1, T s2 )
- {
- return s1 != null ? s1.equals( s2 ) : s2 == null;
- }
-
- }
-
- protected final Map<Key, CacheRecord> cache = new ConcurrentHashMap<Key, CacheRecord>();
-
- public Key createKey( Plugin plugin, ClassLoader parentRealm, Map<String, ClassLoader> foreignImports,
- DependencyFilter dependencyFilter, List<RemoteRepository> repositories,
- RepositorySystemSession session )
- {
- return new CacheKey( plugin, parentRealm, foreignImports, dependencyFilter, repositories, session );
- }
-
- public CacheRecord get( Key key )
- {
- return cache.get( key );
- }
-
- public CacheRecord put( Key key, ClassRealm pluginRealm, List<Artifact> pluginArtifacts )
- {
- if ( pluginRealm == null || pluginArtifacts == null )
- {
- throw new IllegalArgumentException();
- }
-
- if ( cache.containsKey( key ) )
- {
- throw new IllegalStateException( "Duplicate plugin realm for plugin " + key );
- }
-
- CacheRecord record = new CacheRecord( pluginRealm, pluginArtifacts );
-
- cache.put( key, record );
-
- return record;
- }
-
- public void flush()
- {
- cache.clear();
- }
-
- protected static int pluginHashCode( Plugin plugin )
- {
- return CacheUtils.pluginHashCode( plugin );
- }
-
- protected static boolean pluginEquals( Plugin a, Plugin b )
- {
- return CacheUtils.pluginEquals( a, b );
- }
-
- public void register( MavenProject project, CacheRecord record )
- {
- // default cache does not track plugin usage
- }
-
-}
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/PluginRealmCache.java b/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/PluginRealmCache.java
deleted file mode 100644
index 68420818..00000000
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/PluginRealmCache.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.apache.maven.plugin;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.classworlds.realm.ClassRealm;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.graph.DependencyFilter;
-import org.sonatype.aether.repository.RemoteRepository;
-
-/**
- * Caches plugin class realms. <strong>Warning:</strong> This is an internal utility interface that is only public for
- * technical reasons, it is not part of the public API. In particular, this interface can be changed or deleted without
- * prior notice.
- *
- * @author Igor Fedorenko
- * @author Benjamin Bentmann
- */
-public interface PluginRealmCache
-{
-
- public static class CacheRecord
- {
- public final ClassRealm realm;
-
- public final List<Artifact> artifacts;
-
- public CacheRecord( ClassRealm realm, List<Artifact> artifacts )
- {
- this.realm = realm;
- this.artifacts = artifacts;
- }
- }
-
- /**
- * A cache key.
- */
- interface Key
- {
- // marker interface for cache keys
- }
-
- Key createKey( Plugin plugin, ClassLoader parentRealm, Map<String, ClassLoader> foreignImports,
- DependencyFilter dependencyFilter, List<RemoteRepository> repositories,
- RepositorySystemSession session );
-
- CacheRecord get( Key key );
-
- CacheRecord put( Key key, ClassRealm pluginRealm, List<Artifact> pluginArtifacts );
-
- void flush();
-
- /**
- * Registers the specified cache record for usage with the given project. Integrators can use the information
- * collected from this method in combination with a custom cache implementation to dispose unused records from the
- * cache.
- *
- * @param project The project that employs the plugin realm, must not be {@code null}.
- * @param record The cache record being used for the project, must not be {@code null}.
- */
- void register( MavenProject project, CacheRecord record );
-
-}
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java b/org.eclipse.m2e.maven.runtime/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java
deleted file mode 100644
index 40ce58ff..00000000
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/codehaus/plexus/util/xml/Xpp3Dom.java
+++ /dev/null
@@ -1,561 +0,0 @@
-package org.codehaus.plexus.util.xml;
-
-/*
- * Copyright The Codehaus Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.codehaus.plexus.util.xml.pull.XmlSerializer;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @version $Id$
- * NOTE: remove all the util code in here when separated, this class should be pure data.
- */
-public class Xpp3Dom implements Serializable
-{
- private static final long serialVersionUID = 2567894443061173996L;
-
- protected String name;
-
- protected String value;
-
- protected Map attributes;
-
- protected final List childList;
-
- protected final Map childMap;
-
- protected Xpp3Dom parent;
-
- private static final String[] EMPTY_STRING_ARRAY = new String[0];
-
- private static final Xpp3Dom[] EMPTY_DOM_ARRAY = new Xpp3Dom[0];
-
- public static final String CHILDREN_COMBINATION_MODE_ATTRIBUTE = "combine.children";
-
- public static final String CHILDREN_COMBINATION_MERGE = "merge";
-
- public static final String CHILDREN_COMBINATION_APPEND = "append";
-
- /**
- * This default mode for combining children DOMs during merge means that where element names
- * match, the process will try to merge the element data, rather than putting the dominant
- * and recessive elements (which share the same element name) as siblings in the resulting
- * DOM.
- */
- public static final String DEFAULT_CHILDREN_COMBINATION_MODE = CHILDREN_COMBINATION_MERGE;
-
- public static final String SELF_COMBINATION_MODE_ATTRIBUTE = "combine.self";
-
- public static final String SELF_COMBINATION_OVERRIDE = "override";
-
- public static final String SELF_COMBINATION_MERGE = "merge";
-
- /**
- * This default mode for combining a DOM node during merge means that where element names
- * match, the process will try to merge the element attributes and values, rather than
- * overriding the recessive element completely with the dominant one. This means that
- * wherever the dominant element doesn't provide the value or a particular attribute, that
- * value or attribute will be set from the recessive DOM node.
- */
- public static final String DEFAULT_SELF_COMBINATION_MODE = SELF_COMBINATION_MERGE;
-
- public Xpp3Dom( String name )
- {
- this.name = name;
- childList = new ArrayList();
- childMap = new HashMap();
- }
-
- /**
- * Copy constructor.
- */
- public Xpp3Dom( Xpp3Dom src )
- {
- this( src, src.getName() );
- }
-
- /**
- * Copy constructor with alternative name.
- */
- public Xpp3Dom( Xpp3Dom src, String name )
- {
- this.name = name;
-
- int childCount = src.getChildCount();
-
- childList = new ArrayList( childCount );
- childMap = new HashMap( childCount << 1 );
-
- setValue( src.getValue() );
-
- String[] attributeNames = src.getAttributeNames();
- for ( int i = 0; i < attributeNames.length; i++ )
- {
- String attributeName = attributeNames[i];
- setAttribute( attributeName, src.getAttribute( attributeName ) );
- }
-
- for ( int i = 0; i < childCount; i++ )
- {
- addChild( new Xpp3Dom( src.getChild( i ) ) );
- }
- }
-
- // ----------------------------------------------------------------------
- // Name handling
- // ----------------------------------------------------------------------
-
- public String getName()
- {
- return name;
- }
-
- // ----------------------------------------------------------------------
- // Value handling
- // ----------------------------------------------------------------------
-
- public String getValue()
- {
- return value;
- }
-
- public void setValue( String value )
- {
- this.value = value;
- }
-
- // ----------------------------------------------------------------------
- // Attribute handling
- // ----------------------------------------------------------------------
-
- public String[] getAttributeNames()
- {
- if ( null == attributes || attributes.isEmpty() )
- {
- return EMPTY_STRING_ARRAY;
- }
- else
- {
- return (String[]) attributes.keySet().toArray( new String[attributes.size()] );
- }
- }
-
- public String getAttribute( String name )
- {
- return ( null != attributes ) ? (String) attributes.get( name ) : null;
- }
-
- /**
- * Set the attribute value
- * @param name String not null
- * @param value String not null
- */
- public void setAttribute( String name, String value )
- {
- if ( null == value ) {
- throw new NullPointerException( "Attribute value can not be null" );
- }
- if ( null == name ) {
- throw new NullPointerException( "Attribute name can not be null" );
- }
- if ( null == attributes )
- {
- attributes = new HashMap();
- }
-
- attributes.put( name, value );
- }
-
- // ----------------------------------------------------------------------
- // Child handling
- // ----------------------------------------------------------------------
-
- public Xpp3Dom getChild( int i )
- {
- return (Xpp3Dom) childList.get( i );
- }
-
- public Xpp3Dom getChild( String name )
- {
- return (Xpp3Dom) childMap.get( name );
- }
-
- public void addChild( Xpp3Dom xpp3Dom )
- {
- xpp3Dom.setParent( this );
- childList.add( xpp3Dom );
- childMap.put( xpp3Dom.getName(), xpp3Dom );
- }
-
- public Xpp3Dom[] getChildren()
- {
- if ( null == childList || childList.isEmpty() )
- {
- return EMPTY_DOM_ARRAY;
- }
- else
- {
- return (Xpp3Dom[]) childList.toArray( new Xpp3Dom[childList.size()] );
- }
- }
-
- public Xpp3Dom[] getChildren( String name )
- {
- if ( null == childList )
- {
- return EMPTY_DOM_ARRAY;
- }
- else
- {
- ArrayList children = new ArrayList();
- int size = childList.size();
-
- for ( int i = 0; i < size; i++ )
- {
- Xpp3Dom configuration = (Xpp3Dom) childList.get( i );
- if ( name.equals( configuration.getName() ) )
- {
- children.add( configuration );
- }
- }
-
- return (Xpp3Dom[]) children.toArray( new Xpp3Dom[children.size()] );
- }
- }
-
- public int getChildCount()
- {
- if ( null == childList )
- {
- return 0;
- }
-
- return childList.size();
- }
-
- public void removeChild( int i )
- {
- Xpp3Dom child = getChild( i );
- childMap.values().remove( child );
- childList.remove( i );
- // In case of any dangling references
- child.setParent( null );
- }
-
- // ----------------------------------------------------------------------
- // Parent handling
- // ----------------------------------------------------------------------
-
- public Xpp3Dom getParent()
- {
- return parent;
- }
-
- public void setParent( Xpp3Dom parent )
- {
- this.parent = parent;
- }
-
- // ----------------------------------------------------------------------
- // Helpers
- // ----------------------------------------------------------------------
-
- public void writeToSerializer( String namespace, XmlSerializer serializer )
- throws IOException
- {
- // TODO: WARNING! Later versions of plexus-utils psit out an <?xml ?> header due to thinking this is a new document - not the desired behaviour!
- SerializerXMLWriter xmlWriter = new SerializerXMLWriter( namespace, serializer );
- Xpp3DomWriter.write( xmlWriter, this );
- if ( xmlWriter.getExceptions().size() > 0 )
- {
- throw (IOException) xmlWriter.getExceptions().get( 0 );
- }
- }
-
- /**
- * Merges one DOM into another, given a specific algorithm and possible override points for that algorithm.
- * The algorithm is as follows:
- *
- * 1. if the recessive DOM is null, there is nothing to do...return.
- *
- * 2. Determine whether the dominant node will suppress the recessive one (flag=mergeSelf).
- *
- * A. retrieve the 'combine.self' attribute on the dominant node, and try to match against 'override'...
- * if it matches 'override', then set mergeSelf == false...the dominant node suppresses the recessive
- * one completely.
- *
- * B. otherwise, use the default value for mergeSelf, which is true...this is the same as specifying
- * 'combine.self' == 'merge' as an attribute of the dominant root node.
- *
- * 3. If mergeSelf == true
- *
- * A. if the dominant root node's value is empty, set it to the recessive root node's value
- *
- * B. For each attribute in the recessive root node which is not set in the dominant root node, set it.
- *
- * C. Determine whether children from the recessive DOM will be merged or appended to the dominant
- * DOM as siblings (flag=mergeChildren).
- *
- * i. if childMergeOverride is set (non-null), use that value (true/false)
- *
- * ii. retrieve the 'combine.children' attribute on the dominant node, and try to match against
- * 'append'...if it matches 'append', then set mergeChildren == false...the recessive children
- * will be appended as siblings of the dominant children.
- *
- * iii. otherwise, use the default value for mergeChildren, which is true...this is the same as
- * specifying 'combine.children' == 'merge' as an attribute on the dominant root node.
- *
- * D. Iterate through the recessive children, and:
- *
- * i. if mergeChildren == true and there is a corresponding dominant child (matched by element name),
- * merge the two.
- *
- * ii. otherwise, add the recessive child as a new child on the dominant root node.
- */
- private static void mergeIntoXpp3Dom( Xpp3Dom dominant, Xpp3Dom recessive, Boolean childMergeOverride )
- {
- // TODO: share this as some sort of assembler, implement a walk interface?
- if ( recessive == null )
- {
- return;
- }
-
- boolean mergeSelf = true;
-
- String selfMergeMode = dominant.getAttribute( SELF_COMBINATION_MODE_ATTRIBUTE );
-
- if ( SELF_COMBINATION_OVERRIDE.equals( selfMergeMode ) )
- {
- mergeSelf = false;
- }
-
- if ( mergeSelf )
- {
- if ( isEmpty( dominant.getValue() ) )
- {
- dominant.setValue( recessive.getValue() );
- }
-
- String[] recessiveAttrs = recessive.getAttributeNames();
- for ( int i = 0; i < recessiveAttrs.length; i++ )
- {
- String attr = recessiveAttrs[i];
-
- if ( isEmpty( dominant.getAttribute( attr ) ) )
- {
- dominant.setAttribute( attr, recessive.getAttribute( attr ) );
- }
- }
-
- if ( recessive.getChildCount() > 0 )
- {
- boolean mergeChildren = true;
-
- if ( childMergeOverride != null )
- {
- mergeChildren = childMergeOverride.booleanValue();
- }
- else
- {
- String childMergeMode = dominant.getAttribute( CHILDREN_COMBINATION_MODE_ATTRIBUTE );
-
- if ( CHILDREN_COMBINATION_APPEND.equals( childMergeMode ) )
- {
- mergeChildren = false;
- }
- }
-
- if ( !mergeChildren )
- {
- Xpp3Dom[] dominantChildren = dominant.getChildren();
- // remove these now, so we can append them to the recessive list later.
- dominant.childList.clear();
-
- for ( int i = 0, recessiveChildCount = recessive.getChildCount(); i < recessiveChildCount; i++ )
- {
- Xpp3Dom recessiveChild = recessive.getChild( i );
- dominant.addChild( new Xpp3Dom( recessiveChild ) );
- }
-
- // now, re-add these children so they'll be appended to the recessive list.
- for ( int i = 0; i < dominantChildren.length; i++ )
- {
- dominant.addChild( dominantChildren[i] );
- }
- }
- else
- {
- Map commonChildren = new HashMap();
-
- for ( Iterator it = recessive.childMap.keySet().iterator(); it.hasNext(); )
- {
- String childName = (String) it.next();
- Xpp3Dom[] dominantChildren = dominant.getChildren( childName );
- if ( dominantChildren.length > 0 )
- {
- commonChildren.put( childName, Arrays.asList( dominantChildren ).iterator() );
- }
- }
-
- for ( int i = 0, recessiveChildCount = recessive.getChildCount(); i < recessiveChildCount; i++ )
- {
- Xpp3Dom recessiveChild = recessive.getChild( i );
- Iterator it = (Iterator) commonChildren.get( recessiveChild.getName() );
- if ( it == null )
- {
- dominant.addChild( new Xpp3Dom( recessiveChild ) );
- }
- else if ( it.hasNext() )
- {
- Xpp3Dom dominantChild = (Xpp3Dom) it.next();
- mergeIntoXpp3Dom( dominantChild, recessiveChild, childMergeOverride );
- }
- }
- }
- }
- }
- }
-
- /**
- * Merge two DOMs, with one having dominance in the case of collision.
- *
- * @see #CHILDREN_COMBINATION_MODE_ATTRIBUTE
- * @see #SELF_COMBINATION_MODE_ATTRIBUTE
- *
- * @param dominant The dominant DOM into which the recessive value/attributes/children will be merged
- * @param recessive The recessive DOM, which will be merged into the dominant DOM
- * @param childMergeOverride Overrides attribute flags to force merging or appending of child elements
- * into the dominant DOM
- */
- public static Xpp3Dom mergeXpp3Dom( Xpp3Dom dominant, Xpp3Dom recessive, Boolean childMergeOverride )
- {
- if ( dominant != null )
- {
- mergeIntoXpp3Dom( dominant, recessive, childMergeOverride );
- return dominant;
- }
- return recessive;
- }
-
- /**
- * Merge two DOMs, with one having dominance in the case of collision.
- * Merge mechanisms (vs. override for nodes, or vs. append for children) is determined by
- * attributes of the dominant root node.
- *
- * @see #CHILDREN_COMBINATION_MODE_ATTRIBUTE
- * @see #SELF_COMBINATION_MODE_ATTRIBUTE
- *
- * @param dominant The dominant DOM into which the recessive value/attributes/children will be merged
- * @param recessive The recessive DOM, which will be merged into the dominant DOM
- */
- public static Xpp3Dom mergeXpp3Dom( Xpp3Dom dominant, Xpp3Dom recessive )
- {
- if ( dominant != null )
- {
- mergeIntoXpp3Dom( dominant, recessive, null );
- return dominant;
- }
- return recessive;
- }
-
- // ----------------------------------------------------------------------
- // Standard object handling
- // ----------------------------------------------------------------------
-
- public boolean equals( Object obj )
- {
- if ( obj == this )
- {
- return true;
- }
-
- if ( !( obj instanceof Xpp3Dom ) )
- {
- return false;
- }
-
- Xpp3Dom dom = (Xpp3Dom) obj;
-
- if ( name == null ? dom.name != null : !name.equals( dom.name ) )
- {
- return false;
- }
- else if ( value == null ? dom.value != null : !value.equals( dom.value ) )
- {
- return false;
- }
- else if ( attributes == null ? dom.attributes != null : !attributes.equals( dom.attributes ) )
- {
- return false;
- }
- else if ( childList == null ? dom.childList != null : !childList.equals( dom.childList ) )
- {
- return false;
- }
- else
- {
- return true;
- }
- }
-
- public int hashCode()
- {
- int result = 17;
- result = 37 * result + ( name != null ? name.hashCode() : 0 );
- result = 37 * result + ( value != null ? value.hashCode() : 0 );
- result = 37 * result + ( attributes != null ? attributes.hashCode() : 0 );
- result = 37 * result + ( childList != null ? childList.hashCode() : 0 );
- return result;
- }
-
- public String toString()
- {
- // TODO: WARNING! Later versions of plexus-utils psit out an <?xml ?> header due to thinking this is a new document - not the desired behaviour!
- StringWriter writer = new StringWriter();
- XMLWriter xmlWriter = new PrettyPrintXMLWriter( writer, "UTF-8", null );
- Xpp3DomWriter.write( xmlWriter, this );
- return writer.toString();
- }
-
- public String toUnescapedString()
- {
- // TODO: WARNING! Later versions of plexus-utils psit out an <?xml ?> header due to thinking this is a new document - not the desired behaviour!
- StringWriter writer = new StringWriter();
- XMLWriter xmlWriter = new PrettyPrintXMLWriter( writer, "UTF-8", null );
- Xpp3DomWriter.write( xmlWriter, this, false );
- return writer.toString();
- }
-
- public static boolean isNotEmpty( String str )
- {
- return ( ( str != null ) && ( str.length() > 0 ) );
- }
-
- public static boolean isEmpty( String str )
- {
- return ( ( str == null ) || ( str.trim().length() == 0 ) );
- }
-
-}
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
index a719a0c7..a719a0c7 100644
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
+++ b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/DefaultSchedules.java
index 4c1fe571..4c1fe571 100644
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/DefaultSchedules.java
+++ b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/DefaultSchedules.java
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/LifecycleExecutor.java
index 37b6e499..37b6e499 100644
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/LifecycleExecutor.java
+++ b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/LifecycleExecutor.java
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
index b28e6c01..b28e6c01 100644
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
+++ b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/DefaultLifecycleExecutionPlanCalculator.java
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculator.java b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculator.java
index 7d35b102..7d35b102 100644
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculator.java
+++ b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/LifecycleExecutionPlanCalculator.java
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java
index 113a5ab3..113a5ab3 100644
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java
+++ b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/lifecycle/internal/LifecycleTaskSegmentCalculator.java
diff --git a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
index 603e6704..9c646b75 100644
--- a/org.eclipse.m2e.maven.runtime/src/main/java/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
+++ b/org.eclipse.m2e.maven.runtime/src/maven-3.0.3/org/apache/maven/plugin/internal/DefaultMavenPluginManager.java
@@ -299,10 +299,8 @@ public class DefaultMavenPluginManager
MavenProject project = session.getCurrentProject();
- Map<String, ClassLoader> foreignImports = calcImports( project, parent, imports );
-
PluginRealmCache.Key cacheKey =
- pluginRealmCache.createKey( plugin, parent, foreignImports, filter, project.getRemotePluginRepositories(),
+ pluginRealmCache.createKey( plugin, parent, imports, filter, project.getRemotePluginRepositories(),
session.getRepositorySession() );
PluginRealmCache.CacheRecord cacheRecord = pluginRealmCache.get( cacheKey );
@@ -318,7 +316,7 @@ public class DefaultMavenPluginManager
}
else
{
- createPluginRealm( pluginDescriptor, session, parent, foreignImports, filter );
+ createPluginRealm( pluginDescriptor, session, parent, imports, filter );
cacheRecord =
pluginRealmCache.put( cacheKey, pluginDescriptor.getClassRealm(), pluginDescriptor.getArtifacts() );
@@ -328,7 +326,7 @@ public class DefaultMavenPluginManager
}
private void createPluginRealm( PluginDescriptor pluginDescriptor, MavenSession session, ClassLoader parent,
- Map<String, ClassLoader> foreignImports, DependencyFilter filter )
+ List<String> imports, DependencyFilter filter )
throws PluginResolutionException, PluginContainerException
{
Plugin plugin = pluginDescriptor.getPlugin();
@@ -371,6 +369,8 @@ public class DefaultMavenPluginManager
List<org.sonatype.aether.artifact.Artifact> pluginArtifacts = nlg.getArtifacts( true );
+ Map<String, ClassLoader> foreignImports = calcImports( project, parent, imports );
+
ClassRealm pluginRealm =
classRealmManager.createPluginRealm( plugin, parent, null, foreignImports, pluginArtifacts );
diff --git a/org.eclipse.m2e.maven.runtime/update-jars-pom.xml b/org.eclipse.m2e.maven.runtime/update-jars-pom.xml
index 757ab1d9..e82aee30 100644
--- a/org.eclipse.m2e.maven.runtime/update-jars-pom.xml
+++ b/org.eclipse.m2e.maven.runtime/update-jars-pom.xml
@@ -36,7 +36,7 @@
<wagon-ahc.version>1.1.0</wagon-ahc.version>
<!-- the following need to be reconciled with maven version used -->
- <plexus-utils.version>2.0.6-SNAPSHOT</plexus-utils.version>
+ <plexus-utils.version>2.0.6</plexus-utils.version>
</properties>
<groupId>org.eclipse.m2e</groupId>

Back to the top