Search in sources :

Example 1 with Factory

use of io.fabric8.annotations.Factory in project fabric8 by jboss-fuse.

the class FabricDiscovery method addingService.

@Override
public CuratorFramework addingService(ServiceReference<CuratorFramework> reference) {
    CuratorFramework curator = context.getService(reference);
    try {
        logger.debug("CuratorFramework found, starting group");
        GroupFactory factory = new ZooKeeperGroupFactory(curator);
        singleton = factory.createGroup("/fabric/registry/clusters/elasticsearch/" + clusterName.value(), ESNode.class);
        singleton.add(this);
        singleton.update(new ESNode(clusterName.value(), localNode, false));
        singleton.start();
    } catch (Exception e) {
        LOG.error("Error starting group", e);
    }
    return curator;
}
Also used : CuratorFramework(org.apache.curator.framework.CuratorFramework) GroupFactory(io.fabric8.groups.GroupFactory) ZooKeeperGroupFactory(io.fabric8.groups.internal.ZooKeeperGroupFactory) ZooKeeperGroupFactory(io.fabric8.groups.internal.ZooKeeperGroupFactory) ElasticsearchException(org.elasticsearch.ElasticsearchException) ElasticsearchIllegalStateException(org.elasticsearch.ElasticsearchIllegalStateException) IOException(java.io.IOException)

Example 2 with Factory

use of io.fabric8.annotations.Factory in project fabric8 by jboss-fuse.

the class ExtendedBurnIn method lotsOfClientLoad.

@Test
public void lotsOfClientLoad() throws Exception {
    startRestEndpoint();
    startHttpGateway();
    DetectingGateway gateway = startDetectingGateway();
    final ShutdownTracker tracker = new ShutdownTracker();
    // Run some concurrent load against the broker via the gateway...
    final StompJmsConnectionFactory factory = new StompJmsConnectionFactory();
    factory.setBrokerURI("tcp://localhost:" + gateway.getBoundPort());
    for (int client = 0; client < 10; client++) {
        new Thread("JMS Client: " + client) {

            @Override
            public void run() {
                while (tracker.attemptRetain()) {
                    try {
                        Connection connection = factory.createConnection();
                        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                        MessageConsumer consumer = session.createConsumer(session.createTopic("FOO"));
                        MessageProducer producer = session.createProducer(session.createTopic("FOO"));
                        producer.send(session.createTextMessage("Hello"));
                        consumer.receive(1000);
                        connection.close();
                    } catch (JMSException e) {
                        e.printStackTrace();
                    } finally {
                        tracker.release();
                    }
                }
            }
        }.start();
    }
    int httpPort = gateway.getBoundPort();
    final URL httpUrl = new URL("http://localhost:" + httpPort + "/hello/world");
    for (int client = 0; client < 10; client++) {
        new Thread("HTTP Client: " + client) {

            @Override
            public void run() {
                while (tracker.attemptRetain()) {
                    try {
                        InputStream is = httpUrl.openConnection().getInputStream();
                        try {
                            ByteArrayOutputStream baos = new ByteArrayOutputStream();
                            int c = 0;
                            while ((c = is.read()) >= 0) {
                                baos.write(c);
                            }
                            assertEquals("Hello World!", new String(baos.toByteArray()));
                        } finally {
                            is.close();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    } finally {
                        tracker.release();
                    }
                }
            }
        }.start();
    }
    MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
    // Lets monitor memory usage for 5 min..
    for (int i = 0; i < 60 * 5; i++) {
        Thread.sleep(900);
        Runtime.getRuntime().gc();
        Thread.sleep(100);
        long usedMB = ((Long) ((CompositeData) mBeanServer.getAttribute(new ObjectName("java.lang:type=Memory"), "HeapMemoryUsage")).get("used")).longValue() / (1024 * 1024);
        System.out.println("Using " + usedMB + " MB of heap.");
    }
    tracker.stop();
}
Also used : DetectingGateway(io.fabric8.gateway.handlers.detecting.DetectingGateway) InputStream(java.io.InputStream) CompositeData(javax.management.openmbean.CompositeData) ByteArrayOutputStream(java.io.ByteArrayOutputStream) URL(java.net.URL) ObjectName(javax.management.ObjectName) ShutdownTracker(io.fabric8.common.util.ShutdownTracker) StompJmsConnectionFactory(org.fusesource.stomp.jms.StompJmsConnectionFactory) MBeanServer(javax.management.MBeanServer) Test(org.junit.Test)

Example 3 with Factory

use of io.fabric8.annotations.Factory in project fabric8 by fabric8io.

the class Fabric8Extension method afterDiscovery.

public void afterDiscovery(@Observes final AfterBeanDiscovery event, BeanManager beanManager) {
    KubernetesHolder.useBeanManager(beanManager);
    // Only add the bean if no other bean is found.
    if (beanManager.getBeans(KubernetesClient.class).isEmpty()) {
        event.addBean(new KubernetesClientBean());
    }
    // We need to process factories in reverse order so that we make feasible forwarding for service id etc.
    List<FactoryMethodContext> reverseFactories = new ArrayList<>(FactoryMethodContext.sort(factories));
    Collections.reverse(reverseFactories);
    for (final FactoryMethodContext factoryMethodContext : reverseFactories) {
        ServiceBean.doWith(factoryMethodContext.getReturnType(), new ServiceBean.Callback() {

            @Override
            public ServiceBean apply(ServiceBean bean) {
                String serviceId = bean.getServiceName();
                String serviceProtocol = or(bean.getServiceProtocol(), getFactoryMethodProtocol(factoryMethodContext.getFactoryMethod().getJavaMember()));
                String servicePort = or(bean.getServicePort(), getFactoryMethodPort(factoryMethodContext.getFactoryMethod().getJavaMember()));
                String servicePath = or(bean.getServicePath(), getFactoryMethodPath(factoryMethodContext.getFactoryMethod().getJavaMember()));
                Boolean serviceExternal = bean.getServiceExternal();
                Boolean serviceEndpoint = bean.getServiceEndpoint();
                // Ensure that there is a factory String -> sourceType before adding producer.
                if (!String.class.equals(factoryMethodContext.getSourceType())) {
                    ServiceBean.getBean(serviceId, serviceProtocol, servicePort, servicePath, null, serviceEndpoint, serviceExternal, factoryMethodContext.getSourceType());
                }
                return bean.withProducer(new FactoryMethodProducer(factoryMethodContext.getBean(), factoryMethodContext.getFactoryMethod(), serviceId, serviceProtocol, servicePort, servicePath));
            }
        });
    }
    for (ServiceUrlBean bean : ServiceUrlBean.getBeans()) {
        event.addBean(bean);
    }
    for (ServiceUrlCollectionBean bean : ServiceUrlCollectionBean.getBeans()) {
        event.addBean(bean);
    }
    for (ServiceBean bean : ServiceBean.getBeans()) {
        if (bean.getProducer() != null) {
            event.addBean(bean);
        }
    }
    for (ConfigurationBean b : ConfigurationBean.getBeans()) {
        event.addBean(b);
    }
}
Also used : FactoryMethodProducer(io.fabric8.cdi.producers.FactoryMethodProducer) ConfigurationBean(io.fabric8.cdi.bean.ConfigurationBean) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) ArrayList(java.util.ArrayList) ServiceUrlCollectionBean(io.fabric8.cdi.bean.ServiceUrlCollectionBean) KubernetesClientBean(io.fabric8.cdi.bean.KubernetesClientBean) ServiceUrlBean(io.fabric8.cdi.bean.ServiceUrlBean) ServiceBean(io.fabric8.cdi.bean.ServiceBean)

