Package org.apache.openejb.config.sys

Examples of org.apache.openejb.config.sys.ServiceProvider


    public static String getServiceProviderId(final String type) throws OpenEJBException {
        return getServiceProviderId(type, null);
    }

    public static String getServiceProviderId(final String type, final Properties required) throws OpenEJBException {
        final ServiceProvider provider = getServiceProviderByType(type, required);

        return provider != null ? provider.getId() : null;
    }
View Full Code Here


    public static String getServiceProviderId(String type) throws OpenEJBException {
        return getServiceProviderId(type, null);
    }

    public static String getServiceProviderId(String type, Properties required) throws OpenEJBException {
        ServiceProvider provider = getServiceProviderByType(type, required);

        return provider != null? provider.getId(): null;
    }
View Full Code Here

            }


            String providerType = service.getClass().getSimpleName();

            ServiceProvider provider = resolveServiceProvider(service, infoType);

            if (provider == null){
                List<ServiceProvider> providers = ServiceUtils.getServiceProvidersByServiceType(providerType);
                StringBuilder sb = new StringBuilder();
//                for (ServiceProvider p : providers) {
//                    sb.append(System.getProperty("line.separator"));
//                    sb.append("  <").append(p.getService());
//                    sb.append(" id=\"").append(service.getId()).append('"');
//                    sb.append(" provider=\"").append(p.getId()).append("\"/>");
//                }

                List<String> types = new ArrayList<String>();
                for (ServiceProvider p : providers) {
                    for (String type : p.getTypes()) {
                        if (types.contains(type)) continue;
                        types.add(type);
                        sb.append(System.getProperty("line.separator"));
                        sb.append("  <").append(p.getService());
                        sb.append(" id=\"").append(service.getId()).append('"');
                        sb.append(" type=\"").append(type).append("\"/>");
                    }
                }
                String noProviderMessage = messages.format("configureService.noProviderForService", providerType, service.getId(), service.getType(), service.getProvider(), sb.toString());
                throw new NoSuchProviderException(noProviderMessage);
            }

            if (service.getId() == null) service.setId(provider.getId());

            logger.info("configureService.configuring", service.getId(), provider.getService(), provider.getId());

            Properties props = new SuperProperties();
            props.putAll(provider.getProperties());
            props.putAll(service.getProperties());
            props.putAll(getSystemProperties(service.getId(), provider.getService()));

            if (providerType != null && !provider.getService().equals(providerType)) {
                throw new OpenEJBException(messages.format("configureService.wrongProviderType", service.getId(), providerType));
            }

            T info;

            try {
                info = infoType.newInstance();
            } catch (Exception e) {
                throw new OpenEJBException("Cannot instantiate class " + infoType.getName(), e);
            }

            info.service = provider.getService();
            info.types.addAll(provider.getTypes());
            info.description = provider.getDescription();
            info.displayName = provider.getDisplayName();
            info.className = provider.getClassName();
            info.factoryMethod = provider.getFactoryName();
            info.id = service.getId();
            info.properties = props;
            info.constructorArgs.addAll(parseConstructorArgs(provider));

            specialProcessing(info);
