ClientModule clientModule = new ClientModule(applicationClient, appClassLoader, absolutePath, mainClass, moduleName); clientModule.getAltDDs().putAll(descriptors); clientModule.getWatchedResources().add(absolutePath); if (clientXmlUrl != null && "file".equals(clientXmlUrl.getProtocol())) { clientModule.getWatchedResources().add(URLs.toFilePath(clientXmlUrl));
if (clientModule.getApplicationClient() == null){ clientModule.setApplicationClient(new ApplicationClient()); if (clientModule.getFinder() == null && clientModule.getAltDDs().containsKey("application-client.xml")) if (clientModule.getApplicationClient() != null && clientModule.getApplicationClient().isMetadataComplete()) return clientModule; ClassFinder finder = clientModule.getFinder(); if (clientModule.getJarLocation() != null) { String location = clientModule.getJarLocation(); File file = new File(location); finder = new ClassFinder(clientModule.getClassLoader(), url); } else { finder = new ClassFinder(clientModule.getClassLoader()); startupLogger.warning("startup.scrapeFailedForClientModule.url", clientModule.getJarLocation()); return clientModule; } catch (Exception e) { startupLogger.warning("startup.scrapeFailedForClientModule", e, clientModule.getJarLocation()); return clientModule; clientModule.getLocalClients().add(clazz.getName()); clientModule.getRemoteClients().add(clazz.getName()); if (clientModule.getApplicationClient() == null){ if (clientModule.getRemoteClients().size() > 0 || clientModule.getLocalClients().size() > 0) {
private void buildClientModules(final AppModule appModule, final AppInfo appInfo, final JndiEncInfoBuilder jndiEncInfoBuilder) throws OpenEJBException { for (final ClientModule clientModule : appModule.getClientModules()) { final ApplicationClient applicationClient = clientModule.getApplicationClient(); final ClientInfo clientInfo = new ClientInfo(); clientInfo.description = applicationClient.getDescription(); clientInfo.displayName = applicationClient.getDisplayName(); clientInfo.path = clientModule.getJarLocation(); clientInfo.mainClass = clientModule.getMainClass(); clientInfo.localClients.addAll(clientModule.getLocalClients()); clientInfo.remoteClients.addAll(clientModule.getRemoteClients()); clientInfo.callbackHandler = applicationClient.getCallbackHandler(); clientInfo.moduleId = getClientModuleId(clientModule); clientInfo.watchedResources.addAll(clientModule.getWatchedResources()); clientInfo.validationInfo = ValidatorBuilder.getInfo(clientModule.getValidationConfig()); clientInfo.uniqueId = clientModule.getUniqueId(); jndiEncInfoBuilder.build(applicationClient, clientModule.getJarLocation(), clientInfo.moduleId, clientModule.getModuleUri(), clientInfo.jndiEnc, clientInfo.jndiEnc); appInfo.clients.add(clientInfo); } }
private void deploy(final ClientModule clientModule, final AppResources appResources) throws OpenEJBException { processJndiRefs(clientModule.getModuleId(), clientModule.getApplicationClient(), appResources, clientModule.getClassLoader()); }
private void deploy(ClientModule clientModule, AppResources appResources) throws OpenEJBException { processJndiRefs(clientModule.getModuleId(), clientModule.getApplicationClient(), appResources); }
private void readAppClient(ClientModule clientModule, AppModule appModule) throws OpenEJBException { if (clientModule.getApplicationClient() != null) return; Object data = clientModule.getAltDDs().get("application-client.xml"); if (data instanceof ApplicationClient) { clientModule.setApplicationClient((ApplicationClient) data); } else if (data instanceof URL) { URL url = (URL) data; ApplicationClient applicationClient = readApplicationClient(url); clientModule.setApplicationClient(applicationClient); } else { if (!clientModule.isEjbModuleGenerated()) { DeploymentLoader.logger.debug("No application-client.xml found assuming annotations present: " + appModule.getJarLocation() + ", module: " + clientModule.getModuleId()); clientModule.setApplicationClient(new ApplicationClient()); } } }
public ClientModule deploy(final ClientModule clientModule) throws OpenEJBException { if (clientModule.getApplicationClient() != null && clientModule.getApplicationClient().isMetadataComplete()) { return clientModule; final ClassLoader classLoader = clientModule.getClassLoader(); ApplicationClient client = clientModule.getApplicationClient(); if (clientModule.getMainClass() != null) { final String className = realClassName(clientModule.getMainClass()); if (clientModule.getMainClass().contains("/")) { // className can't be null here clientModule.setMainClass(className); if (clientModule.getAltDDs().containsKey("application-client.xml")) { getValidationContext().fail("client", "client.missingMainClass", className); } else { for (final String rawClassName : clientModule.getRemoteClients()) { final String className = realClassName(rawClassName); final Class clazz; for (final String rawClassName : clientModule.getLocalClients()) { final String className = realClassName(rawClassName); final Class clazz; final IAnnotationFinder finder = clientModule.getFinder(); if (!AnnotationFinder.class.isInstance(finder) && finder != null) { final Class<?>[] loadedClasses = new Class<?>[finder.getAnnotatedClassNames().size()];
public AppModule deploy(final AppModule appModule) throws OpenEJBException { final List<ClientModule> clientModules = new ArrayList<ClientModule>(appModule.getClientModules()); for (final ClientModule clientModule : clientModules) { // we automatically add a ClientModule to every EjbModule // if there didn't turn out to be any clients in the module // just ingore it and remove it from the clientModule list final boolean haveMainClassAndDescriptor = clientModule.getMainClass() != null && clientModule.getApplicationClient() != null; final boolean haveAnnotatedClients = clientModule.getLocalClients().size() > 0 || clientModule.getRemoteClients().size() > 0; if (clientModule.isEjbModuleGenerated() && !haveMainClassAndDescriptor && !haveAnnotatedClients) { appModule.getClientModules().remove(clientModule); } else if (clientModule.getApplicationClient() == null) { // If we're keeping it, make sure it has an ApplicationClient object. // Several places in the deploy chain check the contents of the JndiConsumer, // which is the ApplicationClient JAXB object for this module type. clientModule.setApplicationClient(new ApplicationClient()); } } return appModule; } }
public ClientModule deploy(ClientModule clientModule) throws OpenEJBException { if (clientModule.getApplicationClient() != null && clientModule.getApplicationClient().isMetadataComplete()) return clientModule; ClassLoader classLoader = clientModule.getClassLoader(); ApplicationClient client = clientModule.getApplicationClient(); if (clientModule.getMainClass() != null){ String className = clientModule.getMainClass(); clientModule.setMainClass(className); if (clientModule.getAltDDs().containsKey("application-client.xml")) { getValidationContext().fail("client", "client.missingMainClass", className); } else { for (String className : clientModule.getRemoteClients()) { Class clazz; try { for (String className : clientModule.getLocalClients()) { Class clazz; try {
private void buildClientModules(AppModule appModule, AppInfo appInfo, JndiEncInfoBuilder jndiEncInfoBuilder) throws OpenEJBException { for (ClientModule clientModule : appModule.getClientModules()) { ApplicationClient applicationClient = clientModule.getApplicationClient(); ClientInfo clientInfo = new ClientInfo(); clientInfo.description = applicationClient.getDescription(); clientInfo.displayName = applicationClient.getDisplayName(); clientInfo.codebase = clientModule.getJarLocation(); clientInfo.mainClass = clientModule.getMainClass(); clientInfo.localClients.addAll(clientModule.getLocalClients()); clientInfo.remoteClients.addAll(clientModule.getRemoteClients()); clientInfo.callbackHandler = applicationClient.getCallbackHandler(); clientInfo.moduleId = getClientModuleId(clientModule); clientInfo.watchedResources.addAll(clientModule.getWatchedResources()); clientInfo.jndiEnc = jndiEncInfoBuilder.build(applicationClient, clientModule.getJarLocation(), clientInfo.moduleId); appInfo.clients.add(clientInfo); } }
private List<JndiConsumer> collectConsumers(final AppModule appModule) { final List<JndiConsumer> jndiConsumers = new ArrayList<JndiConsumer>(); for (final ClientModule module : appModule.getClientModules()) { final JndiConsumer consumer = module.getApplicationClient(); if (consumer == null) { continue; } jndiConsumers.add(consumer); } for (final WebModule webModule : appModule.getWebModules()) { final JndiConsumer consumer = webModule.getWebApp(); if (consumer == null) { continue; } jndiConsumers.add(consumer); } for (final EjbModule ejbModule : appModule.getEjbModules()) { Collections.addAll(jndiConsumers, ejbModule.getEjbJar().getEnterpriseBeans()); } if (appModule.getApplication() != null) { jndiConsumers.add(appModule.getApplication()); } return jndiConsumers; }
ejbModule.setClientModule(new ClientModule(null, ejbModule.getClassLoader(), ejbModule.getJarLocation(), null, ejbModule.getModuleId())); descriptors = DeploymentLoader.altDDSources(descriptors, true); ejbModule.getAltDDs().putAll(descriptors); ejbModule.getClientModule().getAltDDs().putAll(descriptors); } catch (IOException e) { logger.error("Unable to determine descriptors in jar.", e);
public ClientInfo configureApplication(ClientModule clientModule) throws OpenEJBException { ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); Thread.currentThread().setContextClassLoader(clientModule.getClassLoader()); try { return configurationFactory.configureApplication(clientModule); } finally { Thread.currentThread().setContextClassLoader(oldClassLoader); } }
public ClientInfo configureApplication(ClientModule clientModule) throws OpenEJBException { AppModule appModule = new AppModule(clientModule.getClassLoader(), clientModule.getJarLocation()); appModule.getClientModules().add(clientModule); AppInfo appInfo = configureApplication(appModule); return appInfo.clients.get(0); }
for (final MessageDestination destination : clientModule.getApplicationClient().getMessageDestination()) { destinationResolver.add(appModule.getModuleUri(), destination.getMessageDestinationName(), destination); final URI moduleUri = clientModule.getModuleUri(); for (final MessageDestinationRef ref : clientModule.getApplicationClient().getMessageDestinationRef()) { final String destinationId = resolveDestinationId(ref, moduleUri, destinationResolver, destinationTypes); if (destinationId != null) {
private SunApplicationClient getSunApplicationClient(ClientModule clientModule) { Object altDD = clientModule.getAltDDs().get("sun-application-client.xml"); if (altDD instanceof String) { try { altDD = JaxbSun.unmarshal(SunApplicationClient.class, new ByteArrayInputStream(((String)altDD).getBytes())); } catch (Exception e) { // todo warn about not being able to parse sun descriptor } } if (altDD instanceof URL) { try { altDD = JaxbSun.unmarshal(SunApplicationClient.class, ((URL)altDD).openStream()); } catch (Exception e) { // todo warn about not being able to parse sun descriptor } } if (altDD instanceof SunApplicationClient) { return (SunApplicationClient) altDD; } return null; }
install(new ClientModule(new FileWriter(file), FileOut.class)); bind(ClientFactory.class).to(ClientFactoryImpl.class);
private static String getClientModuleId(final ClientModule clientModule) { return clientModule.getModuleId(); }
private static String getClientModuleId(ClientModule clientModule) { String jarLocation = clientModule.getJarLocation(); File file = new File(jarLocation); String name = file.getName(); if (name.endsWith(".jar") || name.endsWith(".zip")) { name = name.replaceFirst("....$", ""); } return name; }