Search in sources :

Example 1 with OSGiManifestBuilder

use of org.jboss.osgi.metadata.OSGiManifestBuilder in project fabric8 by jboss-fuse.

the class PatchBundlesIntegrationTest method createdeployment.

@Deployment
public static JavaArchive createdeployment() {
    final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "test.jar");
    archive.addClass(ServiceLocator.class);
    archive.addClass(IOHelpers.class);
    archive.addPackage(ServiceTracker.class.getPackage());
    archive.addPackages(true, OSGiManifestBuilder.class.getPackage());
    archive.setManifest(new Asset() {

        public InputStream openStream() {
            OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
            builder.addBundleSymbolicName(archive.getName());
            builder.addBundleManifestVersion(2);
            builder.addImportPackages(Bundle.class, Service.class, PatchManagement.class, Validatable.class);
            return builder.openStream();
        }
    });
    // add the original bundle as well as the patch zip files as resources
    archive.add(createPatchableBundle("1.0.0"), "/bundles", ZipExporter.class);
    archive.add(createPatchZipFile("patch-01"), "/patches", ZipExporter.class);
    archive.add(createPatchZipFile("patch-02"), "/patches", ZipExporter.class);
    archive.add(createPatchZipFile("patch-02-without-range"), "/patches", ZipExporter.class);
    return archive;
}
Also used : ServiceTracker(org.osgi.util.tracker.ServiceTracker) InputStream(java.io.InputStream) Bundle(org.osgi.framework.Bundle) PatchManagement(io.fabric8.patch.management.PatchManagement) OSGiManifestBuilder(org.jboss.osgi.metadata.OSGiManifestBuilder) Asset(org.jboss.shrinkwrap.api.asset.Asset) Service(io.fabric8.patch.Service) JavaArchive(org.jboss.shrinkwrap.api.spec.JavaArchive) Validatable(io.fabric8.api.scr.Validatable) Deployment(org.jboss.arquillian.container.test.api.Deployment)

Example 2 with OSGiManifestBuilder

use of org.jboss.osgi.metadata.OSGiManifestBuilder in project fabric8 by jboss-fuse.

the class PatchBundlesIntegrationTest method createPatchableBundle.

// Create a 'patchable' bundle with the specified version
private static JavaArchive createPatchableBundle(final String version) {
    final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "patchable-" + version + ".jar");
    archive.setManifest(new Asset() {

        public InputStream openStream() {
            OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
            builder.addBundleManifestVersion(2);
            builder.addBundleSymbolicName(PATCHABLE_BSN);
            builder.addBundleVersion(version);
            return builder.openStream();
        }
    });
    return archive;
}
Also used : InputStream(java.io.InputStream) OSGiManifestBuilder(org.jboss.osgi.metadata.OSGiManifestBuilder) Asset(org.jboss.shrinkwrap.api.asset.Asset) JavaArchive(org.jboss.shrinkwrap.api.spec.JavaArchive)

Example 3 with OSGiManifestBuilder

use of org.jboss.osgi.metadata.OSGiManifestBuilder in project fabric8 by jboss-fuse.

the class PatchFilesIntegrationTest method createdeployment.

@Deployment
public static JavaArchive createdeployment() {
    final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "test.jar");
    archive.addClass(ServiceLocator.class);
    archive.addClass(IOHelpers.class);
    archive.addPackage(ServiceTracker.class.getPackage());
    archive.addPackages(true, OSGiManifestBuilder.class.getPackage());
    archive.setManifest(new Asset() {

        public InputStream openStream() {
            OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
            builder.addBundleSymbolicName(archive.getName());
            builder.addBundleManifestVersion(2);
            builder.addImportPackages(Bundle.class, Service.class, PatchManagement.class, Validatable.class);
            return builder.openStream();
        }
    });
    // add the patch zip files as resources
    archive.add(createPatchZipFile("file-01"), "/patches", ZipExporter.class);
    archive.add(createPatchZipFile("file-02"), "/patches", ZipExporter.class);
    return archive;
}
Also used : ServiceTracker(org.osgi.util.tracker.ServiceTracker) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) Bundle(org.osgi.framework.Bundle) PatchManagement(io.fabric8.patch.management.PatchManagement) OSGiManifestBuilder(org.jboss.osgi.metadata.OSGiManifestBuilder) Asset(org.jboss.shrinkwrap.api.asset.Asset) Service(io.fabric8.patch.Service) JavaArchive(org.jboss.shrinkwrap.api.spec.JavaArchive) Validatable(io.fabric8.api.scr.Validatable) Deployment(org.jboss.arquillian.container.test.api.Deployment)

Example 4 with OSGiManifestBuilder

use of org.jboss.osgi.metadata.OSGiManifestBuilder in project fabric8 by jboss-fuse.

the class PatchMigratorTest method createdeployment.

