use of com.sun.enterprise.deployment.EjbReferenceDescriptor in project Payara by payara.
the class WebEjbRefTypeElement method check.
/**
* The web archive ejb-ref-type element must be one of the following:
* Entity
* Session
*
* @param descriptor the Web deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(WebBundleDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean failed = false;
// Session
if (!descriptor.getEjbReferenceDescriptors().isEmpty()) {
for (Iterator itr = descriptor.getEjbReferenceDescriptors().iterator(); itr.hasNext(); ) {
EjbReferenceDescriptor nextEjbReference = (EjbReferenceDescriptor) itr.next();
String ejbRefTypeStr = nextEjbReference.getType();
if (!((ejbRefTypeStr.equals(EjbSessionDescriptor.TYPE)) || (ejbRefTypeStr.equals(EjbEntityDescriptor.TYPE)))) {
result.addErrorDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.failed(smh.getLocalString(getClass().getName() + ".failed", "Error: ejb-ref-type [ {0} ] within \n web archive [ {1} ] is not valid. \n Must be [ {2} ] or [ {3} ]", new Object[] { ejbRefTypeStr, descriptor.getName(), EjbEntityDescriptor.TYPE, EjbSessionDescriptor.TYPE }));
failed = true;
}
}
} else {
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
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;
}
if (failed) {
result.setStatus(Result.FAILED);
} else {
result.addGoodDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.passed(smh.getLocalString(getClass().getName() + ".passed", "All ejb-ref-type elements are valid. They are all [ {0} ] or [ {1} ] within this web archive [ {2} ]", new Object[] { EjbEntityDescriptor.TYPE, EjbSessionDescriptor.TYPE, descriptor.getName() }));
}
return result;
}
use of com.sun.enterprise.deployment.EjbReferenceDescriptor 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.EjbReferenceDescriptor in project Payara by payara.
the class EjbLinkElement method check.
/**
* The referenced bean must be an enterprise bean in the same ear file.
*
* @param descriptor the Enterprise Java Bean deployment descriptor
* @return <code>Result</code> the results for this assertion
*/
public Result check(EjbDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean resolved = false;
boolean oneFailed = false;
int na = 0;
// bean in the same application .ear file.
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);
try {
// applicationName = application.getName();
// File tmpFile = new File(System.getProperty("java.io.tmpdir"));
// tmpFile = new File(tmpFile, Verifier.TMPFILENAME + ".tmp");
Set ejbBundles = descriptor.getApplication().getBundleDescriptors(EjbBundleDescriptorImpl.class);
Iterator ejbBundlesIterator = ejbBundles.iterator();
EjbBundleDescriptorImpl ejbBundle = null;
while (ejbBundlesIterator.hasNext()) {
ejbBundle = (EjbBundleDescriptorImpl) 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() });
addGoodDetails(result, compName);
result.addGoodDetails(smh.getLocalString(getClass().getName() + ".passed", "Valid referenced bean [ {0} ].", new Object[] { ejb_link }));
break;
}
}
}
} catch (Exception e) {
addErrorDetails(result, compName);
result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failedException1", "Exception occured while opening or saving the J2EE archive.", new Object[] {}));
logger.log(Level.FINE, "com.sun.enterprise.tools.verifier.testsprint", new Object[] { "[" + getClass() + "] Error: " + e.getMessage() });
if (!oneFailed) {
oneFailed = true;
}
}
// resolved the last ejb-link okay
if (!resolved) {
if (!oneFailed) {
oneFailed = true;
}
addErrorDetails(result, compName);
result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failed", "Error: No EJB matching [ {0} ] found within [ {1} ] jar file.", new Object[] { ejb_link, descriptor.getName() }));
} 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, The value of the ejb-link element
// must be the ejb-name of an enterprise bean in the same
// ejb-ear file.
addNaDetails(result, compName);
result.addNaDetails(smh.getLocalString(getClass().getName() + ".notApplicable1", "Warning: Cannot verify the existence 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 {
addNaDetails(result, compName);
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable", "There are no ejb references to other beans within this bean [ {0} ]", new Object[] { descriptor.getName() }));
}
return result;
}
use of com.sun.enterprise.deployment.EjbReferenceDescriptor in project Payara by payara.
the class AppClientEjbRefTypeElement method check.
/**
* The ejb-ref-type element must be one of the following:
* Entity
* Session
*
* @param descriptor the Application client deployment descriptor
*
* @return <code>Result</code> the results for this assertion
*/
public Result check(ApplicationClientDescriptor descriptor) {
Result result = getInitializedResult();
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean failed = false;
// Session
if (!descriptor.getEjbReferenceDescriptors().isEmpty()) {
for (Iterator itr = descriptor.getEjbReferenceDescriptors().iterator(); itr.hasNext(); ) {
EjbReferenceDescriptor nextEjbReference = (EjbReferenceDescriptor) itr.next();
// getEjbDescriptor().getType();
String ejbRefTypeStr = nextEjbReference.getType();
if (!((ejbRefTypeStr.equals(EjbSessionDescriptor.TYPE)) || (ejbRefTypeStr.equals(EjbEntityDescriptor.TYPE)))) {
result.addErrorDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.failed(smh.getLocalString(getClass().getName() + ".failed", "Error: ejb-ref-type [ {0} ] within \n application client [ {1} ] is not valid. \n Must be [ {2} ] or [ {3} ]", new Object[] { ejbRefTypeStr, descriptor.getName(), EjbEntityDescriptor.TYPE, EjbSessionDescriptor.TYPE }));
failed = true;
}
}
} else {
result.addNaDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.notApplicable(smh.getLocalString(getClass().getName() + ".notApplicable", "There are no ejb references to other beans within this application client [ {0} ]", new Object[] { descriptor.getName() }));
return result;
}
if (failed) {
result.setStatus(Result.FAILED);
} else {
result.addGoodDetails(smh.getLocalString("tests.componentNameConstructor", "For [ {0} ]", new Object[] { compName.toString() }));
result.passed(smh.getLocalString(getClass().getName() + ".passed", "All ejb-ref-type elements are valid. They are all [ {0} ] or [ {1} ] within this application client [ {2} ]", new Object[] { EjbEntityDescriptor.TYPE, EjbSessionDescriptor.TYPE, descriptor.getName() }));
}
return result;
}
use of com.sun.enterprise.deployment.EjbReferenceDescriptor in project Payara by payara.
the class EjbReferenceNode method getDescriptor.
@Override
public EjbReference getDescriptor() {
if (descriptor == null) {
descriptor = new EjbReferenceDescriptor();
descriptor.setLocal(false);
}
return descriptor;
}
Aggregations