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

Ales Justin ales.justin at gmail.com
Wed Oct 21 15:20:30 EDT 2009


Why hooks anyway?

Each DeploymentContext should know which things it mounted.
e.g.
* metadata locations
* classpath - libs

And we do call DC::cleanup for the whole hierarchy.

If hooks is what you need, can't you "hide" them as an impl detail?

John Bailey wrote:
> I did add the cleanup tasks to the DeploymentContext.  Maybe that was
> the wrong level of abstraction.  After the discussion of updating
> ContextInfo to hold the handles until StructureBuilder could attach
> them DeploymentContext, it seemed it would be best to match that level
> of abstraction.  It would be easy task to drop the cleanup tasks a
> level into the VFS deployers.
> 
> -baileyje
> 
> On Wed, Oct 21, 2009 at 10:03 AM, David M. Lloyd <david.lloyd at redhat.com> wrote:
>> Also as far as I can see, DeploymentContext already has a cleanup method -
>> we didn't add it.
>>
>> On 10/21/2009 09:51 AM, David M. Lloyd wrote:
>>> Do you have a more helpful suggestion? 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.
>>>
>>> - DML
>>>
>>> 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