User: starksm 
  Date: 01/11/02 00:38:08

  Modified:    src/main/org/jboss/resource Tag: Branch_2_4 RARDeployer.java
                        RARMetaData.java
  Log:
  Add the RAR jar files to the server MLet class loader on deployment to
  make the adapapter available to all components.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.3.2.2   +12 -31    jbosscx/src/main/org/jboss/resource/RARDeployer.java
  
  Index: RARDeployer.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosscx/src/main/org/jboss/resource/RARDeployer.java,v
  retrieving revision 1.3.2.1
  retrieving revision 1.3.2.2
  diff -u -r1.3.2.1 -r1.3.2.2
  --- RARDeployer.java  2001/09/30 22:44:26     1.3.2.1
  +++ RARDeployer.java  2001/11/02 08:38:06     1.3.2.2
  @@ -28,6 +28,7 @@
   import java.util.jar.JarFile;
   
   import javax.management.Notification;
  +import javax.management.loading.MLet;
   
   import org.jboss.deployment.DeployerMBeanSupport;
   import org.jboss.deployment.DeploymentException;
  @@ -46,7 +47,8 @@
    *
    * @author     Toby Allsopp ([EMAIL PROTECTED])
    * @author     <a href="mailto:[EMAIL PROTECTED]";>David Jencks</a>
  - * @version    $Revision: 1.3.2.1 $
  + * @author     [EMAIL PROTECTED]
  + * @version    $Revision: 1.3.2.2 $
    * @see        org.jboss.resource.ConnectionFactoryLoader <p>
    *
    *      <b>Revisions:</b> <p>
  @@ -283,58 +285,38 @@
         }
   
         Document dd;
  -      try
  -      {
  -         dd = XmlFileLoader.getDocument(ddFile.toURL());
  -      }
  -      catch (org.jboss.ejb.DeploymentException de)
  -      {
  -         throw new DeploymentException(de.getMessage(), de.getCause());
  -      }
  +      dd = XmlFileLoader.getDocument(ddFile.toURL());
   
         Element root = dd.getDocumentElement();
   
         RARMetaData metadata = new RARMetaData();
         metadata.importXml(root);
   
  -      // Create a class loader that can load classes from any JARs
  -      // inside the RAR. First, we need to find the JARs.
  -
  +      // First, we need to find the JARs in the RAR archive
         Collection jars = new ArrayList();
  -
         FileFilter filter =
            new FileFilter()
            {
  -            /**
  -             *  #Description of the Method
  -             *
  -             * @param  file  Description of Parameter
  -             * @return       Description of the Returned Value
  -             */
               public boolean accept(File file)
               {
                  return file.getName().endsWith(".jar");
               }
            };
         Collection jarFiles = recursiveFind(unpackedDir, filter);
  +      /* We need to make all of the RAR jars available to all components in the
  +       app server so we need to add the jars to the main MLet class loader.
  +      */
  +      MLet mlet = (MLet) Thread.currentThread().getContextClassLoader();
         category.debug("Adding the following URLs to classpath:");
         for (Iterator i = jarFiles.iterator(); i.hasNext(); )
         {
  -         File file = (File)i.next();
  +         File file = (File) i.next();
            URL jarUrl = file.toURL();
  -         jars.add(jarUrl);
            category.debug(jarUrl.toString());
  +         mlet.addURL(jarUrl);
         }
  +      metadata.setClassLoader(mlet);
   
  -      // Ok, now we have the URLs of the JARs contained in the RAR we
  -      // can create a classloader that loads classes from them
  -
  -      ClassLoader cl = new URLClassLoader(
  -            (URL[])jars.toArray(new URL[0]),
  -            Thread.currentThread().getContextClassLoader());
  -
  -      metadata.setClassLoader(cl);
  -
         // Let's tell the waiting hordes (of connection factory loaders)
         // that this resource adapter is available
   
  @@ -375,7 +357,6 @@
         sendNotification(notification);
   
         // Remove the temporary copy
  -
         File unpackedDir = info.unpackedDir;
         if (!recursiveDelete(unpackedDir))
         {
  
  
  
  1.3.2.2   +10 -22    jbosscx/src/main/org/jboss/resource/RARMetaData.java
  
  Index: RARMetaData.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosscx/src/main/org/jboss/resource/RARMetaData.java,v
  retrieving revision 1.3.2.1
  retrieving revision 1.3.2.2
  diff -u -r1.3.2.1 -r1.3.2.2
  --- RARMetaData.java  2001/09/30 22:44:26     1.3.2.1
  +++ RARMetaData.java  2001/11/02 08:38:07     1.3.2.2
  @@ -25,7 +25,7 @@
    *
    * @author     Toby Allsopp ([EMAIL PROTECTED])
    * @see        RARDeployer
  - * @version    $Revision: 1.3.2.1 $
  + * @version    $Revision: 1.3.2.2 $
    */
   public class RARMetaData
   //   extends Y
  @@ -278,8 +278,6 @@
      private void setConfigProperty(Element element)
             throws DeploymentException
      {
  -      try
  -      {
            Element nameE = MetaData.getUniqueChild(element,
                  "config-property-name");
            Element typeE = MetaData.getUniqueChild(element,
  @@ -295,18 +293,11 @@
               p.value = getElementContent(valueE);
            }
            properties.put(p.name, p);
  -      }
  -      catch (org.jboss.ejb.DeploymentException de)
  -      {
  -         throw new DeploymentException(de.getMessage(), de.getCause());
  -      }
      }
   
      private void setLicense(Element element)
             throws DeploymentException
      {
  -      try
  -      {
            Element requiredE = MetaData.getUniqueChild(element,
                  "license-required");
            Element descriptionE = MetaData.getOptionalChild(element,
  @@ -322,11 +313,6 @@
            {
               category.info("License terms present. See deployment descriptor.");
            }
  -      }
  -      catch (org.jboss.ejb.DeploymentException de)
  -      {
  -         throw new DeploymentException(de.getMessage(), de.getCause());
  -      }
      }
   
      private void setDescription(Element element)
  @@ -375,17 +361,19 @@
         reauthenticationSupport = Boolean.valueOf(value).booleanValue();
      }
   
  +   private void setSecurityPermission(Element element)
  +      throws DeploymentException
  +   {
  +         Element permSpec = MetaData.getUniqueChild(element,
  +            "security-permission-spec");
  +         String spec = getElementContent(permSpec);
  +         category.debug("Ignoring security-permission("+spec+")");
  +   }
  +
      private String getElementContent(Element element)
             throws DeploymentException
      {
  -      try
  -      {
            return MetaData.getElementContent(element);
  -      }
  -      catch (org.jboss.ejb.DeploymentException de)
  -      {
  -         throw new DeploymentException(de.getMessage(), de.getCause());
  -      }
      }
   
      // Y overrides ---------------------------------------------------
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to