Search in sources :

Example 1 with ResourceAdapterRepository

use of org.jboss.jca.core.spi.rar.ResourceAdapterRepository in project wildfly by wildfly.

the class EJBUtilities method createActivationSpecs.

public ActivationSpec createActivationSpecs(final String resourceAdapterName, final Class<?> messageListenerInterface, final Properties activationConfigProperties, final ClassLoader classLoader) {
    try {
        // first get the ra "identifier" (with which it is registered in the resource adapter repository) for the
        // ra name
        final String raIdentifier = ConnectorServices.getRegisteredResourceAdapterIdentifier(resourceAdapterName);
        if (raIdentifier == null) {
            throw EjbLogger.ROOT_LOGGER.unknownResourceAdapter(resourceAdapterName);
        }
        final ResourceAdapterRepository resourceAdapterRepository = getResourceAdapterRepository();
        if (resourceAdapterRepository == null) {
            throw EjbLogger.ROOT_LOGGER.resourceAdapterRepositoryUnAvailable();
        }
        // now get the message listeners for this specific ra identifier
        final List<MessageListener> messageListeners = resourceAdapterRepository.getMessageListeners(raIdentifier);
        if (messageListeners == null || messageListeners.isEmpty()) {
            throw EjbLogger.ROOT_LOGGER.unknownMessageListenerType(messageListenerInterface.getName(), resourceAdapterName);
        }
        MessageListener requiredMessageListener = null;
        // now find the expected message listener from the list of message listeners for this resource adapter
        for (final MessageListener messageListener : messageListeners) {
            if (messageListenerInterface.equals(messageListener.getType())) {
                requiredMessageListener = messageListener;
                break;
            }
        }
        if (requiredMessageListener == null) {
            throw EjbLogger.ROOT_LOGGER.unknownMessageListenerType(messageListenerInterface.getName(), resourceAdapterName);
        }
        // found the message listener, now finally create the activation spec
        final Activation activation = requiredMessageListener.getActivation();
        // filter out the activation config properties, specified on the MDB, which aren't accepted by the resource
        // adaptor
        final Properties validActivationConfigProps = this.filterUnknownActivationConfigProperties(resourceAdapterName, activation, activationConfigProperties);
        // now set the activation config properties on the ActivationSpec
        final ActivationSpec activationSpec = activation.createInstance();
        BeanUtils.mapJavaBeanProperties(activationSpec, validActivationConfigProps);
        return activationSpec;
    } catch (IllegalAccessException e) {
        throw new RuntimeException(e);
    } catch (ResourceException e) {
        throw new RuntimeException(e);
    } catch (InstantiationException e) {
        throw new RuntimeException(e);
    } catch (NotFoundException e) {
        throw new RuntimeException(e);
    } catch (IntrospectionException e) {
        throw new RuntimeException(e);
    }
}
Also used : MessageListener(org.jboss.jca.core.spi.rar.MessageListener) IntrospectionException(java.beans.IntrospectionException) NotFoundException(org.jboss.jca.core.spi.rar.NotFoundException) Activation(org.jboss.jca.core.spi.rar.Activation) Properties(java.util.Properties) ActivationSpec(javax.resource.spi.ActivationSpec) ResourceAdapterRepository(org.jboss.jca.core.spi.rar.ResourceAdapterRepository) ResourceException(javax.resource.ResourceException)

Example 2 with ResourceAdapterRepository

use of org.jboss.jca.core.spi.rar.ResourceAdapterRepository in project wildfly by wildfly.

the class MessageDrivenComponentCreateService method createActivationSpecs.

