use of com.sun.enterprise.deployment.Application in project Payara by payara.
the class EjbLinkElement method check.
/**
* The value of the ejb-link element is the ejb-name of an enterprise
* bean in the same J2EE Application archive.
*
* @param descriptor the Web Application deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(WebBundleDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean resolved = false;
boolean oneFailed = false;
int na = 0;
// The value of the ejb-link element must be the ejb-name of an enterprise
// bean in the same J2EE Application archive.
String applicationName = null;
if (!descriptor.getEjbReferenceDescriptors().isEmpty()) {
for (Iterator itr = descriptor.getEjbReferenceDescriptors().iterator(); itr.hasNext(); ) {
EjbReferenceDescriptor nextEjbReference = (EjbReferenceDescriptor) itr.next();
if (nextEjbReference.isLinked()) {
String ejb_link = nextEjbReference.getLinkName();
ejb_link = ejb_link.substring(ejb_link.indexOf("#") + 1);
// get the application descriptor and check all ejb-jars in the application
try {
Application application = descriptor.getApplication();
applicationName = application.getName();
// File tmpFile = new File(System.getProperty("java.io.tmpdir"));
// tmpFile = new File(tmpFile, Verifier.TMPFILENAME + ".tmp");
// iterate through the ejb jars in this J2EE Application
Set ejbBundles = application.getBundleDescriptors(EjbBundleDescriptor.class);
Iterator ejbBundlesIterator = ejbBundles.iterator();
EjbBundleDescriptor ejbBundle = null;
while (ejbBundlesIterator.hasNext()) {
ejbBundle = (EjbBundleDescriptor) ejbBundlesIterator.next();
// }
for (Iterator itr2 = ejbBundle.getEjbs().iterator(); itr2.hasNext(); ) {
EjbDescriptor ejbDescriptor = (EjbDescriptor) itr2.next();
if (ejbDescriptor.getName().equals(ejb_link)) {
resolved = true;
logger.log(Level.FINE, getClass().getName() + ".passed", new Object[] { ejb_link, ejbDescriptor.getName() });
result.addGoodDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passed", "ejb-link [ {0} ] found same value as EJB [ {1} ]", new Object[] { ejb_link, ejbDescriptor.getName() }));
break;
}
}
}
} catch (Exception e) {
logger.log(Level.FINE, "com.sun.enterprise.tools.verifier.testsprint {0}", new Object[] { "[" + getClass() + "] Error: " + e.getMessage() });
if (!oneFailed) {
oneFailed = true;
}
}
// resolved the last ejb-link okay
if (!resolved) {
if (!oneFailed) {
oneFailed = true;
}
result.addErrorDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failed", "Error: No EJB matching [ {0} ] found within [ {1} ] ear file.", new Object[] { ejb_link, applicationName }));
} else {
// clear the resolved flag for the next ejb-link
resolved = false;
}
} else {
// Cannot get the link name of an ejb reference referring
// to an external bean
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.addNaDetails(smh.getLocalString(getClass().getName() + ".notApplicable1", "Not Applicable: Cannot verify the existance of an ejb reference [ {0} ] to external bean within different .ear file.", new Object[] { nextEjbReference.getName() }));
na++;
}
}
if (oneFailed) {
result.setStatus(result.FAILED);
} else if (na == descriptor.getEjbReferenceDescriptors().size()) {
result.setStatus(result.NOT_APPLICABLE);
} else {
result.setStatus(result.PASSED);
}
// tmpFile.delete();
return result;
} else {
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable", "There are no ejb references to other beans within this web archive [ {0} ]", new Object[] { descriptor.getName() }));
}
return result;
}
use of com.sun.enterprise.deployment.Application in project Payara by payara.
the class EjbBundleRuntimeNode method addDescriptor.
@Override
public void addDescriptor(Object newDescriptor) {
if (newDescriptor instanceof SecurityRoleMapping) {
SecurityRoleMapping roleMap = (SecurityRoleMapping) newDescriptor;
descriptor.addSecurityRoleMapping(roleMap);
Application app = descriptor.getApplication();
if (app != null) {
Role role = new Role(roleMap.getRoleName());
SecurityRoleMapper rm = app.getRoleMapper();
if (rm != null) {
List<PrincipalNameDescriptor> principals = roleMap.getPrincipalNames();
for (int i = 0; i < principals.size(); i++) {
rm.assignRole(principals.get(i).getPrincipal(), role, descriptor);
}
List<String> groups = roleMap.getGroupNames();
for (int i = 0; i < groups.size(); i++) {
rm.assignRole(new Group(groups.get(i)), role, descriptor);
}
}
}
} else if (newDescriptor instanceof ResourcePropertyDescriptor) {
ResourcePropertyDescriptor desc = (ResourcePropertyDescriptor) newDescriptor;
if ("default-role-mapping".equals(desc.getName())) {
descriptor.setDefaultGroupPrincipalMapping(ConfigBeansUtilities.toBoolean(desc.getValue()));
}
}
}
use of com.sun.enterprise.deployment.Application in project Payara by payara.
the class IASEjbCMPEntityDescriptor method getUniqueName.
public String getUniqueName() {
if (uniqueName == null) {
BundleDescriptor bundle = getEjbBundleDescriptor();
Application application = bundle.getApplication();
// Add ejb name and application name.
StringBuffer rc = new StringBuffer().append(getName()).append(NAME_CONCATENATOR).append(application.getRegistrationName());
// If it's not just a module, add a module name.
if (!application.isVirtual()) {
rc.append(NAME_CONCATENATOR).append(bundle.getModuleDescriptor().getArchiveUri());
}
uniqueName = getBaseName(getEjbClassName()) + getUniqueNumber(rc.toString());
}
return uniqueName;
}
use of com.sun.enterprise.deployment.Application in project Payara by payara.
the class ResourceValidator method event.
@Override
public void event(Event event) {
if (event.is(Deployment.AFTER_APPLICATION_CLASSLOADER_CREATION)) {
dc = (DeploymentContext) event.hook();
Application application = dc.getModuleMetaData(Application.class);
DeployCommandParameters commandParams = dc.getCommandParameters(DeployCommandParameters.class);
target = commandParams.target;
if (System.getProperty("deployment.resource.validation", "true").equals("false")) {
deplLogger.log(Level.INFO, SKIP_RESOURCE_VALIDATION);
return;
}
if (application == null) {
return;
}
AppResources appResources = new AppResources();
// Puts all resouces found in the application via annotation or xml into appResources
parseResources(application, appResources);
// Ensure we have a valid component invocation before triggering lookups
String componentId = null;
for (BundleDescriptor bundleDescriptor : application.getBundleDescriptors()) {
if (bundleDescriptor instanceof JndiNameEnvironment) {
componentId = DOLUtils.getComponentEnvId((JndiNameEnvironment) bundleDescriptor);
if (componentId != null) {
break;
}
}
}
contextUtil.setInstanceComponentId(componentId);
try (Context ctx = contextUtil.pushContext()) {
validateResources(application, appResources);
}
}
}
use of com.sun.enterprise.deployment.Application in project Payara by payara.
the class DolProvider method getNameFor.
/**
* return the name for the given application
*/
public String getNameFor(ReadableArchive archive, DeploymentContext context) {
if (context == null) {
return null;
}
DeployCommandParameters params = context.getCommandParameters(DeployCommandParameters.class);
Application application = null;
try {
// name for ear and module name for standalone module
if (params.altdd != null || archive.exists("META-INF/application.xml") || archive.exists("WEB-INF/web.xml") || archive.exists("META-INF/ejb-jar.xml") || archive.exists("META-INF/application-client.xml") || archive.exists("META-INF/ra.xml")) {
String archiveType = context.getArchiveHandler().getArchiveType();
application = applicationFactory.createApplicationFromStandardDD(archive, archiveType);
DeploymentTracing tracing = null;
tracing = context.getModuleMetaData(DeploymentTracing.class);
if (tracing != null) {
tracing.addMark(DeploymentTracing.Mark.DOL_LOADED);
}
ApplicationHolder holder = new ApplicationHolder(application);
context.addModuleMetaData(holder);
return application.getAppName();
}
} catch (Exception e) {
Logger.getAnonymousLogger().log(Level.WARNING, "Error occurred", e);
}
return null;
}
Aggregations