public JBossLoadTimeWeaver() { if (VersionProvider.VERSION.compareTo(Version.AS_7) >= 0) { this.delegateLoadTimeWeaver = new JBossModulesLoadTimeWeaver(); } else { throw new IllegalStateException("Cannot initialize delegate: JBoss version not recognized"); } }
/** * Get jndi name for bean factory. * Simple check for null or empty string is applied. * You can override this in subclasses for any extra * jndi name handling. * * @param jndiName the current jndi name * @return jndiName parameter */ protected String getJndiName(String jndiName) { if (jndiName == null || jndiName.length() == 0) { throw new IllegalArgumentException("Empty BeanFactory jndi name."); } // On JBoss AS 7, custom bindings can be created only under java:/jboss // so this is what the deployer does // Append the prefix if the path is relative - should allow deployments that // worked in JBoss AS 5/6 to be portable in JBoss AS 7 if (VersionProvider.VERSION.compareTo(Version.AS_7) >= 0 && !jndiName.startsWith("java:")) { jndiName = "java:jboss/" + jndiName; } return jndiName; }
public void activate(ServiceActivatorContext serviceActivatorContext) throws ServiceRegistryException { ServiceTarget serviceTarget = serviceActivatorContext.getServiceTarget(); ModuleClassLoader moduleClassLoader = (ModuleClassLoader) getClass().getClassLoader(); ModuleIdentifier moduleIdentifier = moduleClassLoader.getModule().getIdentifier(); String moduleName = moduleIdentifier.getName(); String moduleSlot = moduleIdentifier.getSlot(); ServiceName serviceIdentifier; if (VersionProvider.VERSION.compareTo(Version.AS_7_1) >= 0) { serviceIdentifier = ServiceName.of("jboss", "ra", "hornetq-ra"); } else { serviceIdentifier = ServiceName.of("hornetq-ra"); } JcaResourceAdapterService service = new JcaResourceAdapterService(); ServiceName serviceName = ServiceName.JBOSS.append(moduleName, moduleSlot, "ResourceAdapter"); serviceTarget.addService(serviceName, service) .addDependency(serviceIdentifier, ResourceAdapter.class, service.getResourceAdapterValue()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); }