@Deployment
public static JavaArchive createdeployment() {
    final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "test.jar");
    archive.setManifest(new Asset() {

        public InputStream openStream() {
            OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
            builder.addBundleSymbolicName(archive.getName());
            builder.addBundleManifestVersion(2);
            builder.addImportPackages(Bundle.class, Service.class, PatchManagement.class, Validatable.class);
            return builder.openStream();
        }
    });
    archive.addClass(ServiceLocator.class);
    archive.addClass(IOHelpers.class);
    archive.addPackage(ServiceTracker.class.getPackage());
    archive.addPackages(true, OSGiManifestBuilder.class.getPackage());
    // add the original bundle as well as the patch zip files as resources
    archive.add(createPatchZipFile("migrator-patch-01"), "/patches", ZipExporter.class);
    return archive;
}
Also used : ServiceTracker(org.osgi.util.tracker.ServiceTracker) InputStream(java.io.InputStream) Bundle(org.osgi.framework.Bundle) PatchManagement(io.fabric8.patch.management.PatchManagement) OSGiManifestBuilder(org.jboss.osgi.metadata.OSGiManifestBuilder) Asset(org.jboss.shrinkwrap.api.asset.Asset) Service(io.fabric8.patch.Service) JavaArchive(org.jboss.shrinkwrap.api.spec.JavaArchive) Validatable(io.fabric8.api.scr.Validatable) Deployment(org.jboss.arquillian.container.test.api.Deployment)

Example 5 with OSGiManifestBuilder

use of org.jboss.osgi.metadata.OSGiManifestBuilder in project fabric8 by jboss-fuse.

the class PatchThePatchServiceTest method createdeployment.

@Deployment
public static JavaArchive createdeployment() throws Exception {
    final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "test.jar");
    archive.addClass(ServiceLocator.class);
    archive.addClass(IOHelpers.class);
    archive.addPackage(ServiceTracker.class.getPackage());
    archive.addPackages(true, OSGiManifestBuilder.class.getPackage());
    archive.addPackage(CommandSupport.class.getPackage());
    archive.addClass(VersionCleaner.class);
    archive.setManifest(new Asset() {

        public InputStream openStream() {
            OSGiManifestBuilder builder = OSGiManifestBuilder.newInstance();
            builder.addBundleSymbolicName(archive.getName());
            builder.addBundleManifestVersion(2);
            builder.addImportPackages(Bundle.class, Logger.class);
            builder.addImportPackages(AbstractCommand.class, Action.class, Function.class, Validatable.class);
            builder.addImportPackages(InvalidComponentException.class);
            builder.addImportPackage("org.apache.felix.service.command;status=provisional");
            return builder.openStream();
        }
    });
    // add the patch zip files as resource
    archive.add(createPatchZipFile(PATCH_ID), "/patches", ZipExporter.class);
    return archive;
}
Also used : Action(org.apache.felix.gogo.commands.Action) ServiceTracker(org.osgi.util.tracker.ServiceTracker) Bundle(org.osgi.framework.Bundle) AbstractCommand(org.apache.felix.gogo.commands.basic.AbstractCommand) Logger(org.slf4j.Logger) JavaArchive(org.jboss.shrinkwrap.api.spec.JavaArchive) Validatable(io.fabric8.api.scr.Validatable) Function(org.apache.felix.service.command.Function) InvalidComponentException(io.fabric8.api.InvalidComponentException) OSGiManifestBuilder(org.jboss.osgi.metadata.OSGiManifestBuilder) Asset(org.jboss.shrinkwrap.api.asset.Asset) CommandSupport(io.fabric8.itests.support.CommandSupport) Deployment(org.jboss.arquillian.container.test.api.Deployment)

Aggregations

OSGiManifestBuilder (org.jboss.osgi.metadata.OSGiManifestBuilder)26 Asset (org.jboss.shrinkwrap.api.asset.Asset)26 JavaArchive (org.jboss.shrinkwrap.api.spec.JavaArchive)26 InputStream (java.io.InputStream)25 Deployment (org.jboss.arquillian.container.test.api.Deployment)22 ServiceTracker (org.osgi.util.tracker.ServiceTracker)20 CommandSupport (io.fabric8.itests.support.CommandSupport)18 Logger (org.slf4j.Logger)17 FabricService (io.fabric8.api.FabricService)16 ServiceLocator (io.fabric8.api.gravia.ServiceLocator)16 Action (org.apache.felix.gogo.commands.Action)16 AbstractCommand (org.apache.felix.gogo.commands.basic.AbstractCommand)16 StartLevelAware (org.jboss.arquillian.osgi.StartLevelAware)16 ConfigurationAdmin (org.osgi.service.cm.ConfigurationAdmin)15 Validatable (io.fabric8.api.scr.Validatable)5 Bundle (org.osgi.framework.Bundle)5 Service (io.fabric8.patch.Service)3 PatchManagement (io.fabric8.patch.management.PatchManagement)3 ZooKeeperUtils (io.fabric8.zookeeper.utils.ZooKeeperUtils)3 ByteArrayInputStream (java.io.ByteArrayInputStream)3