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 2005/03/16 14:57:17 UTC
svn commit: r157750 -
lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java
Author: andreas
Date: Wed Mar 16 05:57:16 2005
New Revision: 157750
URL: http://svn.apache.org/viewcvs?view=rev&rev=157750
Log:
usecase resolver works now for non-publication URLs
Modified:
lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java
Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java?view=diff&r1=157749&r2=157750
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/UsecaseResolverImpl.java Wed Mar 16 05:57:16 2005
@@ -32,6 +32,7 @@
import org.apache.excalibur.source.SourceUtil;
import org.apache.lenya.cms.publication.Publication;
import org.apache.lenya.cms.publication.PublicationFactory;
+import org.apache.lenya.cms.publication.URLInformation;
/**
* Usecase resolver implementation.
@@ -107,8 +108,13 @@
* @param name The plain usecase name.
* @return A string.
*/
- protected String getPublicationUsecaseName(String webappUrl, String name) {
- return getPublication(webappUrl).getId() + "/" + name;
+ protected String getPublicationUsecaseName(String webappUrl, final String name) {
+ String newName = null;
+ Publication publication = getPublication(webappUrl);
+ if (publication != null) {
+ newName = publication.getId() + "/" + name;
+ }
+ return newName;
}
private Context context;
@@ -137,13 +143,20 @@
SourceResolver resolver = null;
Source source = null;
- Publication publication;
+ Publication publication = null;
try {
resolver = (SourceResolver) this.manager.lookup(SourceResolver.ROLE);
source = resolver.resolveURI("context://");
+ String contextPath = SourceUtil.getFile(source).getAbsolutePath();
+
+ URLInformation info = new URLInformation(webappUrl);
+ String publicationId = info.getPublicationId();
- PublicationFactory factory = PublicationFactory.getInstance(getLogger());
- publication = factory.getPublication(webappUrl, SourceUtil.getFile(source));
+ if (publicationId != null
+ && PublicationFactory.existsPublication(publicationId, contextPath)) {
+ PublicationFactory factory = PublicationFactory.getInstance(getLogger());
+ publication = factory.getPublication(webappUrl, SourceUtil.getFile(source));
+ }
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
@@ -158,13 +171,12 @@
}
/**
- * @see org.apache.lenya.cms.usecase.UsecaseResolver#resolve(java.lang.String,
- * java.lang.String)
+ * @see org.apache.lenya.cms.usecase.UsecaseResolver#resolve(java.lang.String, java.lang.String)
*/
public Usecase resolve(String webappUrl, String name) throws ServiceException {
Usecase usecase = null;
String publicationUsecaseName = getPublicationUsecaseName(webappUrl, name);
- if (this.selector.isSelectable(publicationUsecaseName)) {
+ if (publicationUsecaseName != null && this.selector.isSelectable(publicationUsecaseName)) {
usecase = (Usecase) this.selector.select(publicationUsecaseName);
} else {
usecase = (Usecase) this.selector.select(name);
@@ -178,7 +190,8 @@
* java.lang.String)
*/
public boolean isRegistered(String webappUrl, String name) throws ServiceException {
- return this.selector.isSelectable(getPublicationUsecaseName(webappUrl, name))
+ String pubName = getPublicationUsecaseName(webappUrl, name);
+ return (pubName != null && this.selector.isSelectable(pubName))
|| this.selector.isSelectable(name);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org