You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/12/30 18:33:49 UTC

svn commit: r360121 - in /cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal: coplet/ layout/ layout/impl/ persistence/castor/ profile/impl/

Author: cziegeler
Date: Fri Dec 30 09:33:06 2005
New Revision: 360121

URL: http://svn.apache.org/viewcvs?rev=360121&view=rev
Log:
Finally found solution to prevent castor from checking for default constructors

Modified:
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletBaseData.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletData.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletbasedata.xml
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletdata.xml
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletinstancedata.xml
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/layout.xml
    cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletBaseData.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletBaseData.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletBaseData.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletBaseData.java Fri Dec 30 09:33:06 2005
@@ -35,17 +35,6 @@
 	private String copletAdapterName;
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #CopletBaseData(String)} instead.
-     */
-	public CopletBaseData() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        this.id = null;
-        throw new IllegalArgumentException("Only instantiate a coplet base data with the id constructor.");
-    }
-
-    /**
      * Create a new coplet base data object. 
      * @param id The unique id of the object.
      */

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletData.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletData.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletData.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletData.java Fri Dec 30 09:33:06 2005
@@ -47,17 +47,6 @@
     protected transient List allowedRolesList;
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #CopletData(String)} instead.
-     */
-    public CopletData() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        this.id = null;
-        throw new IllegalArgumentException("Only instantiate a coplet data with the id constructor.");
-    }
-
-    /**
      * Constructor to instantiate a new coplet data object.
      * @param id The unique id of the object.
      */

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/coplet/CopletInstanceData.java Fri Dec 30 09:33:06 2005
@@ -66,17 +66,6 @@
     protected int size = SIZE_NORMAL;
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #CopletInstanceData(String)} instead.
-     */
-    public CopletInstanceData() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        this.id = null;
-        throw new IllegalArgumentException("Only instantiate a coplet instance data with the id constructor.");
-    }
-
-    /**
 	 * Constructor to create a new coplet instance data object.
      * Never create a coplet instance data object directly. Use the
      * {@link CopletFactory} instead.

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/AbstractLayout.java Fri Dec 30 09:33:06 2005
@@ -56,24 +56,13 @@
     protected Boolean isStatic;
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #AbstractLayout(String, String)} instead.
-     */
-    public AbstractLayout() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        this.id = null;
-        throw new IllegalArgumentException("Only instantiate a layout with the id/string constructor.");
-    }
-
-    /**
      * Create a new layout object.
      * Never create a layout object directly. Use the
      * {@link LayoutFactory} instead.
      * @param id The unique identifier of the layout object or null.
      * @param name The name of the layout.
      */
