@Override public void addResource(final ContextResource ref) { normalize(ref); super.addResource(ref); if (isTomcatResource) { pushResourceToAddInOpenEJB(ref); } }
public OpenEJBNamingResource(final NamingResourcesImpl namingResources) { if (namingResources != null) { isTomcatResource = true; for (final ContextResource resource : namingResources.findResources()) { addResource(resource); } for (final ContextResourceEnvRef resource : namingResources.findResourceEnvRefs()) { addResourceEnvRef(resource); } for (final ContextEjb ejb : namingResources.findEjbs()) { addEjb(ejb); } for (final ContextLocalEjb ejb : namingResources.findLocalEjbs()) { addLocalEjb(ejb); } for (final ContextResourceLink link : namingResources.findResourceLinks()) { addResourceLink(link); } for (final ContextService service : namingResources.findServices()) { addService(service); } for (final MessageDestinationRef ref : namingResources.findMessageDestinationRefs()) { addMessageDestinationRef(ref); } for (final ContextEnvironment env : namingResources.findEnvironments()) { addEnvironment(env); } isTomcatResource = false; } }
@Override public void addEnvironment(final ContextEnvironment environment) { normalize(environment); super.addEnvironment(environment); }
private Map<String, Map<String, String>> buildInjectionMap(NamingResourcesImpl namingResources) { Map<String, Map<String, String>> injectionMap = new HashMap<>(); for (Injectable resource: namingResources.findLocalEjbs()) { addInjectionTarget(resource, injectionMap); } for (Injectable resource: namingResources.findEjbs()) { addInjectionTarget(resource, injectionMap); } for (Injectable resource: namingResources.findEnvironments()) { addInjectionTarget(resource, injectionMap); } for (Injectable resource: namingResources.findMessageDestinationRefs()) { addInjectionTarget(resource, injectionMap); } for (Injectable resource: namingResources.findResourceEnvRefs()) { addInjectionTarget(resource, injectionMap); } for (Injectable resource: namingResources.findResources()) { addInjectionTarget(resource, injectionMap); } for (Injectable resource: namingResources.findServices()) { addInjectionTarget(resource, injectionMap); } return injectionMap; }
private void processInitialNamingResources() { // Resource links final ContextResourceLink[] resourceLinks = namingResources.findResourceLinks(); for (final ContextResourceLink resourceLink : resourceLinks) { addResourceLink(resourceLink); } // Resources final ContextResource[] resources = namingResources.findResources(); for (final ContextResource resource : resources) { addResource(resource); } // Resources Env final ContextResourceEnvRef[] resourceEnvRefs = namingResources.findResourceEnvRefs(); for (final ContextResourceEnvRef resourceEnvRef : resourceEnvRefs) { addResourceEnvRef(resourceEnvRef); } // Environment entries final ContextEnvironment[] contextEnvironments = namingResources.findEnvironments(); for (final ContextEnvironment contextEnvironment : contextEnvironments) { addEnvironment(contextEnvironment); } // EJB references final ContextEjb[] ejbs = namingResources.findEjbs(); for (final ContextEjb ejb : ejbs) { addEjb(ejb); } }
namingResources = new NamingResourcesImpl(); namingResources.setContainer(container); namingResources.findResourceLinks(); for (i = 0; i < resourceLinks.length; i++) { addResourceLink(resourceLinks[i]); ContextResource[] resources = namingResources.findResources(); for (i = 0; i < resources.length; i++) { addResource(resources[i]); ContextResourceEnvRef[] resourceEnvRefs = namingResources.findResourceEnvRefs(); for (i = 0; i < resourceEnvRefs.length; i++) { addResourceEnvRef(resourceEnvRefs[i]); namingResources.findEnvironments(); for (i = 0; i < contextEnvironments.length; i++) { addEnvironment(contextEnvironments[i]); ContextEjb[] ejbs = namingResources.findEjbs(); for (i = 0; i < ejbs.length; i++) { addEjb(ejbs[i]); MessageDestinationRef[] mdrs = namingResources.findMessageDestinationRefs(); for (i = 0; i < mdrs.length; i++) { addMessageDestinationRef(mdrs[i]); ContextService[] services = namingResources.findServices(); for (i = 0; i < services.length; i++) {
context.setDistributable(webxml.isDistributable()); for (ContextLocalEjb ejbLocalRef : webxml.getEjbLocalRefs().values()) { context.getNamingResources().addLocalEjb(ejbLocalRef); context.getNamingResources().addEjb(ejbRef); context.getNamingResources().addEnvironment(environment); context.getNamingResources().addMessageDestinationRef(mdr); context.getNamingResources().addResourceEnvRef(resource); context.getNamingResources().addResource(resource); context.getNamingResources().addService(service);
context.getNamingResources().addEnvironment(resource); service.setDescription(annotation.description()); context.getNamingResources().addService(service); resource.setDescription(annotation.description()); context.getNamingResources().addResource(resource); resource.setDescription(annotation.description()); context.getNamingResources().addMessageDestinationRef(resource); resource.setDescription(annotation.description()); context.getNamingResources().addResourceEnvRef(resource);
public static void importOpenEJBResourcesInTomcat(final Collection<ResourceInfo> resources, final StandardServer server) { final NamingResourcesImpl naming = server.getGlobalNamingResources(); for (final ResourceInfo info : resources) { final String name = info.id; // if invalid or existing or lazy just skip it cause doesnt work during startup if (name == null || naming.findResource(name) != null || info.properties.containsKey("UseAppClassLoader")) { continue; } final ContextResource resource = new ContextResource(); resource.setName(name); resource.setProperty(Constants.FACTORY, ResourceFactory.class.getName()); resource.setProperty(NamingUtil.NAME, name); resource.setType(info.className); resource.setAuth("Container"); naming.addResource(resource); } }
for (final ContextEnvironment environment : naming.findEnvironments()) { EnvEntry envEntry = webApp.getEnvEntryMap().get(environment.getName()); if (envEntry == null) { for (final ContextResource resource : naming.findResources()) { final String name = resource.getName(); removeRef(webApp, name); for (final ContextResourceLink resourceLink : naming.findResourceLinks()) { final String name = resourceLink.getName(); removeRef(webApp, name); for (final ContextEnvironment environment : naming.findEnvironments()) { if (!environment.getOverride()) {
@Override public void addContextResource(Context context, List<ApplicationResource> resourceList, boolean contextBound) { NamingResourcesImpl namingResources = context.getNamingResources(); for (ContextResource contextResource : namingResources.findResources()) { ApplicationResource resource = new ApplicationResource(); logger.info("reading resource: {}", contextResource.getName()); resource.setApplicationName(context.getName()); resource.setName(contextResource.getName()); resource.setType(contextResource.getType()); resource.setScope(contextResource.getScope()); resource.setAuth(contextResource.getAuth()); resource.setDescription(contextResource.getDescription()); resourceList.add(resource); } }
/** * Add an environment entry for this web application. * * @param envName New environment entry name * @param type The type of the new environment entry * @param value The value of the new environment entry * @return the object name of the new environment entry * @throws MalformedObjectNameException if the object name was invalid */ public String addEnvironment(String envName, String type, String value) throws MalformedObjectNameException { NamingResourcesImpl nresources = (NamingResourcesImpl) this.resource; if (nresources == null) { return null; } ContextEnvironment env = nresources.findEnvironment(envName); if (env != null) { throw new IllegalArgumentException( "Invalid environment name - already exists '" + envName + "'"); } env = new ContextEnvironment(); env.setName(envName); env.setType(type); env.setValue(value); nresources.addEnvironment(env); // Return the corresponding MBean name ManagedBean managed = registry.findManagedBean("ContextEnvironment"); ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), env); return oname.toString(); }
@Override public void addContextResourceLink(Context context, List<ApplicationResource> resourceList, boolean contextBound) { NamingResourcesImpl namingResources = context.getNamingResources(); for (ContextResourceLink link : namingResources.findResourceLinks()) { ApplicationResource resource = new ApplicationResource(); logger.debug("reading resourceLink: {}", link.getName()); resource.setApplicationName(context.getName()); resource.setName(link.getName()); resource.setType(link.getType()); resource.setLinkTo(link.getGlobal()); registerGlobalResourceAccess(link); resourceList.add(resource); } }
resourceEnv.setProperty(NamingUtil.RESOURCE_ID, ref.value); resourceEnv.setOverride(false); naming.addResourceEnvRef(resourceEnv); enumRef.setType(ref.type); enumRef.setOverride(false); naming.addResourceEnvRef(enumRef); ContextEnvironment environment = naming.findEnvironment(ref.referenceName.replaceAll("^comp/env/", "")); boolean addEntry = false; if (environment == null) { naming.addEnvironment(environment);
ContextResource resource = naming.findResource(ref.referenceName.replaceAll("^comp/env/", "")); boolean addEntry = false; if (resource == null) { final ContextService service = naming.findService(ref.referenceName.replaceAll("^comp/env/", "")); final String serviceName = service != null ? service.getName() : null; if (serviceName != null) { naming.addResource(resource);
private void registerBeanManager(Context appContext, String jndiObjectFactory, String servletListener) { ContextResource resource = new ContextResource(); resource.setAuth("Container"); resource.setName(BEAN_MANAGER_NAME); resource.setType(BEAN_MANAGER_TYPE); resource.setProperty("factory", jndiObjectFactory); appContext.getNamingResources().addResource(resource); ContextResourceEnvRef resourceRef = new ContextResourceEnvRef(); resourceRef.setName(BEAN_MANAGER_NAME); resourceRef.setType(BEAN_MANAGER_TYPE); appContext.getNamingResources().addResourceEnvRef(resourceRef); appContext.addApplicationListener(servletListener); }
ctx.getNamingResources().addEnvironment(env); ctx.getNamingResources().addResource(res);
namingResources.addPropertyChangeListener(this); namingResources.removePropertyChangeListener(this); ContextBindings.unbindClassLoader (container, container,
/** * Add a resource link reference for this web application. * * @param resourceLinkName New resource link reference name * @param type New resource link reference type * @return the object name of the new resource link * @throws MalformedObjectNameException if the object name was invalid */ public String addResourceLink(String resourceLinkName, String type) throws MalformedObjectNameException { NamingResourcesImpl nresources = (NamingResourcesImpl) this.resource; if (nresources == null) { return null; } ContextResourceLink resourceLink = nresources.findResourceLink(resourceLinkName); if (resourceLink != null) { throw new IllegalArgumentException( "Invalid resource link name - already exists'" + resourceLinkName + "'"); } resourceLink = new ContextResourceLink(); resourceLink.setName(resourceLinkName); resourceLink.setType(type); nresources.addResourceLink(resourceLink); // Return the corresponding MBean name ManagedBean managed = registry.findManagedBean("ContextResourceLink"); ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), resourceLink); return oname.toString(); }