diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/util/ResourceValidator.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/util/ResourceValidator.java index ac77ad4e978..31528be1f0c 100644 --- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/util/ResourceValidator.java +++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/util/ResourceValidator.java @@ -105,8 +105,6 @@ public class ResourceValidator implements EventListener, ResourceValidatorVisito private DeploymentContext dc; - private Application application; - @Inject private Events events; @@ -130,7 +128,7 @@ public void postConstruct() { public void event(Event event) { if (event.is(Deployment.AFTER_APPLICATION_CLASSLOADER_CREATION)) { dc = (DeploymentContext) event.hook(); - application = dc.getModuleMetaData(Application.class); + Application application = dc.getModuleMetaData(Application.class); DeployCommandParameters commandParams = dc.getCommandParameters(DeployCommandParameters.class); target = commandParams.target; if (System.getProperty("deployment.resource.validation", "true").equals("false")) { @@ -142,7 +140,7 @@ public void event(Event event) { } AppResources appResources = new AppResources(); //Puts all resouces found in the application via annotation or xml into appResources - parseResources(appResources); + parseResources(application, appResources); // Ensure we have a valid component invocation before triggering lookups String componentId = null; @@ -156,7 +154,7 @@ public void event(Event event) { } contextUtil.setInstanceComponentId(componentId); try (Context ctx = contextUtil.pushContext()) { - validateResources(appResources); + validateResources(application, appResources); } } } @@ -164,11 +162,11 @@ public void event(Event event) { /** * Store all the resources before starting the validation. */ - private void parseResources(AppResources appResources) { - parseResources(application, appResources); + private void parseResources(Application application, AppResources appResources) { + parseResourcesBd(application, appResources); for (BundleDescriptor bd : application.getBundleDescriptors()) { if (bd instanceof WebBundleDescriptor || bd instanceof ApplicationClientDescriptor) { - parseResources(bd, appResources); + parseResourcesBd(bd, appResources); } if (bd instanceof EjbBundleDescriptor) { // Resources from Java files in the ejb.jar which are neither an EJB nor a managed bean are stored here. @@ -183,7 +181,7 @@ private void parseResources(AppResources appResources) { } } - parseManagedBeans(appResources); + parseManagedBeans(application, appResources); // Parse AppScoped resources String appName = DOLUtils.getApplicationName(application); @@ -350,7 +348,7 @@ private static String checkFullyQualifiedJndiName(String origJndiName, String fu return returnValue; } - private void parseManagedBeans(AppResources appResources) { + private void parseManagedBeans(Application application, AppResources appResources) { for (BundleDescriptor bd : application.getBundleDescriptors()) { for (ManagedBeanDescriptor managedBean : bd.getManagedBeans()) { appResources.storeInNamespace(managedBean.getGlobalJndiName(), (JndiNameEnvironment) bd); @@ -358,7 +356,7 @@ private void parseManagedBeans(AppResources appResources) { } } - private void parseResources(BundleDescriptor bd, AppResources appResources) { + private void parseResourcesBd(BundleDescriptor bd, AppResources appResources) { if (!(bd instanceof JndiNameEnvironment)) { return; } @@ -502,7 +500,7 @@ else if (envProp.getMappedName().length() > 0) { * Logic from EjbNamingReferenceManagerImpl.java - Here EJB references get * resolved */ - private void parseResources(EjbReferenceDescriptor ejbRef, JndiNameEnvironment env, AppResources appResources) { + private void parseResources(Application application, EjbReferenceDescriptor ejbRef, JndiNameEnvironment env, AppResources appResources) { String name = getLogicalJNDIName(ejbRef.getName(), env); // we only need to worry about those references which are not linked yet if (ejbRef.getEjbDescriptor() != null) { @@ -693,7 +691,7 @@ private String rawNameToLogicalJndiName(String rawName) { * * @return the converted name with java:global JNDI prefix. */ - private String convertModuleOrAppJNDIName(String jndiName, JndiNameEnvironment env) { + private String convertModuleOrAppJNDIName(Application application, String jndiName, JndiNameEnvironment env) { BundleDescriptor bd = null; if (env instanceof EjbDescriptor) { bd = ((EjbDescriptor) env).getEjbBundleDescriptor(); @@ -744,15 +742,15 @@ private String convertModuleOrAppJNDIName(String jndiName, JndiNameEnvironment e /** * Start of validation logic. */ - private void validateResources(AppResources appResources) { + private void validateResources(Application application, AppResources appResources) { for (AppResource resource : appResources.myResources) { if (!resource.validate) { continue; } if (resource.getType().equals("CFD") || resource.getType().equals("AODD")) { - validateRAName(resource); + validateRAName(application, resource); } else { - validateJNDIRefs(resource, appResources.myNamespace); + validateJNDIRefs(application, resource, appResources.myNamespace); } } // Validate the ra-names of app scoped resources @@ -763,15 +761,15 @@ private void validateResources(AppResources appResources) { return; } for (Map.Entry entry : raNames) { - validateRAName(entry.getKey(), entry.getValue()); + validateRAName(application, entry.getKey(), entry.getValue()); } } /** * Validate the resource adapter names of @CFD, @AODD. */ - private void validateRAName(AppResource resource) { - validateRAName(resource.getJndiName(), resource.getType()); + private void validateRAName(Application application, AppResource resource) { + validateRAName(application, resource.getJndiName(), resource.getType()); } /** @@ -783,7 +781,7 @@ private void validateRAName(AppResource resource) { * * In case of null ra name, we fail the deployment. */ - private void validateRAName(String raname, String type) { + private void validateRAName(Application application, String raname, String type) { // No ra-name specified if (raname == null || raname.length() == 0) { deplLogger.log(Level.SEVERE, RESOURCE_REF_INVALID_RA, @@ -804,14 +802,14 @@ private void validateRAName(String raname, String type) { || raname.equals("__cp_jdbc_ra") || raname.equals("__xa_jdbc_ra") || raname.equals("__dm_jdbc_ra")) { return; } - if (isEmbedded(raname)) { + if (isEmbedded(application, raname)) { return; } } // Embedded RA // In case the app name does not match, we fail the deployment else if (raname.substring(0, poundIndex).equals(application.getAppName())) { raname = raname.substring(poundIndex + 1); - if (isEmbedded(raname)) { + if (isEmbedded(application, raname)) { return; } } @@ -823,7 +821,7 @@ else if (raname.substring(0, poundIndex).equals(application.getAppName())) { raname, type)); } - private boolean isEmbedded(String raname) { + private boolean isEmbedded(Application application, String raname) { String ranameWithRAR = raname + ".rar"; // check for rar named this for (BundleDescriptor bd : application.getBundleDescriptors(ConnectorDescriptor.class)) { @@ -844,7 +842,7 @@ private boolean isEmbedded(String raname) { * * @param resource to be validated. */ - private void validateJNDIRefs(AppResource resource, JNDINamespace namespace) { + private void validateJNDIRefs(Application application, AppResource resource, JNDINamespace namespace) { // In case lookup is not present, check if another resource with the same name exists if (!resource.hasLookup() && !namespace.find(resource.getName(), resource.getEnv())) { deplLogger.log(Level.SEVERE, RESOURCE_REF_JNDI_LOOKUP_FAILED, @@ -869,7 +867,7 @@ private void validateJNDIRefs(AppResource resource, JNDINamespace namespace) { return; } - String newName = convertModuleOrAppJNDIName(jndiName, resource.getEnv()); + String newName = convertModuleOrAppJNDIName(application, jndiName, resource.getEnv()); if (namespace.find(newName, env)) { return; } else {