[jboss-cvs] jboss-cvs-commits Digest, Vol 40, Issue 464

Ales Justin ales.justin at gmail.com
Wed Oct 21 15:16:45 EDT 2009


> Do you have a more helpful suggestion? 

Not at the moment.
Open up a forum discussion.

> The problem is that structural 
> deployers don't have a chance to do undeploy cleanup, so they don't have 
> a chance to dispose of resources allocated by the structural deployer.  
> So we need some kind of hook to do this.

Perhaps we could remember who recognized us,
and invoke that as part of DeploymentContext::cleanup?

But let's discuss this over forum,
simpler to follow and exchange ideas.

> On 10/21/2009 04:54 AM, Ales Justin wrote:
>> This is wrong.
>> ContextInfo/DeploymentContext should have no such public contract of
>> being aware of some cleanup tasks.
>> This can be impl detail, but definitely not part of spi/api.
>>
>> If there are other such invalid conceptual changes, please fix/remove 
>> them.
>> Otherwise I'll never accept this as part of MC.
>>
>> jboss-cvs-commits-request at lists.jboss.org wrote:
>>> Send jboss-cvs-commits mailing list submissions to
>>>     jboss-cvs-commits at lists.jboss.org
>>>
>>> To subscribe or unsubscribe via the World Wide Web, visit
>>>     https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits
>>> or, via email, send a message with subject or body 'help' to
>>>     jboss-cvs-commits-request at lists.jboss.org
>>>
>>> You can reach the person managing the list at
>>>     jboss-cvs-commits-owner at lists.jboss.org
>>>
>>> When replying, please edit your Subject line so it is more specific
>>> than "Re: Contents of jboss-cvs-commits digest..."
>>>
>>>
>>> Today's Topics:
>>>
>>>     1. JBossAS SVN: r95237 - in
>>>        projects/jboss-deployers/branches/vfs3:
>>>        
>>> deployers-core/src/main/java/org/jboss/deployers/plugins/structure   
>>>        and 13 other directories. (jboss-cvs-commits at lists.jboss.org)
>>>
>>>
>>> ----------------------------------------------------------------------
>>>
>>> Message: 1
>>> Date: Tue, 20 Oct 2009 22:20:50 -0400
>>> From: jboss-cvs-commits at lists.jboss.org
>>> Subject: [jboss-cvs] JBossAS SVN: r95237 - in
>>>     projects/jboss-deployers/branches/vfs3:
>>>     deployers-core/src/main/java/org/jboss/deployers/plugins/structure    
>>> and
>>>     13 other directories.
>>> To: jboss-cvs-commits at lists.jboss.org
>>> Message-ID:
>>>     <200910210220.n9L2KoqV024281 at svn01.web.mwc.hst.phx2.redhat.com>
>>> Content-Type: text/plain; charset=UTF-8
>>>
>>> Author: johnbailey
>>> Date: 2009-10-20 22:20:48 -0400 (Tue, 20 Oct 2009)
>>> New Revision: 95237
>>>
>>> Added:
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/VFSHandleCleanupTask.java 
>>>
>>> Modified:
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-core-spi/src/main/java/org/jboss/deployers/spi/structure/ContextInfo.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-core/src/main/java/org/jboss/deployers/plugins/structure/ContextInfoImpl.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/DeploymentContext.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentContext.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructuralDeployers.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructureBuilder.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/ComponentDeploymentContext.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/classloader/UrlIntegrationDeployer.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/jar/JARStructure.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BaseDeployersVFSTest.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BootstrapDeployersTest.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestMetaDataUrlIntegrationDeployer.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestPathUrlIntegrationDeployer.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/ear/support/MockEarStructureDeployer.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/CombinedFileStructureUnitTestCase.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/FileMatcherTestCase.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/ConfiguredSuffixJARStructureUnitTestCase.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/JARStructureUnitTestCase.java 
>>>
>>>     
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/war/test/AbstractWARStructureTest.java 
>>>
>>>     projects/jboss-deployers/branches/vfs3/pom.xml
>>> Log:
>>> Added Cleanup tasks to DeploymentContext to support closing VFS handles
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-core/src/main/java/org/jboss/deployers/plugins/structure/ContextInfoImpl.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-core/src/main/java/org/jboss/deployers/plugins/structure/ContextInfoImpl.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-core/src/main/java/org/jboss/deployers/plugins/structure/ContextInfoImpl.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -64,6 +64,9 @@
>>>
>>>      /** The modification type */
>>>      private ModificationType modificationType;
>>> +
>>> +   /** Cleanup Task */
>>> +   private Runnable cleanupTask;
>>>
>>>      /**
>>>       * Create a new ContextInfoImpl.
>>> @@ -241,7 +244,15 @@
>>>      {
>>>         this.modificationType = modificationType;
>>>      }
>>> +
>>> +   public Runnable getCleanupTask() {
>>> +      return cleanupTask;
>>> +   }
>>>
>>> +   public void setCleanupTask(Runnable cleanupTask) {
>>> +      this.cleanupTask = cleanupTask;
>>> +   }
>>> +
>>>      @Override
>>>      public String toString()
>>>      {
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-core-spi/src/main/java/org/jboss/deployers/spi/structure/ContextInfo.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-core-spi/src/main/java/org/jboss/deployers/spi/structure/ContextInfo.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-core-spi/src/main/java/org/jboss/deployers/spi/structure/ContextInfo.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -125,4 +125,18 @@
>>>       * @param modificationType the modification type
>>>       */
>>>      void setModificationType(ModificationType modificationType);
>>> +
>>> +   /**
>>> +    * A task to be run during deployment cleanup
>>> +    *
>>> +    * @return the cleanup task
>>> +    */
>>> +   Runnable getCleanupTask();
>>> +
>>> +   /**
>>> +    * Set a task to be run during deployment cleanup.
>>> +    *
>>> +    * @param cleanupTask the cleanup task
>>> +    */
>>> +   void setCleanupTask(Runnable cleanupTask);
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/DeploymentContext.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/DeploymentContext.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/DeploymentContext.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -407,4 +407,11 @@
>>>       * Cleanup the deployment context
>>>       */
>>>      void cleanup();
>>> +
>>> +   /**
>>> +    * Additional tasks to run during cleanup
>>> +    *
>>> +    * @param cleanupTasks
>>> +    */
>>> +   void setCleanTasks(List<Runnable>  cleanupTasks);
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentContext.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentContext.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractDeploymentContext.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -160,6 +160,9 @@
>>>      /** The required stage */
>>>      private DeploymentStage requiredStage = DeploymentStages.INSTALLED;
>>>
>>> +   /** Tasks to run at cleanup */
>>> +   private List<Runnable>  cleanupTasks;
>>> +
>>>      /**
>>>       * Get the scope builder for a deployment context
>>>       *
>>> @@ -994,6 +997,14 @@
>>>      public void cleanup()
>>>      {
>>>         cleanupRepository(this);
>>> +
>>> +      if(cleanupTasks != null)
>>> +      {
>>> +         for(Runnable task : cleanupTasks)
>>> +         {
>>> +            task.run();
>>> +         }
>>> +      }
>>>      }
>>>
>>>      public ObjectName preRegister(MBeanServer server, ObjectName 
>>> name) throws Exception
>>> @@ -1016,6 +1027,11 @@
>>>      public void postDeregister()
>>>      {
>>>      }
>>> +
>>> +   public void setCleanTasks(List<Runnable>  cleanupTasks)
>>> +   {
>>> +      this.cleanupTasks = cleanupTasks;
>>> +   }
>>>
>>>      /**
>>>       * Register mbeans
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructuralDeployers.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructuralDeployers.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructuralDeployers.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -21,9 +21,12 @@
>>>    */
>>>   package org.jboss.deployers.structure.spi.helpers;
>>>
>>> +import java.util.List;
>>> +
>>>   import org.jboss.deployers.client.spi.Deployment;
>>>   import org.jboss.deployers.spi.DeploymentException;
>>>   import org.jboss.deployers.spi.attachments.Attachments;
>>> +import org.jboss.deployers.spi.structure.ContextInfo;
>>>   import org.jboss.deployers.spi.structure.StructureMetaData;
>>>   import org.jboss.deployers.spi.structure.StructureMetaDataFactory;
>>>   import org.jboss.deployers.structure.spi.DeploymentContext;
>>> @@ -78,19 +81,41 @@
>>>            }
>>>            catch (DeploymentException e)
>>>            {
>>> +            cleanup(structureMetaData);
>>>               throw e;
>>>            }
>>>            catch (Throwable t)
>>>            {
>>> +            cleanup(structureMetaData);
>>>               throw 
>>> DeploymentException.rethrowAsDeploymentException("Exception 
>>> determining structure: " + deployment, t);
>>>            }
>>>         }
>>> -
>>> -      return structureBuilder.populateContext(deployment, 
>>> structureMetaData);
>>> +      try {
>>> +         return structureBuilder.populateContext(deployment, 
>>> structureMetaData);
>>> +      } catch(DeploymentException deploymentException) {
>>> +         cleanup(structureMetaData);
>>> +         throw deploymentException;
>>> +      }
>>>      }
>>>
>>>      protected void determineStructure(Deployment deployment, 
>>> StructureMetaData structure) throws Exception
>>>      {
>>>         // NOTHING
>>>      }
>>> +
>>> +   protected void cleanup(StructureMetaData structureMetaData) {
>>> +      if(structureMetaData != null) {
>>> +         List<ContextInfo>  contexts = structureMetaData.getContexts();
>>> +         if(contexts != null) {
>>> +            for(ContextInfo context : contexts) {
>>> +               cleanup(context);
>>> +            }
>>> +         }
>>> +      }
>>> +   }
>>> +
>>> +   protected void cleanup(ContextInfo contextInfo) {
>>> +      if(contextInfo.getCleanupTask() != null)
>>> +         contextInfo.getCleanupTask().run();
>>> +   }
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructureBuilder.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructureBuilder.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/AbstractStructureBuilder.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -22,6 +22,7 @@
>>>   package org.jboss.deployers.structure.spi.helpers;
>>>
>>>   import java.lang.reflect.Field;
>>> +import java.util.Collections;
>>>   import java.util.Comparator;
>>>   import java.util.List;
>>>
>>> @@ -79,7 +80,10 @@
>>>
>>>            applyStructureMetaData(result, metaData);
>>>            
>>> contextInfo.setPredeterminedManagedObjects(deployment.getPredeterminedManagedObjects()); 
>>>
>>> +
>>>            applyContextInfo(result, contextInfo);
>>> +
>>> +
>>>         }
>>>         catch (Throwable t)
>>>         {
>>> @@ -212,6 +216,9 @@
>>>
>>>         if (structureProcessor != null)
>>>            structureProcessor.applyContextInfo(context, contextInfo);
>>> +
>>> +      if(contextInfo.getCleanupTask() != null)
>>> +         
>>> context.setCleanTasks(Collections.singletonList(contextInfo.getCleanupTask())); 
>>>
>>>      }
>>>
>>>      /**
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/ComponentDeploymentContext.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/ComponentDeploymentContext.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-structure-spi/src/main/java/org/jboss/deployers/structure/spi/helpers/ComponentDeploymentContext.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -105,6 +105,9 @@
>>>      /** The mutable scope */
>>>      private ScopeKey mutableScope;
>>>
>>> +   /** The cleanup tasks */
>>> +   private List<Runnable>  cleanupTasks;
>>> +
>>>      /**
>>>       * For serialization
>>>       */
>>> @@ -638,6 +641,13 @@
>>>      public void cleanup()
>>>      {
>>>         AbstractDeploymentContext.cleanupRepository(this);
>>> +      if(cleanupTasks != null)
>>> +      {
>>> +         for(Runnable task : cleanupTasks)
>>> +         {
>>> +            task.run();
>>> +         }
>>> +      }
>>>      }
>>>
>>>      public ObjectName preRegister(MBeanServer server, ObjectName 
>>> name) throws Exception
>>> @@ -660,6 +670,10 @@
>>>      public void postDeregister()
>>>      {
>>>      }
>>> +
>>> +   public void setCleanTasks(List<Runnable>  cleanupTasks) {
>>> +      this.cleanupTasks = cleanupTasks;
>>> +   }
>>>
>>>      /**
>>>       * Register mbeans
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/classloader/UrlIntegrationDeployer.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/classloader/UrlIntegrationDeployer.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/classloader/UrlIntegrationDeployer.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -129,7 +129,7 @@
>>>            {
>>>               for (URL integrationURL : integrationURLs)
>>>               {
>>> -               VirtualFile integration = VFS.getRoot(integrationURL);
>>> +               VirtualFile integration = VFS.getChild(integrationURL);
>>>                  unit.addClassPath(integration);
>>>                  added.add(integration);
>>>               }
>>> @@ -153,7 +153,7 @@
>>>            {
>>>               try
>>>               {
>>> -               VirtualFile integration = VFS.getRoot(integrationURL);
>>> +               VirtualFile integration = VFS.getChild(integrationURL);
>>>                  unit.removeClassPath(integration);
>>>               }
>>>               catch (Throwable t)
>>>
>>> Added: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/VFSHandleCleanupTask.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/VFSHandleCleanupTask.java                            
>>> (rev 0)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/VFSHandleCleanupTask.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -0,0 +1,54 @@
>>> +/*
>>> + * JBoss, Home of Professional Open Source.
>>> + * Copyright 2009, Red Hat Middleware LLC, and individual contributors
>>> + * as indicated by the @author tags. See the copyright.txt file in the
>>> + * distribution for a full listing of individual contributors.
>>> + *
>>> + * This is free software; you can redistribute it and/or modify it
>>> + * under the terms of the GNU Lesser General Public License as
>>> + * published by the Free Software Foundation; either version 2.1 of
>>> + * the License, or (at your option) any later version.
>>> + *
>>> + * This software is distributed in the hope that it will be useful,
>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
>>> + * Lesser General Public License for more details.
>>> + *
>>> + * You should have received a copy of the GNU Lesser General Public
>>> + * License along with this software; if not, write to the Free
>>> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
>>> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
>>> + */
>>> +package org.jboss.deployers.vfs.plugins.structure;
>>> +
>>> +import java.io.Closeable;
>>> +import java.util.List;
>>> +
>>> +import org.jboss.vfs.VFSUtils;
>>> +
>>> +/**
>>> + * VFSHandleCleanupTask -
>>> + *
>>> + * Task used to close VFS handles.
>>> + *
>>> + * @author<a href="baileyje at gmail.com">John Bailey</a>
>>> + * @version $Revision: 1.1 $
>>> + */
>>> +public class VFSHandleCleanupTask implements Runnable {
>>> +   /** The Handles  */
>>> +   private final List<Closeable>  handles;
>>> +
>>> +   /**
>>> +    * Constructs a new VFSHandleContext
>>> +    *
>>> +    * @param handles List of VFS handles
>>> +    */
>>> +   public VFSHandleCleanupTask(List<Closeable>  handles) {
>>> +      this.handles = handles;
>>> +   }
>>> +
>>> +   public void run() {
>>> +      VFSUtils.safeClose(handles);
>>> +   }
>>> +
>>> +}
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/jar/JARStructure.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/jar/JARStructure.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/main/java/org/jboss/deployers/vfs/plugins/structure/jar/JARStructure.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -21,9 +21,13 @@
>>>   */
>>>   package org.jboss.deployers.vfs.plugins.structure.jar;
>>>
>>> +import java.io.Closeable;
>>> +import java.io.IOException;
>>> +import java.util.ArrayList;
>>> +import java.util.HashSet;
>>> +import java.util.List;
>>>   import java.util.Set;
>>> -import java.util.Collections;
>>> -import java.util.HashSet;
>>> +import java.util.concurrent.ScheduledExecutorService;
>>>
>>>   import org.jboss.beans.metadata.api.annotations.Install;
>>>   import org.jboss.beans.metadata.api.annotations.Uninstall;
>>> @@ -31,7 +35,11 @@
>>>   import org.jboss.deployers.spi.deployer.matchers.JarExtensionProvider;
>>>   import org.jboss.deployers.spi.structure.ContextInfo;
>>>   import 
>>> org.jboss.deployers.vfs.plugins.structure.AbstractVFSStructureDeployer;
>>> +import org.jboss.deployers.vfs.plugins.structure.VFSHandleCleanupTask;
>>>   import org.jboss.deployers.vfs.spi.structure.StructureContext;
>>> +import org.jboss.vfs.TempFileProvider;
>>> +import org.jboss.vfs.VFS;
>>> +import org.jboss.vfs.VFSUtils;
>>>   import org.jboss.vfs.VirtualFile;
>>>
>>>   /**
>>> @@ -43,14 +51,29 @@
>>>    */
>>>   public class JARStructure extends AbstractVFSStructureDeployer
>>>   {
>>> -   private final Set<String>  suffixes = 
>>> Collections.synchronizedSet(new HashSet<String>());
>>> +   public static final Set<String>  DEFAULT_SUFFIXES = new 
>>> HashSet<String>();
>>> +   static {
>>> +
>>> +      DEFAULT_SUFFIXES.add(".zip");
>>> +      DEFAULT_SUFFIXES.add(".ear");
>>> +      DEFAULT_SUFFIXES.add(".jar");
>>> +      DEFAULT_SUFFIXES.add(".rar");
>>> +      DEFAULT_SUFFIXES.add(".war");
>>> +      DEFAULT_SUFFIXES.add(".sar");
>>> +      DEFAULT_SUFFIXES.add(".har");
>>> +      DEFAULT_SUFFIXES.add(".aop");
>>> +   }
>>> +
>>> +   private final Set<String>  suffixes = new 
>>> HashSet<String>();//Collections.synchronizedSet(new HashSet<String>());
>>>
>>> +   private ScheduledExecutorService scheduledExecutorService;
>>> +
>>>      /**
>>>       * Create a new JARStructure. with the default suffixes
>>>       */
>>>      public JARStructure()
>>>      {
>>> -      this(null);
>>> +      this(DEFAULT_SUFFIXES);
>>>      }
>>>
>>>      /**
>>> @@ -64,8 +87,28 @@
>>>            setSuffixes(suffixes);
>>>         setRelativeOrder(10000);
>>>      }
>>> +
>>> +   /**
>>> +    * Get the scheduled executor service.
>>> +    *
>>> +    * @return the scheduled executor service
>>> +    */
>>> +   public ScheduledExecutorService getScheduledExecutorService()
>>> +   {
>>> +      return scheduledExecutorService;
>>> +   }
>>>
>>>      /**
>>> +    * Set the scheduled executor service.
>>> +    *
>>> +    * @param scheduledExecutorService the scheduled executor service
>>> +    */
>>> +   public void setScheduledExecutorService(final 
>>> ScheduledExecutorService scheduledExecutorService)
>>> +   {
>>> +      this.scheduledExecutorService = scheduledExecutorService;
>>> +   }
>>> +
>>> +   /**
>>>       * Gets the set of suffixes recognised as jars
>>>       *
>>>       * @return the set of suffixes
>>> @@ -102,26 +145,21 @@
>>>      }
>>>
>>>      private boolean isArchive(String name) {
>>> -      int i = name.length() - 1;
>>> -      for (;;) {
>>> -         i = name.lastIndexOf('.', i);
>>> -         if (i == -1) {
>>> -            return false;
>>> -         }
>>> -         if (suffixes.contains(name.substring(i))) {
>>> -            return true;
>>> -         }
>>> -      }
>>> +      int idx = name.lastIndexOf('.');
>>> +      if(idx == -1)
>>> +         return false;
>>> +      return suffixes.contains(name.substring(idx).toLowerCase());
>>>      }
>>>
>>>      public boolean determineStructure(StructureContext 
>>> structureContext) throws DeploymentException
>>>      {
>>>         ContextInfo context = null;
>>>         VirtualFile file = structureContext.getFile();
>>> +      final List<Closeable>  handles = new ArrayList<Closeable>();
>>>         try
>>>         {
>>>            boolean trace = log.isTraceEnabled();
>>> -
>>> +
>>>            if (isLeaf(file) == false)
>>>            {
>>>               // For non top level directories that don't look like jars
>>> @@ -131,7 +169,7 @@
>>>                  if (structureContext.isTopLevel() == false)
>>>                  {
>>>                     VirtualFile child = file.getChild("META-INF");
>>> -                  if (child != null)
>>> +                  if (child != null&&  child.exists())
>>>                     {
>>>                        if (trace)
>>>                           log.trace("... ok - non top level directory 
>>> has a META-INF subdirectory");
>>> @@ -157,6 +195,12 @@
>>>            {
>>>               if (trace)
>>>                  log.trace("... ok - its an archive or at least 
>>> pretending to be.");
>>> +
>>> +            try {
>>> +               handles.add(VFS.mountZipExpanded(file, file, 
>>> TempFileProvider.create(file.getName(), scheduledExecutorService)));
>>> +            } catch (IOException e) {
>>> +               
>>> DeploymentException.rethrowAsDeploymentException("Failed to mount JAR 
>>> archive", e);
>>> +            }
>>>            }
>>>            else
>>>            {
>>> @@ -188,11 +232,16 @@
>>>
>>>               // We try all the children as potential subdeployments
>>>               addAllChildren(structureContext);
>>> +
>>> +            context.setCleanupTask(new VFSHandleCleanupTask(handles));
>>>            }
>>>            return valid;
>>>         }
>>>         catch (Exception e)
>>>         {
>>> +         // Undo all mounts
>>> +         VFSUtils.safeClose(handles);
>>> +
>>>            // Remove the invalid context
>>>            if(context != null)
>>>               structureContext.removeChild(context);
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BaseDeployersVFSTest.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BaseDeployersVFSTest.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BaseDeployersVFSTest.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -21,6 +21,7 @@
>>>   */
>>>   package org.jboss.test.deployers;
>>>
>>> +import java.net.MalformedURLException;
>>>   import java.net.URL;
>>>
>>>   import org.jboss.deployers.client.spi.DeployerClient;
>>> @@ -36,7 +37,6 @@
>>>   import org.jboss.deployers.vfs.spi.structure.VFSDeploymentContext;
>>>   import org.jboss.vfs.VFS;
>>>   import org.jboss.vfs.VirtualFile;
>>> -import org.jboss.vfs.plugins.context.jar.JarUtils;
>>>
>>>   /**
>>>    * BaseDeployersVFSTest.
>>> @@ -70,7 +70,7 @@
>>>      protected VirtualFile getVirtualFile(String root, String path) 
>>> throws Exception
>>>      {
>>>         URL url = getResource(root);
>>> -      return VFS.getVirtualFile(url, path);
>>> +      return VFS.getChild(url).getChild(path);
>>>      }
>>>
>>>      /**
>>> @@ -108,7 +108,7 @@
>>>      protected String getJarURL(String path) throws Exception
>>>      {
>>>         URL url = getResource(path);
>>> -      url = JarUtils.createJarURL(url);
>>> +      url = createJarURL(url);
>>>         return url.toString();
>>>      }
>>>
>>> @@ -159,4 +159,12 @@
>>>         VirtualFile file = getVirtualFile(root, path);
>>>         return new AbstractVFSDeploymentContext(file, "");
>>>      }
>>> +
>>> +   private URL createJarURL(URL url) throws MalformedURLException
>>> +   {
>>> +      if (url == null)
>>> +         throw new IllegalArgumentException("Null url");
>>> +      return new URL("jar:" + url + "!/");
>>> +   }
>>> +
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BootstrapDeployersTest.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BootstrapDeployersTest.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/BootstrapDeployersTest.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -21,6 +21,7 @@
>>>   */
>>>   package org.jboss.test.deployers;
>>>
>>> +import java.net.URISyntaxException;
>>>   import java.net.URL;
>>>   import java.security.CodeSource;
>>>   import java.security.ProtectionDomain;
>>> @@ -43,12 +44,9 @@
>>>   import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
>>>   import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
>>>   import org.jboss.test.kernel.junit.MicrocontainerTest;
>>> -import org.jboss.vfs.AssembledDirectory;
>>>   import org.jboss.vfs.VFS;
>>>   import org.jboss.vfs.VirtualFile;
>>> -import org.jboss.vfs.plugins.context.file.FileSystemContext;
>>> -import org.jboss.vfs.plugins.context.jar.JarUtils;
>>> -import org.jboss.vfs.plugins.vfs.helpers.SuffixesExcludeFilter;
>>> +import org.jboss.vfs.util.SuffixesExcludeFilter;;
>>>
>>>   /**
>>>    * BootstrapDeployersTest.
>>> @@ -96,12 +94,12 @@
>>>         return (BootstrapDeployersTestDelegate) super.getDelegate();
>>>      }
>>>
>>> -   protected VirtualFile createDeploymentRoot(String root, String 
>>> child) throws IOException
>>> +   protected VirtualFile createDeploymentRoot(String root, String 
>>> child) throws IOException, URISyntaxException
>>>      {
>>>         URL resourceRoot = getClass().getResource(root);
>>>         if (resourceRoot == null)
>>>            fail("Resource not found: " + root);
>>> -      VirtualFile deployment = VFS.getVirtualFile(resourceRoot, child);
>>> +      VirtualFile deployment = 
>>> VFS.getChild(resourceRoot).getChild(child);
>>>         if (deployment == null)
>>>            fail("Child not found " + child + " from " + resourceRoot);
>>>         return deployment;
>>> @@ -351,9 +349,5 @@
>>>         super.setUp();
>>>         // This is a hack for a hack. ;-)
>>>         
>>> AbstractJDKChecker.getExcluded().add(BootstrapDeployersTest.class);
>>> -
>>> -      // Reduce the noise from the VFS
>>> -      // FIXME add method change logging levels to AbstractTestCase
>>> -      Logger.getLogger(FileSystemContext.class).setLevel(Level.INFO);
>>>      }
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestMetaDataUrlIntegrationDeployer.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestMetaDataUrlIntegrationDeployer.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestMetaDataUrlIntegrationDeployer.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -25,7 +25,6 @@
>>>
>>>   import 
>>> org.jboss.deployers.vfs.plugins.classloader.MetaDataUrlIntegrationDeployer; 
>>>
>>>   import org.jboss.kernel.spi.deployment.KernelDeployment;
>>> -import org.jboss.vfs.VFS;
>>>
>>>   /**
>>>    * @author<a href="mailto:ales.justin at jboss.com">Ales Justin</a>
>>> @@ -36,7 +35,6 @@
>>>      {
>>>         super(KernelDeployment.class);
>>>         setFiles(new String[]{"metadata-touch-beans.xml"});
>>> -      VFS.init();
>>>         URL dynamicClassRoot = new URL("vfsmemory", 
>>> "integration-test", "");
>>>         setIntegrationURL(dynamicClassRoot);
>>>      }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestPathUrlIntegrationDeployer.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestPathUrlIntegrationDeployer.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/classloader/support/TestPathUrlIntegrationDeployer.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -25,7 +25,6 @@
>>>
>>>   import 
>>> org.jboss.deployers.vfs.plugins.classloader.PathUrlIntegrationDeployer;
>>>   import org.jboss.kernel.spi.deployment.KernelDeployment;
>>> -import org.jboss.vfs.VFS;
>>>
>>>   /**
>>>    * @author<a href="mailto:ales.justin at jboss.com">Ales Justin</a>
>>> @@ -36,7 +35,6 @@
>>>      {
>>>         super(KernelDeployment.class);
>>>         setFiles(new String[]{"data/path-touch-beans.xml"});
>>> -      VFS.init();
>>>         URL dynamicClassRoot = new URL("vfsmemory", 
>>> "integration-test", "");
>>>         setIntegrationURL(dynamicClassRoot);
>>>      }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/AbstractStructureTest.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -32,7 +32,7 @@
>>>   import org.jboss.deployers.vfs.plugins.structure.VFSStructureBuilder;
>>>   import org.jboss.deployers.vfs.plugins.structure.file.FileStructure;
>>>   import org.jboss.deployers.vfs.plugins.structure.jar.JARStructure;
>>> -import org.jboss.deployers.vfs.plugins.structure.war.WARStructure;
>>> +//import org.jboss.deployers.vfs.plugins.structure.war.WARStructure;
>>>   import org.jboss.deployers.vfs.spi.client.VFSDeployment;
>>>   import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
>>>   import org.jboss.deployers.vfs.spi.structure.StructureDeployer;
>>> @@ -40,7 +40,6 @@
>>>   import org.jboss.test.BaseTestCase;
>>>   import org.jboss.vfs.VFS;
>>>   import org.jboss.vfs.VirtualFile;
>>> -import org.jboss.vfs.VFSUtils;
>>>
>>>   /**
>>>    * AbstractStructureUnitTestCase.
>>> @@ -56,11 +55,11 @@
>>>         super(name);
>>>      }
>>>
>>> -   protected void assertUnpacked(VirtualFile file) throws Exception
>>> -   {
>>> -      VirtualFile modified = VFSUtils.unpack(file);
>>> -      assertTrue(VFSUtils.isTemporaryFile(modified));
>>> -   }
>>> +//   protected void assertUnpacked(VirtualFile file) throws Exception
>>> +//   {
>>> +//      VirtualFile modified = VFSUtils.unpack(file);
>>> +//      assertTrue(VFSUtils.isTemporaryFile(modified));
>>> +//   }
>>>
>>>      protected void assertNoChildContexts(VFSDeploymentContext context)
>>>      {
>>> @@ -161,7 +160,7 @@
>>>      {
>>>         VirtualFile root = context.getRoot();
>>>         List<VirtualFile>  metaDataLocation = 
>>> context.getMetaDataLocations();
>>> -      VirtualFile expected = root.findChild(metaDataPath);
>>> +      VirtualFile expected = root.getChild(metaDataPath);
>>>         assertNotNull(metaDataLocation);
>>>         assertEquals(1, metaDataLocation.size());
>>>         assertEquals(expected, metaDataLocation.get(0));
>>> @@ -175,7 +174,7 @@
>>>         int i = 0;
>>>         for(String path : metaDataPath)
>>>         {
>>> -         VirtualFile expected = root.findChild(path);
>>> +         VirtualFile expected = root.getChild(path);
>>>            assertEquals(expected, metaDataLocations.get(i++));
>>>         }
>>>      }
>>> @@ -216,7 +215,7 @@
>>>         for (String path : paths)
>>>         {
>>>            VirtualFile ref = reference.getRoot();
>>> -         VirtualFile expected = ref.findChild(path);
>>> +         VirtualFile expected = ref.getChild(path);
>>>            assertTrue("Expected " + expected +" in " + classPath, 
>>> classPath.contains(expected));
>>>         }
>>>      }
>>> @@ -250,7 +249,7 @@
>>>
>>>      protected VFSDeploymentContext 
>>> determineStructureWithAllStructureDeployers(VFSDeployment deployment) 
>>> throws Exception
>>>      {
>>> -      return determineStructureWithStructureDeployers(deployment, 
>>> new FileStructure(), new WARStructure(), new JARStructure());
>>> +      return determineStructureWithStructureDeployers(deployment, 
>>> new FileStructure(), /**new WARStructure(),*/ new JARStructure());
>>>      }
>>>
>>>      protected VFSDeploymentContext 
>>> determineStructureWithStructureDeployers(VFSDeployment deployment, 
>>> StructureDeployer... deployers) throws Exception
>>> @@ -295,6 +294,7 @@
>>>      {
>>>         VFSDeploymentContext result = assertDeploy(context, path);
>>>         assertNoChildContexts(result);
>>> +      result.cleanup();
>>>         return result;
>>>      }
>>>
>>> @@ -321,7 +321,8 @@
>>>      protected VirtualFile getVirtualFile(String root, String path) 
>>> throws Exception
>>>      {
>>>         URL url = getResource(root);
>>> -      return VFS.getVirtualFile(url, path);
>>> +      VirtualFile rootFile = VFS.getChild(url);
>>> +      return rootFile.getChild(path);
>>>      }
>>>
>>>      @Override
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/ear/support/MockEarStructureDeployer.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/ear/support/MockEarStructureDeployer.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/ear/support/MockEarStructureDeployer.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -42,7 +42,7 @@
>>>   import org.jboss.vfs.VFSUtils;
>>>   import org.jboss.vfs.VirtualFile;
>>>   import org.jboss.vfs.VirtualFileFilter;
>>> -import org.jboss.vfs.plugins.vfs.helpers.SuffixMatchFilter;
>>> +import org.jboss.vfs.util.SuffixMatchFilter;
>>>
>>>   /**
>>>    * A mock ear structure deployer that illustrates concepts involved 
>>> with an ear
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/CombinedFileStructureUnitTestCase.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/CombinedFileStructureUnitTestCase.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/CombinedFileStructureUnitTestCase.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -48,7 +48,8 @@
>>>      public void testDirectory() throws Throwable
>>>      {
>>>         // The jar deployer recognises the directory in the combined 
>>> test
>>> -      assertDeployNoChildren("/structure/file", "directory");
>>> +      VFSDeploymentContext vfsDeploymentContext = 
>>> assertDeployNoChildren("/structure/file", "directory");
>>> +      assertNotNull(vfsDeploymentContext.getVfsHandles());
>>>      }
>>>
>>>      public void testNotKnownInSubdirectory() throws Throwable
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/FileMatcherTestCase.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/FileMatcherTestCase.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/file/test/FileMatcherTestCase.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -42,9 +42,8 @@
>>>   import org.jboss.test.BaseTestCase;
>>>   import 
>>> org.jboss.test.deployers.vfs.structure.file.support.BshFileMatcher;
>>>   import 
>>> org.jboss.test.deployers.vfs.structure.file.support.TmpFileStructure;
>>> +import org.jboss.vfs.VFS;
>>>   import org.jboss.vfs.VirtualFile;
>>> -import org.jboss.vfs.spi.VFSContext;
>>> -import org.jboss.vfs.spi.VirtualFileHandler;
>>>
>>>   /**
>>>    * FileMatcherTestCase.
>>> @@ -65,7 +64,7 @@
>>>
>>>      protected VirtualFile getVirtualFile() throws Throwable
>>>      {
>>> -      return new MyVirtualFile();
>>> +      return VFS.getChild("somefile.bsh");
>>>      }
>>>
>>>      public void testMatcher() throws Throwable
>>> @@ -100,162 +99,162 @@
>>>         }
>>>      }
>>>
>>> -   private static class MyVirtualFile extends VirtualFile
>>> -   {
>>> -      /** The serialVersionUID */
>>> -      private static final long serialVersionUID = 1L;
>>> -
>>> -      public MyVirtualFile()
>>> -      {
>>> -         super(getVirtualFileHandler());
>>> -      }
>>> -
>>> -      private static VirtualFileHandler getVirtualFileHandler()
>>> -      {
>>> -         return new VirtualFileHandler()
>>> -         {
>>> -            /** The serialVersionUID */
>>> -            private static final long serialVersionUID = 1L;
>>> -
>>> -            public String getName()
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public String getPathName()
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public URL toVfsUrl() throws MalformedURLException, 
>>> URISyntaxException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public URI toURI() throws URISyntaxException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public URL toURL() throws MalformedURLException, 
>>> URISyntaxException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public long getLastModified() throws IOException
>>> -            {
>>> -               return 0;
>>> -            }
>>> -
>>> -            public boolean hasBeenModified() throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public long getSize() throws IOException
>>> -            {
>>> -               return 0;
>>> -            }
>>> -
>>> -            public boolean exists() throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public boolean isLeaf() throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public boolean isArchive() throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public boolean isHidden() throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public String getLocalPathName()
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public boolean isNested() throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public InputStream openStream() throws IOException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public VirtualFileHandler getParent() throws IOException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public List<VirtualFileHandler>  getChildren(boolean 
>>> ignoreErrors) throws IOException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public VirtualFileHandler getChild(String path) throws 
>>> IOException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public VFSContext getVFSContext()
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public VirtualFile getVirtualFile()
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public void close()
>>> -            {
>>> -
>>> -            }
>>> -
>>> -            public void replaceChild(VirtualFileHandler original, 
>>> VirtualFileHandler replacement)
>>> -            {
>>> -
>>> -            }
>>> -
>>> -            public boolean removeChild(String name) throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public boolean delete(int gracePeriod) throws IOException
>>> -            {
>>> -               return false;
>>> -            }
>>> -
>>> -            public URL getRealURL() throws IOException, 
>>> URISyntaxException
>>> -            {
>>> -               return null;
>>> -            }
>>> -
>>> -            public void cleanup()
>>> -            {
>>> -            }
>>> -
>>> -            public Certificate[] getCertificates()
>>> -            {
>>> -               return null;
>>> -            }
>>> -         };
>>> -      }
>>> -
>>> -      public String getName()
>>> -      {
>>> -         return "somefile.bsh";
>>> -      }
>>> -   }
>>> +//   private static class MyVirtualFile extends VirtualFile
>>> +//   {
>>> +//      /** The serialVersionUID */
>>> +//      private static final long serialVersionUID = 1L;
>>> +//
>>> +//      public MyVirtualFile()
>>> +//      {
>>> +//         super(getVirtualFileHandler());
>>> +//      }
>>> +//
>>> +//      private static VirtualFileHandler getVirtualFileHandler()
>>> +//      {
>>> +//         return new VirtualFileHandler()
>>> +//         {
>>> +//            /** The serialVersionUID */
>>> +//            private static final long serialVersionUID = 1L;
>>> +//
>>> +//            public String getName()
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public String getPathName()
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public URL toVfsUrl() throws MalformedURLException, 
>>> URISyntaxException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public URI toURI() throws URISyntaxException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public URL toURL() throws MalformedURLException, 
>>> URISyntaxException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public long getLastModified() throws IOException
>>> +//            {
>>> +//               return 0;
>>> +//            }
>>> +//
>>> +//            public boolean hasBeenModified() throws IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public long getSize() throws IOException
>>> +//            {
>>> +//               return 0;
>>> +//            }
>>> +//
>>> +//            public boolean exists() throws IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public boolean isLeaf() throws IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public boolean isArchive() throws IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public boolean isHidden() throws IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public String getLocalPathName()
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public boolean isNested() throws IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public InputStream openStream() throws IOException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public VirtualFileHandler getParent() throws IOException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public List<VirtualFileHandler>  getChildren(boolean 
>>> ignoreErrors) throws IOException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public VirtualFileHandler getChild(String path) throws 
>>> IOException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public VFSContext getVFSContext()
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public VirtualFile getVirtualFile()
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public void close()
>>> +//            {
>>> +//
>>> +//            }
>>> +//
>>> +//            public void replaceChild(VirtualFileHandler original, 
>>> VirtualFileHandler replacement)
>>> +//            {
>>> +//
>>> +//            }
>>> +//
>>> +//            public boolean removeChild(String name) throws 
>>> IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public boolean delete(int gracePeriod) throws IOException
>>> +//            {
>>> +//               return false;
>>> +//            }
>>> +//
>>> +//            public URL getRealURL() throws IOException, 
>>> URISyntaxException
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//
>>> +//            public void cleanup()
>>> +//            {
>>> +//            }
>>> +//
>>> +//            public Certificate[] getCertificates()
>>> +//            {
>>> +//               return null;
>>> +//            }
>>> +//         };
>>> +//      }
>>> +//
>>> +//      public String getName()
>>> +//      {
>>> +//         return "somefile.bsh";
>>> +//      }
>>> +//   }
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/ConfiguredSuffixJARStructureUnitTestCase.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/ConfiguredSuffixJARStructureUnitTestCase.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/ConfiguredSuffixJARStructureUnitTestCase.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -28,7 +28,6 @@
>>>   import junit.framework.TestSuite;
>>>   import org.jboss.deployers.vfs.plugins.structure.jar.JARStructure;
>>>   import org.jboss.test.BaseTestCase;
>>> -import org.jboss.vfs.plugins.context.jar.JarUtils;
>>>
>>>   /**
>>>    * ConfiguredSuffixJARStructureUnitTestCase.
>>> @@ -40,8 +39,8 @@
>>>   public class ConfiguredSuffixJARStructureUnitTestCase extends 
>>> BaseTestCase
>>>   {
>>>      /** The file structure deployer */
>>> -   private static final Set<String>  defaultSuffixes = 
>>> JarUtils.getSuffixes();
>>> -
>>> +   private static final Set<String>  defaultSuffixes = 
>>> JARStructure.DEFAULT_SUFFIXES;
>>> +
>>>      public static Test suite()
>>>      {
>>>         return new 
>>> TestSuite(ConfiguredSuffixJARStructureUnitTestCase.class);
>>> @@ -73,24 +72,17 @@
>>>
>>>      public void testOverwriteDefaults() throws Exception
>>>      {
>>> -      try
>>> -      {
>>> -         Set<String>  newSuffixes = new HashSet<String>();
>>> -         newSuffixes.add(".bar");
>>> -         newSuffixes.add(".tar");
>>> -         newSuffixes.add(".far");
>>> -
>>> -         JARStructure structure = new JARStructure(newSuffixes);
>>> -         Set<String>  suffixes = structure.getSuffixes();
>>> -         assertNotNull(suffixes);
>>> -         assertEquals(3, suffixes.size());
>>> -         assertTrue(suffixes.contains(".bar"));
>>> -         assertTrue(suffixes.contains(".tar"));
>>> -         assertTrue(suffixes.contains(".far"));
>>> -      }
>>> -      finally
>>> -      {
>>> -         JarUtils.setJarSuffixes(defaultSuffixes);
>>> -      }
>>> +      Set<String>  newSuffixes = new HashSet<String>();
>>> +      newSuffixes.add(".bar");
>>> +      newSuffixes.add(".tar");
>>> +      newSuffixes.add(".far");
>>> +
>>> +      JARStructure structure = new JARStructure(newSuffixes);
>>> +      Set<String>  suffixes = structure.getSuffixes();
>>> +      assertNotNull(suffixes);
>>> +      assertEquals(3, suffixes.size());
>>> +      assertTrue(suffixes.contains(".bar"));
>>> +      assertTrue(suffixes.contains(".tar"));
>>> +      assertTrue(suffixes.contains(".far"));
>>>      }
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/JARStructureUnitTestCase.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/JARStructureUnitTestCase.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/jar/test/JARStructureUnitTestCase.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -48,6 +48,6 @@
>>>
>>>      protected VFSDeploymentContext determineStructure(VFSDeployment 
>>> deployment) throws Exception
>>>      {
>>> -      return determineStructureWithStructureDeployer(deployment, new 
>>> JARStructure());
>>> +      return determineStructureWithStructureDeployers(deployment, 
>>> false, new JARStructure());
>>>      }
>>>   }
>>>
>>> Modified: 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/war/test/AbstractWARStructureTest.java 
>>>
>>> ===================================================================
>>> --- 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/war/test/AbstractWARStructureTest.java    
>>> 2009-10-21 02:14:24 UTC (rev 95236)
>>> +++ 
>>> projects/jboss-deployers/branches/vfs3/deployers-vfs/src/test/java/org/jboss/test/deployers/vfs/structure/war/test/AbstractWARStructureTest.java    
>>> 2009-10-21 02:20:48 UTC (rev 95237)
>>> @@ -74,11 +74,11 @@
>>>         assertNotNull("classpath", classpath);
>>>         assertEquals("classpath.size = 3", 3, classpath.size());
>>>         VirtualFile warFile = war.getRoot();
>>> -      VirtualFile classes = warFile.findChild("WEB-INF/classes");
>>> +      VirtualFile classes = warFile.getChild("WEB-INF/classes");
>>>         assertTrue("WEB-INF/classes in classpath", 
>>> classpath.contains(classes));
>>> -      VirtualFile j0 = warFile.findChild("WEB-INF/lib/j0.jar");
>>> +      VirtualFile j0 = warFile.getChild("WEB-INF/lib/j0.jar");
>>>         assertTrue("WEB-INF/lib/j0.jar in classpath", 
>>> classpath.contains(j0));
>>> -      VirtualFile j1 = warFile.findChild("WEB-INF/lib/j1.jar");
>>> +      VirtualFile j1 = warFile.getChild("WEB-INF/lib/j1.jar");
>>>         assertTrue("WEB-INF/lib/j1.jar in classpath", 
>>> classpath.contains(j1));
>>>      }
>>>   }
>>>
>>> Modified: projects/jboss-deployers/branches/vfs3/pom.xml
>>> ===================================================================
>>> --- projects/jboss-deployers/branches/vfs3/pom.xml    2009-10-21 
>>> 02:14:24 UTC (rev 95236)
>>> +++ projects/jboss-deployers/branches/vfs3/pom.xml    2009-10-21 
>>> 02:20:48 UTC (rev 95237)
>>> @@ -28,8 +28,8 @@
>>>       
>>> <version.jboss.classloader>2.2.0-SNAPSHOT</version.jboss.classloader>
>>>       
>>> <version.jboss.classloading.spi>5.1.0.SP1</version.jboss.classloading.spi> 
>>>
>>>       <version.jboss.common.core>2.2.14.GA</version.jboss.common.core>
>>> -<version.jboss.logging.spi>2.0.5.GA</version.jboss.logging.spi>
>>> -<version.jboss.logging.log4j>2.0.5.GA</version.jboss.logging.log4j>
>>> +<version.jboss.logging.spi>2.2.0.CR1</version.jboss.logging.spi>
>>> +<version.jboss.logging.log4j>2.2.0.CR1</version.jboss.logging.log4j>
>>>       <version.jbossxb>2.0.2-SNAPSHOT</version.jbossxb>
>>>       <version.jboss.aop>2.1.0.CR3</version.jboss.aop>
>>>       <version.org.jboss.test>1.1.1.GA</version.org.jboss.test>
>>>
>>>
>>>
>>> ------------------------------
>>>
>>> _______________________________________________
>>> jboss-cvs-commits mailing list
>>> jboss-cvs-commits at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits
>>>
>>>
>>> End of jboss-cvs-commits Digest, Vol 40, Issue 464
>>> **************************************************
>>>
>> _______________________________________________
>> jboss-cvs-commits mailing list
>> jboss-cvs-commits at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-cvs-commits
> 



More information about the jboss-cvs-commits mailing list