This is an automated email from the ASF dual-hosted git repository.
alien11689 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/aries.git
The following commit(s) were added to refs/heads/trunk by this push:
new 7aee61297 [MAINTENANCE] Restore sample blueprint hello world
7aee61297 is described below
commit 7aee6129736556fba90fdb00c37b7b249b31a9d0
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>