Example 4 with Factory

use of io.fabric8.annotations.Factory in project fabric8 by fabric8io.

the class Fabric8Extension method onManagedBean.

public <X> void onManagedBean(@Observes final ProcessManagedBean<X> event) {
    for (final AnnotatedMethod<?> method : event.getAnnotatedBeanClass().getMethods()) {
        final Factory factory = method.getAnnotation(Factory.class);
        if (factory != null) {
            final Type sourceType = getSourceType(method);
            final Type returnType = method.getJavaMember().getReturnType();
            factories.add(new FactoryMethodContext(event.getBean(), sourceType, returnType, method));
        }
    }
}
Also used : AnnotatedType(javax.enterprise.inject.spi.AnnotatedType) ProcessAnnotatedType(javax.enterprise.inject.spi.ProcessAnnotatedType) ParameterizedType(java.lang.reflect.ParameterizedType) Type(java.lang.reflect.Type) Factory(io.fabric8.annotations.Factory)

Example 5 with Factory

use of io.fabric8.annotations.Factory in project docker-maven-plugin by fabric8io.

the class AuthConfigFactoryTest method containerSetup.

@Before
public void containerSetup() throws ComponentLookupException {
    final SecDispatcher secDispatcher = new MockSecDispatcher();
    new Expectations() {

        {
            container.lookup(SecDispatcher.ROLE, "maven");
            minTimes = 0;
            result = secDispatcher;
        }
    };
    factory = new AuthConfigFactory(container);
    factory.setLog(log);
    gsonBuilder = new GsonBuilder();
}
Also used : Expectations(mockit.Expectations) GsonBuilder(com.google.gson.GsonBuilder) SecDispatcher(org.sonatype.plexus.components.sec.dispatcher.SecDispatcher) AwsSdkAuthConfigFactory(io.fabric8.maven.docker.util.aws.AwsSdkAuthConfigFactory) Before(org.junit.Before)

Aggregations

IOException (java.io.IOException)3 ArrayList (java.util.ArrayList)2 AlluxioURI (alluxio.AlluxioURI)1 AlluxioException (alluxio.exception.AlluxioException)1 FileDoesNotExistException (alluxio.exception.FileDoesNotExistException)1 InvalidPathException (alluxio.exception.InvalidPathException)1 AlluxioStatusException (alluxio.exception.status.AlluxioStatusException)1 MountPOptions (alluxio.grpc.MountPOptions)1 ApplyMountPointRequest (alluxio.hub.proto.ApplyMountPointRequest)1 HDFSMountPointInfo (alluxio.hub.proto.HDFSMountPointInfo)1 MountPointInfo (alluxio.wire.MountPointInfo)1 GsonBuilder (com.google.gson.GsonBuilder)1 ByteString (com.google.protobuf.ByteString)1 DeploymentAgent.getPrefixedProperties (io.fabric8.agent.DeploymentAgent.getPrefixedProperties)1 DownloadManager (io.fabric8.agent.download.DownloadManager)1 BundleInfo (io.fabric8.agent.model.BundleInfo)1 ConfigFile (io.fabric8.agent.model.ConfigFile)1 Feature (io.fabric8.agent.model.Feature)1 Repository (io.fabric8.agent.model.Repository)1 Factory (io.fabric8.annotations.Factory)1