/** Adjusts the web services WSDL entries corresponding to where they actually reside. */
 protected void fixupWSDLEntries()
     throws URISyntaxException, MalformedURLException, IOException, AnnotationProcessorException {
   ApplicationClientDescriptor ac = getAppClient();
   URI uri = (new File(getAppClientRoot(appClientArchive, ac))).toURI();
   File moduleFile = new File(uri);
   for (Iterator itr = ac.getServiceReferenceDescriptors().iterator(); itr.hasNext(); ) {
     ServiceReferenceDescriptor serviceRef = (ServiceReferenceDescriptor) itr.next();
     if (serviceRef.getWsdlFileUri() != null) {
       // In case WebServiceRef does not specify wsdlLocation, we get
       // wsdlLocation from @WebClient in wsimport generated source;
       // If wsimport was given a local WSDL file, then WsdlURI will
       // be an absolute path - in that case it should not be prefixed
       // with modileFileDir
       String wsdlURI = serviceRef.getWsdlFileUri();
       File wsdlFile = new File(wsdlURI);
       if (wsdlFile.isAbsolute()) {
         serviceRef.setWsdlFileUrl(wsdlFile.toURI().toURL());
       } else {
         // This is the case where WsdlFileUri is a relative path
         // (hence relative to the root of this module or wsimport
         // was executed with WSDL in HTTP URL form
         serviceRef.setWsdlFileUrl(getEntryAsUrl(moduleFile, serviceRef.getWsdlFileUri()));
       }
     }
   }
 }
 /** @return the descriptor instance to associate with this XMLNode */
 @Override
 public JavaWebStartAccessDescriptor getDescriptor() {
   if (descriptor == null) {
     descriptor = new JavaWebStartAccessDescriptor();
     XMLNode parentNode = getParentNode();
     if (parentNode != null && (parentNode instanceof AppClientRuntimeNode)) {
       Object parentDescriptor = parentNode.getDescriptor();
       if (parentDescriptor != null && (parentDescriptor instanceof ApplicationClientDescriptor)) {
         ApplicationClientDescriptor acDescriptor = (ApplicationClientDescriptor) parentDescriptor;
         acDescriptor.setJavaWebStartAccessDescriptor(descriptor);
       }
     }
   }
   return descriptor;
 }
  protected boolean mainClassContainsPURefcAnnotations(ApplicationClientDescriptor acDescr)
      throws MalformedURLException, ClassNotFoundException, IOException, URISyntaxException {
    AnnotationDetector annoDetector =
        new AnnotationDetector(new AppClientPersistenceDependencyAnnotationScanner());

    // e.g. FROM a.b.Foo or Foo TO a/b/Foo.class or Foo.class
    String mainClassEntryName = acDescr.getMainClassName().replace('.', '/') + ".class";

    return classContainsAnnotation(mainClassEntryName, annoDetector, appClientArchive, acDescr);
  }