-    public AbstractLayout (String id, String name) {
+    public AbstractLayout(String id, String name) {
         this.id = id;
         this.name = name;
     }

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CompositeLayoutImpl.java Fri Dec 30 09:33:06 2005
@@ -40,17 +40,6 @@
     protected List items = new ArrayList();
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #CompositeLayoutImpl(String, String)} instead.
-     */
-    public CompositeLayoutImpl() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        super(null, null);
-        throw new IllegalArgumentException("Only instantiate a composite layout with the id/name constructor.");
-    }
-
-    /**
      * Create a new composite layout object.
      * Never create a layout object directly. Use the
      * {@link LayoutFactory} instead.

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/CopletLayout.java Fri Dec 30 09:33:06 2005
@@ -31,17 +31,6 @@
     protected CopletInstanceData copletInstanceData;
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #CopletLayout(String, String)} instead.
-     */
-    public CopletLayout() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        super(null, null);
-        throw new IllegalArgumentException("Only instantiate a coplet layout with the id/string constructor.");
-    }
-
-    /**
      * Create a new coplet layout object.
      * Never create a layout object directly. Use the
      * {@link LayoutFactory} instead.

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/FrameLayout.java Fri Dec 30 09:33:06 2005
@@ -30,17 +30,6 @@
     protected String source;
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #FrameLayout(String, String)} instead.
-     */
-    public FrameLayout() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        super(null, null);
-        throw new IllegalArgumentException("Only instantiate a frame layout with the id/String constructor.");
-    }
-
-    /**
      * Create a new frame layout object.
      * Never create a layout object directly. Use the
      * {@link LayoutFactory} instead.

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/layout/impl/LinkLayout.java Fri Dec 30 09:33:06 2005
@@ -31,17 +31,6 @@
     protected String linkedLayoutId;
 
     /**
-     * DO NOT USE THIS CONSTRUCTOR - it's just here to keep Castor happy.
-     * Use {@link #LinkLayout(String, String)} instead.
-     */
-    public LinkLayout() {
-        // this constructor is just to keep Castor happy (version 0.9.9)
-        // we can remove it in later versions
-        super(null, null);
-        throw new IllegalArgumentException("Only instantiate a link layout with the id/string constructor.");
-    }
-
-    /**
      * Create a new link layout object.
      * Never create a layout object directly. Use the
      * {@link LayoutFactory} instead.

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletbasedata.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletbasedata.xml?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletbasedata.xml (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletbasedata.xml Fri Dec 30 09:33:06 2005
@@ -28,7 +28,7 @@
     </field>
   </class>
 
-  <class name="org.apache.cocoon.portal.coplet.CopletBaseData">
+  <class name="org.apache.cocoon.portal.coplet.CopletBaseData" verify-constructable="false">
     <map-to xml="coplet-base-data" />
 
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletdata.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletdata.xml?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletdata.xml (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletdata.xml Fri Dec 30 09:33:06 2005
@@ -18,7 +18,7 @@
 <mapping>
   <description>Coplet data mapping file</description>
 
-  <class name="org.apache.cocoon.portal.coplet.CopletBaseData" identity="id">
+  <class name="org.apache.cocoon.portal.coplet.CopletBaseData" identity="id" verify-constructable="false">
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">
       <bind-xml name="id" node="attribute" />
     </field>
@@ -34,7 +34,7 @@
     </field>
   </class>
 
-  <class name="org.apache.cocoon.portal.coplet.CopletData">
+  <class name="org.apache.cocoon.portal.coplet.CopletData" verify-constructable="false">
     <map-to xml="coplet-data" />
     
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletinstancedata.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletinstancedata.xml?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletinstancedata.xml (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/copletinstancedata.xml Fri Dec 30 09:33:06 2005
@@ -18,7 +18,7 @@
 <mapping>
   <description>Coplet instance data mapping file</description>
 
-  <class name="org.apache.cocoon.portal.coplet.CopletData" identity="id">
+  <class name="org.apache.cocoon.portal.coplet.CopletData" identity="id" verify-constructable="false">
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">
       <bind-xml name="id" node="attribute" />
     </field>
@@ -52,7 +52,7 @@
     </field>
   </class>
 
-  <class name="org.apache.cocoon.portal.coplet.CopletInstanceData">
+  <class name="org.apache.cocoon.portal.coplet.CopletInstanceData" verify-constructable="false">
     <map-to xml="coplet-instance-data"/>
 
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/layout.xml
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/layout.xml?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/layout.xml (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/persistence/castor/layout.xml Fri Dec 30 09:33:06 2005
@@ -18,7 +18,9 @@
 <mapping>
   <description>Portalprofile mapping file</description>
 
-  <class name="org.apache.cocoon.portal.coplet.CopletInstanceData" identity="id">
+  <class name="org.apache.cocoon.portal.coplet.CopletInstanceData"
+         identity="id"
+         verify-constructable="false">
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">
       <bind-xml name="id" node="attribute" />
     </field>
@@ -32,7 +34,8 @@
   </class>
 
   <class name="org.apache.cocoon.portal.layout.AbstractLayout"
-         extends="org.apache.cocoon.portal.layout.AbstractParameters">
+         extends="org.apache.cocoon.portal.layout.AbstractParameters"
+         verify-constructable="false">
 
     <field name="layoutRendererName" type="java.lang.String">
       <bind-xml name="layout-renderer-name" node="attribute"/>
@@ -49,7 +52,8 @@
   </class>
 
   <class name="org.apache.cocoon.portal.layout.impl.LinkLayout"
-         extends="org.apache.cocoon.portal.layout.AbstractLayout">
+         extends="org.apache.cocoon.portal.layout.AbstractLayout"
+         verify-constructable="false">
     <map-to xml="link-layout"/>
 
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">
@@ -69,7 +73,8 @@
   </class>
 
   <class name="org.apache.cocoon.portal.layout.impl.CompositeLayoutImpl"
-         extends="org.apache.cocoon.portal.layout.AbstractLayout">
+         extends="org.apache.cocoon.portal.layout.AbstractLayout"
+         verify-constructable="false">
     <map-to xml="composite-layout"/>
 
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">
@@ -88,7 +93,8 @@
 
   <class name="org.apache.cocoon.portal.layout.impl.CopletLayout"
          auto-complete="false"
-         extends="org.apache.cocoon.portal.layout.AbstractLayout">
+         extends="org.apache.cocoon.portal.layout.AbstractLayout"
+         verify-constructable="false">
     <map-to xml="coplet-layout"/>
 
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">
@@ -105,7 +111,8 @@
   </class>
 
   <class name="org.apache.cocoon.portal.layout.impl.FrameLayout"
-         extends="org.apache.cocoon.portal.layout.AbstractLayout">
+         extends="org.apache.cocoon.portal.layout.AbstractLayout"
+         verify-constructable="false">
     <map-to xml="frame-layout"/>
 
     <field name="id" type="java.lang.String" set-method="%1" get-method="getId">

Modified: cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java?rev=360121&r1=360120&r2=360121&view=diff
==============================================================================
--- cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java (original)
+++ cocoon/blocks/portal/trunk/java/org/apache/cocoon/portal/profile/impl/MapProfileLS.java Fri Dec 30 09:33:06 2005
@@ -42,7 +42,8 @@
 import org.w3c.dom.Element;
 
 /**
- * This implementation uses Castor to load/save the profiles.
+ * This implementation uses a {@link Converter} component to load/save
+ * the profile.
  *
  * @version $Id$
  */