private ActivationSpec createActivationSpecs(final String resourceAdapterName, final Class<?> messageListenerInterface, final Properties activationConfigProperties, final ClassLoader classLoader) {
    try {
        // first get the ra "identifier" (with which it is registered in the resource adapter repository) for the
        // ra name
        final String raIdentifier = ConnectorServices.getRegisteredResourceAdapterIdentifier(resourceAdapterName);
        if (raIdentifier == null) {
            throw EjbLogger.ROOT_LOGGER.unknownResourceAdapter(resourceAdapterName);
        }
        final ResourceAdapterRepository resourceAdapterRepository = resourceAdapterRepositoryInjectedValue.getValue();
        if (resourceAdapterRepository == null) {
            throw EjbLogger.ROOT_LOGGER.resourceAdapterRepositoryUnAvailable();
        }
        // now get the message listeners for this specific ra identifier
        final List<MessageListener> messageListeners = resourceAdapterRepository.getMessageListeners(raIdentifier);
        if (messageListeners == null || messageListeners.isEmpty()) {
            throw EjbLogger.ROOT_LOGGER.unknownMessageListenerType(messageListenerInterface.getName(), resourceAdapterName);
        }
        MessageListener requiredMessageListener = null;
        // now find the expected message listener from the list of message listeners for this resource adapter
        for (final MessageListener messageListener : messageListeners) {
            if (messageListenerInterface.equals(messageListener.getType())) {
                requiredMessageListener = messageListener;
                break;
            }
        }
        if (requiredMessageListener == null) {
            throw EjbLogger.ROOT_LOGGER.unknownMessageListenerType(messageListenerInterface.getName(), resourceAdapterName);
        }
        // found the message listener, now finally create the activation spec
        final Activation activation = requiredMessageListener.getActivation();
        // filter out the activation config properties, specified on the MDB, which aren't accepted by the resource
        // adaptor
        final Properties validActivationConfigProps = this.filterUnknownActivationConfigProperties(resourceAdapterName, activation, activationConfigProperties);
        // now set the activation config properties on the ActivationSpec
        final ActivationSpec activationSpec = activation.createInstance();
        BeanUtils.mapJavaBeanProperties(activationSpec, validActivationConfigProps);
        return activationSpec;
    } catch (IllegalAccessException e) {
        throw new RuntimeException(e);
    } catch (ResourceException e) {
        throw new RuntimeException(e);
    } catch (InstantiationException e) {
        throw new RuntimeException(e);
    } catch (NotFoundException e) {
        throw new RuntimeException(e);
    } catch (IntrospectionException e) {
        throw new RuntimeException(e);
    }
}
Also used : MessageListener(org.jboss.jca.core.spi.rar.MessageListener) IntrospectionException(java.beans.IntrospectionException) NotFoundException(org.jboss.jca.core.spi.rar.NotFoundException) Activation(org.jboss.jca.core.spi.rar.Activation) Properties(java.util.Properties) ActivationSpec(javax.resource.spi.ActivationSpec) ResourceAdapterRepository(org.jboss.jca.core.spi.rar.ResourceAdapterRepository) ResourceException(javax.resource.ResourceException)

Example 3 with ResourceAdapterRepository

use of org.jboss.jca.core.spi.rar.ResourceAdapterRepository in project wildfly by wildfly.

the class NoRaAnnoTestCase method testActivation.

/**
 * Test activation
 *
 * @param clazz class name
 * @throws Throwable Thrown if case of an error
 */
public void testActivation(Class clazz) throws Throwable {
    ServiceController<?> controller = serviceContainer.getService(ConnectorServices.RA_REPOSITORY_SERVICE);
    assertNotNull(controller);
    ResourceAdapterRepository raRepository = (ResourceAdapterRepository) controller.getValue();
    Set<String> ids = raRepository.getResourceAdapters(clazz);
    assertNotNull(ids);
    assertEquals(1, ids.size());
    String piId = ids.iterator().next();
    assertNotNull(piId);
    Endpoint endpoint = raRepository.getEndpoint(piId);
    assertNotNull(endpoint);
    List<MessageListener> listeners = raRepository.getMessageListeners(piId);
    assertNotNull(listeners);
    assertEquals(2, listeners.size());
    MessageListener listener = listeners.get(0);
    MessageListener listener1 = listeners.get(1);
    ActivationSpec as = listener.getActivation().createInstance();
    ActivationSpec as1 = listener1.getActivation().createInstance();
    assertNotNull(as);
    assertNotNull(as.getResourceAdapter());
    assertNotNull(as1);
    assertNotNull(as1.getResourceAdapter());
    AnnoActivationSpec tas = (AnnoActivationSpec) as;
    log.trace("AS:" + tas + "//1//" + tas.getFirst() + "//2//" + tas.getSecond());
    assertEquals(new Character('C'), tas.getFirst());
    assertEquals(new Double(0.5), tas.getSecond());
    assertTrue(tas.getResourceAdapter() instanceof AnnoResourceAdapter);
    AnnoResourceAdapter tra = (AnnoResourceAdapter) tas.getResourceAdapter();
    log.trace("RA:" + tra + "//1//" + tra.getFirst() + "//2//" + tra.getSecond());
    assertEquals("A", tra.getFirst());
    assertEquals(new Integer(5), tra.getSecond());
}
Also used : AnnoActivationSpec(org.jboss.as.test.integration.jca.annorar.AnnoActivationSpec) AnnoMessageListener(org.jboss.as.test.integration.jca.annorar.AnnoMessageListener) MessageListener(org.jboss.jca.core.spi.rar.MessageListener) Endpoint(org.jboss.jca.core.spi.rar.Endpoint) AnnoResourceAdapter(org.jboss.as.test.integration.jca.annorar.AnnoResourceAdapter) AnnoActivationSpec(org.jboss.as.test.integration.jca.annorar.AnnoActivationSpec) ActivationSpec(javax.resource.spi.ActivationSpec) ResourceAdapterRepository(org.jboss.jca.core.spi.rar.ResourceAdapterRepository)