View Full Code Here

            final ResourceAdapter resourceAdapter = connector.getResourceAdapter();
            if (resourceAdapter.getResourceAdapterClass() != null) {
                final String id = this.getId(connectorModule);
                final String className = resourceAdapter.getResourceAdapterClass();

                final ServiceProvider provider = new ServiceProvider(className, id, "Resource");
                provider.getTypes().add(className);

                ServiceUtils.registerServiceProvider(appId, provider);

                final Resource resource = new Resource(id, className, appId + "#" + id);

                for (final ConfigProperty property : resourceAdapter.getConfigProperty()) {
                    final String name = property.getConfigPropertyName();
                    final String value = property.getConfigPropertyValue();
                    if (value != null) {
                        resource.getProperties().setProperty(name, value);
                    }
                }
                connectorInfo.resourceAdapter = this.configFactory.configureService(resource, ResourceInfo.class);
            }

            final OutboundResourceAdapter outbound = resourceAdapter.getOutboundResourceAdapter();
            if (outbound != null) {
                String transactionSupport = "none";
                switch (outbound.getTransactionSupport()) {
                    case LOCAL_TRANSACTION:
                        transactionSupport = "local";
                        break;
                    case NO_TRANSACTION:
                        transactionSupport = "none";
                        break;
                    case XA_TRANSACTION:
                        transactionSupport = "xa";
                        break;
                }
                for (final ConnectionDefinition connection : outbound.getConnectionDefinition()) {

                    final String id = this.getId(connection, outbound, connectorModule);
                    final String className = connection.getManagedConnectionFactoryClass();
                    final String type = connection.getConnectionFactoryInterface();

                    final ServiceProvider provider = new ServiceProvider(className, id, "Resource");
                    provider.getTypes().add(type);

                    ServiceUtils.registerServiceProvider(appId, provider);

                    final Resource resource = new Resource(id, type, appId + "#" + id);
                    final Properties properties = resource.getProperties();
                    for (final ConfigProperty property : connection.getConfigProperty()) {
                        final String name = property.getConfigPropertyName();
                        final String value = property.getConfigPropertyValue();
                        if (value != null) {
                            properties.setProperty(name, value);
                        }
                    }
                    properties.setProperty("TransactionSupport", transactionSupport);
                    if (connectorInfo.resourceAdapter != null) {
                        properties.setProperty("ResourceAdapter", connectorInfo.resourceAdapter.id);
                    }

                    final ResourceInfo resourceInfo = this.configFactory.configureService(resource, ResourceInfo.class);
                    connectorInfo.outbound.add(resourceInfo);
                }
            }

            final InboundResourceadapter inbound = resourceAdapter.getInboundResourceAdapter();
            if (inbound != null) {
                for (final MessageListener messageListener : inbound.getMessageAdapter().getMessageListener()) {
                    final String id = this.getId(messageListener, inbound, connectorModule);

                    final Container container = new Container(id, "MESSAGE", null);

                    final Properties properties = container.getProperties();
                    properties.setProperty("ResourceAdapter", connectorInfo.resourceAdapter.id);
                    properties.setProperty("MessageListenerInterface", messageListener.getMessageListenerType());
                    properties.setProperty("ActivationSpecClass", messageListener.getActivationSpec().getActivationSpecClass());

                    final MdbContainerInfo mdbContainerInfo = this.configFactory.configureService(container, MdbContainerInfo.class);
                    connectorInfo.inbound.add(mdbContainerInfo);
                }
            }

            for (final AdminObject adminObject : resourceAdapter.getAdminObject()) {

                final String id = this.getId(adminObject, resourceAdapter, connectorModule);
                final String className = adminObject.getAdminObjectClass();
                final String type = adminObject.getAdminObjectInterface();

                final ServiceProvider provider = new ServiceProvider(className, id, "Resource");
                provider.getTypes().add(type);

                ServiceUtils.registerServiceProvider(appId, provider);

                final Resource resource = new Resource(id, type, appId + "#" + id);
                final Properties properties = resource.getProperties();
View Full Code Here

                }
            }

            final String providerType = getProviderType(service);

            final ServiceProvider provider = resolveServiceProvider(service, infoType);

            if (provider == null) {
                final List<ServiceProvider> providers = ServiceUtils.getServiceProvidersByServiceType(providerType);
                final StringBuilder sb = new StringBuilder();
                final List<String> types = new ArrayList<String>();
                for (final ServiceProvider p : providers) {
                    for (final String type : p.getTypes()) {
                        if (types.contains(type)) {
                            continue;
                        }
                        types.add(type);
                        sb.append(System.getProperty("line.separator"));
                        sb.append("  <").append(p.getService());
                        sb.append(" id=\"").append(service.getId()).append('"');
                        sb.append(" type=\"").append(type).append("\"/>");
                    }
                }
                final String noProviderMessage = messages.format("configureService.noProviderForService", providerType, service.getId(), service.getType(), service.getProvider(), sb.toString());
                throw new NoSuchProviderException(noProviderMessage);
            }

            if (service.getId() == null) {
                service.setId(provider.getId());
            }

            final Properties overrides = trim(getSystemProperties(overrideKey(service), provider.getService()));

            final Properties serviceProperties = service.getProperties();

            trim(serviceProperties);

            trim(provider.getProperties());

            logger.info("configureService.configuring", service.getId(), provider.getService(), provider.getId());

            if (logger.isDebugEnabled()) {
                for (final Map.Entry<Object, Object> entry : serviceProperties.entrySet()) {
                    final Object key = entry.getKey();
                    Object value = entry.getValue();

                    if (key instanceof String && "password".equalsIgnoreCase((String) key)) {
                        value = "<hidden>";
                    }

                    logger.debug("[" + key + "=" + value + "]");
                }

                for (final Map.Entry<Object, Object> entry : overrides.entrySet()) {
                    final Object key = entry.getKey();
                    Object value = entry.getValue();

                    if (key instanceof String && "password".equalsIgnoreCase((String) key)) {
                        value = "<hidden>";
                    }

                    logger.debug("Override [" + key + "=" + value + "]");
                }
            }

            final Properties props = new SuperProperties().caseInsensitive(true);

            // weird hack but sometimes we don't want default values when we want null for instance
            if (serviceProperties == null || "false".equals(serviceProperties.getProperty(IGNORE_DEFAULT_VALUES_PROP, "false"))) {
                props.putAll(provider.getProperties());
            }

            props.putAll(serviceProperties);
            props.putAll(overrides);

            props.remove(IGNORE_DEFAULT_VALUES_PROP);

            if (providerType != null && !provider.getService().equals(providerType)) {
                throw new OpenEJBException(messages.format("configureService.wrongProviderType", service.getId(), providerType));
            }

            final T info;
            try {
                info = infoType.newInstance();
            } catch (final Exception e) {
                throw new OpenEJBException(messages.format("configureService.cannotInstantiateClass", infoType.getName()), e);
            }

            info.service = provider.getService();
            info.types.addAll(provider.getTypes());
            info.description = provider.getDescription();
            info.displayName = provider.getDisplayName();
            info.className = provider.getClassName();
            info.factoryMethod = provider.getFactoryName();
            info.id = service.getId();
            info.properties = props;
            info.constructorArgs.addAll(parseConstructorArgs(provider));
            if (info instanceof ResourceInfo && service instanceof Resource) {
                ((ResourceInfo) info).jndiName = ((Resource) service).getJndi();
View Full Code Here

        if (service.getClassName() != null) {
            if (service.getType() == null) {
                service.setType(service.getClassName());
            }

            final ServiceProvider provider = new ServiceProvider();
            provider.setId(service.getId());
            provider.setService(getProviderType(service));
            provider.getTypes().add(service.getType());
            provider.setClassName(service.getClassName());
            provider.setConstructor(service.getConstructor());
            provider.setFactoryName(service.getFactoryName());
            return provider;
        }

        if (service.getProvider() != null) {
            return ServiceUtils.getServiceProvider(service.getProvider());
View Full Code Here

                return null;
            }
        });

        { // Add Color
            final ServiceProvider color = new ServiceProvider(Color.class, "Color", "Resource");
            color.getProperties().setProperty("red", "0");
            color.getProperties().setProperty("green", "0");
            color.getProperties().setProperty("blue", "0");
            manager.register("default", color);
        }

        { // Assert Color
            // Must be able to retrieve provider and properties in a case-insensitive manner
            final ServiceProvider provider = manager.get("DeFaulT", "CoLoR");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("0", provider.getProperties().getProperty("rEd"));
            assertEquals("0", provider.getProperties().get("grEEn"));
            assertEquals("0", provider.getProperties().get("blUE"));
        }

        { // Add Red
            final ServiceProvider red = new ServiceProvider();
            red.setId("Red");
            red.setParent("Color");
            red.getProperties().setProperty("red", "255");
            manager.register("default", red);
        }

        { // Assert Red

            // Should have inherited green and blue values from Color

            final ServiceProvider provider = manager.get("dEFaulT", "REd");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("255", provider.getProperties().getProperty("rED"));
            assertEquals("0", provider.getProperties().get("grEEN"));
            assertEquals("0", provider.getProperties().get("bLUe"));
        }


        { // Add Orange
            final ServiceProvider orange = new ServiceProvider();
            orange.setId("Orange");
            orange.setParent("Red");
            orange.getProperties().setProperty("green", "200");
            manager.register("default", orange);
        }

        { // Assert Orange

            // Should have inherited from Red

            final ServiceProvider provider = manager.get("dEFAUlT", "orAngE");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("255", provider.getProperties().getProperty("reD"));
            assertEquals("200", provider.getProperties().get("grEeN"));
            assertEquals("0", provider.getProperties().get("bLue"));
        }
    }
