From 6288e6893d924202cd6e777da2c6e607d4f76c93 Mon Sep 17 00:00:00 2001 From: Roland Grunberg 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 @@ ${project.version} - javax.inject - javax.inject - provided + org.codehaus.plexus + plexus-component-annotations - org.eclipse.sisu - org.eclipse.sisu.inject + org.sonatype.sisu + sisu-inject-plexus org.sonatype.sisu @@ -69,6 +68,10 @@ org.slf4j + slf4j-api + + + org.slf4j slf4j-simple @@ -88,5 +91,19 @@ + + + org.codehaus.plexus + plexus-component-metadata + + + + generate-metadata + generate-test-metadata + + + + + 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 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 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 getService(Class 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