You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/04/14 15:58:29 UTC

svn commit: r528810 [2/3] - in /tapestry/tapestry4/trunk: ./ tapestry-annotations/ tapestry-annotations/src/java/org/apache/tapestry/annotations/ tapestry-annotations/src/test/org/apache/tapestry/annotations/ tapestry-annotations/src/test/org/apache/ta...

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.asset.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.asset.xml?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.asset.xml (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/descriptor/META-INF/tapestry.asset.xml Sat Apr 14 06:58:27 2007
@@ -61,7 +61,6 @@
     
     <invoke-factory>
       <construct class="ContextAssetFactory">
-        <set-service property="classpathAssetFactory" service-id="ClasspathAssetFactory"/>
         <set-object property="contextPath" value="infrastructure:contextPath"/>
         <set-service property="webContext" service-id="tapestry.globals.WebContext"/>
         <set-object property="localizer" value="infrastructure:resourceLocalizer"/>
@@ -118,6 +117,8 @@
         <set-configuration property="contributions" configuration-id="AssetFactories"/>
         <set-service property="lookupAssetFactory" service-id="LookupAssetFactory"/>
         <set-service property="defaultAssetFactory" service-id="DefaultAssetFactory"/>
+        <set-service property="contextAssetFactory" service-id="ContextAssetFactory" />
+        <set-service property="classpathAssetFactory" service-id="ClasspathAssetFactory" />
       </construct>
     </invoke-factory>
   </service-point>

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetFactory.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetFactory.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetFactory.java Sat Apr 14 06:58:27 2007
@@ -14,11 +14,12 @@
 
 package org.apache.tapestry.asset;
 
-import java.util.Locale;
-
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
 import org.apache.tapestry.IAsset;
+import org.apache.tapestry.spec.IComponentSpecification;
+
+import java.util.Locale;
 
 /**
  * A service which creates an asset. In some cases, the asset is selected based on the Resource
@@ -29,8 +30,23 @@
  */
 public interface AssetFactory
 {
+
+    /**
+     * Invoked to check if the factory instance can find a matching asset using the appropriate
+     * strategy specific to its implementation.
+     *
+     * @param spec The optional component specification to check the path against.
+     * @param baseResource The resource that the path may be relative to.
+     * @param path The asset path, relative to baseResource. 
+     * @param locale Optional parameter when a localized version is desired. (may be null)
+     * @return True if the requested asset can be found, false otherwise.
+     */
+    boolean assetExists(IComponentSpecification spec, Resource baseResource, String path, Locale locale);
+
     /**
      * Creates a new asset relative to an existing asset.
+     *
+     * @param spec The optional component specification to check the path against.
      * 
      * @param baseResource
      *            the base resource from which an asset path may be calculated. Each type of asset
@@ -48,7 +64,7 @@
      * @throws org.apache.hivemind.ApplicationRuntimeException
      *             if no matching asset may be found.
      */
-    IAsset createAsset(Resource baseResource, String path, Locale locale, Location location);
+    IAsset createAsset(IComponentSpecification spec, Resource baseResource, String path, Locale locale, Location location);
 
     /**
      * Creates a new asset relative to the root of the domain defined by the type of asset.

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSource.java Sat Apr 14 06:58:27 2007
@@ -14,11 +14,12 @@
 
 package org.apache.tapestry.asset;
 
-import java.util.Locale;
-
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
 import org.apache.tapestry.IAsset;
+import org.apache.tapestry.spec.IComponentSpecification;
+
+import java.util.Locale;
 
 /**
  * Used to create an {@link org.apache.tapestry.IAsset} instance for a particular asset path. The
@@ -51,4 +52,25 @@
      *             if the asset does not exist
      */
     IAsset findAsset(Resource base, String path, Locale locale, Location location);
+
+    /**
+     * Finds an asset relative to the specified <code>base</code> resources OR {@link IComponentSpecification} passed in.
+     *
+     * @param spec
+     *            The specification the resource may be relative to if not found relative to base.
+     * @param base
+     *            The base resource used for resolving the asset
+     * @param path
+     *            the path relative to the base resource; alternately, the path may include a prefix
+     *            that defines a domain (such as "classpath:" or "context:") in which case the base
+     *            resource is ignored and the resource resolved within that domain
+     * @param locale
+     *            used to find a localized version of the asset, may be null to indicate no
+     *            localization
+     * @param location
+     *            used to report errors (such as missing resources)
+     *
+     * @return the asset, possibly localized
+     */
+    IAsset findAsset(IComponentSpecification spec, Resource base, String path, Locale locale, Location location);
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/AssetSourceImpl.java Sat Apr 14 06:58:27 2007
@@ -14,22 +14,17 @@
 
 package org.apache.tapestry.asset;
 
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
 import org.apache.hivemind.util.Defense;
 import org.apache.tapestry.IAsset;
+import org.apache.tapestry.spec.IComponentSpecification;
+
+import java.util.*;
 
 /**
- * Implementation of the {@link org.apache.tapestry.asset.AssetSource}service interface.
+ * Implementation of the {@link org.apache.tapestry.asset.AssetSource} service interface.
  * 
- * @author Howard M. Lewis Ship
- * @since 4.0
  */
 public class AssetSourceImpl implements AssetSource
 {
@@ -41,6 +36,10 @@
 
     private AssetFactory _lookupAssetFactory;
 
+    private AssetFactory _classpathAssetFactory;
+
+    private AssetFactory _contextAssetFactory;
+
     public void initializeService()
     {
         Iterator i = _contributions.iterator();
@@ -54,19 +53,34 @@
 
     public IAsset findAsset(Resource base, String path, Locale locale, Location location)
     {
+        return findAsset(null, base, path, locale, location);
+    }
+
+    public IAsset findAsset(IComponentSpecification spec, Resource base, String path, Locale locale, Location location)
+    {
         Defense.notNull(path, "path");
         Defense.notNull(location, "location");
 
         int colonx = path.indexOf(':');
         
-        if (colonx < 0)
-            return _lookupAssetFactory.createAsset(base, path, locale, location);
+        String prefix = colonx > -1 ? path.substring(0, colonx) : null;
+        String truePath = colonx > -1 ? path.substring(colonx + 1) : path;
+
+        Resource assetBase = base;
+        AssetFactory factory = null;
+
+        if (prefix != null) {
+
+            factory = (AssetFactory) _assetFactoryByPrefix.get(prefix);
+        }
+
+        // now we have to search
         
-        String prefix = path.substring(0, colonx);
-        String truePath = path.substring(colonx + 1);
+        if (factory == null && prefix == null) {
+            
+            factory = findAssetFactory(spec, assetBase, path, locale);
+        }
         
-        AssetFactory factory = (AssetFactory) _assetFactoryByPrefix.get(prefix);
-
         // Unknown prefix is expected to happen when an external asset (using an established
         // prefix such as http:) is referenced.
 
@@ -85,7 +99,28 @@
 
         // This can happen when a 3.0 DTD is read in
 
-        return factory.createAsset(base, truePath, locale, location);
+        return factory.createAsset(spec, assetBase, truePath, locale, location);
+    }
+
+    AssetFactory findAssetFactory(IComponentSpecification spec, Resource baseResource, String path, Locale locale)
+    {
+        // need to check these two core factories in order first
+
+        if (_classpathAssetFactory.assetExists(spec, baseResource, path, locale))
+            return _classpathAssetFactory;
+
+        if (_contextAssetFactory.assetExists(spec, baseResource, path, locale))
+            return _contextAssetFactory;
+        
+        for (int i=0; i < _contributions.size(); i++) {
+
+            AssetFactoryContribution c = (AssetFactoryContribution)_contributions.get(i);
+
+            if (c.getFactory().assetExists(spec, baseResource, path, locale))
+                return c.getFactory();
+        }
+
+        return null;
     }
 
     /**
@@ -116,4 +151,13 @@
         _defaultAssetFactory = defaultAssetFactory;
     }
 
+    public void setClasspathAssetFactory(AssetFactory classpathAssetFactory)
+    {
+        _classpathAssetFactory = classpathAssetFactory;
+    }
+
+    public void setContextAssetFactory(AssetFactory contextAssetFactory)
+    {
+        _contextAssetFactory = contextAssetFactory;
+    }
 }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ClasspathAssetFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ClasspathAssetFactory.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ClasspathAssetFactory.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ClasspathAssetFactory.java Sat Apr 14 06:58:27 2007
@@ -14,8 +14,6 @@
 
 package org.apache.tapestry.asset;
 
-import java.util.Locale;
-
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.ClassResolver;
 import org.apache.hivemind.Location;
@@ -24,6 +22,9 @@
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.engine.IEngineService;
 import org.apache.tapestry.l10n.ResourceLocalizer;
+import org.apache.tapestry.spec.IComponentSpecification;
+
+import java.util.Locale;
 
 /**
  * Creates instances of {@link org.apache.tapestry.asset.PrivateAsset}, which are the holders of
@@ -40,7 +41,16 @@
 
     private ResourceLocalizer _localizer;
 
-    public IAsset createAsset(Resource baseResource, String path, Locale locale, Location location)
+    public boolean assetExists(IComponentSpecification spec, Resource baseResource, String path, Locale locale)
+    {
+        Resource assetResource = baseResource.getRelativeResource(path);
+
+        Resource localized = _localizer.findLocalization(assetResource, locale);
+
+        return localized != null;
+    }
+
+    public IAsset createAsset(IComponentSpecification spec, Resource baseResource, String path, Locale locale, Location location)
     {
         Resource asset = baseResource.getRelativeResource(path);
         Resource localized = _localizer.findLocalization(asset, locale);

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ContextAssetFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ContextAssetFactory.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ContextAssetFactory.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/ContextAssetFactory.java Sat Apr 14 06:58:27 2007
@@ -14,17 +14,18 @@
 
 package org.apache.tapestry.asset;
 
-import java.util.Locale;
-
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.l10n.ResourceLocalizer;
+import org.apache.tapestry.spec.IComponentSpecification;
 import org.apache.tapestry.web.WebContext;
 import org.apache.tapestry.web.WebContextResource;
 
+import java.util.Locale;
+
 /**
  * All "context:" prefixed asset paths are interpreted relative to the web context (the web
  * application's root folder).
@@ -36,8 +37,6 @@
 {
     private String _contextPath;
 
-    private AssetFactory _classpathAssetFactory;
-
     private WebContext _webContext;
 
     private ResourceLocalizer _localizer;
@@ -49,27 +48,59 @@
         _webContext = webContext;
     }
 
-    public IAsset createAsset(Resource baseResource, String path, Locale locale, Location location)
+    public boolean assetExists(IComponentSpecification spec, Resource baseResource, String path, Locale locale)
     {
+        return findAsset(spec, baseResource, path, locale) != null;
+    }
+
+    Resource findAsset(IComponentSpecification spec, Resource baseResource, String path, Locale locale)
+    {
+        Resource assetResource = baseResource.getRelativeResource("/").getRelativeResource(path);
+        
+        Resource localized = _localizer.findLocalization(assetResource, locale);
+
+        if (localized == null && spec != null && spec.getLocation().getResource() != null) {
+            // try relative to specification
+
+            assetResource = spec.getLocation().getResource().getRelativeResource("/").getRelativeResource(path);
+            
+            localized = _localizer.findLocalization(assetResource, locale);
+        }
+
+        if (localized == null || localized.getResourceURL() == null) {
+            // try relative to context root
+
+            Resource base = new WebContextResource(_webContext, path);
+            localized = _localizer.findLocalization(base, locale);
+        }
+
+        return localized;
+    }
+
+    public IAsset createAsset(IComponentSpecification spec, Resource baseResource, String path, Locale locale, Location location)
+    {
+        Resource localized = findAsset(spec, baseResource, path, locale);
+        
         // We always create a new asset relative to an existing resource; the type of resource
         // will jive with the type of asset returned. Path may start with a leading slash, which
         // yields an absolute, not relative, path to the resource.
 
-        Resource assetResource = baseResource.getRelativeResource(path);
+        if ( (localized == null || localized.getResourceURL() == null)
+             && path.startsWith("/")) {
+
+            return createAbsoluteAsset(path, locale, location);
+        }
 
         // Here's the thing; In Tapestry 3.0 and earlier, you could specify
         // library path like /org/apache/tapestry/contrib/Contrib.library. In the new scheme
         // of things, that should be "classpath:/org/apache/tapestry/contrib/Contrib.library".
         // But to keep a lot of things from breaking, we'll kludgely allow that here.
 
-        if (assetResource.getResourceURL() == null && path.startsWith("/"))
-            return _classpathAssetFactory.createAbsoluteAsset(path, locale, location);
-
-        Resource localized = _localizer.findLocalization(assetResource, locale);
-
+        //if (assetResource.getResourceURL() == null && path.startsWith("/"))
+          //  return _classpathAssetFactory.createAbsoluteAsset(path, locale, location);
+        
         if (localized == null)
-            throw new ApplicationRuntimeException(AssetMessages.missingAsset(path, baseResource),
-                    location, null);
+            throw new ApplicationRuntimeException(AssetMessages.missingAsset(path, baseResource), location, null);
 
         return createAsset(localized, location);
     }
@@ -80,8 +111,7 @@
         Resource localized = _localizer.findLocalization(base, locale);
 
         if (localized == null)
-            throw new ApplicationRuntimeException(AssetMessages.missingContextResource(path),
-                    location, null);
+            throw new ApplicationRuntimeException(AssetMessages.missingContextResource(path), location, null);
 
         return createAsset(localized, location);
     }
@@ -95,12 +125,7 @@
     {
         _contextPath = contextPath;
     }
-
-    public void setClasspathAssetFactory(AssetFactory classpathAssetFactory)
-    {
-        _classpathAssetFactory = classpathAssetFactory;
-    }
-
+    
     public void setLocalizer(ResourceLocalizer localizer)
     {
         _localizer = localizer;

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/DefaultAssetFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/DefaultAssetFactory.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/DefaultAssetFactory.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/asset/DefaultAssetFactory.java Sat Apr 14 06:58:27 2007
@@ -14,11 +14,14 @@
 
 package org.apache.tapestry.asset;
 
-import java.util.Locale;
-
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
 import org.apache.tapestry.IAsset;
+import org.apache.tapestry.spec.IComponentSpecification;
+
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Locale;
 
 /**
  * Default asset factory used when the asset path contains a prefix that is not recognized. It is
@@ -30,7 +33,21 @@
 public class DefaultAssetFactory implements AssetFactory
 {
 
-    public IAsset createAsset(Resource baseResource, String path, Locale locale, Location location)
+    public boolean assetExists(IComponentSpecification spec, Resource baseResource, String path, Locale locale)
+    {
+        try {
+            URL url = new URL(path);
+
+            URLConnection conn = url.openConnection();
+
+            return true;
+        } catch (Throwable t) {
+
+            return false;
+        }
+    }
+
+    public IAsset createAsset(IComponentSpecification spec, Resource baseResource, String path, Locale locale, Location location)
     {
         return new ExternalAsset(path, location);
     }

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/pageload/PageLoader.java Sat Apr 14 06:58:27 2007
@@ -15,9 +15,11 @@
 package org.apache.tapestry.pageload;
 
 import org.apache.commons.logging.Log;
-import org.apache.hivemind.*;
+import org.apache.hivemind.ApplicationRuntimeException;
+import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.HiveMind;
+import org.apache.hivemind.Location;
 import org.apache.hivemind.service.ThreadLocale;
-import org.apache.hivemind.util.ContextResource;
 import org.apache.tapestry.*;
 import org.apache.tapestry.asset.AssetSource;
 import org.apache.tapestry.binding.BindingSource;
@@ -28,7 +30,6 @@
 import org.apache.tapestry.services.ComponentPropertySource;
 import org.apache.tapestry.services.ComponentTemplateLoader;
 import org.apache.tapestry.spec.*;
-import org.apache.tapestry.web.WebContextResource;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -465,7 +466,24 @@
     /**
      * Instantiates a component from its specification. We instantiate the
      * component object, then set its specification, page, container and id.
-     * 
+     *
+     * @param page
+     *          The page component is to be attached to.
+     * @param container
+     *          The containing component.
+     * @param id
+     *          The components unique id
+     * @param spec
+     *          The specification for the component
+     * @param type
+     *          The type (ie Any / For / DirectLink)
+     * @param namespace
+     *          Which namespace / library
+     * @param containedComponent
+     *          Possible contained component.
+     *
+     * @return The instantiated component instance.
+     *
      * @see org.apache.tapestry.AbstractComponent
      */
 
@@ -473,10 +491,9 @@
             String id, IComponentSpecification spec, String type,
             INamespace namespace, IContainedComponent containedComponent)
     {
-        ComponentClassProviderContext context = new ComponentClassProviderContext(
-                type, spec, namespace);
-        String className = _componentClassProvider
-                .provideComponentClassName(context);
+        ComponentClassProviderContext context = new ComponentClassProviderContext(type, spec, namespace);
+        
+        String className = _componentClassProvider.provideComponentClassName(context);
 
         if (HiveMind.isBlank(className))
             className = BaseComponent.class.getName();
@@ -495,8 +512,7 @@
                         null);
         }
 
-        ComponentConstructor cc = _componentConstructorFactory
-                .getComponentConstructor(spec, className);
+        ComponentConstructor cc = _componentConstructorFactory.getComponentConstructor(spec, className);
 
         IComponent result = (IComponent) cc.newInstance();
         
@@ -522,12 +538,14 @@
      * @param spec
      *            the page's specification We instantiate the page object, then
      *            set its specification, names and locale.
+     *
+     * @return The instantiated page instance.
+     * 
      * @see org.apache.tapestry.IEngine
      * @see org.apache.tapestry.event.ChangeObserver
      */
 
-    private IPage instantiatePage(String name, INamespace namespace,
-            IComponentSpecification spec)
+    private IPage instantiatePage(String name, INamespace namespace, IComponentSpecification spec)
     {
         Location location = spec.getLocation();
         ComponentClassProviderContext context = new ComponentClassProviderContext(
@@ -628,8 +646,7 @@
         }
     }
 
-    private void addAssets(IComponent component,
-            IComponentSpecification specification)
+    private void addAssets(IComponent component, IComponentSpecification specification)
     {
         List names = specification.getAssetNames();
 
@@ -642,39 +659,11 @@
             String name = (String) i.next();
 
             IAssetSpecification assetSpec = specification.getAsset(name);
-
-            IAsset asset = convertAsset(assetSpec);
-
+            
+            IAsset asset = _assetSource.findAsset(specification, assetSpec.getLocation().getResource(), assetSpec.getPath(), _locale, assetSpec.getLocation());
+            
             component.addAsset(name, asset);
         }
-    }
-
-    /**
-     * Builds an instance of {@link IAsset} from the specification.
-     */
-
-    private IAsset convertAsset(IAssetSpecification spec)
-    {
-        // AssetType type = spec.getType();
-        String path = spec.getPath();
-        Location location = spec.getLocation();
-
-        Resource specResource = location.getResource();
-
-        // And ugly, ugly kludge. For page and component specifications in the
-        // context (typically, somewhere under WEB-INF), we evaluate them
-        // relative the web application root.
-
-        if (isContextResource(specResource))
-            specResource = specResource.getRelativeResource("/");
-
-        return _assetSource.findAsset(specResource, path, _locale, location);
-    }
-
-    private boolean isContextResource(Resource resource)
-    {
-        return (resource instanceof WebContextResource)
-                || (resource instanceof ContextResource);
     }
 
     /** @since 4.0 */

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/resolver/ComponentSpecificationResolverImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/resolver/ComponentSpecificationResolverImpl.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/resolver/ComponentSpecificationResolverImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/resolver/ComponentSpecificationResolverImpl.java Sat Apr 14 06:58:27 2007
@@ -234,8 +234,7 @@
 
     IComponentSpecification searchForComponentClass(INamespace namespace, String type)
     {
-        String packages = namespace
-                .getPropertyValue("org.apache.tapestry.component-class-packages");
+        String packages = namespace.getPropertyValue("org.apache.tapestry.component-class-packages");
 
         String className = type.replace('/', '.');
 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/spec/ComponentSpecification.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/spec/ComponentSpecification.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/spec/ComponentSpecification.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/spec/ComponentSpecification.java Sat Apr 14 06:58:27 2007
@@ -52,8 +52,7 @@
  * @author Howard Lewis Ship
  */
 
-public class ComponentSpecification extends LocatablePropertyHolder implements
-        IComponentSpecification
+public class ComponentSpecification extends LocatablePropertyHolder implements IComponentSpecification
 {
     /**
      * Keyed on component id, value is {@link IContainedComponent}.
@@ -187,12 +186,10 @@
         claimProperty(asset.getPropertyName(), asset);
 
         _assets.put(name, asset);
-
     }
 
     /**
-     * @throws ApplicationRuntimeException
-     *             if the id is already defined.
+     * @throws ApplicationRuntimeException if the id is already defined.
      */
 
     public void addComponent(String id, IContainedComponent component)
@@ -214,8 +211,7 @@
     /**
      * Adds the parameter. The name is added as a reserved name.
      * 
-     * @throws ApplicationRuntimeException
-     *             if the name already exists.
+     * @throws ApplicationRuntimeException if the name already exists.
      */
 
     public void addParameter(IParameterSpecification spec)
@@ -288,7 +284,6 @@
 
     public IAssetSpecification getAsset(String name)
     {
-
         return (IAssetSpecification) get(_assets, name);
     }
 
@@ -313,6 +308,7 @@
         return (IContainedComponent) get(_components, id);
     }
 
+    
     public String getComponentClassName()
     {
         return _componentClassName;

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/LocalizedWebContextResourceFinder.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/LocalizedWebContextResourceFinder.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/LocalizedWebContextResourceFinder.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/LocalizedWebContextResourceFinder.java Sat Apr 14 06:58:27 2007
@@ -14,11 +14,12 @@
 
 package org.apache.tapestry.web;
 
-import java.util.Locale;
-
+import org.apache.hivemind.util.Defense;
 import org.apache.hivemind.util.LocalizedNameGenerator;
 import org.apache.hivemind.util.LocalizedResource;
 
+import java.util.Locale;
+
 /**
  * Finds localized resources within a {@link org.apache.tapestry.web.WebContext}..
  * 
@@ -33,6 +34,8 @@
 
     public LocalizedWebContextResourceFinder(WebContext context)
     {
+        Defense.notNull(context, "context");
+
         _context = context;
     }
 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/WebContextResource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/WebContextResource.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/WebContextResource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/web/WebContextResource.java Sat Apr 14 06:58:27 2007
@@ -14,17 +14,16 @@
 
 package org.apache.tapestry.web;
 
-import java.net.URL;
-import java.util.Locale;
-
-import javax.servlet.ServletContext;
-
 import org.apache.hivemind.Resource;
 import org.apache.hivemind.util.AbstractResource;
 import org.apache.hivemind.util.LocalizedResource;
 
+import javax.servlet.ServletContext;
+import java.net.URL;
+import java.util.Locale;
+
 /**
- * Implementation of {@link org.apache.hivemind.Resource}for resources found within a
+ * Implementation of {@link org.apache.hivemind.Resource} for resources found within a
  * {@link org.apache.tapestry.web.WebContext}.
  * 
  * @author Howard Lewis Ship

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ClasspathAssetFactoryTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ClasspathAssetFactoryTest.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ClasspathAssetFactoryTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ClasspathAssetFactoryTest.java Sat Apr 14 06:58:27 2007
@@ -14,8 +14,6 @@
 
 package org.apache.tapestry.asset;
 
-import java.util.Locale;
-
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
@@ -25,8 +23,11 @@
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.engine.IEngineService;
 import org.apache.tapestry.l10n.DefaultResourceLocalizer;
+import org.apache.tapestry.spec.IComponentSpecification;
 import org.testng.annotations.Test;
 
+import java.util.Locale;
+
 /**
  * Tests for {@link org.apache.tapestry.asset.ClasspathAssetFactory}.
  * 
@@ -35,11 +36,12 @@
 @Test
 public class ClasspathAssetFactoryTest extends BaseComponentTestCase
 {
-    public void testCreateAsset()
+    public void test_Create_Asset()
     {
         IEngineService assetService = newService();
         Location l = newLocation();
-
+        IComponentSpecification spec = newSpec();
+        
         replay();
 
         ClasspathAssetFactory factory = new ClasspathAssetFactory();
@@ -49,20 +51,20 @@
 
         Resource base = newBaseResource();
 
-        IAsset asset = factory.createAsset(base, "relative-resource.txt", Locale.FRENCH, l);
+        IAsset asset = factory.createAsset(spec, base, "relative-resource.txt", Locale.FRENCH, l);
 
         assertTrue(asset instanceof PrivateAsset);
-        assertEquals("/org/apache/tapestry/asset/relative-resource_fr.txt", asset
-                .getResourceLocation().getPath());
+        assertEquals("/org/apache/tapestry/asset/relative-resource_fr.txt", asset.getResourceLocation().getPath());
         assertSame(l, asset.getLocation());
 
         verify();
     }
 
-    public void testCreateAssetMissing()
+    public void test_Create_Asset_Missing()
     {
         IEngineService assetService = newService();
         Location l = newLocation();
+        IComponentSpecification spec = newSpec();
 
         replay();
 
@@ -75,7 +77,7 @@
 
         try
         {
-            factory.createAsset(base, "does-not-exist.txt", Locale.ENGLISH, l);
+            factory.createAsset(spec, base, "does-not-exist.txt", Locale.ENGLISH, l);
             unreachable();
         }
         catch (ApplicationRuntimeException ex)
@@ -89,11 +91,10 @@
         verify();
     }
 
-    public void testCreateAbsoluteAsset()
+    public void test_Create_Absolute_Asset()
     {
         IEngineService assetService = newService();
         Location l = newLocation();
-
         replay();
 
         ClasspathAssetFactory factory = new ClasspathAssetFactory();
@@ -114,7 +115,7 @@
         verify();
     }
 
-    public void testCreateAbsoluteAssetMissing()
+    public void test_Create_Absolute_Asset_Missing()
     {
         IEngineService assetService = newService();
         Location l = newLocation();
@@ -145,7 +146,7 @@
         verify();
     }
 
-    public void testCreateDirectoryAsset()
+    public void test_Create_Directory_Asset()
     {
         IEngineService assetService = newService();
         Location l = newLocation();
@@ -170,12 +171,13 @@
         verify();
     }
     
-    public void testCreateRelativeDirectoryAsset()
+    public void test_Create_Relative_Directory_Asset()
     {
         IEngineService assetService = newService();
         Resource shell = new ClasspathResource(getClassResolver(),
             "/org/apache/tapestry/html/Shell.jwc");
         Location l = new LocationImpl(shell);
+        IComponentSpecification spec = newSpec();
         
         replay();
         
@@ -186,7 +188,7 @@
         
         String path = "/dojo/dojo.js";
         
-        IAsset asset = factory.createAsset(shell, path, 
+        IAsset asset = factory.createAsset(spec, shell, path, 
                 Locale.getDefault(),
                 l);
         
@@ -198,12 +200,13 @@
         verify();
     }
     
-    public void testCreateRelativeDirectoryMissingAsset()
+    public void test_Create_Relative_Directory_Missing_Asset()
     {
         IEngineService assetService = newService();
         Resource shell = new ClasspathResource(getClassResolver(),
             "/org/apache/tapestry/html/Shell.jwc");
         Location l = new LocationImpl(shell);
+        IComponentSpecification spec = newSpec();
         
         replay();
         
@@ -214,7 +217,7 @@
         
         String path = "/dojo/";
         
-        IAsset asset = factory.createAsset(shell, path, 
+        IAsset asset = factory.createAsset(spec, shell, path, 
                 Locale.getDefault(),
                 l);
         
@@ -229,7 +232,7 @@
     /**
      * Tests relative sub-directory paths.
      */
-    public void testRelativeDirectoryPath()
+    public void test_Relative_Directory_Path()
     {
         IEngineService assetService = newService();
         Location l = newLocation();

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ContextAssetFactoryTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ContextAssetFactoryTest.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ContextAssetFactoryTest.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/ContextAssetFactoryTest.java Sat Apr 14 06:58:27 2007
@@ -14,11 +14,6 @@
 
 package org.apache.tapestry.asset;
 
-import static org.easymock.EasyMock.expect;
-
-import java.net.URL;
-import java.util.Locale;
-
 import org.apache.hivemind.ApplicationRuntimeException;
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
@@ -26,9 +21,14 @@
 import org.apache.tapestry.IAsset;
 import org.apache.tapestry.IRequestCycle;
 import org.apache.tapestry.l10n.DefaultResourceLocalizer;
+import org.apache.tapestry.spec.IComponentSpecification;
 import org.apache.tapestry.web.WebContext;
+import static org.easymock.EasyMock.expect;
 import org.testng.annotations.Test;
 
+import java.net.URL;
+import java.util.Locale;
+
 @Test
 public class ContextAssetFactoryTest extends BaseComponentTestCase
 {
@@ -42,18 +42,20 @@
         return getClass().getResource("base-resource.txt");
     }
 
-    public void testCreateAsset()
+    public void test_Create_Asset()
     {
         Resource base = newResource();
         Resource relative = newResource();
         Resource localized = newResource();
         Location l = newLocation();
         URL url = newURL();
+        IComponentSpecification spec = newSpec();
 
+        trainGetRelativeResource(base, "/", base);
         trainGetRelativeResource(base, "asset.png", relative);
-        trainGetResourceURL(relative, url);
         trainGetLocalization(relative, Locale.FRENCH, localized);
-
+        expect(localized.getResourceURL()).andReturn(url).anyTimes();
+        
         replay();
 
         ContextAssetFactory factory = new ContextAssetFactory();
@@ -61,7 +63,7 @@
 
         factory.setContextPath("/context");
 
-        IAsset asset = factory.createAsset(base, "asset.png", Locale.FRENCH, l);
+        IAsset asset = factory.createAsset(spec, base, "asset.png", Locale.FRENCH, l);
 
         assertTrue(asset instanceof ContextAsset);
         assertSame(localized, asset.getResourceLocation());
@@ -70,24 +72,34 @@
         verify();
     }
 
-    public void testCreateAssetMissing()
+    public void test_Create_Asset_Missing()
     {
         Resource base = newResource();
         Resource relative = newResource();
         Location l = newLocation();
+        IComponentSpecification spec = newMock(IComponentSpecification.class);
+        WebContext context = newMock(WebContext.class);
+
+        trainGetRelativeResource(base, "/", base);
         trainGetRelativeResource(base, "asset.png", relative);
-        trainGetResourceURL(relative, null);
         trainGetLocalization(relative, Locale.FRENCH, null);
 
+        expect(spec.getLocation()).andReturn(l);
+        expect(l.getResource()).andReturn(null);
+
+        expect(context.getResource("asset_fr.png")).andReturn(null);
+        expect(context.getResource("asset.png")).andReturn(null);
+
         replay();
 
         ContextAssetFactory factory = new ContextAssetFactory();
         factory.setLocalizer(new DefaultResourceLocalizer());
         factory.setContextPath("/context");
+        factory.setWebContext(context);
 
         try
         {
-            factory.createAsset(base, "asset.png", Locale.FRENCH, l);
+            factory.createAsset(spec, base, "asset.png", Locale.FRENCH, l);
             unreachable();
         }
         catch (ApplicationRuntimeException ex)
@@ -100,39 +112,12 @@
 
         verify();
     }
-
-    public void testCreateAssetForClasspath()
-    {
-        Resource base = newResource();
-        Resource relative = newResource();
-        Location l = newLocation();
-        AssetFactory classpathFactory = newMock(AssetFactory.class);
-        IAsset asset = newMock(IAsset.class);
-
-        trainGetRelativeResource(base, "/asset.png", relative);
-        trainGetResourceURL(relative, null);
-
-        expect(classpathFactory.createAbsoluteAsset("/asset.png", Locale.FRENCH, l))
-        .andReturn(asset);
-
-        replay();
-
-        ContextAssetFactory factory = new ContextAssetFactory();
-
-        factory.setContextPath("/context");
-        factory.setClasspathAssetFactory(classpathFactory);
-
-        assertSame(asset, factory.createAsset(base, "/asset.png", Locale.FRENCH, l));
-
-        verify();
-    }
-
-    public void testCreateAbsoluteAsset()
+    
+    public void test_Create_Absolute_Asset()
     {
         Location l = newLocation();
         URL url = newURL();
         WebContext context = newMock(WebContext.class);
-
         trainGetResource(context, "/asset_fr.png", url);
 
         replay();
@@ -151,7 +136,7 @@
         verify();
     }
 
-    public void testCreateAbsoluteAssetMissing()
+    public void test_Create_Absolute_Asset_Missing()
     {
         Location l = newLocation();
         WebContext context = newMock(WebContext.class);
@@ -179,7 +164,7 @@
         verify();
     }
     
-    public void testCreateAssetEncodeURL()
+    public void test_Create_Asset_Encode_URL()
     {
         Location l = newLocation();
         URL url = newURL();

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestAssetSource.java Sat Apr 14 06:58:27 2007
@@ -14,18 +14,17 @@
 
 package org.apache.tapestry.asset;
 
-import static org.easymock.EasyMock.expect;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-
 import org.apache.hivemind.Location;
 import org.apache.hivemind.Resource;
 import org.apache.tapestry.BaseComponentTestCase;
 import org.apache.tapestry.IAsset;
+import static org.easymock.EasyMock.expect;
 import org.testng.annotations.Test;
 
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+
 /**
  * Tests for {@link org.apache.tapestry.asset.AssetSourceImpl}.
  * 
@@ -49,12 +48,11 @@
         return Collections.singletonList(newContribution(prefix, factory));
     }
 
-    private AssetFactory newAssetFactory(Resource base, String path, Locale locale,
-            Location location, IAsset asset)
+    private AssetFactory newAssetFactory(Resource base, String path, Locale locale, Location location, IAsset asset)
     {
         AssetFactory f = newMock(AssetFactory.class);
-
-        expect(f.createAsset(base, path, locale, location)).andReturn(asset);
+        
+        expect(f.createAsset(null, base, path, locale, location)).andReturn(asset);
 
         return f;
     }
@@ -115,12 +113,14 @@
         Resource r = newResource();
         IAsset asset = newAsset();
 
-        AssetFactory f = newAssetFactory(r, "path/to/asset", Locale.ENGLISH, l, asset);
+        AssetFactory classFactory = newAssetFactory(r, "path/to/asset", Locale.ENGLISH, l, asset);
+
+        expect(classFactory.assetExists(null, r, "path/to/asset", Locale.ENGLISH)).andReturn(true);
 
         replay();
 
         AssetSourceImpl as = new AssetSourceImpl();
-        as.setLookupAssetFactory(f);
+        as.setClasspathAssetFactory(classFactory);
 
         IAsset actual = as.findAsset(r, "path/to/asset", Locale.ENGLISH, l);
 

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestDefaultAssetFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestDefaultAssetFactory.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestDefaultAssetFactory.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/asset/TestDefaultAssetFactory.java Sat Apr 14 06:58:27 2007
@@ -30,12 +30,11 @@
     public void testCreateAssetFull()
     {
         Location l = newLocation();
-
         replay();
 
         AssetFactory factory = new DefaultAssetFactory();
 
-        ExternalAsset asset = (ExternalAsset) factory.createAsset(null, "/foo/bar/baz", null, l);
+        ExternalAsset asset = (ExternalAsset) factory.createAsset(null, null, "/foo/bar/baz", null, l);
 
         assertEquals("ExternalAsset[/foo/bar/baz]", asset.toString());
         assertSame(l, asset.getLocation());
@@ -51,7 +50,7 @@
 
         AssetFactory factory = new DefaultAssetFactory();
 
-        ExternalAsset asset = (ExternalAsset) factory.createAsset(null, "/foo/bar/baz", null, l);
+        ExternalAsset asset = (ExternalAsset) factory.createAsset(null, null, "/foo/bar/baz", null, l);
 
         assertEquals("ExternalAsset[/foo/bar/baz]", asset.toString());
         assertSame(l, asset.getLocation());

Modified: tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/state/TestApplicationStateManager.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/state/TestApplicationStateManager.java?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/state/TestApplicationStateManager.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/test/org/apache/tapestry/engine/state/TestApplicationStateManager.java Sat Apr 14 06:58:27 2007
@@ -14,9 +14,8 @@
 
 package org.apache.tapestry.engine.state;
 
-import static org.easymock.EasyMock.expect;
-
 import org.apache.tapestry.BaseComponentTestCase;
+import static org.easymock.EasyMock.expect;
 import org.testng.annotations.Test;
 
 /**
@@ -25,7 +24,7 @@
  * @author Howard M. Lewis Ship
  * @since 4.0
  */
-@Test
+@Test(sequential = true)
 public class TestApplicationStateManager extends BaseComponentTestCase
 {
     private StateObjectManagerRegistry newRegistry(String name,

Modified: tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml?view=diff&rev=528810&r1=528809&r2=528810
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/tapestry-framework.iml Sat Apr 14 06:58:27 2007
@@ -1,373 +1,308 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<module version="4" relativePaths="true" type="JAVA_MODULE">
+<module relativePaths="true" type="JAVA_MODULE" version="4">
   <component name="ModuleRootManager" />
   <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <output url="file://$MODULE_DIR$/target/classes" />
     <exclude-output />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src/conf" isTestSource="true" />
-      <sourceFolder url="file://$MODULE_DIR$/src/descriptor/META-INF" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/java" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/js/dojo" isTestSource="false" />
-      <sourceFolder url="file://$MODULE_DIR$/src/js/tapestry" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/test" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="tapestry-annotations" exported="" />
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: ant:ant:jar:1.6.5:test">
+    <orderEntry type="library" exported="" name="descriptor" level="project" />
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/ant/ant/1.6.5/ant-1.6.5.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/log4j/log4j/1.2.8/log4j-1.2.8.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/ant/ant/1.6.5/ant-1.6.5-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: avalon-framework:avalon-framework:jar:4.1.3:provided">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/easymock/easymock/2.2/easymock-2.2.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: backport-util-concurrent:backport-util-concurrent:jar:2.2:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/backport-util-concurrent/backport-util-concurrent/2.2/backport-util-concurrent-2.2.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server/0.9.1-SNAPSHOT/selenium-server-0.9.1-SNAPSHOT-standalone.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/backport-util-concurrent/backport-util-concurrent/2.2/backport-util-concurrent-2.2-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: cglib:cglib-nodep:jar:2.1_3:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-pool/commons-pool/1.3/commons-pool-1.3.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: com.javaforge.tapestry:tapestry-testng:jar:1.0.0-SNAPSHOT:provided">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/com/javaforge/tapestry/tapestry-testng/1.0.0-SNAPSHOT/tapestry-testng-1.0.0-SNAPSHOT.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/com/javaforge/tapestry/tapestry-testng/1.0.0-SNAPSHOT/tapestry-testng-1.0.0-SNAPSHOT-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: commons-beanutils:commons-beanutils:jar:1.7.0:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/jboss/javassist/3.4.ga/javassist-3.4.ga.jar!/" />
         </CLASSES>
-        <JAVADOC>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-javadoc.jar!/" />
-        </JAVADOC>
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0-sources.jar!/" />
-        </SOURCES>
+        <JAVADOC />
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: commons-codec:commons-codec:jar:1.3:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-fileupload/commons-fileupload/1.2/commons-fileupload-1.2.jar!/" />
         </CLASSES>
-        <JAVADOC>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3-javadoc.jar!/" />
-        </JAVADOC>
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3-sources.jar!/" />
-        </SOURCES>
+        <JAVADOC />
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: commons-fileupload:commons-fileupload:jar:1.2:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-fileupload/commons-fileupload/1.2/commons-fileupload-1.2.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/apache/tapestry/tapestry-test/4.1.1-SNAPSHOT/tapestry-test-4.1.1-SNAPSHOT.jar!/" />
         </CLASSES>
-        <JAVADOC>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-fileupload/commons-fileupload/1.2/commons-fileupload-1.2-javadoc.jar!/" />
-        </JAVADOC>
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-fileupload/commons-fileupload/1.2/commons-fileupload-1.2-sources.jar!/" />
-        </SOURCES>
+        <JAVADOC />
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: commons-io:commons-io:jar:1.3.1:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-io/commons-io/1.3.1/commons-io-1.3.1-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: commons-lang:commons-lang:jar:2.2:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-lang/commons-lang/2.2/commons-lang-2.2.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/testng/testng/5.1/testng-5.1-jdk15.jar!/" />
         </CLASSES>
-        <JAVADOC>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-lang/commons-lang/2.2/commons-lang-2.2-javadoc.jar!/" />
-        </JAVADOC>
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-lang/commons-lang/2.2/commons-lang-2.2-sources.jar!/" />
-        </SOURCES>
+        <JAVADOC />
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: commons-logging:commons-logging:jar:1.1:provided">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server-coreless/0.9.1-SNAPSHOT/selenium-server-coreless-0.9.1-SNAPSHOT.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: commons-pool:commons-pool:jar:1.3:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-pool/commons-pool/1.3/commons-pool-1.3.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.1-SNAPSHOT/selenium-java-client-driver-0.9.1-SNAPSHOT.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: hivemind:hivemind-lib:jar:1.1.1:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/hivemind/hivemind-lib/1.1.1/hivemind-lib-1.1.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/ognl/ognl/2.7-SNAPSHOT/ognl-2.7-SNAPSHOT.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/hivemind/hivemind-lib/1.1.1/hivemind-lib-1.1.1-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: hivemind:hivemind:jar:1.1.1:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/hivemind/hivemind/1.1.1/hivemind-1.1.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/hivemind/hivemind-lib/1.1.1/hivemind-lib-1.1.1.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/hivemind/hivemind/1.1.1/hivemind-1.1.1-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: javax.servlet:servlet-api:jar:2.4:provided">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/com/javaforge/tapestry/tapestry-testng/1.0.0-SNAPSHOT/tapestry-testng-1.0.0-SNAPSHOT.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/javax/servlet/servlet-api/2.4/servlet-api-2.4-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: jboss:javassist:jar:3.4.ga:runtime">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/jboss/javassist/3.4.ga/javassist-3.4.ga.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/logkit/logkit/1.0.1/logkit-1.0.1.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: jdom:jdom:jar:1.0:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/jdom/jdom/1.0/jdom-1.0.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-lang/commons-lang/2.2/commons-lang-2.2.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/jdom/jdom/1.0/jdom-1.0-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: jetty:org.mortbay.jetty:jar:5.1.10:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/jetty/org.mortbay.jetty/5.1.10/org.mortbay.jetty-5.1.10.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: junit:junit:jar:3.8.1:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/junit/junit/3.8.1/junit-3.8.1-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: log4j:log4j:jar:1.2.8:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/log4j/log4j/1.2.8/log4j-1.2.8.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/log4j/log4j/1.2.8/log4j-1.2.8-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: logkit:logkit:jar:1.0.1:provided">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/logkit/logkit/1.0.1/logkit-1.0.1.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-logging/commons-logging/1.1/commons-logging-1.1.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/logkit/logkit/1.0.1/logkit-1.0.1-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: ognl:ognl:jar:2.7-SNAPSHOT:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/ognl/ognl/2.7-SNAPSHOT/ognl-2.7-SNAPSHOT.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/backport-util-concurrent/backport-util-concurrent/2.2/backport-util-concurrent-2.2.jar!/" />
         </CLASSES>
-        <JAVADOC>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/ognl/ognl/2.7-SNAPSHOT/ognl-2.7-SNAPSHOT-javadoc.jar!/" />
-        </JAVADOC>
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/ognl/ognl/2.7-SNAPSHOT/ognl-2.7-SNAPSHOT-sources.jar!/" />
-        </SOURCES>
+        <JAVADOC />
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.apache.tapestry:tapestry-test:jar:4.1.1-SNAPSHOT:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/apache/tapestry/tapestry-test/4.1.1-SNAPSHOT/tapestry-test-4.1.1-SNAPSHOT.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/apache/tapestry/tapestry-test/4.1.1-SNAPSHOT/tapestry-test-4.1.1-SNAPSHOT-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.easymock:easymock:jar:2.2:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/easymock/easymock/2.2/easymock-2.2.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-io/commons-io/1.3.1/commons-io-1.3.1.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/easymock/easymock/2.2/easymock-2.2-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.easymock:easymockclassextension:jar:2.2:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/hivemind/hivemind/1.1.1/hivemind-1.1.1.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/easymock/easymockclassextension/2.2/easymockclassextension-2.2-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.openqa.selenium.client-drivers:selenium-java-client-driver:jar:0.9.1-SNAPSHOT:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.1-SNAPSHOT/selenium-java-client-driver-0.9.1-SNAPSHOT.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server/0.9.1-SNAPSHOT/selenium-server-0.9.1-SNAPSHOT.jar!/" />
         </CLASSES>
-        <JAVADOC>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.1-SNAPSHOT/selenium-java-client-driver-0.9.1-SNAPSHOT-javadoc.jar!/" />
-        </JAVADOC>
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/client-drivers/selenium-java-client-driver/0.9.1-SNAPSHOT/selenium-java-client-driver-0.9.1-SNAPSHOT-sources.jar!/" />
-        </SOURCES>
+        <JAVADOC />
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.openqa.selenium.core:selenium-core:jar:0.8.2-SNAPSHOT:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/core/selenium-core/0.8.2-SNAPSHOT/selenium-core-0.8.2-SNAPSHOT.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/jdom/jdom/1.0/jdom-1.0.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.openqa.selenium.server:selenium-server-coreless:jar:0.9.1-SNAPSHOT:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server-coreless/0.9.1-SNAPSHOT/selenium-server-coreless-0.9.1-SNAPSHOT.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/ant/ant/1.6.5/ant-1.6.5.jar!/" />
         </CLASSES>
-        <JAVADOC>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server-coreless/0.9.1-SNAPSHOT/selenium-server-coreless-0.9.1-SNAPSHOT-javadoc.jar!/" />
-        </JAVADOC>
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server-coreless/0.9.1-SNAPSHOT/selenium-server-coreless-0.9.1-SNAPSHOT-sources.jar!/" />
-        </SOURCES>
+        <JAVADOC />
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.openqa.selenium.server:selenium-server:jar:0.9.1-SNAPSHOT:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server/0.9.1-SNAPSHOT/selenium-server-0.9.1-SNAPSHOT.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/commons-codec/commons-codec/1.3/commons-codec-1.3.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.openqa.selenium.server:selenium-server:jar:standalone:0.9.1-SNAPSHOT:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server/0.9.1-SNAPSHOT/selenium-server-0.9.1-SNAPSHOT-standalone.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/jetty/org.mortbay.jetty/5.1.10/org.mortbay.jetty-5.1.10.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/server/selenium-server/0.9.1-SNAPSHOT/selenium-server-0.9.1-SNAPSHOT-standalone-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: org.testng:testng:jar:jdk15:5.1:test">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/testng/testng/5.1/testng-5.1-jdk15.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/org/openqa/selenium/core/selenium-core/0.8.2-SNAPSHOT/selenium-core-0.8.2-SNAPSHOT.jar!/" />
         </CLASSES>
         <JAVADOC />
         <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="module-library" exported="">
-      <library name="Maven Dependency: oro:oro:jar:2.0.8:compile">
+    <orderEntry type="module-library">
+      <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/oro/oro/2.0.8/oro-2.0.8.jar!/" />
+          <root url="jar://$MODULE_DIR$/../../../.m2/repository/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar!/" />
         </CLASSES>
         <JAVADOC />
-        <SOURCES>
-          <root url="jar://$MODULE_DIR$/../../../.m2/repository/oro/oro/2.0.8/oro-2.0.8-sources.jar!/" />
-        </SOURCES>
+        <SOURCES />
       </library>
     </orderEntry>
-    <orderEntry type="library" exported="" name="descriptor" level="project" />
     <orderEntryProperties />
   </component>
 </module>