View Full Code Here

        final ProviderManager manager = new ProviderManager(new ProviderLoader() {
            @Override
            public ServiceProvider load(final ID id) {
                if ("color".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider color = new ServiceProvider(Color.class, "Color", "Resource");
                    color.getProperties().setProperty("red", "0");
                    color.getProperties().setProperty("green", "0");
                    color.getProperties().setProperty("blue", "0");
                    return color;
                }

                if ("red".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider red = new ServiceProvider();
                    red.setId("Red");
                    red.setParent("Color");
                    red.getProperties().setProperty("red", "255");
                    return red;
                }

                if ("orange".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider orange = new ServiceProvider();
                    orange.setId("Orange");
                    orange.setParent("Red");
                    orange.getProperties().setProperty("green", "200");
                    return orange;
                }

                throw new IllegalStateException(id.toString());
            }

            @Override
            public List<ServiceProvider> load(final String namespace) {
                return null;
            }
        });

        assertEquals(0, manager.getAll().size());

        { // Assert Orange

            // Should have inherited from Red

            final ServiceProvider provider = manager.get("dEFAUlT", "orAngE");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("255", provider.getProperties().getProperty("reD"));
            assertEquals("200", provider.getProperties().get("grEeN"));
            assertEquals("0", provider.getProperties().get("bLue"));
        }

        { // Assert Red

            // Should have inherited green and blue values from Color

            final ServiceProvider provider = manager.get("dEFaulT", "REd");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("255", provider.getProperties().getProperty("rED"));
            assertEquals("0", provider.getProperties().get("grEEN"));
            assertEquals("0", provider.getProperties().get("bLUe"));
        }

        { // Assert Color
            // Must be able to retrieve provider and properties in a case-insensitive manner

            final ServiceProvider provider = manager.get("DeFaulT", "CoLoR");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("0", provider.getProperties().getProperty("rEd"));
            assertEquals("0", provider.getProperties().get("grEEn"));
            assertEquals("0", provider.getProperties().get("blUE"));
        }

        assertEquals(3, manager.getAll().size());
    }
