Package com.sun.enterprise.deployment

Examples of com.sun.enterprise.deployment.EjbReferenceDescriptor


  // 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();
//                            if (Verifier.getEarFile() != null){
//                                archivist.extractEntry(ejbBundle.getModuleDescriptor().getArchiveUri(), tmpFile);
//                            }
                            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;
                        }
        }

        // before you go onto the next ejb-link, tell me whether you
        // 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) {
View Full Code Here


  //  Entity
  //  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} ]",
View Full Code Here

        ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();

        if (!descriptor.getEjbReferenceDescriptors().isEmpty()) {
            for (Iterator itr = descriptor.getEjbReferenceDescriptors().iterator();
                 itr.hasNext();) {
                EjbReferenceDescriptor nextEjbReference = (EjbReferenceDescriptor) itr.next();
                String ejbRefName = nextEjbReference.getName();
                if (!ejbRefName.startsWith("ejb/")) {
                    addWarningDetails(result, compName);
                    result.addWarningDetails(smh.getLocalString
                            (getClass().getName() + ".warning",
                            "Warning: [ {0} ] is not prefixed with recommended string " +
View Full Code Here

  // The value of the ejb-link element must be the ejb-name of an enterprise
  // 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();
//                            if (Verifier.getEarFile() != null){
//                                archivist.extractEntry(ejbBundle.getModuleDescriptor().getArchiveUri(), tmpFile);
//                            }
          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;
                        }
        }
   
        // before you go onto the next ejb-link, tell me whether you
        // 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) {
View Full Code Here

  // Entity
  // Session
  if (!descriptor.getEjbReferenceDescriptors().isEmpty()) {
      for (Iterator itr = descriptor.getEjbReferenceDescriptors()
                .iterator(); itr.hasNext();) {
    EjbReferenceDescriptor nextEjbReference =
                (EjbReferenceDescriptor) itr.next();

                // Need to use XPath, because if DOL sees an inconsistent
                // ref-type, it gives a warning and changes the type
    //String ejbRefTypeStr = nextEjbReference.getType();
                String refStr = (nextEjbReference.isLocal()) ?
                                "ejb-local-ref" : "ejb-ref";
                String beanType = (descriptor.getType()).toLowerCase();
                String xpathQuery = null;
                if (getVerifierContext().getDocument().getDoctype() != null) {
                   xpathQuery = "/ejb-jar/enterprise-beans/" +
                   beanType + "[ejb-name=\"" + descriptor.getName()
                   +"\"]/" + refStr + "[ejb-ref-name=\""
                   + nextEjbReference.getName() + "\"]/ejb-ref-type";
                }
                else {
                   String prefix = XpathPrefixResolver.fakeXPrefix;
                   xpathQuery = prefix + ":" + "ejb-jar/" +
                    prefix + ":" + "enterprise-beans/" +
                    prefix + ":" + beanType +
                    "[" + prefix + ":ejb-name=\"" + descriptor.getName()
                    +"\"]/" +
                    prefix + ":" + refStr + "[" + prefix + ":ejb-ref-name=\""
                    + nextEjbReference.getName() + "\"]/" +
                    prefix + ":" + "ejb-ref-type";
                }
          
    String ejbRefTypeStr = getXPathValueForNonRuntime(xpathQuery);
                EjbDescriptor rdesc = (EjbDescriptor) nextEjbReference.getEjbDescriptor();

                /*if (rdesc == null) {
                   logger.log(Level.SEVERE, getClass().getName() + ".Warn",
                   new Object[] {nextEjbReference.getBeanClassName()});
                }*/

                // XPath queries seem to fail for XSD Descriptors
                if (ejbRefTypeStr == null) {
                   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 bean [ {1} ] is not valid.  \n Must be [ {2} ] or [ {3} ]",
           new Object[] {ejbRefTypeStr,descriptor.getName(),EjbEntityDescriptor.TYPE,EjbSessionDescriptor.TYPE}));
          failed = true;
      }
                  else if (rdesc != null ) {
                    String actualRefType = rdesc.getType();
                    if (!ejbRefTypeStr.equals(actualRefType)) {
                       result.addErrorDetails(smh.getLocalString
                                           ("tests.componentNameConstructor",
                                            "For [ {0} ]",
                                            new Object[] {compName.toString()}));
                        result.failed(smh.getLocalString
                           (getClass().getName() + ".failed2",
                            "Error: ejb-ref-type [ {0} ] was specifed for ejb-ref [ {1} ], within bean [ {2} ], when it should have been [ {3} ].",
                            new Object[] {ejbRefTypeStr,
                            nextEjbReference.getName(),
                            descriptor.getName(), actualRefType}));
                    failed = true;
                  }
        }
            }
View Full Code Here

            // check for one bean within the same jar file; can't check outside of
            // jar file.  need to load/locate and check other beans remote, home, bean
            // match with the linking bean says they should be. i.e. check for pair
            // of referencing & referenced bean exist, using reflection API
           
            EjbReferenceDescriptor ejbReference;
//      EjbAbstractDescriptor ejbDescriptor;
            try {
               
                String fName = null;
                Set references = descriptor.getEjbReferenceDescriptors();
                if(references == null) {
                    logger.log(Level.INFO,getClass().getName() + ".refnull");
                    return result;
                }
                Iterator iterator = references.iterator();
               
                if (iterator.hasNext()) {
                    boolean oneFailed = false;
        //        boolean foundBeanClassName = false;
        //        boolean foundHomeClassName = false;
        //        boolean foundRemoteClassName = false;
//                File fileName = Verifier.getArchiveFile(descriptor.getEjbBundleDescriptor().getModuleDescriptor().getArchiveUri());
//                if (fileName!=null){
//                    fName = fileName.getName();
//                }else{
                    fName = descriptor.getEjbBundleDescriptor().getModuleDescriptor().getArchiveUri();
//                }
                    while (iterator.hasNext()) {
                        ejbReference = (EjbReferenceDescriptor) iterator.next();
                        if (ejbReference.isLinked()) {
                            // reset
                            if(ejbReference.getEjbHomeInterface() != null &&
                                    ejbReference.getEjbInterface() != null) {
                                oneFailed = commonToBothInterfaces(ejbReference.getEjbHomeInterface(),ejbReference.getEjbInterface(),fName);
                            }
                        } else {
                            // (e.g. external references)
                            result.addNaDetails(smh.getLocalString
                                    ("tests.componentNameConstructor",
                                            "For [ {0} ]",
                                            new Object[] {compName.toString()}));
                            result.notApplicable(smh.getLocalString
                                    (getClass().getName() + ".notApplicable2",
                                            "Not Applicable: [ {0} ] must be external reference to bean outside of [ {1} ].",
                                            new Object[] {ejbReference.getName(),fName}));
                        }
                    }
                    if (oneFailed) {
                        result.setStatus(result.FAILED);
                    } else {
View Full Code Here

     * @return HandlerProcessingResult
     */
    protected HandlerProcessingResult processEJB(AnnotationInfo ainfo,
            ResourceContainerContext[] rcContexts, EJB ejbAn)
            throws AnnotationProcessorException {
        EjbReferenceDescriptor ejbRefs[] = null;

        String defaultLogicalName = null;
        Class defaultBeanInterface = null;
        InjectionTarget target = null;

View Full Code Here

     * @param rcContexts
     * @return an array of EjbReferenceDescriptor
     */
    private EjbReferenceDescriptor[] getEjbReferenceDescriptors(
            String logicalName, ResourceContainerContext[] rcContexts) {
        EjbReferenceDescriptor ejbRefs[] =
                new EjbReferenceDescriptor[rcContexts.length];
        for (int i = 0; i < rcContexts.length; i++) {
            EjbReferenceDescriptor ejbRef =
                (EjbReferenceDescriptor)rcContexts[i].getEjbReference(logicalName);
            if (ejbRef == null) {
                ejbRef = new EjbReferenceDescriptor();
                rcContexts[i].addEjbReferenceDescriptor(ejbRef);
            }
            ejbRefs[i] = ejbRef;
        }

View Full Code Here

     * @return HandlerProcessingResult
     */
    protected HandlerProcessingResult processEJB(AnnotationInfo ainfo,
            ResourceContainerContext[] rcContexts, EJB ejbAn)
            throws AnnotationProcessorException {
        EjbReferenceDescriptor ejbRefs[] = null;

        String defaultLogicalName = null;
        Class defaultBeanInterface = null;
        InjectionTarget target = null;

View Full Code Here

     * @param rcContexts
     * @return an array of EjbReferenceDescriptor
     */
    private EjbReferenceDescriptor[] getEjbReferenceDescriptors(
            String logicalName, ResourceContainerContext[] rcContexts) {
        EjbReferenceDescriptor ejbRefs[] =
                new EjbReferenceDescriptor[rcContexts.length];
        for (int i = 0; i < rcContexts.length; i++) {
            EjbReferenceDescriptor ejbRef =
                (EjbReferenceDescriptor)rcContexts[i].getEjbReference(logicalName);
            if (ejbRef == null) {
                ejbRef = new EjbReferenceDescriptor();
                rcContexts[i].addEjbReferenceDescriptor(ejbRef);
            }
            ejbRefs[i] = ejbRef;
        }

View Full Code Here

TOP

Related Classes of com.sun.enterprise.deployment.EjbReferenceDescriptor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.