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 2004/09/13 09:46:27 UTC
svn commit: rev 45956 - incubator/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source
Author: andreas
Date: Mon Sep 13 00:46:26 2004
New Revision: 45956
Modified:
incubator/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
Log:
releasing source resolver, wrapping exception instead of message
Modified: incubator/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java
==============================================================================
--- incubator/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java (original)
+++ incubator/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/LenyaSourceFactory.java Mon Sep 13 00:46:26 2004
@@ -56,7 +56,6 @@
private Context context;
private ServiceManager manager;
- private SourceResolver sourceResolver;
private String delegationScheme;
private String delegationPrefix;
@@ -89,39 +88,46 @@
public Source getSource(final String location, final Map parameters)
throws MalformedURLException, IOException, SourceException {
+ SourceResolver sourceResolver = null;
+
try {
- this.sourceResolver = (SourceResolver) manager
+ sourceResolver = (SourceResolver) manager
.lookup(org.apache.excalibur.source.SourceResolver.ROLE);
- } catch (ServiceException e) {
- throw new SourceException(e.getMessage());
- }
- String path = location.substring(SCHEME.length());
+ String path = location.substring(SCHEME.length());
- if (!path.startsWith("//")) {
+ if (!path.startsWith("//")) {
- Map objectModel = ContextHelper.getObjectModel(this.context);
- try {
- PageEnvelopeFactory pageEnvelopeFactory = PageEnvelopeFactory.getInstance();
-
- if (pageEnvelopeFactory != null) {
- PageEnvelope pageEnvelope = pageEnvelopeFactory.getPageEnvelope(objectModel);
-
- if (pageEnvelope != null) {
- String publicationID = pageEnvelope.getPublication().getId();
- String area = pageEnvelope.getDocument().getArea();
- path = "/" + publicationID + "/" + Publication.CONTENT_PATH + "/" + area
- + path;
+ Map objectModel = ContextHelper.getObjectModel(this.context);
+ try {
+ PageEnvelopeFactory pageEnvelopeFactory = PageEnvelopeFactory.getInstance();
+
+ if (pageEnvelopeFactory != null) {
+ PageEnvelope pageEnvelope = pageEnvelopeFactory
+ .getPageEnvelope(objectModel);
+
+ if (pageEnvelope != null) {
+ String publicationID = pageEnvelope.getPublication().getId();
+ String area = pageEnvelope.getDocument().getArea();
+ path = "/" + publicationID + "/" + Publication.CONTENT_PATH + "/"
+ + area + path;
+ }
}
+ } catch (PageEnvelopeException e) {
+ throw new SourceException(
+ "Cannot attach publication-id and/or area to " + path, e);
}
- } catch (PageEnvelopeException e) {
- throw new SourceException("Cannot attach publication-id and/or area to " + path, e);
}
- }
- path = this.delegationScheme + this.delegationPrefix + path;
+ path = this.delegationScheme + this.delegationPrefix + path;
- return sourceResolver.resolveURI(path);
+ return sourceResolver.resolveURI(path);
+
+ } catch (ServiceException e) {
+ throw new SourceException(e.getMessage(), e);
+ } finally {
+ this.manager.release(sourceResolver);
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: lenya-cvs-unsubscribe@cocoon.apache.org
For additional commands, e-mail: lenya-cvs-help@cocoon.apache.org