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/06/15 14:43:48 UTC
svn commit: r547660 - in /lenya/trunk/src:
impl/java/org/apache/lenya/cms/publication/
java/org/apache/lenya/cms/cocoon/components/modules/input/
java/org/apache/lenya/cms/publication/
modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transform...
Author: andreas
Date: Fri Jun 15 05:43:47 2007
New Revision: 547660
URL: http://svn.apache.org/viewvc?view=rev&rev=547660
Log:
Return default proxy if no proxy is defined. This makes the null checks obsolete.
Modified:
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationConfiguration.java
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationImpl.java
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/BaseURLModule.java
lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java
lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/ProxyTransformer.java
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationConfiguration.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationConfiguration.java?view=diff&rev=547660&r1=547659&r2=547660
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationConfiguration.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationConfiguration.java Fri Jun 15 05:43:47 2007
@@ -82,7 +82,7 @@
private static final String ELEMENT_CONTENT_DIR = "content-dir";
private static final String ATTRIBUTE_SRC = "src";
private static final String ELEMENT_PROXIES = "proxies";
- private static final String ATTRIBUTE_ROOT = "root";
+ protected static final String ATTRIBUTE_ROOT = "root";
private static final String ELEMENT_PROXY = "proxy";
private static final String ATTRIBUTE_AREA = "area";
private static final String ATTRIBUTE_URL = "url";
@@ -439,6 +439,16 @@
Object key = getProxyKey(area, isSslProtected);
Proxy proxy = (Proxy) this.areaSsl2proxy.get(key);
return proxy;
+ }
+
+ /**
+ * @param area The area.
+ * @param isSslProtected If the proxy is for SSL-protected URLs.
+ * @param proxy The proxy to set.
+ */
+ protected void setProxy(String area, boolean isSslProtected, Proxy proxy) {
+ Object key = getProxyKey(area, isSslProtected);
+ this.areaSsl2proxy.put(key, proxy);
}
private String siteManagerName;
Modified: lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationImpl.java?view=diff&rev=547660&r1=547659&r2=547660
==============================================================================
--- lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationImpl.java (original)
+++ lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/PublicationImpl.java Fri Jun 15 05:43:47 2007
@@ -26,8 +26,10 @@
import java.util.Map;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
+import org.apache.avalon.framework.service.ServiceException;
import org.apache.avalon.framework.service.ServiceManager;
import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.lenya.cms.cocoon.components.context.ContextUtility;
/**
* A publication.
@@ -106,11 +108,51 @@
}
public Proxy getProxy(Document document, boolean isSslProtected) {
- return delegate.getProxy(document, isSslProtected);
+ return getProxy(document.getArea(), isSslProtected);
}
public Proxy getProxy(String area, boolean isSslProtected) {
- return delegate.getProxy(area, isSslProtected);
+ Proxy proxy = delegate.getProxy(area, isSslProtected);
+ if (proxy == null) {
+ String url = getDefaultProxyUrl(area);
+ proxy = new Proxy();
+ proxy.setUrl(url);
+ this.delegate.setProxy(area, isSslProtected, proxy);
+ }
+ return proxy;
+ }
+
+ private String contextPath;
+
+ protected String getContextPath() {
+ if (this.contextPath == null) {
+ ContextUtility context = null;
+ try {
+ context = (ContextUtility) this.manager.lookup(ContextUtility.ROLE);
+ this.contextPath = context.getRequest().getContextPath();
+ } catch (ServiceException e) {
+ throw new RuntimeException(e);
+ }
+ finally {
+ if (context != null) {
+ this.manager.release(context);
+ }
+ }
+ }
+ return this.contextPath;
+ }
+
+ /**
+ * @param area The area.
+ * @return The proxy URL if no proxy is declared in {@link PublicationConfiguration#CONFIGURATION_FILE}.
+ */
+ protected String getDefaultProxyUrl(String area) {
+ if (area.equals(PublicationConfiguration.ATTRIBUTE_ROOT)) {
+ return getContextPath();
+ }
+ else {
+ return getContextPath() + "/" + getId() + "/" + area;
+ }
}
private List allResourceTypes;
Modified: lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/BaseURLModule.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/BaseURLModule.java?view=diff&rev=547660&r1=547659&r2=547660
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/BaseURLModule.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/modules/input/BaseURLModule.java Fri Jun 15 05:43:47 2007
@@ -94,12 +94,7 @@
if (isPublication(factory, pubId)) {
Publication publication = factory.getPublication(pubId);
- Proxy proxy = publication.getProxy(area, ssl);
- if (proxy == null) {
- value = request.getContextPath() + "/" + pubId + "/" + area;
- } else {
- value = proxy.getUrl();
- }
+ value = publication.getProxy(area, ssl).getUrl();
}
else {
value = request.getContextPath();
Modified: lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java?view=diff&rev=547660&r1=547659&r2=547660
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/publication/Publication.java Fri Jun 15 05:43:47 2007
@@ -183,18 +183,30 @@
String getContentDir();
/**
- * Returns the proxy which is used for a particular document.
+ * Returns the proxy which is used for a particular document's area
+ * (see {@link #getProxy(String, boolean)}).
* @param document The document.
* @param isSslProtected A boolean value.
- * @return A proxy or <code>null</code> if no proxy is defined for this version.
+ * @return A proxy.
*/
Proxy getProxy(Document document, boolean isSslProtected);
/**
+ * <p>
* Returns the proxy which is used for the given area and the ssl parameter.
+ * </p>
+ * <p>
+ * If no proxy is defined in the publication configuration file, a default proxy
+ * with the URL <code>{contextPath}/{pubId}/{area}</code> is returned.
+ * </p>
+ * <p>
+ * If the area string is "root", the global proxy is returned. If no global proxy
+ * is defined, a default global proxy with the URL <code>{contextPath}</code>
+ * is returned.
+ * </p>
* @param area area
* @param isSslProtected A boolean value.
- * @return A proxy or <code>null</code> if no proxy is defined for these parameters.
+ * @return A proxy.
*/
Proxy getProxy(String area, boolean isSslProtected);
Modified: lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/ProxyTransformer.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/ProxyTransformer.java?view=diff&rev=547660&r1=547659&r2=547660
==============================================================================
--- lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/ProxyTransformer.java (original)
+++ lenya/trunk/src/modules-core/linking/java/src/org/apache/lenya/cms/cocoon/transformation/ProxyTransformer.java Fri Jun 15 05:43:47 2007
@@ -196,31 +196,13 @@
// valid area
if (areaName != null && Arrays.asList(pub.getAreaNames()).contains(areaName)) {
Proxy proxy = pub.getProxy(areaName, ssl);
- String proxiedUrl = info.getDocumentUrl();
- rewrittenUrl = getProxyUrl(linkUrl, proxy, proxiedUrl);
+ rewrittenUrl = proxy.getUrl() + info.getDocumentUrl();
}
// invalid area
else {
Proxy proxy = pub.getProxy(ATTRIBUTE_ROOT, ssl);
- rewrittenUrl = getProxyUrl(linkUrl, proxy, linkUrl);
- }
- return rewrittenUrl;
- }
-
- /**
- * @param linkUrl The complete link URL.
- * @param proxy The proxy (may be null).
- * @param proxiedUrl The URL to append to the proxy URL.
- * @return Either {proxy.url}{proxiedUrl} (if proxy != null) or
- * {contextPath}{linkUrl} (if proxy == null).
- */
- protected String getProxyUrl(String linkUrl, Proxy proxy, String proxiedUrl) {
- String rewrittenUrl;
- if (proxy == null) {
- rewrittenUrl = this.request.getContextPath() + linkUrl;
- } else {
- rewrittenUrl = proxy.getUrl() + proxiedUrl;
+ rewrittenUrl = proxy.getUrl() + linkUrl;
}
return rewrittenUrl;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org