From 6288e6893d924202cd6e777da2c6e607d4f76c93 Mon Sep 17 00:00:00 2001
From: Roland Grunberg <rgrunber@redhat.com>
Date: Fri, 19 Dec 2014 14:58:53 -0500
Subject: [PATCH] Port to Maven 3.0.5
Porting to Maven 3.0.5 also means migrating to some other libraries
and technologies which are used by Maven:
Eclipse Sisu Inject -> Sonatype Sisu Plexus
JSR-330 -> Plexus Component Annotations
---
xmvn-p2-installer-plugin/pom.xml | 27 +++++++++++++++----
.../org/fedoraproject/p2/app/P2InstallerApp.java | 30 ++++++----------------
.../p2/osgi/impl/DefaultOSGiConfigurator.java | 16 ++++--------
.../p2/osgi/impl/DefaultOSGiFramework.java | 16 ++++--------
.../p2/osgi/impl/DefaultOSGiServiceLocator.java | 16 ++++--------
.../p2/xmvn/EclipseArtifactInstaller.java | 11 +++-----
6 files changed, 49 insertions(+), 67 deletions(-)
diff --git a/fedoraproject-p2/xmvn-p2-installer-plugin/pom.xml b/fedoraproject-p2/xmvn-p2-installer-plugin/pom.xml
index c6aa3b7..2974dda 100644
--- a/fedoraproject-p2/xmvn-p2-installer-plugin/pom.xml
+++ b/fedoraproject-p2/xmvn-p2-installer-plugin/pom.xml
@@ -45,13 +45,12 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- <scope>provided</scope>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-annotations</artifactId>
</dependency>
<dependency>
- <groupId>org.eclipse.sisu</groupId>
- <artifactId>org.eclipse.sisu.inject</artifactId>
+ <groupId>org.sonatype.sisu</groupId>
+ <artifactId>sisu-inject-plexus</artifactId>
</dependency>
<dependency>
<groupId>org.sonatype.sisu</groupId>
@@ -69,6 +68,10 @@
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
<dependency>
@@ -88,5 +91,19 @@
</plugin>
</plugins>
</pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-component-metadata</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>generate-metadata</goal>
+ <goal>generate-test-metadata</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
</build>
</project>
diff --git a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/app/P2InstallerApp.java b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/app/P2InstallerApp.java
index 3d543c6..7901a1a 100644
--- a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/app/P2InstallerApp.java
+++ b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/app/P2InstallerApp.java
@@ -13,16 +13,10 @@ package org.fedoraproject.p2.app;
import java.nio.file.Paths;
import java.util.Set;
-import javax.inject.Inject;
-import com.google.inject.Injector;
-import org.eclipse.sisu.space.ClassSpace;
-import com.google.inject.Module;
-import javax.inject.Singleton;
-import javax.inject.Named;
-import com.google.inject.Guice;
-import org.eclipse.sisu.space.SpaceModule;
-import org.eclipse.sisu.space.URLClassSpace;
-import org.eclipse.sisu.wire.WireModule;
+import org.codehaus.plexus.DefaultPlexusContainer;
+import org.codehaus.plexus.PlexusContainer;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.fedoraproject.p2.installer.Dropin;
import org.fedoraproject.p2.installer.EclipseArtifact;
@@ -34,17 +28,12 @@ import org.fedoraproject.p2.osgi.OSGiServiceLocator;
/**
* @author Mikolaj Izdebski
*/
-@Named
-@Singleton
+@Component( role = P2InstallerApp.class )
public class P2InstallerApp {
+ @Requirement
private OSGiServiceLocator serviceLocator;
- @Inject
- public P2InstallerApp(OSGiServiceLocator serviceLocator) {
- this.serviceLocator = serviceLocator;
- }
-
public int run(CliRequest cliRequest) throws Exception {
if (cliRequest.getParameters().isEmpty()) {
System.err.println("No artifacts specified for installation."
@@ -93,11 +82,8 @@ public class P2InstallerApp {
try {
CliRequest cliRequest = new CliRequest(args);
- ClassLoader realm = Thread.currentThread().getContextClassLoader();
- ClassSpace classSpace = new URLClassSpace(realm);
- Module module = new WireModule(new SpaceModule(classSpace));
- Injector injector = Guice.createInjector(module);
- P2InstallerApp app = injector.getInstance(P2InstallerApp.class);
+ PlexusContainer container = new DefaultPlexusContainer();
+ P2InstallerApp app = container.lookup( P2InstallerApp.class );
System.exit(app.run(cliRequest));
} catch (Throwable e) {
diff --git a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiConfigurator.java b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiConfigurator.java
index 8acb598..a642a65 100644
--- a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiConfigurator.java
+++ b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiConfigurator.java
@@ -21,9 +21,8 @@ import java.util.Collections;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,8 +36,7 @@ import org.fedoraproject.p2.osgi.OSGiConfigurator;
* instead loads bundles contained withing the "tycho-bundles-external"
* bootstrap zip-ball.
*/
-@Named
-@Singleton
+@Component( role = OSGiConfigurator.class )
public class DefaultOSGiConfigurator implements OSGiConfigurator {
private final Logger logger = LoggerFactory
.getLogger(DefaultOSGiConfigurator.class);
@@ -47,12 +45,8 @@ public class DefaultOSGiConfigurator implements OSGiConfigurator {
private static final Artifact BUNDLES_EXTERNAL_ZIP = new DefaultArtifact(
"org.eclipse.tycho", "tycho-bundles-external", "zip", "SYSTEM");
- private final Resolver resolver;
-
- @Inject
- public DefaultOSGiConfigurator(Resolver resolver) {
- this.resolver = resolver;
- }
+ @Requirement
+ private Resolver resolver;
@Override
public Collection<Path> getBundles() {
diff --git a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiFramework.java b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiFramework.java
index 56b1875..ccc995a 100644
--- a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiFramework.java
+++ b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiFramework.java
@@ -14,9 +14,8 @@ import java.util.LinkedHashMap;
import java.util.Map;
import com.google.common.base.Joiner;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.eclipse.core.runtime.adaptor.EclipseStarter;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
@@ -30,21 +29,16 @@ import org.fedoraproject.p2.osgi.OSGiFramework;
/**
* @author Mikolaj Izdebski
*/
-@Named
-@Singleton
+@Component( role = OSGiFramework.class )
public class DefaultOSGiFramework implements OSGiFramework {
private final Logger logger = LoggerFactory
.getLogger(DefaultOSGiFramework.class);
- private final OSGiConfigurator equinoxLocator;
+ @Requirement
+ private OSGiConfigurator equinoxLocator;
private BundleContext bundleContext;
- @Inject
- public DefaultOSGiFramework(OSGiConfigurator equinoxLocator) {
- this.equinoxLocator = equinoxLocator;
- }
-
private BundleContext launchEquinox() throws Exception {
Map<String, String> properties = new LinkedHashMap<>();
diff --git a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiServiceLocator.java b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiServiceLocator.java
index 3274381..9fcbf49 100644
--- a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiServiceLocator.java
+++ b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/osgi/impl/DefaultOSGiServiceLocator.java
@@ -10,9 +10,8 @@
*******************************************************************************/
package org.fedoraproject.p2.osgi.impl;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -22,15 +21,10 @@ import org.fedoraproject.p2.osgi.OSGiServiceLocator;
/**
* @author Mikolaj Izdebski
*/
-@Named
-@Singleton
+@Component( role = OSGiServiceLocator.class )
public class DefaultOSGiServiceLocator implements OSGiServiceLocator {
- private final OSGiFramework framework;
-
- @Inject
- public DefaultOSGiServiceLocator(OSGiFramework framework) {
- this.framework = framework;
- }
+ @Requirement
+ private OSGiFramework framework;
@Override
public <T> T getService(Class<T> clazz) {
diff --git a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/xmvn/EclipseArtifactInstaller.java b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/xmvn/EclipseArtifactInstaller.java
index 7ee8f66..3a6dd99 100644
--- a/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/xmvn/EclipseArtifactInstaller.java
+++ b/fedoraproject-p2/xmvn-p2-installer-plugin/src/main/java/org/fedoraproject/p2/xmvn/EclipseArtifactInstaller.java
@@ -17,10 +17,8 @@ import java.nio.file.Paths;
import java.util.LinkedHashMap;
import java.util.Map;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.fedoraproject.xmvn.artifact.Artifact;
@@ -42,13 +40,12 @@ import org.fedoraproject.p2.installer.EclipseInstallationResult;
import org.fedoraproject.p2.installer.EclipseInstaller;
import org.fedoraproject.p2.osgi.OSGiServiceLocator;
-@Named("eclipse")
-@Singleton
+@Component( role = ArtifactInstaller.class, hint = "eclipse" )
public class EclipseArtifactInstaller implements ArtifactInstaller {
private final Logger logger = LoggerFactory
.getLogger(EclipseArtifactInstaller.class);
- @Inject
+ @Requirement
private OSGiServiceLocator equinox;
private final EclipseInstallationRequest request = new EclipseInstallationRequest();
--
2.1.0