/** * Add a component to this application. * * @param description the component description * @param deploymentRoot */ public void addComponent(final ComponentDescription description, final VirtualFile deploymentRoot) { for (final ViewDescription viewDescription : description.getViews()) { List<ViewInformation> viewComponents = componentsByViewName.get(viewDescription.getViewClassName()); if (viewComponents == null) { viewComponents = new ArrayList<ViewInformation>(1); componentsByViewName.put(viewDescription.getViewClassName(), viewComponents); } viewComponents.add(new ViewInformation(viewDescription, deploymentRoot, description.getComponentName())); } List<Description> components = componentsByName.get(description.getComponentName()); if (components == null) { componentsByName.put(description.getComponentName(), components = new ArrayList<Description>(1)); } components.add(new Description(description, deploymentRoot)); }
@Override public void configure(final DeploymentPhaseContext context, final ComponentDescription description, final ComponentConfiguration configuration) throws DeploymentUnitProcessingException { final ClassReflectionIndex classIndex = context.getDeploymentUnit().getAttachment(Attachments.REFLECTION_INDEX).getClassIndex(configuration.getComponentClass()); final Constructor<?> ctor = classIndex.getConstructor(new String[0]); boolean noInterface = false; for(ViewDescription view : description.getViews()) { if(view.getViewClassName().equals(description.getComponentClassName())) { noInterface = true; } } EjbValidationsUtil.getBusinessMethods(configuration.getComponentClass()); EjbValidationsUtil.verifyEjbClassAndDefaultConstructor(ctor, configuration.getComponentClass().getEnclosingClass(), noInterface, description.getComponentName(), description.getComponentClassName(), configuration.getComponentClass().getModifiers()); EjbValidationsUtil.verifyEjbPublicMethodAreNotFinalNorStatic(configuration.getComponentClass().getDeclaredMethods(),description.getComponentClassName()); for ( Class<?> interfaceClass : configuration.getComponentClass().getInterfaces()) EjbValidationsUtil.verifyEjbPublicMethodAreNotFinalNorStatic(interfaceClass.getDeclaredMethods(), interfaceClass.getCanonicalName()); } }
configuration.addClientInterceptor(method, ViewDescription.CLIENT_DISPATCHER_INTERCEPTOR_FACTORY, InterceptorOrder.Client.CLIENT_DISPATCHER); } else if(method.getDeclaringClass() != Object.class && method.getDeclaringClass() != WriteReplaceInterface.class) { throw EjbLogger.ROOT_LOGGER.couldNotFindViewMethodOnEjb(method, description.getViewClassName(), componentConfiguration.getComponentName());
private void registerRemoteBinding(final EJBComponentDescription componentDescription, final ViewDescription viewDescription, final String jndiName) { final EEModuleDescription moduleDescription = componentDescription.getModuleDescription(); final InjectedValue<ClassLoader> viewClassLoader = new InjectedValue<ClassLoader>(); moduleDescription.getBindingConfigurations().add(new BindingConfiguration(jndiName, new RemoteViewInjectionSource(null, moduleDescription.getEarApplicationName(), moduleDescription.getModuleName(), moduleDescription.getDistinctName(), componentDescription.getComponentName(), viewDescription.getViewClassName(), componentDescription.isStateful(), viewClassLoader, appclient))); componentDescription.getConfigurators().add(new ComponentConfigurator() { public void configure(DeploymentPhaseContext context, ComponentDescription description, ComponentConfiguration configuration) throws DeploymentUnitProcessingException { viewClassLoader.setValue(Values.immediateValue(configuration.getModuleClassLoader())); } }); } private void registerControlPointBinding(final EJBComponentDescription componentDescription, final ViewDescription viewDescription, final String jndiName, final DeploymentUnit deploymentUnit) {
remoteViews.put(view.getViewClassName(), componentViewInjectedValue); } else { localViews.put(view.getViewClassName(), componentViewInjectedValue);
Class<?> viewClass; try { viewClass = module.getClassLoader().loadClass(view.getViewClassName()); } catch (ClassNotFoundException e) { throw EeLogger.ROOT_LOGGER.cannotLoadViewClass(e, view.getViewClassName(), configuration);
viewServices.put(view.getViewClassName(), view.getServiceName());
final InjectedValue<ClassLoader> viewClassLoader = new InjectedValue<ClassLoader>(); final InjectedValue<ControlPoint> controlPointInjectedValue = new InjectedValue<>(); final RemoteViewInjectionSource delegate = new RemoteViewInjectionSource(null, moduleDescription.getEarApplicationName(), moduleDescription.getModuleName(), moduleDescription.getDistinctName(), componentDescription.getComponentName(), viewDescription.getViewClassName(), componentDescription.isStateful(), viewClassLoader, appclient); final ServiceName depName = ControlPointService.serviceName(deploymentUnit.getParent() == null ? deploymentUnit.getName() : deploymentUnit.getParent().getName(), EJBComponentSuspendDeploymentUnitProcessor.ENTRY_POINT_NAME + deploymentUnit.getName() + "." + componentDescription.getComponentName()); componentDescription.getConfigurators().add((context, description, configuration) -> {
final EJBComponentDescription ejbComponentDescription = (EJBComponentDescription) componentConfiguration.getComponentDescription(); final boolean isSecurityDomainKnown = ejbComponentDescription.isSecurityDomainKnown(); final String viewClassName = viewDescription.getViewClassName(); final EJBViewDescription ejbViewDescription = (EJBViewDescription) viewDescription;
/** * Add a component to this application. * * @param description the component description * @param deploymentRoot */ public void addComponent(final ComponentDescription description, final VirtualFile deploymentRoot) { for (final ViewDescription viewDescription : description.getViews()) { List<ViewInformation> viewComponents = componentsByViewName.get(viewDescription.getViewClassName()); if (viewComponents == null) { viewComponents = new ArrayList<ViewInformation>(1); componentsByViewName.put(viewDescription.getViewClassName(), viewComponents); } viewComponents.add(new ViewInformation(viewDescription, deploymentRoot, description.getComponentName())); } List<Description> components = componentsByName.get(description.getComponentName()); if (components == null) { componentsByName.put(description.getComponentName(), components = new ArrayList<Description>(1)); } components.add(new Description(description, deploymentRoot)); }
/** * Add a component to this application. * * @param description the component description * @param deploymentRoot */ public void addComponent(final ComponentDescription description, final VirtualFile deploymentRoot) { for (final ViewDescription viewDescription : description.getViews()) { List<ViewInformation> viewComponents = componentsByViewName.get(viewDescription.getViewClassName()); if (viewComponents == null) { viewComponents = new ArrayList<ViewInformation>(1); componentsByViewName.put(viewDescription.getViewClassName(), viewComponents); } viewComponents.add(new ViewInformation(viewDescription, deploymentRoot, description.getComponentName())); } List<Description> components = componentsByName.get(description.getComponentName()); if (components == null) { componentsByName.put(description.getComponentName(), components = new ArrayList<Description>(1)); } components.add(new Description(description, deploymentRoot)); }
/** * Add a component to this application. * * @param description the component description * @param deploymentRoot */ public void addComponent(final ComponentDescription description, final VirtualFile deploymentRoot) { for (final ViewDescription viewDescription : description.getViews()) { List<ViewInformation> viewComponents = componentsByViewName.get(viewDescription.getViewClassName()); if (viewComponents == null) { viewComponents = new ArrayList<ViewInformation>(1); componentsByViewName.put(viewDescription.getViewClassName(), viewComponents); } viewComponents.add(new ViewInformation(viewDescription, deploymentRoot, description.getComponentName())); } List<Description> components = componentsByName.get(description.getComponentName()); if (components == null) { componentsByName.put(description.getComponentName(), components = new ArrayList<Description>(1)); } components.add(new Description(description, deploymentRoot)); }
remoteViews.put(view.getViewClassName(), componentViewInjectedValue); } else { localViews.put(view.getViewClassName(), componentViewInjectedValue);
final String viewClassName = view.getViewClassName(); localInterfaces.add(new BusinessInterfaceDescriptorImpl<Object>(beanDeploymentArchive, viewClassName)); } else if (getMethodIntf(view) == MethodIntf.REMOTE) { remoteInterfaces.add(new BusinessInterfaceDescriptorImpl<Object>(beanDeploymentArchive, view.getViewClassName())); Map<Class<?>, ServiceName> viewServices = new HashMap<Class<?>, ServiceName>(); for (ViewDescription view : componentDescription.getViews()) { viewServices.put(loader.classForName(view.getViewClassName()), view.getServiceName());
configuration.addClientInterceptor(method, ViewDescription.CLIENT_DISPATCHER_INTERCEPTOR_FACTORY, InterceptorOrder.Client.CLIENT_DISPATCHER); } else if(method.getDeclaringClass() != Object.class && method.getDeclaringClass() != WriteReplaceInterface.class) { throw EjbMessages.MESSAGES.couldNotFindViewMethodOnEjb(method, description.getViewClassName(), componentConfiguration.getComponentName());
for (final ViewDescription view : component.getViews()) { for(Class subResource : jaxrsType) { if (view.getViewClassName().equals(subResource.getName())) { foundType = subResource.getName(); found = true;
private void registerRemoteBinding(final EJBComponentDescription componentDescription, final ViewDescription viewDescription, final String jndiName) { final EEModuleDescription moduleDescription = componentDescription.getModuleDescription(); final InjectedValue<ClassLoader> viewClassLoader = new InjectedValue<ClassLoader>(); moduleDescription.getBindingConfigurations().add(new BindingConfiguration(jndiName, new RemoteViewInjectionSource(null, moduleDescription.getEarApplicationName(), moduleDescription.getModuleName(), moduleDescription.getDistinctName(), componentDescription.getComponentName(), viewDescription.getViewClassName(), componentDescription.isStateful(), viewClassLoader))); componentDescription.getConfigurators().add(new ComponentConfigurator() { public void configure(DeploymentPhaseContext context, ComponentDescription description, ComponentConfiguration configuration) throws DeploymentUnitProcessingException { viewClassLoader.setValue(Values.immediateValue(configuration.getModuleClassLoader())); } }); }
Class<?> viewClass; try { viewClass = module.getClassLoader().loadClass(view.getViewClassName()); } catch (ClassNotFoundException e) { throw EeLogger.ROOT_LOGGER.cannotLoadViewClass(e, view.getViewClassName(), configuration);
Class<?> viewClass; try { viewClass = module.getClassLoader().loadClass(view.getViewClassName()); } catch (ClassNotFoundException e) { throw EeLogger.ROOT_LOGGER.cannotLoadViewClass(e, view.getViewClassName(), configuration);
@Override protected void handleAnnotations(final DeploymentUnit deploymentUnit, final EEApplicationClasses applicationClasses, final DeploymentReflectionIndex deploymentReflectionIndex, final Class<?> componentClass, final EJBComponentDescription componentConfiguration) throws DeploymentUnitProcessingException { final Module module = deploymentUnit.getAttachment(org.jboss.as.server.deployment.Attachments.MODULE); processTransactionAttributeAnnotation(applicationClasses, deploymentReflectionIndex, componentClass, null, componentConfiguration); processTransactionTimeoutAnnotation(applicationClasses, deploymentReflectionIndex, componentClass, null, componentConfiguration); for (ViewDescription view : componentConfiguration.getViews()) { try { final Class<?> viewClass = module.getClassLoader().loadClass(view.getViewClassName()); EJBViewDescription ejbView = (EJBViewDescription) view; processTransactionAttributeAnnotation(applicationClasses, deploymentReflectionIndex, viewClass, ejbView.getMethodIntf(), componentConfiguration); processTransactionTimeoutAnnotation(applicationClasses, deploymentReflectionIndex, viewClass, ejbView.getMethodIntf(), componentConfiguration); } catch (ClassNotFoundException e) { throw MESSAGES.failToLoadEjbViewClass(e); } } }