[eclipse-m2e-core] Initialize git repo, currently failing

Gerard Ryan galileo at fedoraproject.org
Wed Jan 23 19:39:06 UTC 2013


commit 13d7f82734bfcd18e726b94791421301e3c273c7
Author: Gerard Ryan <gerard at ryan.lt>
Date:   Tue Dec 11 12:53:48 2012 +0000

    Initialize git repo, currently failing

 eclipse-m2e-core-archetype-archetypemanager.patch  |   63 +++
 eclipse-m2e-core-artifactinfo-return-type.patch    |   35 ++
 eclipse-m2e-core-fix-m2e.core-manifest-1.2.0.patch |   14 +
 ...e-m2e-core-fix-m2e.core.ui-manifest-1.2.0.patch |   12 +
 eclipse-m2e-core-lucene-deprecated-methods.patch   |   20 +
 eclipse-m2e-core-m2e.core-modello-version.patch    |   10 +
 eclipse-m2e-core-m2e.core-resourcefetcher.patch    |   36 ++
 eclipse-m2e-core-m2e.feature.patch                 |   17 +
 ...rg.eclipse.m2e.launching-build.properties.patch |   11 +
 ...pse-m2e-core-remotearchetypecatalogdialog.patch |   11 +
 eclipse-m2e-core.spec                              |  395 ++++++++++++++++++++
 11 files changed, 624 insertions(+), 0 deletions(-)
