This is an automated email from the ASF dual-hosted git repository. alien11689 pushed a commit to branch restore-sample-blueprint-helloworld in repository https://gitbox.apache.org/repos/asf/aries.git
commit 09975143afb2974b724ce42f9e74dbd00838ef2e Author: Dominik Przybysz <[email protected]> AuthorDate: Mon Feb 24 11:38:42 2025 +0100 [MAINTENANCE] Restore sample blueprint hello world --- README.md | 2 +- .../blueprint/helloworld/helloworld-itests/pom.xml | 60 +++++++--------------- .../helloworld/itests/AbstractIntegrationTest.java | 5 +- .../helloworld/itests/HelloworldSampleTest.java | 60 ++++++++++------------ samples/blueprint/pom.xml | 2 +- 5 files changed, 51 insertions(+), 78 deletions(-) diff --git a/README.md b/README.md index 8f0474949..c8ee92a02 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ See [Apache Aries Website](http://aries.apache.org/). - [](https://github.com/apache/aries/actions/workflows/proxy.yml) - [](https://github.com/apache/aries/actions/workflows/pushstream.yml) - [](https://github.com/apache/aries/actions/workflows/quiesce.yml) -- Samples - Missing +- [](https://github.com/apache/aries/actions/workflows/samples.yml) - [](https://github.com/apache/aries/actions/workflows/spi-fly.yml) - [](https://github.com/apache/aries/actions/workflows/subsystem.yml) - [](https://github.com/apache/aries/actions/workflows/transaction.yml) diff --git a/samples/blueprint/helloworld/helloworld-itests/pom.xml b/samples/blueprint/helloworld/helloworld-itests/pom.xml index 08392ae49..ea1e1608b 100644 --- a/samples/blueprint/helloworld/helloworld-itests/pom.xml +++ b/samples/blueprint/helloworld/helloworld-itests/pom.xml @@ -32,35 +32,33 @@ </description> <properties> - <asm.version>4.0</asm.version> - <bndlib.version>0.0.357</bndlib.version> + <asm.version>5.0.3</asm.version> <cm.version>3.2.0-v20070116</cm.version> <org.apache.aries.proxy.version>1.0.0</org.apache.aries.proxy.version> - <osgi.version>3.5.0.v20090520</osgi.version> - <pax-exam.version>1.2.4</pax-exam.version> - <pax-runner-no-jcl.version>1.4.0</pax-runner-no-jcl.version> - <pax-swissbox-tinybundles.version>1.2.0</pax-swissbox-tinybundles.version> - <pax-url-mvn.version>1.3.5</pax-url-mvn.version> + <org.eclipse.osgi.version>3.8.0.v20120529-1548</org.eclipse.osgi.version> + <pax-exam.version>4.13.5</pax-exam.version> + <pax-logging.version>1.7.2</pax-logging.version> + <pax-url.version>2.6.16</pax-url.version> <services.version>3.1.200-v20070605</services.version> </properties> <dependencies> <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.core</artifactId> + <groupId>org.eclipse</groupId> + <artifactId>org.eclipse.osgi</artifactId> + <version>${org.eclipse.osgi.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.osgi</groupId> - <artifactId>org.osgi.compendium</artifactId> + <artifactId>org.osgi.core</artifactId> <scope>provided</scope> </dependency> <dependency> - <groupId>org.eclipse</groupId> - <artifactId>osgi</artifactId> - <version>${osgi.version}</version> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.compendium</artifactId> <scope>provided</scope> </dependency> @@ -70,12 +68,6 @@ <scope>test</scope> </dependency> - <dependency> - <groupId>biz.aQute</groupId> - <artifactId>bndlib</artifactId> - <version>${bndlib.version}</version> - </dependency> - <dependency> <groupId>org.apache.aries.proxy</groupId> <artifactId>org.apache.aries.proxy</artifactId> @@ -113,38 +105,29 @@ <version>${pax-exam.version}</version> <scope>test</scope> </dependency> - <dependency> <groupId>org.ops4j.pax.exam</groupId> - <artifactId>pax-exam-junit</artifactId> + <artifactId>pax-exam-junit4</artifactId> <version>${pax-exam.version}</version> <scope>test</scope> </dependency> - <dependency> <groupId>org.ops4j.pax.exam</groupId> - <artifactId>pax-exam-container-default</artifactId> + <artifactId>pax-exam-container-native</artifactId> <version>${pax-exam.version}</version> <scope>test</scope> </dependency> - <dependency> <groupId>org.ops4j.pax.exam</groupId> - <artifactId>pax-exam-junit-extender-impl</artifactId> + <artifactId>pax-exam-link-mvn</artifactId> <version>${pax-exam.version}</version> <scope>test</scope> </dependency> - - <dependency> - <groupId>org.ops4j.pax.runner</groupId> - <artifactId>pax-runner-no-jcl</artifactId> - <version>${pax-runner-no-jcl.version}</version> - </dependency> - <dependency> - <groupId>org.ops4j.pax.swissbox</groupId> - <artifactId>pax-swissbox-tinybundles</artifactId> - <version>${pax-swissbox-tinybundles.version}</version> + <groupId>org.ops4j.pax.url</groupId> + <artifactId>pax-url-aether</artifactId> + <version>${pax-url.version}</version> + <scope>test</scope> </dependency> <dependency> @@ -171,13 +154,6 @@ <scope>test</scope> </dependency> - <dependency> - <groupId>org.ops4j.pax.url</groupId> - <artifactId>pax-url-mvn</artifactId> - <version>${pax-url-mvn.version}</version> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.apache.servicemix.bundles</groupId> <artifactId>org.apache.servicemix.bundles.cglib</artifactId> diff --git a/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/AbstractIntegrationTest.java b/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/AbstractIntegrationTest.java index d5c42e386..d99e860fc 100644 --- a/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/AbstractIntegrationTest.java +++ b/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/AbstractIntegrationTest.java @@ -37,7 +37,6 @@ import java.util.Properties; import org.junit.After; import org.junit.Before; import org.ops4j.pax.exam.CoreOptions; -import org.ops4j.pax.exam.Inject; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.options.MavenArtifactProvisionOption; import org.ops4j.pax.url.mvn.Handler; @@ -51,6 +50,8 @@ import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; import org.osgi.util.tracker.ServiceTracker; +import javax.inject.Inject; + public abstract class AbstractIntegrationTest { @@ -272,7 +273,7 @@ public abstract class AbstractIntegrationTest { public static URL getUrlToEba(String groupId, String artifactId) throws MalformedURLException { String artifactVersion = getArtifactVersion(groupId, artifactId); - // Need to use handler from org.ops4j.pax.url.mvn + // Need to use handler from org.ops4j.pax.url.aether URL urlToEba = new URL(null, ServiceConstants.PROTOCOL + ":" + groupId + "/" +artifactId + "/" + artifactVersion + "/eba", new Handler()); diff --git a/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/HelloworldSampleTest.java b/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/HelloworldSampleTest.java index 21f280e5a..5e64f1566 100644 --- a/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/HelloworldSampleTest.java +++ b/samples/blueprint/helloworld/helloworld-itests/src/test/java/org/apache/aries/samples/blueprint/helloworld/itests/HelloworldSampleTest.java @@ -22,20 +22,23 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.ops4j.pax.exam.CoreOptions.bootDelegationPackages; -import static org.ops4j.pax.exam.CoreOptions.equinox; +import static org.ops4j.pax.exam.CoreOptions.*; import static org.ops4j.pax.exam.CoreOptions.options; import static org.ops4j.pax.exam.CoreOptions.systemProperty; -import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption; +import org.ops4j.pax.exam.Configuration; +import org.ops4j.pax.exam.junit.PaxExam; +import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy; +import org.ops4j.pax.exam.spi.reactors.PerClass; import org.osgi.service.blueprint.container.BlueprintContainer; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.Option; -import org.ops4j.pax.exam.junit.JUnit4TestRunner; import org.osgi.framework.Bundle; -@RunWith(JUnit4TestRunner.class) +@RunWith(PaxExam.class) +@ExamReactorStrategy(PerClass.class) public class HelloworldSampleTest extends AbstractIntegrationTest { @Test @@ -44,7 +47,7 @@ public class HelloworldSampleTest extends AbstractIntegrationTest { /* Check that the HelloWorld Sample bundles are present an started */ Bundle bapi = getInstalledBundle("org.apache.aries.samples.blueprint.helloworld.api"); assertNotNull(bapi); - + failInBundleNotActiveInFiveSeconds(bapi); assertEquals(Bundle.ACTIVE, bapi.getState()); @@ -56,7 +59,7 @@ public class HelloworldSampleTest extends AbstractIntegrationTest { assertNotNull(bser); failInBundleNotActiveInFiveSeconds(bser); } - + @Test public void testClientBlueprintContainerOnlyStartsWhenServiceStarted() throws Exception { @@ -69,32 +72,32 @@ public class HelloworldSampleTest extends AbstractIntegrationTest { assertNotNull(bser); bser.stop(); - // Wait for everything to shut down + // Wait for everything to shut down Thread.sleep(1000); - - // When everything is stopped, there should be no blueprint container for either the client or the server - + + // When everything is stopped, there should be no blueprint container for either the client or the server + assertClientBlueprintContainerNull(); assertServerBlueprintContainerNull(); // If we start the client first, it shouldn't have a blueprint container bcli.start(); - // Wait for everything to get started + // Wait for everything to get started Thread.sleep(1000); assertClientBlueprintContainerNull(); - + // Then when we start the server both it and the client should have blueprint containers bser.start(); - // Wait for everything to get started + // Wait for everything to get started Thread.sleep(1000); assertClientBlueprintContainerNotNull(); assertServerBlueprintContainerNotNull(); } - + private BlueprintContainer getBlueprintContainer(String bundleName) - { + { BlueprintContainer container = null; try { container = getOsgiService(BlueprintContainer.class, "(osgi.blueprint.container.symbolicname=" + bundleName + ")", 500); @@ -104,17 +107,17 @@ public class HelloworldSampleTest extends AbstractIntegrationTest { } return container; } - + private BlueprintContainer getClientBlueprintContainer() { return getBlueprintContainer("org.apache.aries.samples.blueprint.helloworld.client"); } - + private BlueprintContainer getServerBlueprintContainer() { return getBlueprintContainer("org.apache.aries.samples.blueprint.helloworld.server"); } - + private void assertClientBlueprintContainerNotNull() { assertNotNull("There was no blueprint container for the client bundle.", getClientBlueprintContainer()); @@ -146,21 +149,23 @@ public class HelloworldSampleTest extends AbstractIntegrationTest { e.printStackTrace(); } } - + assertEquals("The bundle " + bapi.getSymbolicName() + " " + bapi.getVersion() + " is not active", Bundle.ACTIVE, bapi.getState()); } - @org.ops4j.pax.exam.junit.Configuration + @Configuration public static Option[] configuration() { Option[] options = options( bootDelegationPackages("javax.transaction", "javax.transaction.*"), vmOption("-Dorg.osgi.framework.system.packages=javax.accessibility,javax.activation,javax.activity,javax.annotation,javax.annotation.processing,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,javax.imageio,javax.imageio.event,javax.imageio.metadata,javax.imageio.plugins.bmp,javax.imageio.plugins.jpeg,javax.imageio.spi,javax.imageio.stream,javax.jws,javax.jws.soap,javax.lang.model,javax.lang.model.element,javax.lang.model.type,javax.lang.model.util,javax.management, [...] + junitBundles(), + // Log mavenBundle("org.ops4j.pax.logging", "pax-logging-api"), mavenBundle("org.ops4j.pax.logging", "pax-logging-service"), - // Felix mvn url handler - do we need this? - mavenBundle("org.ops4j.pax.url", "pax-url-mvn"), + + mavenBundle("org.ops4j.pax.url", "pax-url-aether"), // this is how you set the default log level when using pax // logging (logProfile) @@ -177,16 +182,7 @@ public class HelloworldSampleTest extends AbstractIntegrationTest { mavenBundle("org.ow2.asm", "asm-all" ), mavenBundle("org.apache.aries.samples.blueprint.helloworld", "org.apache.aries.samples.blueprint.helloworld.api"), mavenBundle("org.apache.aries.samples.blueprint.helloworld", "org.apache.aries.samples.blueprint.helloworld.server"), - mavenBundle("org.apache.aries.samples.blueprint.helloworld", "org.apache.aries.samples.blueprint.helloworld.client"), - /* For debugging, uncomment the next two lines */ - /*vmOption ("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777"), - waitForFrameworkStartup(), -*/ - /* For debugging, add these imports: - import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartup; - import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption; - */ - equinox().version("3.5.0") + mavenBundle("org.apache.aries.samples.blueprint.helloworld", "org.apache.aries.samples.blueprint.helloworld.client") ); options = updateOptions(options); return options; diff --git a/samples/blueprint/pom.xml b/samples/blueprint/pom.xml index d110036f2..3f4356ba8 100644 --- a/samples/blueprint/pom.xml +++ b/samples/blueprint/pom.xml @@ -44,7 +44,7 @@ </dependencyManagement> <modules> -<!-- <module>helloworld</module>--> + <module>helloworld</module> <module>idverifier</module> </modules> </project>