View Full Code Here

        final ProviderManager manager = new ProviderManager(new ProviderLoader() {
            @Override
            public ServiceProvider load(final ID id) {
                if ("color".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider color = new ServiceProvider(Color.class, "Color", "Resource");
                    color.getProperties().setProperty("red", "0");
                    color.getProperties().setProperty("green", "0");
                    color.getProperties().setProperty("blue", "0");
                    return color;
                }

                if ("red".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider red = new ServiceProvider();
                    red.setId("Red");
                    red.setParent("Color");
                    red.getProperties().setProperty("red", "255");
                    return red;
                }

                if ("orange".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider orange = new ServiceProvider();
                    orange.setId("Orange");
                    orange.setParent("Red");
                    orange.getProperties().setProperty("green", "200");
                    return orange;
                }

                throw new IllegalStateException(id.toString());
            }

            @Override
            public List<ServiceProvider> load(final String namespace) {
                final List<ServiceProvider> list = new ArrayList<ServiceProvider>();
                list.add(load(new ID(namespace, "color")));
                list.add(load(new ID(namespace, "red")));
                list.add(load(new ID(namespace, "orange")));
                return list;
            }
        });

        assertEquals(0, manager.getAll().size());

        manager.get("default", "Color");

        assertEquals(1, manager.getAll().size());

        manager.load("default");

        assertEquals(3, manager.getAll().size());

        { // Assert Orange

            // Should have inherited from Red

            final ServiceProvider provider = manager.get("dEFAUlT", "orAngE");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("255", provider.getProperties().getProperty("reD"));
            assertEquals("200", provider.getProperties().get("grEeN"));
            assertEquals("0", provider.getProperties().get("bLue"));
        }

        { // Assert Red

            // Should have inherited green and blue values from Color

            final ServiceProvider provider = manager.get("dEFaulT", "REd");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("255", provider.getProperties().getProperty("rED"));
            assertEquals("0", provider.getProperties().get("grEEN"));
            assertEquals("0", provider.getProperties().get("bLUe"));
        }

        { // Assert Color
            // Must be able to retrieve provider and properties in a case-insensitive manner

            final ServiceProvider provider = manager.get("DeFaulT", "CoLoR");
            assertNotNull(provider);
            assertEquals(Color.class.getName(), provider.getClassName());
            assertEquals("0", provider.getProperties().getProperty("rEd"));
            assertEquals("0", provider.getProperties().get("grEEn"));
            assertEquals("0", provider.getProperties().get("blUE"));
        }

        assertEquals(3, manager.getAll().size());
    }
View Full Code Here

        final ProviderManager manager = new ProviderManager(new ProviderLoader() {
            @Override
            public ServiceProvider load(final ID id) {
                if ("color".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider color = new ServiceProvider(Color.class, "Color", "Resource");
                    color.setParent("Orange");
                    color.getProperties().setProperty("red", "0");
                    color.getProperties().setProperty("green", "0");
                    color.getProperties().setProperty("blue", "0");
                    return color;
                }

                if ("red".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider red = new ServiceProvider();
                    red.setId("Red");
                    red.setParent("Color");
                    red.getProperties().setProperty("red", "255");
                    return red;
                }

                if ("orange".equalsIgnoreCase(id.getName())) {
                    final ServiceProvider orange = new ServiceProvider();
                    orange.setId("Orange");
                    orange.setParent("Red");
                    orange.getProperties().setProperty("green", "200");
                    return orange;
                }

                throw new IllegalStateException(id.toString());
            }
View Full Code Here

TOP

Related Classes of org.apache.openejb.config.sys.ServiceProvider

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.