public void execute(DeploymentProcessorTarget processorTarget) { processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_JAXRS_ANNOTATIONS, new JaxrsAnnotationProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_JAXRS_SPRING, new JaxrsSpringProcessor(serviceTarget)); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_JAXRS, new JaxrsDependencyProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_SCANNING, new JaxrsScanningProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_COMPONENT, new JaxrsComponentDeployer()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_CDI_INTEGRATION, new JaxrsCdiIntegrationProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_JAXRS_DEPLOYMENT, new JaxrsIntegrationProcessor()); } }, OperationContext.Stage.RUNTIME);
/** * Merges a list of additional JAX-RS deployment data with this lot of deployment data. * * @param deploymentData */ public void merge(final List<ResteasyDeploymentData> deploymentData) throws DeploymentUnitProcessingException { for (ResteasyDeploymentData data : deploymentData) { scannedApplicationClasses.addAll(data.getScannedApplicationClasses()); if (scanResources) { scannedResourceClasses.addAll(data.getScannedResourceClasses()); scannedJndiComponentResources.addAll(data.getScannedJndiComponentResources()); } if (scanProviders) { scannedProviderClasses.addAll(data.getScannedProviderClasses()); } } }
public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); final ModuleSpecification moduleSpecification = deploymentUnit.getAttachment(Attachments.MODULE_SPECIFICATION); final ModuleLoader moduleLoader = Module.getBootModuleLoader(); addDependency(moduleSpecification, moduleLoader, JAXB_API); if (!JaxrsDeploymentMarker.isJaxrsDeployment(deploymentUnit)) { return; } addDependency(moduleSpecification, moduleLoader, RESTEASY_ATOM); addDependency(moduleSpecification, moduleLoader, RESTEASY_HIBERNATE_VALIDATOR); addDependency(moduleSpecification, moduleLoader, RESTEASY_JAXRS); addDependency(moduleSpecification, moduleLoader, RESTEASY_JAXB); addDependency(moduleSpecification, moduleLoader, RESTEASY_JACKSON); addDependency(moduleSpecification, moduleLoader, RESTEASY_JETTISON); addDependency(moduleSpecification, moduleLoader, RESTEASY_JSAPI); addDependency(moduleSpecification, moduleLoader, RESTEASY_MULTIPART); addDependency(moduleSpecification, moduleLoader, RESTEASY_YAML); addDependency(moduleSpecification, moduleLoader, JACKSON_CORE_ASL); if (WeldDeploymentMarker.isPartOfWeldDeployment(deploymentUnit)) { addDependency(moduleSpecification, moduleLoader, RESTEASY_CDI); } }
boolean hasBoot = hasBootClasses(webdata); resteasyDeploymentData.setBootClasses(hasBoot); Class<?> declaredApplicationClass = checkDeclaredApplicationClassAsServlet(webdata, classLoader); resteasyDeploymentData.setDispatcherCreated(true); resteasyDeploymentData.setScanAll(true); resteasyDeploymentData.setScanProviders(true); resteasyDeploymentData.setScanResources(true); for (ParamValueMetaData param : contextParams) { if (param.getParamName().equals(RESTEASY_SCAN)) { resteasyDeploymentData.setScanAll(valueOf(RESTEASY_SCAN, param.getParamValue())); } else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN_PROVIDERS)) { resteasyDeploymentData.setScanProviders(valueOf(RESTEASY_SCAN_PROVIDERS, param.getParamValue())); } else if (param.getParamName().equals(RESTEASY_SCAN_RESOURCES)) { resteasyDeploymentData.setScanResources(valueOf(RESTEASY_SCAN_RESOURCES, param.getParamValue())); } else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_UNWRAPPED_EXCEPTIONS)) { resteasyDeploymentData.setUnwrappedExceptionsParameterSet(true);
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); if (!JaxrsDeploymentMarker.isJaxrsDeployment(deploymentUnit)) { return; ResteasyDeploymentData resteasyDeploymentData = new ResteasyDeploymentData(); final WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); final Module module = deploymentUnit.getAttachment(Attachments.MODULE); resteasyDeploymentData.setScanAll(true); scan(deploymentUnit, module.getClassLoader(), resteasyDeploymentData); deploymentData.put(moduleIdentifier, resteasyDeploymentData); } else { scanWebDeployment(deploymentUnit, warMetaData.getMergedJBossWebMetaData(), module.getClassLoader(), resteasyDeploymentData); scan(deploymentUnit, module.getClassLoader(), resteasyDeploymentData);
/** * Merges a list of additional JAX-RS deployment data with this lot of deployment data. * * @param deploymentData */ public void merge(final List<ResteasyDeploymentData> deploymentData) throws DeploymentUnitProcessingException { Class<? extends Application> application = null; for (ResteasyDeploymentData data : deploymentData) { if (!dispatcherCreated && scannedApplicationClass == null) { if (data.getScannedApplicationClass() != null) { if (application != null) { throw MESSAGES.moreThanOneApplicationClassFound(application, data.getScannedApplicationClass()); } application = data.getScannedApplicationClass(); } } if (scanResources) { scannedResourceClasses.addAll(data.getScannedResourceClasses()); scannedJndiComponentResources.addAll(data.getScannedJndiComponentResources()); } if (scanProviders) { scannedProviderClasses.addAll(data.getScannedProviderClasses()); } } if (scannedApplicationClass == null) { scannedApplicationClass = application; } }
@Override public void deploy(final DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); final Module module = deploymentUnit.getAttachment(Attachments.MODULE); if (!JaxrsDeploymentMarker.isJaxrsDeployment(deploymentUnit)) { return; } if (!DeploymentTypeMarker.isType(DeploymentType.WAR, deploymentUnit)) { return; } final WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); final JBossWebMetaData webdata = warMetaData.getMergedJBossWebMetaData(); try { module.getClassLoader().loadClass(CDI_INJECTOR_FACTORY_CLASS); // don't set this param if CDI is not in classpath if (WeldDeploymentMarker.isWeldDeployment(deploymentUnit)) { JAXRS_LOGGER.debug("Found CDI, adding injector factory class"); setContextParameter(webdata, "resteasy.injector.factory", CDI_INJECTOR_FACTORY_CLASS); } } catch (ClassNotFoundException ignored) { } }
private void registerProviders(final DeploymentUnit deploymentUnit) { final ResteasyDeploymentData resteasyDeploymentData = deploymentUnit.getAttachment(JaxrsAttachments.RESTEASY_DEPLOYMENT_DATA); if (resteasyDeploymentData != null) { for (final String provider : PROVIDERS) { resteasyDeploymentData.getScannedProviderClasses().add(provider); } } }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); final CompositeIndex index = deploymentUnit.getAttachment(Attachments.COMPOSITE_ANNOTATION_INDEX); for (final JaxrsAnnotations annotation : JaxrsAnnotations.values()) { if (!index.getAnnotations(annotation.getDotName()).isEmpty()) { JaxrsDeploymentMarker.mark(deploymentUnit); phaseContext.addToAttachmentList(Attachments.NEXT_PHASE_DEPS, Services.JBOSS_MODULE_INDEX_SERVICE); return; } } }
private boolean hasJacksonAnnotations(DeploymentUnit deploymentUnit) { final CompositeIndex index = deploymentUnit.getAttachment(Attachments.COMPOSITE_ANNOTATION_INDEX); for (Jackson2Annotations a : Jackson2Annotations.values()) { if (checkAnnotation(a.getDotName(), index)) { return true; } } for (JacksonAnnotations a : JacksonAnnotations.values()) { if (checkAnnotation(a.getDotName(), index)) { return true; } } return false; }
private void setServletMappingPrefix(JBossWebMetaData webdata, String servletName, JBossServletMetaData servlet) { final List<ServletMappingMetaData> mappings = webdata.getServletMappings(); if (mappings != null) { boolean mappingSet = false; for (final ServletMappingMetaData mapping : mappings) { if (mapping.getServletName().equals(servletName)) { if (mapping.getUrlPatterns() != null) { for (String pattern : mapping.getUrlPatterns()) { if (mappingSet) { JAXRS_LOGGER.moreThanOneServletMapping(servletName, pattern); } else { mappingSet = true; String realPattern = pattern; if (realPattern.endsWith("*")) { realPattern = realPattern.substring(0, realPattern.length() - 1); } setServletInitParam(servlet, "resteasy.servlet.mapping.prefix", realPattern); } } } } } } }
boolean hasBoot = hasBootClasses(webdata); resteasyDeploymentData.setBootClasses(hasBoot); Class<?> declaredApplicationClass = checkDeclaredApplicationClassAsServlet(webdata, classLoader); resteasyDeploymentData.setDispatcherCreated(true); resteasyDeploymentData.setScanProviders(true); resteasyDeploymentData.setScanResources(true); resteasyDeploymentData.setScanAll(true); resteasyDeploymentData.setScanProviders(true); resteasyDeploymentData.setScanResources(true); for (ParamValueMetaData param : contextParams) { if (param.getParamName().equals(RESTEASY_SCAN)) { resteasyDeploymentData.setScanAll(valueOf(RESTEASY_SCAN, param.getParamValue())); } else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN_PROVIDERS)) { resteasyDeploymentData.setScanProviders(valueOf(RESTEASY_SCAN_PROVIDERS, param.getParamValue())); } else if (param.getParamName().equals(RESTEASY_SCAN_RESOURCES)) { resteasyDeploymentData.setScanResources(valueOf(RESTEASY_SCAN_RESOURCES, param.getParamValue())); } else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_UNWRAPPED_EXCEPTIONS)) { resteasyDeploymentData.setUnwrappedExceptionsParameterSet(true);
public void execute(DeploymentProcessorTarget processorTarget) { processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_JAXRS_ANNOTATIONS, new JaxrsAnnotationProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_JAXRS_SPRING, new JaxrsSpringProcessor(serviceTarget)); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_JAXRS, new JaxrsDependencyProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_SCANNING, new JaxrsScanningProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_COMPONENT, new JaxrsComponentDeployer()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_CDI_INTEGRATION, new JaxrsCdiIntegrationProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_JAXRS_DEPLOYMENT, new JaxrsIntegrationProcessor()); } }, OperationContext.Stage.RUNTIME);
/** * Merges a list of additional JAX-RS deployment data with this lot of deployment data. * * @param deploymentData */ public void merge(final List<ResteasyDeploymentData> deploymentData) throws DeploymentUnitProcessingException { for (ResteasyDeploymentData data : deploymentData) { scannedApplicationClasses.addAll(data.getScannedApplicationClasses()); if (scanResources) { scannedResourceClasses.addAll(data.getScannedResourceClasses()); scannedJndiComponentResources.addAll(data.getScannedJndiComponentResources()); } if (scanProviders) { scannedProviderClasses.addAll(data.getScannedProviderClasses()); } } }
@Override public void deploy(final DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); final Module module = deploymentUnit.getAttachment(Attachments.MODULE); if (!JaxrsDeploymentMarker.isJaxrsDeployment(deploymentUnit)) { return; } if (!DeploymentTypeMarker.isType(DeploymentType.WAR, deploymentUnit)) { return; } final WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); final JBossWebMetaData webdata = warMetaData.getMergedJBossWebMetaData(); try { module.getClassLoader().loadClass(CDI_INJECTOR_FACTORY_CLASS); // don't set this param if CDI is not in classpath if (WeldDeploymentMarker.isWeldDeployment(deploymentUnit)) { JAXRS_LOGGER.debug("Found CDI, adding injector factory class"); setContextParameter(webdata, "resteasy.injector.factory", CDI_INJECTOR_FACTORY_CLASS); } } catch (ClassNotFoundException ignored) { } }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); if (deploymentUnit.getParent() == null) { //register resource, provider and application as CDI annotation defining types deploymentUnit.addToAttachmentList(INJECTION_TARGET_DEFINING_ANNOTATIONS, JaxrsAnnotations.PROVIDER.getDotName()); deploymentUnit.addToAttachmentList(INJECTION_TARGET_DEFINING_ANNOTATIONS, JaxrsAnnotations.PATH.getDotName()); } final CompositeIndex index = deploymentUnit.getAttachment(Attachments.COMPOSITE_ANNOTATION_INDEX); for (final JaxrsAnnotations annotation : JaxrsAnnotations.values()) { if (!index.getAnnotations(annotation.getDotName()).isEmpty()) { JaxrsDeploymentMarker.mark(deploymentUnit); return; } } }
private boolean hasJacksonAnnotations(DeploymentUnit deploymentUnit) { final CompositeIndex index = deploymentUnit.getAttachment(Attachments.COMPOSITE_ANNOTATION_INDEX); for (Jackson2Annotations a : Jackson2Annotations.values()) { if (checkAnnotation(a.getDotName(), index)) { return true; } } for (JacksonAnnotations a : JacksonAnnotations.values()) { if (checkAnnotation(a.getDotName(), index)) { return true; } } return false; }
boolean hasBoot = hasBootClasses(webdata); resteasyDeploymentData.setBootClasses(hasBoot); Class<?> declaredApplicationClass = checkDeclaredApplicationClassAsServlet(webdata, classLoader); resteasyDeploymentData.setDispatcherCreated(true); resteasyDeploymentData.setScanProviders(true); resteasyDeploymentData.setScanResources(true); resteasyDeploymentData.setScanAll(true); resteasyDeploymentData.setScanProviders(true); resteasyDeploymentData.setScanResources(true); for (ParamValueMetaData param : contextParams) { if (param.getParamName().equals(RESTEASY_SCAN)) { resteasyDeploymentData.setScanAll(valueOf(RESTEASY_SCAN, param.getParamValue())); } else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN_PROVIDERS)) { resteasyDeploymentData.setScanProviders(valueOf(RESTEASY_SCAN_PROVIDERS, param.getParamValue())); } else if (param.getParamName().equals(RESTEASY_SCAN_RESOURCES)) { resteasyDeploymentData.setScanResources(valueOf(RESTEASY_SCAN_RESOURCES, param.getParamValue())); } else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_UNWRAPPED_EXCEPTIONS)) { resteasyDeploymentData.setUnwrappedExceptionsParameterSet(true);
public void execute(DeploymentProcessorTarget processorTarget) { processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.PARSE, Phase.PARSE_JAXRS_ANNOTATIONS, new JaxrsAnnotationProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.DEPENDENCIES, Phase.DEPENDENCIES_JAXRS, new JaxrsDependencyProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_SCANNING, new JaxrsScanningProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_COMPONENT, new JaxrsComponentDeployer()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.POST_MODULE, Phase.POST_MODULE_JAXRS_CDI_INTEGRATION, new JaxrsCdiIntegrationProcessor()); processorTarget.addDeploymentProcessor(JaxrsExtension.SUBSYSTEM_NAME, Phase.INSTALL, Phase.INSTALL_JAXRS_DEPLOYMENT, new JaxrsIntegrationProcessor()); } }, OperationContext.Stage.RUNTIME);
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit(); if (deploymentUnit.getParent() == null) { //register resource, provider and application as CDI annotation defining types deploymentUnit.addToAttachmentList(INJECTION_TARGET_DEFINING_ANNOTATIONS, JaxrsAnnotations.PROVIDER.getDotName()); deploymentUnit.addToAttachmentList(INJECTION_TARGET_DEFINING_ANNOTATIONS, JaxrsAnnotations.PATH.getDotName()); } final CompositeIndex index = deploymentUnit.getAttachment(Attachments.COMPOSITE_ANNOTATION_INDEX); for (final JaxrsAnnotations annotation : JaxrsAnnotations.values()) { if (!index.getAnnotations(annotation.getDotName()).isEmpty()) { JaxrsDeploymentMarker.mark(deploymentUnit); return; } } }