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 2007/04/13 10:23:26 UTC

svn commit: r528385 - /lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java

Author: andreas
Date: Fri Apr 13 01:23:25 2007
New Revision: 528385

URL: http://svn.apache.org/viewvc?view=rev&rev=528385
Log:
Always use sourceResolver in DocumentSourceFactory (simplifies code)

Modified:
    lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java

Modified: lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java?view=diff&rev=528385&r1=528384&r2=528385
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java (original)
+++ lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/source/DocumentSourceFactory.java Fri Apr 13 01:23:25 2007
@@ -88,6 +88,8 @@
     public void contextualize(Context context) throws ContextException {
         this.context = context;
     }
+    
+    private SourceResolver sourceResolver;
 
     /**
      * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
@@ -108,7 +110,7 @@
      */
     public Source getSource(String location, Map parameters) throws MalformedURLException,
             IOException, SourceException {
-
+        
         Map objectModel = ContextHelper.getObjectModel(this.context);
         Request request = ObjectModelHelper.getRequest(objectModel);
 
@@ -122,6 +124,10 @@
 
         LinkResolver resolver = null;
         try {
+            if (this.sourceResolver == null) {
+                this.sourceResolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
+            }
+
             resolver = (LinkResolver) this.manager.lookup(LinkResolver.ROLE);
             DocumentFactory factory = DocumentUtil.getDocumentFactory(this.manager, request);
             String webappUrl = ServletHelper.getWebappURI(request);
@@ -131,21 +137,18 @@
             Document doc = target.getDocument();
 
             String format = null;
-            String sessionName = null;
             if (queryString != null) {
                 Query query = new Query(queryString);
                 format = query.getValue("format");
-                sessionName = query.getValue("session");
             }
             if (format != null) {
                 return getFormatSource(doc, format);
             } else {
                 String lenyaURL = doc.getSourceURI();
-                if (target.isRevisionSpecified()) {
-                    lenyaURL += "?rev=" + target.getRevisionNumber();
+                if (queryString != null) {
+                    lenyaURL += "?" + queryString;
                 }
-                Session session = getSession(objectModel, sessionName);
-                return new RepositorySource(manager, lenyaURL, session, getLogger());
+                return this.sourceResolver.resolveURI(lenyaURL);
             }
 
         } catch (Exception e) {
@@ -186,22 +189,14 @@
         String formatUri = formatBaseUri + "/" + doc.getPublication().getId() + "/" + doc.getArea()
                 + "/" + doc.getUUID() + "/" + doc.getLanguage();
 
-        SourceResolver resolver = null;
-        try {
-            resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
-            return resolver.resolveURI(formatUri);
-        } finally {
-            if (resolver != null) {
-                this.manager.release(resolver);
-            }
-        }
+        return this.sourceResolver.resolveURI(formatUri);
     }
 
     /**
      * @see org.apache.excalibur.source.SourceFactory#release(org.apache.excalibur.source.Source)
      */
     public void release(Source source) {
-        // Source will be released by delegated source factory.
+        this.sourceResolver.release(source);
     }
 
 }



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