Example 4 with ResourceAdapterRepository

use of org.jboss.jca.core.spi.rar.ResourceAdapterRepository in project wildfly by wildfly.

the class ActivationNameTestCase method testSimpleResourceAdapterAvailability.

@Test
public void testSimpleResourceAdapterAvailability() throws Exception {
    ServiceController<?> controller = serviceContainer.getService(ConnectorServices.RA_REPOSITORY_SERVICE);
    assertNotNull(controller);
    ResourceAdapterRepository repository = (ResourceAdapterRepository) controller.getValue();
    assertNotNull(repository);
    Set<String> ids = repository.getResourceAdapters(SimpleListener.class);
    assertNotNull(ids);
    assertEquals(1, ids.size());
    String piId = ids.iterator().next();
    assertTrue(piId.indexOf("SimpleResourceAdapter") != -1);
    Endpoint endpoint = repository.getEndpoint(piId);
    assertNotNull(endpoint);
}
Also used : Endpoint(org.jboss.jca.core.spi.rar.Endpoint) ResourceAdapterRepository(org.jboss.jca.core.spi.rar.ResourceAdapterRepository) Test(org.junit.Test)

Example 5 with ResourceAdapterRepository

use of org.jboss.jca.core.spi.rar.ResourceAdapterRepository in project wildfly by wildfly.

the class InflowTestCase method testRegistryConfiguration.

/**
 * Test configuration
 *
 * @throws Throwable Thrown if case of an error
 */
@Test
public void testRegistryConfiguration() throws Throwable {
    ServiceController<?> controller = serviceContainer.getService(ConnectorServices.RA_REPOSITORY_SERVICE);
    assertNotNull(controller);
    ResourceAdapterRepository repository = (ResourceAdapterRepository) controller.getValue();
    assertNotNull(repository);
    Set<String> ids = repository.getResourceAdapters(javax.jms.MessageListener.class);
    assertNotNull(ids);
    int pureInflowListener = 0;
    for (String id : ids) {
        if (id.indexOf("PureInflow") != -1) {
            pureInflowListener++;
        }
    }
    assertEquals(1, pureInflowListener);
    String piId = ids.iterator().next();
    assertNotNull(piId);
    Endpoint endpoint = repository.getEndpoint(piId);
    assertNotNull(endpoint);
    List<MessageListener> listeners = repository.getMessageListeners(piId);
    assertNotNull(listeners);
    assertEquals(1, listeners.size());
    MessageListener listener = listeners.get(0);
    ActivationSpec as = listener.getActivation().createInstance();
    assertNotNull(as);
    assertNotNull(as.getResourceAdapter());
}
Also used : Endpoint(org.jboss.jca.core.spi.rar.Endpoint) ActivationSpec(javax.resource.spi.ActivationSpec) MessageListener(org.jboss.jca.core.spi.rar.MessageListener) ResourceAdapterRepository(org.jboss.jca.core.spi.rar.ResourceAdapterRepository) Endpoint(org.jboss.jca.core.spi.rar.Endpoint) Test(org.junit.Test)

Aggregations

ResourceAdapterRepository (org.jboss.jca.core.spi.rar.ResourceAdapterRepository)13 ActivationSpec (javax.resource.spi.ActivationSpec)9 MessageListener (org.jboss.jca.core.spi.rar.MessageListener)9 Endpoint (org.jboss.jca.core.spi.rar.Endpoint)8 Test (org.junit.Test)7 NotFoundException (org.jboss.jca.core.spi.rar.NotFoundException)4 IntrospectionException (java.beans.IntrospectionException)2 Properties (java.util.Properties)2 ResourceException (javax.resource.ResourceException)2 AnnoActivationSpec (org.jboss.as.test.integration.jca.annorar.AnnoActivationSpec)2 AnnoMessageListener (org.jboss.as.test.integration.jca.annorar.AnnoMessageListener)2 AnnoResourceAdapter (org.jboss.as.test.integration.jca.annorar.AnnoResourceAdapter)2 ValidActivationSpec (org.jboss.as.test.integration.jca.beanvalidation.ra.ValidActivationSpec)2 ValidMessageEndpoint (org.jboss.as.test.integration.jca.beanvalidation.ra.ValidMessageEndpoint)2 ValidMessageEndpointFactory (org.jboss.as.test.integration.jca.beanvalidation.ra.ValidMessageEndpointFactory)2 Activation (org.jboss.jca.core.spi.rar.Activation)2