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