Search in sources :

Example 21 with Manager

use of io.fabric8.dosgi.impl.Manager in project fabric8 by jboss-fuse.

the class AgentTest method testAgent.

@Test
public void testAgent() throws Exception {
    System.setProperty("karaf.data", new File("target/karaf/data").getAbsolutePath());
    System.setProperty("karaf.home", new File("target/karaf").getAbsolutePath());
    Dictionary<String, String> resolverProps = new Hashtable<>();
    resolverProps.put(ServiceConstants.PROPERTY_REPOSITORIES, "http://repository.jboss.org/nexus/content/repositories/fs-public/@id=jboss.fs.public," + "https://repository.jboss.org/nexus/content/groups/ea/@id=jboss.ea.repo," + "http://repo1.maven.org/maven2@id=maven.central.repo," + "http://download.eng.bos.redhat.com/brewroot/repos/jb-fuse-6.2-build/latest/maven@id=brew");
    MavenResolver mavenResolver = MavenResolvers.createMavenResolver(resolverProps, null);
    DownloadManager manager = DownloadManagers.createDownloadManager(mavenResolver, Executors.newScheduledThreadPool(8));
    BundleContext systemBundleContext = createMock(BundleContext.class);
    TestSystemBundle systemBundle = createTestSystemBundle("/common", "system-bundle");
    systemBundle.setBundleContext(systemBundleContext);
    Bundle serviceBundle = createTestBundle(1l, Bundle.ACTIVE, "/common", "fabric-agent");
    expect(systemBundleContext.getBundle()).andReturn(systemBundle).anyTimes();
    expect(systemBundleContext.getBundles()).andReturn(new Bundle[] { systemBundle }).anyTimes();
    long nextBundleId = 2;
    List<Bundle> mockBundles = new ArrayList<>();
    String karafVersion = System.getProperty("karaf-version");
    String[] bundles = { "mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.api/1.0.1", "mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.cm/1.1.0", "mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core/1.8.0", "mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.core.compatibility/1.0.0", "mvn:org.apache.aries.proxy/org.apache.aries.proxy/1.1.1", "mvn:org.apache.aries/org.apache.aries.util/1.1.3", "mvn:org.apache.felix/org.apache.felix.configadmin/1.8.12", "mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.command/" + karafVersion, "mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.config/" + karafVersion, "mvn:org.apache.karaf.jaas/org.apache.karaf.jaas.modules/" + karafVersion, "mvn:org.apache.karaf.shell/org.apache.karaf.shell.commands/" + karafVersion, "mvn:org.apache.karaf.shell/org.apache.karaf.shell.console/" + karafVersion, "mvn:org.apache.karaf.shell/org.apache.karaf.shell.dev/" + karafVersion, "mvn:org.apache.karaf.shell/org.apache.karaf.shell.log/" + karafVersion, "mvn:org.apache.karaf.shell/org.apache.karaf.shell.osgi/" + karafVersion, "mvn:org.apache.karaf.shell/org.apache.karaf.shell.packages/" + karafVersion, "mvn:org.apache.karaf.shell/org.apache.karaf.shell.ssh/" + karafVersion, "mvn:org.apache.mina/mina-core/2.0.13", "mvn:org.apache.sshd/sshd-core/0.14.0.redhat-001", "mvn:org.ow2.asm/asm-all/5.0.4", "mvn:org.ops4j.pax.logging/pax-logging-api/1.9.1", "mvn:org.ops4j.pax.logging/pax-logging-service/1.9.1" };
    for (String bundleUri : bundles) {
        File file = mavenResolver.download(bundleUri);
        Hashtable<String, String> headers = doGetMetadata(file);
        TestBundle bundle = new TestBundle(++nextBundleId, bundleUri, Bundle.INSTALLED, headers) {

            @Override
            public void setStartLevel(int startlevel) {
            }

            @Override
            public void start() throws BundleException {
            }
        };
        expect(systemBundleContext.installBundle(EasyMock.eq(bundleUri), EasyMock.<InputStream>anyObject())).andReturn(bundle);
    }
    ServiceRegistration registration = EasyMock.createMock(ServiceRegistration.class);
    expect(systemBundleContext.registerService(EasyMock.eq(ResolverHookFactory.class), EasyMock.<ResolverHookFactory>anyObject(), EasyMock.<Dictionary>isNull())).andReturn(registration);
    registration.unregister();
    replay(systemBundleContext, registration);
    for (Bundle bundle : mockBundles) {
        replay(bundle);
    }
    Agent agent = new Agent(serviceBundle, systemBundleContext, manager) {

        @Override
        protected <T> void awaitService(Class<T> serviceClass, String filterspec, int timeout, TimeUnit timeUnit) {
        }
    };
    String karafFeaturesUrl = "mvn:org.apache.karaf.assemblies.features/standard/" + System.getProperty("karaf-version") + "/xml/features";
    agent.provision(Collections.singleton(karafFeaturesUrl), Collections.singleton("ssh"), Collections.<String>emptySet(), Collections.<String>emptySet(), Collections.<String>emptySet(), new HashSet<>(Arrays.asList("mvn:org.ops4j.pax.logging/pax-logging-api/1.9.1", "mvn:org.ops4j.pax.logging/pax-logging-service/1.9.1", "mvn:org.apache.felix/org.apache.felix.configadmin/1.8.12")), Collections.<String, Map<VersionRange, Map<String, String>>>emptyMap());
}
Also used : ResolverHookFactory(org.osgi.framework.hooks.resolver.ResolverHookFactory) Bundle(org.osgi.framework.Bundle) VersionRange(org.apache.felix.utils.version.VersionRange) DownloadManager(io.fabric8.agent.download.DownloadManager) MavenResolver(io.fabric8.maven.MavenResolver) TimeUnit(java.util.concurrent.TimeUnit) BundleContext(org.osgi.framework.BundleContext) ServiceRegistration(org.osgi.framework.ServiceRegistration) Test(org.junit.Test)

Example 22 with Manager

use of io.fabric8.dosgi.impl.Manager in project fabric8 by jboss-fuse.

the class Activator method onConnected.

public void onConnected() {
    destroyManager();
    try {
        manager = new Manager(this.bundleContext, curator, uri, exportedAddress, timeout);
        manager.init();
    } catch (Exception e) {
        throw new RuntimeException("Unable to start DOSGi service: " + e.getMessage(), e);
    }
}
Also used : Manager(io.fabric8.dosgi.impl.Manager) IOException(java.io.IOException)

Aggregations

IOException (java.io.IOException)9 Downloader (io.fabric8.agent.download.Downloader)7 HashMap (java.util.HashMap)7 MultiException (io.fabric8.common.util.MultiException)6 StreamProvider (io.fabric8.agent.download.StreamProvider)5 Test (org.junit.Test)5 DownloadCallback (io.fabric8.agent.download.DownloadCallback)4 File (java.io.File)4 Bundle (org.osgi.framework.Bundle)4 DownloadManager (io.fabric8.agent.download.DownloadManager)3 BundleInfo (io.fabric8.agent.model.BundleInfo)3 Feature (io.fabric8.agent.model.Feature)3 Repository (io.fabric8.agent.model.Repository)3 FileInputStream (java.io.FileInputStream)3 MalformedURLException (java.net.MalformedURLException)3 Map (java.util.Map)3 Set (java.util.Set)3 MapUtils.addToMapSet (io.fabric8.agent.internal.MapUtils.addToMapSet)2 ConfigFile (io.fabric8.agent.model.ConfigFile)2 StaticRepository (io.fabric8.agent.repository.StaticRepository)2