You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2009/02/11 01:01:02 UTC

svn commit: r743173 - in /lenya/trunk: org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/ org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/ org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/ org.apach...

Author: andreas
Date: Wed Feb 11 00:01:01 2009
New Revision: 743173

URL: http://svn.apache.org/viewvc?rev=743173&view=rev
Log:
Fixed various bean resolving issues.

Modified:
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/AbstractAccessControllerResolver.java
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/ComposableAccessControllerResolver.java
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/SslRedirectAction.java
    lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java
    lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-inputModules.xml
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/ac/AccessControllerResolver.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/ac/PolicyUtil.java
    lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/RoleCondition.java
    lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java
    lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
    lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java
    lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java
    lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java
    lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/AbstractAccessControllerResolver.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/AbstractAccessControllerResolver.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/AbstractAccessControllerResolver.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/AbstractAccessControllerResolver.java Wed Feb 11 00:01:01 2009
@@ -107,15 +107,6 @@
     protected abstract AccessController doResolveAccessController(String webappUrl)
             throws AccessControlException;
 
-    /**
-     * @see org.apache.lenya.ac.AccessControllerResolver#release(org.apache.lenya.ac.AccessController)
-     */
-    public void release(AccessController controller) {
-        /*
-         * if (controller != null) { getManager().release(controller); }
-         */
-    }
-
     public void setSourceResolver(SourceResolver sourceResolver) {
         this.sourceResolver = sourceResolver;
     }

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/ComposableAccessControllerResolver.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/ComposableAccessControllerResolver.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/ComposableAccessControllerResolver.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/ac/impl/ComposableAccessControllerResolver.java Wed Feb 11 00:01:01 2009
@@ -57,15 +57,6 @@
     private Map controllerToResolver = new HashMap();
 
     /**
-     * @see org.apache.lenya.ac.AccessControllerResolver#release(org.apache.lenya.ac.AccessController)
-     */
-    public void release(AccessController controller) {
-        assert controller != null;
-        AccessControllerResolver resolver = getResolver(controller);
-        resolver.release(controller);
-    }
-
-    /**
      * Returns the access controller resolver that was used to resolve a specific access controller.
      * @param controller The access controller.
      * @return An AC resolver.

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/ac/PublicationAccessControllerResolver.java Wed Feb 11 00:01:01 2009
@@ -29,6 +29,7 @@
 import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
 import org.apache.cocoon.processing.ProcessInfoProvider;
 import org.apache.cocoon.spring.configurator.WebAppContextUtils;
+import org.apache.commons.lang.Validate;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.SourceUtil;
@@ -48,6 +49,7 @@
 
     protected static final String AC_CONFIGURATION_URI = "config/access-control/access-control.xml";
     protected static final String TYPE_ATTRIBUTE = "type";
+    protected static final String GLOBAL_CACHE_KEY = "";
 
     private Repository repository;
     private SourceResolver sourceResolver;
@@ -68,17 +70,20 @@
      */
     protected Object generateCacheKey(String webappUrl, SourceResolver resolver)
             throws AccessControlException {
+        Validate.isTrue(webappUrl.startsWith("/"), "Webapp URL must start with a slash.");
 
         URLInformation info = new URLInformation(webappUrl);
 
         String publicationId = info.getPublicationId();
+        String cacheKey = publicationId == null ? GLOBAL_CACHE_KEY : publicationId;
+
         if (getLogger().isDebugEnabled()) {
             getLogger().debug(
                     "Using first URL step (might be publication ID) as cache key: ["
                             + publicationId + "]");
         }
 
-        return super.generateCacheKey(publicationId, resolver);
+        return super.generateCacheKey(cacheKey, resolver);
     }
 
     /**
@@ -106,9 +111,10 @@
      * @throws AccessControlException when something went wrong.
      */
     protected Publication getPublication(String webappUrl) throws AccessControlException {
+        Validate.isTrue(webappUrl.startsWith("/"), "Webapp URL must start with a slash.");
+
         Publication publication = null;
 
-        assert webappUrl.startsWith("/");
         // remove leading slash
         String url = webappUrl.substring(1);
 

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/AccessControlAction.java Wed Feb 11 00:01:01 2009
@@ -62,13 +62,8 @@
 
         Map result = null;
 
-        getLogger().debug(
-                "Resolving AC resolver for type [" + AccessControllerResolver.DEFAULT_RESOLVER
-                        + "]");
         AccessControllerResolver resolver = (AccessControllerResolver) WebAppContextUtils
-                .getCurrentWebApplicationContext().getBean(
-                        AccessControllerResolver.ROLE + "/"
-                                + AccessControllerResolver.DEFAULT_RESOLVER);
+                .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
         getLogger().debug("Resolved AC resolver [" + resolver + "]");
 
         String webappUrl = ServletHelper.getWebappURI(request);

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/SslRedirectAction.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/SslRedirectAction.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/SslRedirectAction.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/acting/SslRedirectAction.java Wed Feb 11 00:01:01 2009
@@ -63,9 +63,7 @@
         if (!request.isSecure()) {
 
             resolver = (AccessControllerResolver) WebAppContextUtils
-                    .getCurrentWebApplicationContext().getBean(
-                            AccessControllerResolver.ROLE + "/"
-                                    + AccessControllerResolver.DEFAULT_RESOLVER);
+                    .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
 
             String url = ServletHelper.getWebappURI(request);
             accessController = resolver.resolveAccessController(url);

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/java/org/apache/lenya/cms/cocoon/components/modules/input/AccessControlModule.java Wed Feb 11 00:01:01 2009
@@ -24,16 +24,13 @@
 import java.util.Iterator;
 import java.util.Map;
 
+import javax.servlet.http.HttpSession;
+
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceSelector;
-import org.apache.avalon.framework.service.Serviceable;
 import org.apache.cocoon.components.modules.input.AbstractInputModule;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
-import org.apache.cocoon.environment.Session;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.AccessController;
 import org.apache.lenya.ac.AccessControllerResolver;
@@ -60,10 +57,12 @@
  * <li><strong><code>user-id</code></strong> - the ID of the currently logged-in user</li>
  * <li><strong><code>user-name</code></strong> - the full name of the currently logged-in user</li>
  * <li><strong><code>user-name:{user-id}</code></strong> - the full name of a specific user</li>
- * <li><strong><code>user-email</code></strong> - the e-mail address of the currently logged-in user</li>
+ * <li><strong><code>user-email</code></strong> - the e-mail address of the currently logged-in user
+ * </li>
  * <li><strong><code>user-email:{user-id}</code></strong> - the e-mail address of a specific user</li>
  * <li><strong><code>ip-address</code></strong> - the IP address of the client machine</li>
- * <li><strong><code>role-ids</code></strong> - the role IDs which are granted to the current identity</li>
+ * <li><strong><code>role-ids</code></strong> - the role IDs which are granted to the current
+ * identity</li>
  * <li><strong><code>user-manager</code></strong> - the user manager object</li>
  * <li><strong><code>group-manager</code></strong> - the group manager object</li>
  * <li><strong><code>iprange-manager</code></strong> - the IP range manager object</li>
@@ -71,7 +70,7 @@
  * </ul>
  * 
  */
-public class AccessControlModule extends AbstractInputModule implements Serviceable {
+public class AccessControlModule extends AbstractInputModule {
 
     /**
      * <code>USER_ID</code> The user id
@@ -120,6 +119,8 @@
     static final String[] PARAMETER_NAMES = { IP_ADDRESS, USER_ID, USER_NAME, USER_EMAIL, ROLE_IDS,
             USER_MANAGER, GROUP_MANAGER, ROLE_MANAGER, IP_RANGE_MANAGER, SSL };
 
+    private AccessControllerResolver accessControllerResolver;
+
     /**
      * 
      * @see org.apache.cocoon.components.modules.input.InputModule#getAttribute(java.lang.String,
@@ -129,7 +130,7 @@
             throws ConfigurationException {
 
         Request request = ObjectModelHelper.getRequest(objectModel);
-        Session session = request.getCocoonSession();
+        HttpSession session = request.getSession();
         Object value = null;
 
         String[] parameters = attribute.split(":", 2);
@@ -140,7 +141,7 @@
         }
 
         Identity identity = null;
-        
+
         if (session != null) {
             identity = (Identity) session.getAttribute(Identity.class.getName());
         }
@@ -187,39 +188,20 @@
                 || name.equals(IP_RANGE_MANAGER)) {
             value = getItemManager(request, name);
         }
-        
+
         if (name.equals(SSL)) {
-            ServiceSelector selector = null;
-            AccessControllerResolver acResolver = null;
             AccessController accessController = null;
             try {
-                selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
-                        + "Selector");
-                acResolver
-                    = (AccessControllerResolver) selector.select(AccessControllerResolver.DEFAULT_RESOLVER);
-    
                 String url = ServletHelper.getWebappURI(request);
-                accessController = acResolver.resolveAccessController(url);
+                accessController = this.accessControllerResolver.resolveAccessController(url);
                 AccreditableManager accreditableManager = accessController.getAccreditableManager();
                 PolicyManager policyManager = accessController.getPolicyManager();
-    
+
                 Policy policy = policyManager.getPolicy(accreditableManager, url);
                 value = Boolean.toString(policy.isSSLProtected());
-            }
-            catch (Exception e) {
+            } catch (Exception e) {
                 throw new ConfigurationException("Resolving attribute [" + name + "] failed: ", e);
             }
-            finally {
-                if (selector != null) {
-                    if (acResolver != null) {
-                        if (accessController != null) {
-                            acResolver.release(accessController);
-                        }
-                        selector.release(acResolver);
-                    }
-                    this.manager.release(selector);
-                }
-            }
         }
 
         return value;
@@ -281,23 +263,16 @@
     protected ItemManager getItemManager(Request request, String name)
             throws ConfigurationException {
         AccessController accessController = null;
-        ServiceSelector selector = null;
-        AccessControllerResolver resolver = null;
         ItemManager itemManager = null;
 
         try {
-            selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
-                    + "Selector");
-            resolver = (AccessControllerResolver) selector
-                    .select(AccessControllerResolver.DEFAULT_RESOLVER);
-
             String requestURI = request.getRequestURI();
             String context = request.getContextPath();
             if (context == null) {
                 context = "";
             }
             String url = requestURI.substring(context.length());
-            accessController = resolver.resolveAccessController(url);
+            accessController = this.accessControllerResolver.resolveAccessController(url);
 
             AccreditableManager accreditableManager = accessController.getAccreditableManager();
 
@@ -313,28 +288,13 @@
 
         } catch (Exception e) {
             throw new ConfigurationException("Obtaining item manager failed: ", e);
-        } finally {
-            if (selector != null) {
-                if (resolver != null) {
-                    if (accessController != null) {
-                        resolver.release(accessController);
-                    }
-                    selector.release(resolver);
-                }
-                this.manager.release(selector);
-            }
         }
 
         return itemManager;
     }
 
-    private ServiceManager manager;
-
-    /**
-     * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
-     */
-    public void service(ServiceManager _manager) throws ServiceException {
-        this.manager = _manager;
+    public void setAccessControllerResolver(AccessControllerResolver accessControllerResolver) {
+        this.accessControllerResolver = accessControllerResolver;
     }
 
 }

Modified: lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-inputModules.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-inputModules.xml?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-inputModules.xml (original)
+++ lenya/trunk/org.apache.lenya.core.ac/src/main/resources/META-INF/cocoon/spring/lenya-core-ac-inputModules.xml Wed Feb 11 00:01:01 2009
@@ -20,5 +20,7 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
   <bean name="org.apache.cocoon.components.modules.input.InputModule/access-control"
-    class="org.apache.lenya.cms.cocoon.components.modules.input.AccessControlModule"/>
+    class="org.apache.lenya.cms.cocoon.components.modules.input.AccessControlModule">
+    <property name="accessControllerResolver" ref="org.apache.lenya.ac.AccessControllerResolver"/>
+  </bean>
 </beans>

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/ac/AccessControllerResolver.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/ac/AccessControllerResolver.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/ac/AccessControllerResolver.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/ac/AccessControllerResolver.java Wed Feb 11 00:01:01 2009
@@ -32,11 +32,6 @@
      * The Avalon role.
      */
     String ROLE = AccessControllerResolver.class.getName();
-    
-    /**
-     * The name of the default resolver to use.
-     */
-    String DEFAULT_RESOLVER = "publication";
 
     /**
      * Resolves an access controller for a certain URL.
@@ -46,10 +41,4 @@
      */
     AccessController resolveAccessController(String webappUrl) throws AccessControlException;
     
-    /**
-     * Releases a resolved access controller. 
-     * @param controller The access controller to release.
-     */
-    void release(AccessController controller);
-
 }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/ac/PolicyUtil.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/ac/PolicyUtil.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/ac/PolicyUtil.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/ac/PolicyUtil.java Wed Feb 11 00:01:01 2009
@@ -48,7 +48,8 @@
      * @return A role array.
      * @throws AccessControlException If the request does not contain the roles list.
      */
-    public static final Role[] getRoles(HttpServletRequest httpServletRequest) throws AccessControlException {
+    public static final Role[] getRoles(HttpServletRequest httpServletRequest)
+            throws AccessControlException {
         List roleList = (List) httpServletRequest.getAttribute(Role.class.getName());
 
         if (roleList == null) {
@@ -56,11 +57,12 @@
             buf.append("    URI: [" + httpServletRequest.getRequestURI() + "]\n");
             for (Enumeration e = httpServletRequest.getParameterNames(); e.hasMoreElements();) {
                 String key = (String) e.nextElement();
-                buf.append("    Parameter: [" + key + "] = [" + httpServletRequest.getParameter(key) + "]\n");
+                buf.append("    Parameter: [" + key + "] = ["
+                        + httpServletRequest.getParameter(key) + "]\n");
             }
 
-            throw new AccessControlException("Request [" + httpServletRequest + "] does not contain roles: \n"
-                    + buf.toString());
+            throw new AccessControlException("Request [" + httpServletRequest
+                    + "] does not contain roles: \n" + buf.toString());
         }
 
         Role[] roles = (Role[]) roleList.toArray(new Role[roleList.size()]);
@@ -86,9 +88,7 @@
     protected static AccessController getAccessController(String webappUrl)
             throws AccessControlException {
         AccessControllerResolver resolver = (AccessControllerResolver) WebAppContextUtils
-                .getCurrentWebApplicationContext().getBean(
-                        AccessControllerResolver.ROLE + "/"
-                                + AccessControllerResolver.DEFAULT_RESOLVER);
+                .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
         AccessController controller = resolver.resolveAccessController(webappUrl);
         return controller;
     }

Modified: lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/RoleCondition.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/RoleCondition.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/RoleCondition.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/main/java/org/apache/lenya/cms/workflow/RoleCondition.java Wed Feb 11 00:01:01 2009
@@ -61,16 +61,12 @@
 
     protected AccessControllerResolver getAccessControllerResolver() {
         return (AccessControllerResolver) WebAppContextUtils.getCurrentWebApplicationContext()
-                .getBean(
-                        AccessControllerResolver.ROLE + "/"
-                                + AccessControllerResolver.DEFAULT_RESOLVER);
+                .getBean(AccessControllerResolver.ROLE);
     }
 
     /**
      * Returns if the condition is complied in a certain situation. The condition is complied when
      * the current user has the role that is required by the RoleCondition.
-     * 
-     * @see org.apache.lenya.workflow.impl.AbstractCondition#isComplied(Workflow, Workflowable)
      */
     public boolean isComplied(Workflow workflow, Workflowable instance) {
 
@@ -106,10 +102,6 @@
 
         } catch (final Exception e) {
             throw new RuntimeException(e);
-        } finally {
-            if (accessController != null) {
-                acResolver.release(accessController);
-            }
         }
 
     }

Modified: lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java (original)
+++ lenya/trunk/org.apache.lenya.core.api/src/test/java/org/apache/lenya/cms/AbstractAccessControlTest.java Wed Feb 11 00:01:01 2009
@@ -48,7 +48,6 @@
 
     protected static final String TEST_PUB_ID = "test";
     private AccessControllerResolver accessControllerResolver;
-    private AccessController accessController;
     private Repository repository;
 
     protected Session login(String userId) throws AccessControlException {
@@ -122,17 +121,6 @@
         return controller;
     }
 
-    /**
-     * The teardown method for JUnit
-     * @exception Exception if an error occurs
-     */
-    public void tearDown() throws Exception {
-        if (this.accessController != null) {
-            this.getAccessControllerResolver().release(this.accessController);
-        }
-        super.tearDown();
-    }
-
     protected static final String USER_ID = "lenya";
 
     /**

Modified: lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.impl/src/main/java/org/apache/lenya/cms/publication/SessionImpl.java Wed Feb 11 00:01:01 2009
@@ -76,7 +76,7 @@
     }
 
     public Identity getIdentity() {
-        return ((IdentityWrapper) getRepositorySession()).getIdentity();
+        return ((IdentityWrapper) getRepositorySession().getIdentity()).getIdentity();
     }
 
     private UnitOfWork unitOfWork;

Modified: lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java (original)
+++ lenya/trunk/org.apache.lenya.core.linking/src/main/java/org/apache/lenya/cms/linking/OutgoingLinkRewriter.java Wed Feb 11 00:01:01 2009
@@ -83,9 +83,7 @@
 
             if (this.considerSslPolicies) {
                 AccessControllerResolver acResolver = (AccessControllerResolver) WebAppContextUtils
-                        .getCurrentWebApplicationContext().getBean(
-                                AccessControllerResolver.ROLE + "/"
-                                        + AccessControllerResolver.DEFAULT_RESOLVER);
+                        .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
                 AccessController accessController = acResolver.resolveAccessController(requestUrl);
                 if (accessController != null) {
                     this.accreditableManager = accessController.getAccreditableManager();

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/cocoon/transformation/UsecaseMenuTransformer.java Wed Feb 11 00:01:01 2009
@@ -26,11 +26,10 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.avalon.framework.activity.Disposable;
 import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.cocoon.ProcessingException;
 import org.apache.cocoon.environment.SourceResolver;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.transformation.AbstractSAXTransformer;
 import org.apache.lenya.ac.AccessController;
 import org.apache.lenya.ac.AccessControllerResolver;
@@ -53,7 +52,7 @@
  * This transformer disables menu items (by removing the href attribute) which are not allowed with
  * respect to the usecase policies.
  */
-public class UsecaseMenuTransformer extends AbstractSAXTransformer implements Disposable {
+public class UsecaseMenuTransformer extends AbstractSAXTransformer {
 
     /**
      * <code>MENU_ELEMENT</code> The menu element
@@ -71,12 +70,12 @@
      * <code>USECASE_ATTRIBUTE</code> The usecase attribute
      */
     public static final String USECASE_ATTRIBUTE = "usecase";
-    
+
     /**
      * The value of the <em>checked</em> attribute can either be <em>true</em> or <em>false</em>.
      */
     public static final String CHECKED_ATTRIBUTE = "checked";
-    
+
     /**
      * Comment for <code>HREF_ATTRIBUTE</code> The href attribute
      */
@@ -110,9 +109,8 @@
                     if (getLogger().isDebugEnabled()) {
                         getLogger().debug("Found usecase [" + usecaseName + "]");
                     }
-                    if (!this.authorizer.authorizeUsecase(usecaseName,
-                            this.roles,
-                            this.publication)) {
+                    if (!this.authorizer
+                            .authorizeUsecase(usecaseName, this.roles, this.publication)) {
                         if (getLogger().isDebugEnabled()) {
                             getLogger().debug("Usecase not authorized");
                         }
@@ -139,9 +137,9 @@
                             }
                             removeHrefAttribute(attributes);
                             messages = usecase.getErrorMessages();
-                        }
-                        else if (hrefAttribute == null) {
-                            attributes.addAttribute("", HREF_ATTRIBUTE, HREF_ATTRIBUTE, "CDATA", this.sourceUrl);
+                        } else if (hrefAttribute == null) {
+                            attributes.addAttribute("", HREF_ATTRIBUTE, HREF_ATTRIBUTE, "CDATA",
+                                    this.sourceUrl);
                         }
                         setItemState(attributes, usecase);
                     } finally {
@@ -171,7 +169,8 @@
         Object itemState = usecase.getParameter(Usecase.PARAMETER_ITEM_STATE);
         if (itemState != null && itemState instanceof Boolean) {
             Boolean state = (Boolean) itemState;
-            attributes.addAttribute("", CHECKED_ATTRIBUTE, CHECKED_ATTRIBUTE, "CDATA", state.toString());
+            attributes.addAttribute("", CHECKED_ATTRIBUTE, CHECKED_ATTRIBUTE, "CDATA", state
+                    .toString());
         }
     }
 
@@ -197,9 +196,7 @@
             if (message.hasParameters()) {
                 String[] parameters = message.getParameters();
                 for (int p = 0; p < parameters.length; p++) {
-                    super.startElement(MENU_NAMESPACE,
-                            "parameter",
-                            "parameter",
+                    super.startElement(MENU_NAMESPACE, "parameter", "parameter",
                             new AttributesImpl());
                     super.characters(parameters[p].toCharArray(), 0, parameters[p].length());
                     super.endElement(MENU_NAMESPACE, "parameter", "parameter");
@@ -233,7 +230,6 @@
     }
 
     private UsecaseAuthorizer authorizer;
-    private ServiceSelector serviceSelector = null;
     private Role[] roles;
     private Publication publication;
     private AccessControllerResolver acResolver;
@@ -259,9 +255,8 @@
             Session session = this.repository.getSession(this.request);
             this.publication = session.getUriHandler().getPublication(webappUrl);
 
-            this.serviceSelector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
-                    + "Selector");
-            this.acResolver = (AccessControllerResolver) this.serviceSelector.select(AccessControllerResolver.DEFAULT_RESOLVER);
+            this.acResolver = (AccessControllerResolver) WebAppContextUtils
+                    .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
             getLogger().debug("Resolved AC resolver [" + this.acResolver + "]");
 
             AccessController accessController = this.acResolver.resolveAccessController(webappUrl);
@@ -280,24 +275,10 @@
 
     }
 
-    /**
-     * @see org.apache.avalon.framework.activity.Disposable#dispose()
-     */
-    public void dispose() {
-        getLogger().debug("Disposing transformer");
-        if (this.serviceSelector != null) {
-            if (this.acResolver != null) {
-                this.serviceSelector.release(this.acResolver);
-            }
-            this.manager.release(this.serviceSelector);
-        }
-    }
-
     public void recycle() {
         super.recycle();
         this.publication = null;
         this.roles = null;
-        this.serviceSelector = null;
         this.acResolver = null;
         this.authorizer = null;
         this.sourceUrl = null;

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/gui/impl/GUIManagerImpl.java Wed Feb 11 00:01:01 2009
@@ -146,10 +146,8 @@
 
         try {
 
-            AccessControllerResolver  acResolver = (AccessControllerResolver) WebAppContextUtils
-                    .getCurrentWebApplicationContext().getBean(
-                            AccessControllerResolver.ROLE + "/"
-                                    + AccessControllerResolver.DEFAULT_RESOLVER);
+            AccessControllerResolver acResolver = (AccessControllerResolver) WebAppContextUtils
+                    .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
             AccessController accessController = acResolver.resolveAccessController(this.webappUrl);
 
             Authorizer[] authorizers = accessController.getAuthorizers();

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/impl/UsecaseInvokerImpl.java Wed Feb 11 00:01:01 2009
@@ -65,8 +65,7 @@
         AccessControllerResolver acResolver = null;
         AccessController accessController = null;
         WebApplicationContext context = WebAppContextUtils.getCurrentWebApplicationContext();
-        acResolver = (AccessControllerResolver) context.getBean(AccessControllerResolver.ROLE + "/"
-                + AccessControllerResolver.DEFAULT_RESOLVER);
+        acResolver = (AccessControllerResolver) context.getBean(AccessControllerResolver.ROLE);
         accessController = acResolver.resolveAccessController(webappUrl);
 
         ProcessInfoProvider process = (ProcessInfoProvider) context

Modified: lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java (original)
+++ lenya/trunk/org.apache.lenya.core.usecase/src/main/java/org/apache/lenya/cms/usecase/scheduling/impl/UsecaseCronJob.java Wed Feb 11 00:01:01 2009
@@ -27,15 +27,14 @@
 import org.apache.avalon.framework.context.Contextualizable;
 import org.apache.avalon.framework.parameters.Parameters;
 import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.cocoon.components.ContextHelper;
 import org.apache.cocoon.components.cron.ConfigurableCronJob;
 import org.apache.cocoon.components.cron.ServiceableCronJob;
-import org.apache.cocoon.environment.Environment;
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.Session;
 import org.apache.cocoon.processing.ProcessInfoProvider;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.AccessController;
 import org.apache.lenya.ac.AccessControllerResolver;
@@ -74,7 +73,6 @@
     private Context context;
     private ProcessInfoProvider processInfoProvider;
 
-
     private Map parameters = new HashMap();
 
     protected static final String USECASE_NAME = "usecaseName";
@@ -88,7 +86,7 @@
     public String getUsecaseName() {
         return this.usecaseName;
     }
-    
+
     /**
      * @return The ID of the user who scheduled the job.
      */
@@ -144,14 +142,11 @@
             String key = (String) e.nextElement();
             requestParameters.put(key, request.getParameter(key));
         }
-/*
-        objectModel.put(ObjectModelHelper.REQUEST_OBJECT, new CommandLineRequest(env,
-                request.getContextPath(),
-                request.getServletPath(),
-                getSourceURL(),
-                attributes,
-                requestParameters));
-                */
+        /*
+         * objectModel.put(ObjectModelHelper.REQUEST_OBJECT, new CommandLineRequest(env,
+         * request.getContextPath(), request.getServletPath(), getSourceURL(), attributes,
+         * requestParameters));
+         */
     }
 
     /**
@@ -161,56 +156,39 @@
      */
     protected void authorizeRequest() throws AccessControlException, ServiceException {
 
-        ServiceSelector selector = null;
-        AccessControllerResolver acResolver = null;
-        AccessController controller = null;
-        try {
-            selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
-                    + "Selector");
-            acResolver = (AccessControllerResolver) selector.select(AccessControllerResolver.DEFAULT_RESOLVER);
-            controller = acResolver.resolveAccessController(getSourceURL());
-
-            getLogger().debug("Add identity to session");
-            getLogger().debug("User ID: [" + this.userId + "]");
-            getLogger().debug("Machine: [" + this.machineIp + "]");
-
-            Request request = ContextHelper.getRequest(this.context);
-            controller.setupIdentity(request);
-            Session session = request.getCocoonSession(false);
-            Identity identity = (Identity) session.getAttribute(Identity.class.getName());
-            Identifiable[] identifiables = identity.getIdentifiables();
-            for (int i = 0; i < identifiables.length; i++) {
-                identity.removeIdentifiable(identifiables[i]);
-            }
+        AccessControllerResolver acResolver = (AccessControllerResolver) WebAppContextUtils
+                .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
+        AccessController controller = acResolver.resolveAccessController(getSourceURL());
+
+        getLogger().debug("Add identity to session");
+        getLogger().debug("User ID: [" + this.userId + "]");
+        getLogger().debug("Machine: [" + this.machineIp + "]");
+
+        Request request = ContextHelper.getRequest(this.context);
+        controller.setupIdentity(request);
+        Session session = request.getCocoonSession(false);
+        Identity identity = (Identity) session.getAttribute(Identity.class.getName());
+        Identifiable[] identifiables = identity.getIdentifiables();
+        for (int i = 0; i < identifiables.length; i++) {
+            identity.removeIdentifiable(identifiables[i]);
+        }
 
-            UserManager userManager = controller.getAccreditableManager().getUserManager();
-            if (this.userId != null) {
-                User user = userManager.getUser(this.userId);
-
-                if (user == null) {
-                    throw new RuntimeException("User [" + this.userId + "] does not exist!");
-                }
+        UserManager userManager = controller.getAccreditableManager().getUserManager();
+        if (this.userId != null) {
+            User user = userManager.getUser(this.userId);
 
-                identity.addIdentifiable(user);
-            }
-            if (this.machineIp != null) {
-                Machine machine = new Machine(this.machineIp);
-                identity.addIdentifiable(machine);
+            if (user == null) {
+                throw new RuntimeException("User [" + this.userId + "] does not exist!");
             }
 
-            controller.authorize(request);
-
-        } finally {
-            if (selector != null) {
-                if (acResolver != null) {
-                    if (controller != null) {
-                        acResolver.release(controller);
-                    }
-                    selector.release(acResolver);
-                }
-                this.manager.release(selector);
-            }
+            identity.addIdentifiable(user);
         }
+        if (this.machineIp != null) {
+            Machine machine = new Machine(this.machineIp);
+            identity.addIdentifiable(machine);
+        }
+
+        controller.authorize(request);
 
     }
 
@@ -232,7 +210,7 @@
     public void contextualize(Context context) throws ContextException {
         this.context = context;
     }
-    
+
     public void setProcessInfoProvider(ProcessInfoProvider provider) {
         this.processInfoProvider = provider;
     }

Modified: lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java (original)
+++ lenya/trunk/org.apache.lenya.module.contactform/src/main/java/org/apache/lenya/cms/contactform/ContactForm.java Wed Feb 11 00:01:01 2009
@@ -88,9 +88,7 @@
 
     protected User getUser(String userId) throws Exception {
         AccessControllerResolver acResolver = (AccessControllerResolver) WebAppContextUtils
-                .getCurrentWebApplicationContext().getBean(
-                        AccessControllerResolver.ROLE + "/"
-                                + AccessControllerResolver.DEFAULT_RESOLVER);
+                .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
         AccessController accessController = acResolver.resolveAccessController(getSourceURL());
         UserManager userManager = accessController.getAccreditableManager().getUserManager();
         return userManager.getUser(userId);

Modified: lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java
URL: http://svn.apache.org/viewvc/lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java?rev=743173&r1=743172&r2=743173&view=diff
==============================================================================
--- lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java (original)
+++ lenya/trunk/org.apache.lenya.module.sitetree/src/main/java/org/apache/lenya/cms/cocoon/transformation/AccessControlSitetreeTransformer.java Wed Feb 11 00:01:01 2009
@@ -25,14 +25,10 @@
 import java.util.Map;
 import java.util.Stack;
 
-import org.apache.avalon.framework.activity.Disposable;
 import org.apache.avalon.framework.parameters.Parameters;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceSelector;
 import org.apache.cocoon.ProcessingException;
-import org.apache.cocoon.environment.ObjectModelHelper;
-import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.environment.SourceResolver;
+import org.apache.cocoon.spring.configurator.WebAppContextUtils;
 import org.apache.cocoon.transformation.AbstractSAXTransformer;
 import org.apache.lenya.ac.AccessControlException;
 import org.apache.lenya.ac.AccessController;
@@ -50,14 +46,13 @@
  * This transformer is applied to the sitetree. It marks the site element and all node elements the
  * current identity is not allowed to access with a <code>protected="true"</code> attribute.
  */
-public class AccessControlSitetreeTransformer extends AbstractSAXTransformer implements Disposable {
+public class AccessControlSitetreeTransformer extends AbstractSAXTransformer {
 
     /**
      * <code>ATTRIBUTE_PROTECTED</code> The attribute for protected
      */
     public static final String ATTRIBUTE_PROTECTED = "protected";
 
-    private ServiceSelector serviceSelector;
     private PolicyManager policyManager;
     private AccessControllerResolver acResolver;
     private AccreditableManager accreditableManager;
@@ -76,44 +71,21 @@
             throws ProcessingException, SAXException, IOException {
         super.setup(_resolver, _objectModel, src, par);
 
-        this.serviceSelector = null;
         this.acResolver = null;
         this.policyManager = null;
 
         this.identity = Identity.getIdentity(this.request.getSession(false));
 
-        try {
-
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("Setting up transformer");
-                getLogger().debug("    Identity:       [" + this.identity + "]");
-            }
-
-            this.serviceSelector = (ServiceSelector) this.manager
-                    .lookup(AccessControllerResolver.ROLE + "Selector");
-
-            this.acResolver = (AccessControllerResolver) this.serviceSelector
-                    .select(AccessControllerResolver.DEFAULT_RESOLVER);
-
-            if (getLogger().isDebugEnabled()) {
-                getLogger().debug("    Resolved AC resolver [" + this.acResolver + "]");
-            }
-
-        } catch (final ServiceException e) {
-            throw new ProcessingException(e);
+        if (getLogger().isDebugEnabled()) {
+            getLogger().debug("Setting up transformer");
+            getLogger().debug("    Identity:       [" + this.identity + "]");
         }
 
-    }
+        this.acResolver = (AccessControllerResolver) WebAppContextUtils
+                .getCurrentWebApplicationContext().getBean(AccessControllerResolver.ROLE);
 
-    /**
-     * @see org.apache.avalon.framework.activity.Disposable#dispose()
-     */
-    public void dispose() {
-        if (this.serviceSelector != null) {
-            if (this.acResolver != null) {
-                this.serviceSelector.release(this.acResolver);
-            }
-            this.manager.release(this.serviceSelector);
+        if (getLogger().isDebugEnabled()) {
+            getLogger().debug("    Resolved AC resolver [" + this.acResolver + "]");
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org