---
diff --git a/eclipse-m2e-core-archetype-archetypemanager.patch b/eclipse-m2e-core-archetype-archetypemanager.patch
new file mode 100644
index 0000000..5153e04
--- /dev/null
+++ b/eclipse-m2e-core-archetype-archetypemanager.patch
@@ -0,0 +1,63 @@
+--- org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/MavenPluginActivator.java.orig	2012-07-19 15:40:38.000000000 +0100
++++ org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/MavenPluginActivator.java	2012-07-19 18:07:43.000000000 +0100
+@@ -35,7 +35,6 @@
+ import org.codehaus.plexus.classworlds.ClassWorld;
+ import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
+ 
+-import org.apache.maven.archetype.Archetype;
+ import org.apache.maven.archetype.common.ArchetypeArtifactManager;
+ import org.apache.maven.archetype.source.ArchetypeDataSource;
+ import org.apache.maven.artifact.factory.ArtifactFactory;
+@@ -385,8 +384,8 @@
+     return repositoryRegistry;
+   }
+ 
+-  public Archetype getArchetype() {
+-    return lookup(Archetype.class);
++  public org.apache.maven.archetype.ArchetypeManager getArchetype() {
++    return lookup(org.apache.maven.archetype.ArchetypeManager.class);
+   }
+ 
+   public ArchetypeDataSource getArchetypeDataSource(String hint) {
+--- org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogFactory.java.orig	2012-07-19 15:47:14.000000000 +0100
++++ org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogFactory.java	2012-07-19 16:13:07.000000000 +0100
+@@ -21,7 +21,7 @@
+ import org.eclipse.core.runtime.Status;
+ import org.eclipse.osgi.util.NLS;
+ 
+-import org.apache.maven.archetype.Archetype;
++import org.apache.maven.archetype.ArchetypeManager;
+ import org.apache.maven.archetype.catalog.ArchetypeCatalog;
+ import org.apache.maven.archetype.source.ArchetypeDataSource;
+ import org.apache.maven.archetype.source.ArchetypeDataSourceException;
+@@ -67,7 +67,7 @@
+     return getId();
+   }
+ 
+-  protected Archetype getArchetyper() {
++  protected ArchetypeManager getArchetyper() {
+     return MavenPluginActivator.getDefault().getArchetype();
+   }
+ 
+--- org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java.orig	2012-07-19 15:39:54.000000000 +0100
++++ org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java	2012-07-19 17:22:31.000000000 +0100
+@@ -768,7 +768,7 @@
+     }
+   }
+ 
+-  private org.apache.maven.archetype.Archetype getArchetyper() {
++  private org.apache.maven.archetype.ArchetypeManager getArchetyper() {
+     return MavenPluginActivator.getDefault().getArchetype();
+   }
+ 
+--- org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenProjectWizardArchetypePage.java.orig	2012-08-08 14:46:26.924975744 +0100
++++ org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenProjectWizardArchetypePage.java	2012-08-04 14:51:10.000000000 +0100
+@@ -790,7 +790,7 @@
+               archetype.setArtifactId(archetypeArtifactId);
+               archetype.setVersion(archetypeVersion);
+               archetype.setRepository(repositoryUrl);
+-              org.apache.maven.archetype.Archetype archetyper = MavenPluginActivator.getDefault().getArchetype();
++              org.apache.maven.archetype.ArchetypeManager archetyper = MavenPluginActivator.getDefault().getArchetype();
+               archetyper.updateLocalCatalog(archetype);
+ 
+               loadArchetypes(archetypeGroupId, archetypeArtifactId, archetypeVersion);
diff --git a/eclipse-m2e-core-artifactinfo-return-type.patch b/eclipse-m2e-core-artifactinfo-return-type.patch
new file mode 100644
index 0000000..2e486f9
--- /dev/null
+++ b/eclipse-m2e-core-artifactinfo-return-type.patch
@@ -0,0 +1,35 @@
+--- org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java.orig	2012-07-20 13:31:11.000000000 +0100
++++ org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java	2012-07-20 14:30:19.000000000 +0100
+@@ -244,9 +244,9 @@
+       }
+ 
+       synchronized(getIndexLock(repository)) {
+-        ArtifactInfo artifactInfo = getIndexer().identify(query, Collections.singleton(getIndexingContext(repository)));
+-        if(artifactInfo != null) {
+-          return getIndexedArtifactFile(artifactInfo);
++        Collection<ArtifactInfo> artifactInfo = getIndexer().identify(query, Collections.singleton(getIndexingContext(repository)));
++        if(!artifactInfo.isEmpty()) {
++	    return getIndexedArtifactFile((ArtifactInfo)artifactInfo.toArray()[0]);
+         }
+       }
+     } catch(Exception ex) {
+@@ -287,8 +287,8 @@
+ 
+   public IndexedArtifactFile identify(File file) throws CoreException {
+     try {
+-      ArtifactInfo artifactInfo = getIndexer().identify(file);
+-      return artifactInfo == null ? null : getIndexedArtifactFile(artifactInfo);
++      Collection<ArtifactInfo> artifactInfo = getIndexer().identify(file);
++      return artifactInfo.isEmpty() ? null : getIndexedArtifactFile((ArtifactInfo)artifactInfo.toArray()[0]);
+     } catch(IOException ex) {
+       throw new CoreException(new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1,
+           Messages.NexusIndexManager_error_search, ex));
+@@ -1272,7 +1272,7 @@
+ 
+       Query q = getIndexer().constructQuery(MAVEN.SHA1, encode(digest), SearchType.EXACT);
+ 
+-      return getIndexer().identify(q, contexts);
++      return getIndexer().identify(q, contexts).isEmpty() ? null : (ArtifactInfo)getIndexer().identify(q, contexts).toArray()[0];
+ 
+     } catch(NoSuchAlgorithmException ex) {
+       throw new IOException("Unable to calculate digest");
diff --git a/eclipse-m2e-core-fix-m2e.core-manifest-1.2.0.patch b/eclipse-m2e-core-fix-m2e.core-manifest-1.2.0.patch
new file mode 100644
index 0000000..b219e8a
--- /dev/null
+++ b/eclipse-m2e-core-fix-m2e.core-manifest-1.2.0.patch
@@ -0,0 +1,14 @@
+--- org.eclipse.m2e.core/META-INF/MANIFEST.MF.orig	2012-12-05 17:01:35.124604249 +0000
++++ org.eclipse.m2e.core/META-INF/MANIFEST.MF	2012-12-05 17:02:55.092040497 +0000
+@@ -13,9 +13,9 @@
+  org.eclipse.m2e.archetype.common;bundle-version="[1.2.0,1.3.0)",
+  org.eclipse.m2e.maven.indexer;bundle-version="[1.2.0,1.3.0)",
+  slf4j.api,
+- com.ning.async-http-client;bundle-version="[1.6.5,1.6.6)"
++ com.ning.async-http-client,
++ org.apache.maven.archetype.catalog
+ Eclipse-LazyStart: true
+-Bundle-ClassPath: .
+ Bundle-RequiredExecutionEnvironment: J2SE-1.5,
+  JavaSE-1.6
+ Export-Package: org.eclipse.m2e.core,
diff --git a/eclipse-m2e-core-fix-m2e.core.ui-manifest-1.2.0.patch b/eclipse-m2e-core-fix-m2e.core.ui-manifest-1.2.0.patch
new file mode 100644
index 0000000..36526f1
--- /dev/null
+++ b/eclipse-m2e-core-fix-m2e.core.ui-manifest-1.2.0.patch
@@ -0,0 +1,12 @@
+--- org.eclipse.m2e.core.ui/META-INF/MANIFEST.MF.orig	2012-12-05 17:04:07.907615274 +0000
++++ org.eclipse.m2e.core.ui/META-INF/MANIFEST.MF	2012-12-05 17:05:06.246473052 +0000
+@@ -36,6 +36,8 @@
+  org.eclipse.ui.forms;bundle-version="3.4.1",
+  slf4j.api,
+  org.eclipse.jface.text,
+- org.eclipse.ui
++ org.eclipse.ui,
++ org.apache.maven.archetype.catalog,
++ org.apache.maven.archetype.descriptor
+ Import-Package: org.eclipse.compare.rangedifferencer,
+  org.eclipse.ltk.core.refactoring
diff --git a/eclipse-m2e-core-lucene-deprecated-methods.patch b/eclipse-m2e-core-lucene-deprecated-methods.patch
new file mode 100644
index 0000000..a8f7d8b
--- /dev/null
+++ b/eclipse-m2e-core-lucene-deprecated-methods.patch
@@ -0,0 +1,20 @@
+--- org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java.orig	2012-08-09 14:40:35.716178765 +0100
++++ org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java	2012-08-09 14:41:19.788127390 +0100
+@@ -837,7 +837,7 @@
+   }
+ 
+   protected Directory getIndexDirectory(IRepository repository) throws IOException {
+-    return FSDirectory.getDirectory(getIndexDirectoryFile(repository));
++    return FSDirectory.open(getIndexDirectoryFile(repository));
+   }
+ 
+   public IndexedArtifactGroup resolveGroup(IndexedArtifactGroup group) {
+@@ -1129,7 +1129,7 @@
+             String details = getIndexDetails(repository);
+             String id = repository.getUid() + "-cache"; //$NON-NLS-1$
+             File luceneCache = new File(request.getLocalIndexCacheDir(), details);
+-            Directory directory = FSDirectory.getDirectory(luceneCache);
++            Directory directory = FSDirectory.open(luceneCache);
+             IndexingContext cacheCtx = getIndexer().addIndexingContextForced(id, id, null, directory, null, null,
+                 getIndexers(details));
+             request = newIndexUpdateRequest(repository, cacheCtx, monitor);
diff --git a/eclipse-m2e-core-m2e.core-modello-version.patch b/eclipse-m2e-core-m2e.core-modello-version.patch
new file mode 100644
index 0000000..d4ac7b4
--- /dev/null
+++ b/eclipse-m2e-core-m2e.core-modello-version.patch
@@ -0,0 +1,10 @@
+--- pom.xml.orig	2012-12-10 23:53:38.581824147 +0000
++++ pom.xml	2012-12-10 23:56:11.225728294 +0000
+@@ -37,6 +37,7 @@
+       <plugin>
+         <groupId>org.codehaus.modello</groupId>
+         <artifactId>modello-maven-plugin</artifactId>
++        <version>${modello.version}</version>
+         <executions>
+           <execution>
+             <id>standard</id>
diff --git a/eclipse-m2e-core-m2e.core-resourcefetcher.patch b/eclipse-m2e-core-m2e.core-resourcefetcher.patch
new file mode 100644
index 0000000..e3f3052
--- /dev/null
+++ b/eclipse-m2e-core-m2e.core-resourcefetcher.patch
@@ -0,0 +1,36 @@
+--- org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/AsyncFetcher.java.orig	2012-08-04 13:58:38.000000000 +0100
++++ org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/AsyncFetcher.java	2012-08-04 13:54:49.000000000 +0100
+@@ -45,7 +45,7 @@
+ import org.codehaus.plexus.util.IOUtil;
+ import org.codehaus.plexus.util.io.RawInputStreamFacade;
+ 
+-import org.apache.maven.index.updater.AbstractResourceFetcher;
++import org.apache.maven.index.updater.ResourceFetcher;
+ import org.apache.maven.wagon.authentication.AuthenticationInfo;
+ import org.apache.maven.wagon.proxy.ProxyInfo;
+ import org.apache.maven.wagon.proxy.ProxyUtils;
+@@ -60,7 +60,7 @@
+  * 
+  * @author Benjamin Hanzelmann
+  */
+-public class AsyncFetcher extends AbstractResourceFetcher {
++public class AsyncFetcher implements ResourceFetcher {
+ 
+   private static Logger log = LoggerFactory.getLogger(AsyncFetcher.class);
+ 
+@@ -188,7 +188,7 @@
+     }
+   }
+ 
+-  @Override
++    //@Override
+   public InputStream retrieve(String name) throws IOException, FileNotFoundException {
+     final String url = buildUrl(baseUrl, name);
+ 
+@@ -311,4 +311,4 @@
+     }
+   }
+ 
+-}
+\ No newline at end of file
++}
diff --git a/eclipse-m2e-core-m2e.feature.patch b/eclipse-m2e-core-m2e.feature.patch
new file mode 100644
index 0000000..3e74369
--- /dev/null
+++ b/eclipse-m2e-core-m2e.feature.patch
@@ -0,0 +1,17 @@
+--- org.eclipse.m2e.feature/feature.xml.orig	2012-08-08 17:34:59.322847984 +0100
++++ org.eclipse.m2e.feature/feature.xml	2012-08-08 17:35:41.016055892 +0100
+@@ -132,10 +132,12 @@
+          install-size="0"
+          version="0.0.0"
+          unpack="false"/>
+-         
++
++<!--         
+      <plugin id="org.jboss.netty"
+               download-size="0"
+          install-size="0"
+          version="0.0.0"
+-         unpack="false"/>       
++         unpack="false"/>
++-->
+ </feature>
diff --git a/eclipse-m2e-core-org.eclipse.m2e.launching-build.properties.patch b/eclipse-m2e-core-org.eclipse.m2e.launching-build.properties.patch
new file mode 100644
index 0000000..948b066
--- /dev/null
+++ b/eclipse-m2e-core-org.eclipse.m2e.launching-build.properties.patch
@@ -0,0 +1,11 @@
+--- org.eclipse.m2e.launching/build.properties.orig	2012-08-05 14:10:02.048873621 +0100
++++ org.eclipse.m2e.launching/build.properties	2012-08-05 14:10:23.108472544 +0100
+@@ -14,8 +14,6 @@
+                .,\
+                plugin.properties,\
+                icons/,\
+-               org.eclipse.m2e.cliresolver.jar,\
+-               org.eclipse.m2e.cliresolver30.jar,\
+                about.html,\
+                schema/
+ jars.compile.order = .
diff --git a/eclipse-m2e-core-remotearchetypecatalogdialog.patch b/eclipse-m2e-core-remotearchetypecatalogdialog.patch
new file mode 100644
index 0000000..88f5777
--- /dev/null
+++ b/eclipse-m2e-core-remotearchetypecatalogdialog.patch
@@ -0,0 +1,11 @@
+--- org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/RemoteArchetypeCatalogDialog.java.orig	2012-08-05 13:38:58.000000000 +0100
++++ org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/RemoteArchetypeCatalogDialog.java	2012-08-05 13:44:20.000000000 +0100
+@@ -179,7 +179,7 @@
+             } finally {
+               final IStatus s = status;
+               @SuppressWarnings("unchecked")
+-              final List<Archetype> archetypes = catalog==null ? Collections.emptyList() : catalog.getArchetypes();
++              final List<Archetype> archetypes = catalog==null ? Collections.<Archetype>emptyList() : catalog.getArchetypes();
+               getShell().getDisplay().asyncExec(new Runnable() {
+                 public void run() {
+                   verifyButton.setEnabled(true);
diff --git a/eclipse-m2e-core.spec b/eclipse-m2e-core.spec
new file mode 100644
index 0000000..dc38b69
--- /dev/null
+++ b/eclipse-m2e-core.spec
@@ -0,0 +1,395 @@
+%global eclipse_dropins      %{_datadir}/eclipse/dropins
+%global install_loc_plugins  %{eclipse_dropins}/%{name}/eclipse/plugins
+%global install_loc_features %{eclipse_dropins}/%{name}/eclipse/features
+%global release_tag          %{version}.20120903-1050
+%global release_dir          releases/1.2/%{release_tag}
+
+Name:           eclipse-m2e-core
+Version:        1.2.0
+Release:        0.1%{?dist}
+Summary:        Maven integration for Eclipse
+
+Group:          Development/Tools
+License:        EPL
+URL:            http://eclipse.org/m2e/
+
+Source0:        http://git.eclipse.org/c/m2e/m2e-core.git/snapshot/%{release_tag}.tar.bz2
+
+# Add some necessary stuff (mainly requires & imports) to manifests
+Patch0:         %{name}-fix-m2e.core-manifest-1.2.0.patch
+Patch1:         %{name}-fix-m2e.core.ui-manifest-1.2.0.patch
+
+# AbstractResourceFetcher is now ResourceFetcher (interface)
+Patch2:         %{name}-m2e.core-resourcefetcher.patch
+
+# Archetype class is now ArchetypeManager
+Patch3:         %{name}-archetype-archetypemanager.patch
+
+# Method returns collection of ArtifactInfo instances rather than just one
+Patch4:         %{name}-artifactinfo-return-type.patch
+
+# Have to specify type here
+Patch5:         %{name}-remotearchetypecatalogdialog.patch
+
+# org.eclipse.m2e.launching tries to bundle jars, but they don't seem needed
+Patch6:         %{name}-org.eclipse.m2e.launching-build.properties.patch
+
+# Exclude org.jboss.netty from the feature - causes tycho to fail
+Patch7:         %{name}-m2e.feature.patch
+
+# In updated lucene in F18, some methods have been renamed
+Patch8:         %{name}-lucene-deprecated-methods.patch
+
+# Leaving out the modello version causes a NullPointerException
+# See comment 13 on RHBZ #847160
+Patch9:         %{name}-m2e.core-modello-version.patch
+
+
+BuildArch:      noarch
+
+BuildRequires:  aether
+BuildRequires:  aopalliance
+BuildRequires:  apache-commons-cli
+BuildRequires:  apache-commons-collections
+BuildRequires:  apache-commons-io
+BuildRequires:  apache-commons-lang
+BuildRequires:  async-http-client
+BuildRequires:  atinject
+BuildRequires:  cglib
+BuildRequires:  dom4j
+BuildRequires:  eclipse-emf >= 2.8.0
+BuildRequires:  eclipse-emf-core >= 2.8.0
+BuildRequires:  eclipse-jdt >= 4.2.0
+BuildRequires:  eclipse-p2-discovery >= 4.2.0
+BuildRequires:  eclipse-platform >= 4.2.0
+BuildRequires:  eclipse-rcp >= 4.2.0
+BuildRequires:  eclipse-swt >= 4.2.0
+BuildRequires:  eclipse-wtp-common >= 3.4.0
+BuildRequires:  eclipse-wtp-sourceediting >= 3.4.0
+BuildRequires:  google-guice
+BuildRequires:  guava
+BuildRequires:  hamcrest
+BuildRequires:  icu4j-eclipse
+BuildRequires:  java-devel
+BuildRequires:  jchardet
+BuildRequires:  jdom
+BuildRequires:  jpackage-utils
+BuildRequires:  jsr-305
+BuildRequires:  junit
+BuildRequires:  lucene
+BuildRequires:  lucene-contrib
+BuildRequires:  maven
+BuildRequires:  maven-archetype-catalog
+BuildRequires:  maven-archetype-common
+BuildRequires:  maven-archetype-descriptor
+BuildRequires:  maven-indexer
+BuildRequires:  maven-install-plugin
+BuildRequires:  maven-resources-plugin
+BuildRequires:  maven-compiler-plugin
+BuildRequires:  maven-surefire-plugin
+BuildRequires:  maven-plugin-build-helper
+BuildRequires:  maven-plugin-bundle
+BuildRequires:  maven-wagon
+BuildRequires:  maven-wagon-ahc
+BuildRequires:  netty
+BuildRequires:  objectweb-asm
+BuildRequires:  plexus-build-api
+BuildRequires:  plexus-cipher
+BuildRequires:  plexus-classworlds
+BuildRequires:  plexus-containers-component-annotations
+BuildRequires:  plexus-container-default
+BuildRequires:  plexus-interpolation
+BuildRequires:  plexus-sec-dispatcher
+BuildRequires:  plexus-utils
+BuildRequires:  plexus-velocity
+BuildRequires:  sisu
+BuildRequires:  slf4j
+BuildRequires:  tycho
+BuildRequires:  tycho-extras
+BuildRequires:  velocity
+BuildRequires:  xbean
+
+Requires:       aether
+Requires:       aopalliance
+Requires:       apache-commons-cli
+Requires:       apache-commons-collections
+Requires:       apache-commons-io
+Requires:       apache-commons-lang
+Requires:       async-http-client
+Requires:       atinject
+Requires:       cglib
+Requires:       dom4j
+Requires:       eclipse-emf >= 2.8.0
+Requires:       eclipse-emf-core >= 2.8.0
+Requires:       eclipse-jdt >= 4.2.0
+Requires:       eclipse-p2-discovery >= 4.2.0
+Requires:       eclipse-platform >= 4.2.0
+Requires:       eclipse-rcp >= 4.2.0
+Requires:       eclipse-swt >= 4.2.0
+Requires:       eclipse-wtp-common >= 3.4.0
+Requires:       eclipse-wtp-sourceediting >= 3.4.0
+Requires:       google-guice
+Requires:       guava
+Requires:       hamcrest
+Requires:       icu4j-eclipse
+Requires:       java
+Requires:       jchardet
+Requires:       jdom
+Requires:       jpackage-utils
+Requires:       jsr-305
+Requires:       junit
+Requires:       lucene
+Requires:       lucene-contrib
+Requires:       maven
+Requires:       maven-archetype-catalog
+Requires:       maven-archetype-common
+Requires:       maven-archetype-descriptor
+Requires:       maven-indexer
+Requires:       maven-wagon
+Requires:       maven-wagon-ahc
+Requires:       netty
+Requires:       objectweb-asm
+Requires:       plexus-build-api
+Requires:       plexus-cipher
+Requires:       plexus-classworlds
+Requires:       plexus-containers-component-annotations
+Requires:       plexus-container-default
+Requires:       plexus-interpolation
+Requires:       plexus-sec-dispatcher
+Requires:       plexus-utils
+Requires:       plexus-velocity
+Requires:       sisu
+Requires:       slf4j
+Requires:       velocity
+Requires:       xbean
+
+
+%description
+The goal of the m2ec project is to provide a first-class Apache Maven support
+in the Eclipse IDE, making it easier to edit Maven's pom.xml, run a build from
+the IDE and much more. For Java developers, the very tight integration with JDT
+greatly simplifies the consumption of Java artifacts either being hosted on open
+source repositories such as Maven Central, or in your in-house Maven repository.
+
+m2e is also a platform that let others provide better integration with
+additional Maven plugins (e.g. Android, web development, etc.), and facilitates
+the distribution of those extensions through the m2e marketplace.
+
+
+%prep
+%setup -q -n %{release_dir}
+
+find -name '*.class' -delete
+find -name '*.jar' -delete
+
+# These don't currently build, but don't seem to be absolutely necessary
+%pom_disable_module org.eclipse.m2e.tests.common
+%pom_disable_module org.eclipse.m2e.logback.appender
+%pom_disable_module org.eclipse.m2e.logback.configuration
+%pom_disable_module org.eclipse.m2e.logback.feature
+%pom_disable_module org.eclipse.m2e.sdk.feature
+%pom_disable_module org.eclipse.m2e.site
+
+# jetty already has OSGI info, so doesn't need to be bundled like it is
+%pom_remove_dep org.eclipse.m2e:org.jboss.netty
+%pom_add_dep org.jboss.netty:netty
+
+# async-http-client already has OSGI info, so doesn't need to be bundled
+# adding packaged version as a dep here causes some 'tycholock' problem
+%pom_remove_dep org.eclipse.m2e:com.ning.async-http-client
+
+# Don't add version to jar names that get bundled - easier for symlinking
+pushd m2e-maven-runtime
+  for pom in `find -name pom.xml`; do
+    sed -i -e 's|</Embed-Dependency>|</Embed-Dependency><Embed-StripVersion>true</Embed-StripVersion>|g' ${pom};
+  done
+popd
+
+# Add these dependencies so that they get added to OSGi classpath
+pushd m2e-maven-runtime/org.eclipse.m2e.maven.runtime
+      %pom_add_dep cglib:cglib
+      %pom_add_dep aopalliance:aopalliance
+popd
+
+# oro is jakarta-oro in Fedora
+pushd m2e-maven-runtime/org.eclipse.m2e.archetype.common/
+  sed -i -e 's/oro,/jakarta-oro,/g' pom.xml
+popd
+
+# Fix OSGI generation in pom.xml for MANIFEST.MF
+pushd m2e-maven-runtime/org.eclipse.m2e.maven.runtime/
+  sed -i -e 's/;bundle-version=\".*/,/g' \
+         -e 's/org.slf4j.api,/slf4j.api/g' pom.xml
+
+  # While we're here, re-allow aopalliance to be embedded in OSGi
+  # and exclude plexus-container-default
+  sed -i -e 's/\!aopalliance|/\!plexus-container-default|/g' pom.xml
+
+popd
+
+# Fix incorrect bundle name and version for slf4j in manifests
+find -name MANIFEST.MF \
+ -exec sed -i -e 's|org.slf4j.api;bundle-version=\".*\"|slf4j.api|g' {} \;
+
+%patch0
+%patch1
+%patch2
+%patch3
+%patch4
+%patch5
+%patch6
+%patch7
+%patch8
+%patch9
+
+
+%build
+repo=localrepo
+mvn-rpmbuild -f m2e-maven-runtime/pom.xml install -Dmaven.local.repo=${repo} -X -Dmaven.local.debug=true
+mvn-rpmbuild install -Dmaven.local.repo=${repo} -X -Dmaven.local.debug=true
+
+%install
+install -d -m 0755 %{buildroot}%{install_loc_plugins}
+install -d -m 0755 %{buildroot}%{install_loc_features}
+
+# Install normal plugins as packed jars
+for dir in `find -name target|grep -v feature|grep -v m2e-maven-runtime|grep -v lifecyclemapping`; do
+  if [ -f ${dir}/*-SNAPSHOT.jar ]; then
+    cp -p ${dir}/*-SNAPSHOT.jar %{buildroot}%{install_loc_plugins}
+  fi
+done
+
+# Unpack the plugins from m2e-maven-runtime
+for plug in maven.runtime maven.indexer archetype.common; do
+  unzip -q -d %{buildroot}%{install_loc_plugins}/org.eclipse.m2e.${plug}-%{version}-SNAPSHOT \
+    m2e-maven-runtime/org.eclipse.m2e.${plug}/target/*-SNAPSHOT.jar
+done
+
+unzip -q -d %{buildroot}%{install_loc_plugins}/org.eclipse.m2e.lifecyclemapping.defaults-%{version}-SNAPSHOT \
+  org.eclipse.m2e.lifecyclemapping.defaults/target/*-SNAPSHOT.jar
+
+# symlink existing jars
+pushd %{buildroot}%{install_loc_plugins}
+  %{__ln_s} %{_javadir}/async-http-client.jar
+  %{__ln_s} %{_javadir}/netty.jar
+  %{__ln_s} %{_javadir}/slf4j/api.jar slf4j-api.jar
+  %{__ln_s} %{_javadir}/maven-archetype/catalog.jar
+  %{__ln_s} %{_javadir}/maven-archetype/descriptor.jar
+popd
+
+# delete bundled jars and symlink to system jars
+pushd %{buildroot}%{install_loc_plugins}
+  pushd org.eclipse.m2e.maven.runtime-%{version}-SNAPSHOT/jars
+    rm -f *
+    %{__ln_s} %{_javadir}/aether/api.jar aether-api.jar
+    %{__ln_s} %{_javadir}/aether/connector-asynchttpclient.jar \
+     aether-connector-asynchttpclient.jar
+    %{__ln_s} %{_javadir}/aether/connector-wagon.jar aether-connector-wagon.jar
+    %{__ln_s} %{_javadir}/aether/impl.jar aether-impl.jar
+    %{__ln_s} %{_javadir}/aether/spi.jar aether-spi.jar
+    %{__ln_s} %{_javadir}/aether/util.jar aether-util.jar
+    %{__ln_s} %{_javadir}/aopalliance.jar
+    %{__ln_s} %{_javadir}/objectweb-asm/asm.jar
+    %{__ln_s} %{_javadir}/cglib.jar
+    %{__ln_s} %{_javadir}/apache-commons-cli.jar commons-cli.jar
+    %{__ln_s} %{_javadir}/guava.jar
+    %{__ln_s} %{_javadir}/sisu/guice-bean-binders.jar
+    %{__ln_s} %{_javadir}/sisu/guice-bean-converters.jar
+    %{__ln_s} %{_javadir}/sisu/guice-bean-inject.jar
+    %{__ln_s} %{_javadir}/sisu/guice-bean-locators.jar
+    %{__ln_s} %{_javadir}/sisu/guice-bean-reflect.jar
+    %{__ln_s} %{_javadir}/sisu/guice-bean-scanners.jar
+    %{__ln_s} %{_javadir}/sisu/guice-plexus-binders.jar
+    %{__ln_s} %{_javadir}/sisu/guice-plexus-converters.jar
+    %{__ln_s} %{_javadir}/sisu/guice-plexus-lifecycles.jar
+    %{__ln_s} %{_javadir}/sisu/guice-plexus-locators.jar
+    %{__ln_s} %{_javadir}/sisu/guice-plexus-metadata.jar
+    %{__ln_s} %{_javadir}/sisu/guice-plexus-scanners.jar
+    %{__ln_s} %{_javadir}/sisu/guice-plexus-shim.jar
+    %{__ln_s} %{_javadir}/hamcrest/core.jar hamcrest-core.jar
+    %{__ln_s} %{_javadir}/atinject.jar javax.inject.jar
+    %{__ln_s} %{_javadir}/jsr-305.jar jsr305.jar
+    %{__ln_s} %{_javadir}/junit.jar
+    %{__ln_s} %{_javadir}/maven/maven-aether-provider.jar
+    %{__ln_s} %{_javadir}/maven/maven-artifact.jar
+    %{__ln_s} %{_javadir}/maven/maven-compat.jar
+    %{__ln_s} %{_javadir}/maven/maven-core.jar
+    %{__ln_s} %{_javadir}/maven/maven-embedder.jar
+    %{__ln_s} %{_javadir}/maven/maven-model.jar
+    %{__ln_s} %{_javadir}/maven/maven-model-builder.jar
+    %{__ln_s} %{_javadir}/maven/maven-plugin-api.jar
+    %{__ln_s} %{_javadir}/maven/maven-repository-metadata.jar
+    %{__ln_s} %{_javadir}/maven/maven-settings.jar
+    %{__ln_s} %{_javadir}/maven/maven-settings-builder.jar
+    %{__ln_s} %{_javadir}/plexus/plexus-build-api.jar
+    %{__ln_s} %{_javadir}/plexus/plexus-cipher.jar
+    %{__ln_s} %{_javadir}/plexus/classworlds.jar plexus-classworlds.jar
+    %{__ln_s} %{_javadir}/plexus/containers-component-annotations.jar \
+      plexus-component-annotations.jar
+    %{__ln_s} %{_javadir}/plexus/interpolation.jar plexus-interpolation.jar
+    %{__ln_s} %{_javadir}/plexus/plexus-sec-dispatcher.jar
+    %{__ln_s} %{_javadir}/plexus/utils.jar plexus-utils.jar
+    %{__ln_s} %{_javadir}/guice/google-guice.jar sisu-guice.jar
+    %{__ln_s} %{_javadir}/maven-wagon-ahc.jar wagon-ahc.jar
+    %{__ln_s} %{_javadir}/maven-wagon/file.jar wagon-file.jar
+    %{__ln_s} %{_javadir}/maven-wagon/provider-api.jar wagon-provider-api.jar
+    %{__ln_s} %{_javadir}/xbean/xbean-reflect.jar
+  popd
+
+  pushd org.eclipse.m2e.maven.indexer-%{version}-SNAPSHOT/
+    rm *.jar
+
+    %{__ln_s} %{_javadir}/aether/api.jar aether-api.jar
+    %{__ln_s} %{_javadir}/aether/util.jar aether-util.jar
+    %{__ln_s} %{_javadir}/maven-indexer-artifact.jar indexer-artifact.jar
+    %{__ln_s} %{_javadir}/maven-indexer-core.jar indexer-core.jar
+    %{__ln_s} %{_javadir}/lucene-core.jar
+    %{__ln_s} %{_javadir}/lucene-contrib/lucene-highlighter.jar
+    %{__ln_s} %{_javadir}/lucene-contrib/lucene-memory.jar
+  popd
+
+  pushd org.eclipse.m2e.archetype.common-%{version}-SNAPSHOT/
+    rm *.jar
+
+    %{__ln_s} %{_javadir}/maven-archetype/common.jar archetype-common.jar
+    %{__ln_s} %{_javadir}/apache-commons-collections.jar commons-collections.jar
+    %{__ln_s} %{_javadir}/apache-commons-io.jar commons-io.jar
+    %{__ln_s} %{_javadir}/apache-commons-lang.jar commons-lang.jar
+    %{__ln_s} %{_javadir}/dom4j.jar
+    %{__ln_s} %{_javadir}/jchardet.jar
+    %{__ln_s} %{_javadir}/jdom.jar
+    %{__ln_s} %{_javadir}/plexus/velocity.jar plexus-velocity.jar
+    %{__ln_s} %{_javadir}/velocity.jar
+  popd
+popd
+
+# Install main feature
+unzip -q -d %{buildroot}%{install_loc_features}/org.eclipse.m2e.feature-%{version}-SNAPSHOT \
+  org.eclipse.m2e.feature/target/org.eclipse.m2e.feature-%{version}-SNAPSHOT.jar
+
+
+%files
+%{eclipse_dropins}/%{name}
+%doc org.eclipse.m2e.core/about.html
+%doc org.eclipse.m2e.feature/epl-v10.html
+
+
+%changelog
+* Mon Dec 10 2012 Gerard Ryan <galileo at fedoraproject.org> - 1.2.0-0.1
+- Attempt update to upstream 1.2.0
+
+* Mon Dec 10 2012 Gerard Ryan <galileo at fedoraproject.org> - 1.1.0-4
+- Force usage of sisu over plexus-containers for DefaultPlexusContainer.
+
+* Wed Dec 06 2012 Gerard Ryan <galileo at fedoraproject.org> - 1.1.0-3
+- Add cglib and aopalliance as embedded dependencies.
+- Use newer pom macro to add netty dependency.
+- Add cglib and aopalliance as dependencies in org.eclipse.m2e.maven.runtime.
+- Symlink catalog and descriptor jars from maven-archetype.
+- Remove symlink to plexus-container-default.jar, fix sisu-guice.jar link.
+
+* Fri Aug 10 2012 Gerard Ryan <galileo at fedoraproject.org> - 1.1.0-2
+- Fix sources.
+
+* Fri Aug 05 2012 Gerard Ryan <galileo at fedoraproject.org> - 1.1.0-1
+- Initial packaging.


More information about the scm-commits mailing list