@@ -50,12 +51,18 @@
     extends AbstractLogEnabled
     implements Serviceable, ProfileLS, ThreadSafe, Disposable {
 
-    /** The component manager */
+    /** The service manager. */
     protected ServiceManager manager;
 
-    /** The XPath Processor */
+    /** The XPath Processor. */
     protected XPathProcessor xpathProcessor;
 
+    /** The converter component. */
+    protected Converter converter;
+
+    /** The source resolver. */
+    protected SourceResolver resolver;
+
     /**
      * @see org.apache.avalon.framework.activity.Disposable#dispose()
      */
@@ -63,6 +70,10 @@
         if ( this.manager != null ) {
             this.manager.release( this.xpathProcessor );
             this.xpathProcessor = null;
+            this.manager.release( this.converter );
+            this.converter = null;
+            this.manager.release( this.resolver );
+            this.resolver = null;
             this.manager = null;
         }
     }
@@ -73,6 +84,8 @@
     public void service(ServiceManager manager) throws ServiceException {
         this.manager = manager;
         this.xpathProcessor = (XPathProcessor)this.manager.lookup(XPathProcessor.ROLE);
+        this.converter = (Converter)this.manager.lookup(Converter.ROLE);
+        this.resolver = (SourceResolver)this.manager.lookup(SourceResolver.ROLE);
     }
 
     protected String getURI(Map keyMap) 
@@ -130,22 +143,15 @@
         final String uri = this.getURI( keyMap );
 
 		Source source = null;
-		Converter converter = null;
-        SourceResolver resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
 		try {
-			source = resolver.resolveURI(uri);
-            converter = (Converter) this.manager.lookup(Converter.ROLE);
+			source = this.resolver.resolveURI(uri);
 
-			return converter.getObject(source.getInputStream(),
+			return this.converter.getObject(source.getInputStream(),
                                        (String)parameters.get(PARAMETER_PROFILETYPE),
                                        (Map)parameters.get(PARAMETER_OBJECTMAP),
                                        null);
 		} finally {
-            if ( resolver != null ) {
-                resolver.release(source);
-            }
-			manager.release(converter);
-			manager.release(resolver);
+            resolver.release(source);
 		}
     }
 
@@ -158,39 +164,26 @@
         final String uri = this.getURI( keyMap );
 
         // first test: modifiable source?
-        SourceResolver resolver = null;
-        Converter converter = null;
         Source source = null;
         try {
-            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
-            source = resolver.resolveURI(uri);
+            source = this.resolver.resolveURI(uri);
             if ( source instanceof ModifiableSource ) {
-                converter = (Converter) this.manager.lookup(Converter.ROLE);
-                converter.storeObject( ((ModifiableSource)source).getOutputStream(),
+                this.converter.storeObject( ((ModifiableSource)source).getOutputStream(),
                                         (String)parameters.get(PARAMETER_PROFILETYPE),
                                         profile,
                                         parameters);
                 return;
             }
         } finally {
-            if ( resolver != null ) {
-                resolver.release(source);
-            }
-            manager.release(converter);
-            manager.release(resolver);
+            resolver.release(source);
             source = null;
-            converter = null;
-            resolver = null;
         }
 
         final StringBuffer buffer = this.getSaveURI( keyMap );
 		SAXParser parser = null;
 		try {
-            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
-            converter = (Converter) this.manager.lookup(Converter.ROLE);
-
             ByteArrayOutputStream writer = new ByteArrayOutputStream();
-            converter.storeObject(writer,
+            this.converter.storeObject(writer,
                                   (String)parameters.get(PARAMETER_PROFILETYPE),
                                   profile,
                                   parameters);
@@ -202,7 +195,7 @@
                 // ignore this as utf-8 is always supported
             }
 
-            source = resolver.resolveURI(buffer.toString());
+            source = this.resolver.resolveURI(buffer.toString());
 
             parser = (SAXParser)this.manager.lookup(SAXParser.ROLE);
             Element element = DOMUtil.getDocumentFragment(parser, new InputStreamReader(source.getInputStream())).getOwnerDocument().getDocumentElement();
@@ -211,12 +204,8 @@
             }
 
 		} finally {
-            if ( resolver != null ) {
-                resolver.release(source);
-            }
+            resolver.release(source);
 			manager.release(parser);
-			manager.release(converter);
-			manager.release(resolver);
 		}
     }
 
@@ -224,24 +213,19 @@
      * @see org.apache.cocoon.portal.profile.ProfileLS#getValidity(java.lang.Object, java.util.Map)
      */
     public SourceValidity getValidity(Object key, Map parameters) {
-		SourceResolver resolver = null;
 		Source source = null;
 		try {
             final Map keyMap = (Map) key;
 
             final String uri = this.getURI( keyMap );
 
-			resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
-			source = resolver.resolveURI(uri);
+			source = this.resolver.resolveURI(uri);
 			return source.getValidity();
 		} catch (Exception e) {
 			getLogger().warn(e.getMessage(), e);
 			return null;
 		} finally {
-			if (resolver != null) {
-                resolver.release(source);
-			}
-			manager.release(resolver);
+            resolver.release(source);
 		}
     }
 }