Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ See [Apache Aries Website](http://aries.apache.org/).
- [![Proxy - CI Build](https://github.com/apache/aries/actions/workflows/proxy.yml/badge.svg)](https://github.com/apache/aries/actions/workflows/proxy.yml)
- [![Pushstream - CI Build](https://github.com/apache/aries/actions/workflows/pushstream.yml/badge.svg)](https://github.com/apache/aries/actions/workflows/pushstream.yml)
- [![Quiesce - CI Build](https://github.com/apache/aries/actions/workflows/quiesce.yml/badge.svg)](https://github.com/apache/aries/actions/workflows/quiesce.yml)
- Samples - Missing
- [![Samples - CI Build](https://github.com/apache/aries/actions/workflows/samples.yml/badge.svg)](https://github.com/apache/aries/actions/workflows/samples.yml)
- [![SPI Fly - CI Build](https://github.com/apache/aries/actions/workflows/spi-fly.yml/badge.svg)](https://github.com/apache/aries/actions/workflows/spi-fly.yml)
- [![Subsystem - CI Build](https://github.com/apache/aries/actions/workflows/subsystem.yml/badge.svg)](https://github.com/apache/aries/actions/workflows/subsystem.yml)
- [![Transaction - CI Build](https://github.com/apache/aries/actions/workflows/transaction.yml/badge.svg)](https://github.com/apache/aries/actions/workflows/transaction.yml)
Expand Down
60 changes: 18 additions & 42 deletions samples/blueprint/helloworld/helloworld-itests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>

Expand All @@ -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>
Expand Down Expand Up @@ -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>
Expand All @@ -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>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
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;
Expand All @@ -51,6 +50,8 @@
import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;

import javax.inject.Inject;


public abstract class AbstractIntegrationTest {

Expand Down Expand Up @@ -272,7 +273,7 @@ protected <T> T getOsgiService(BundleContext bc, Class<T> type,
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());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,20 +22,23 @@
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
Expand All @@ -44,7 +47,7 @@ public void testBundlesStart() throws Exception {
/* 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());

Expand All @@ -56,7 +59,7 @@ public void testBundlesStart() throws Exception {
assertNotNull(bser);
failInBundleNotActiveInFiveSeconds(bser);
}

@Test
public void testClientBlueprintContainerOnlyStartsWhenServiceStarted() throws Exception
{
Expand All @@ -69,32 +72,32 @@ public void testClientBlueprintContainerOnlyStartsWhenServiceStarted() throws Ex
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);
Expand All @@ -104,17 +107,17 @@ private BlueprintContainer getBlueprintContainer(String bundleName)
}
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());
Expand Down Expand Up @@ -146,21 +149,23 @@ private void failInBundleNotActiveInFiveSeconds(Bundle bapi)
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,javax.management.loading,javax.management.modelmbean,javax.management.monitor,javax.management.openmbean,javax.management.relation,javax.management.remote,javax.management.remote.rmi,javax.management.timer,javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,javax.net,javax.net.ssl,javax.print,javax.print.attribute,javax.print.attribute.standard,javax.print.event,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.script,javax.security.auth,javax.security.auth.callback,javax.security.auth.kerberos,javax.security.auth.login,javax.security.auth.spi,javax.security.auth.x500,javax.security.cert,javax.security.sasl,javax.sound.midi,javax.sound.midi.spi,javax.sound.sampled,javax.sound.sampled.spi,javax.sql,javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.plaf.multi,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.text.html.parser,javax.swing.text.rtf,javax.swing.tree,javax.swing.undo,javax.tools,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.namespace,javax.xml.parsers,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.xpath,org.ietf.jgss,org.omg.CORBA,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA.TypeCodePackage,org.omg.CORBA.portable,org.omg.CORBA_2_3,org.omg.CORBA_2_3.portable,org.omg.CosNaming,org.omg.CosNaming.NamingContextExtPackage,org.omg.CosNaming.NamingContextPackage,org.omg.Dynamic,org.omg.DynamicAny,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage,org.omg.IOP,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage,org.omg.Messaging,org.omg.PortableInterceptor,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.PortableServer,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.POAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServer.ServantLocatorPackage,org.omg.PortableServer.portable,org.omg.SendingContext,org.omg.stub.java.rmi,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.stylesheets,org.w3c.dom.traversal,org.w3c.dom.views,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers,javax.transaction;partial=true;mandatory:=partial,javax.transaction.xa;partial=true;mandatory:=partial"),
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)
Expand All @@ -177,16 +182,7 @@ public static Option[] configuration() {
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;
Expand Down
2 changes: 1 addition & 1 deletion samples/blueprint/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
</dependencyManagement>

<modules>
<!-- <module>helloworld</module>-->
<module>helloworld</module>
<module>idverifier</module>
</modules>
</project>