You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2005/03/02 12:01:19 UTC
svn commit: r155907 - in cocoon/branches/BRANCH_2_1_X/src/blocks/portal:
java/org/apache/cocoon/portal/acting/URLAction.java
samples/coplets/html/sitemap.xmap samples/sitemap.xmap
Author: cziegeler
Date: Wed Mar 2 03:01:18 2005
New Revision: 155907
URL: http://svn.apache.org/viewcvs?view=rev&rev=155907
Log:
Fix bug in url generation for application coplets
Added:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/acting/URLAction.java (with props)
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/coplets/html/sitemap.xmap
cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/sitemap.xmap
Added: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/acting/URLAction.java
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/acting/URLAction.java?view=auto&rev=155907
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/acting/URLAction.java (added)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/acting/URLAction.java Wed Mar 2 03:01:18 2005
@@ -0,0 +1,75 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.portal.acting;
+
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.avalon.framework.parameters.Parameters;
+import org.apache.avalon.framework.thread.ThreadSafe;
+import org.apache.cocoon.acting.ServiceableAction;
+import org.apache.cocoon.environment.Redirector;
+import org.apache.cocoon.environment.SourceResolver;
+import org.apache.cocoon.util.NetUtils;
+
+/**
+ * This action builds correct urls. It uses the src parameter as the base url
+ * and adds all sitemap parameters as request parameters.
+ *
+ * @version $Id:$
+*/
+public class URLAction
+extends ServiceableAction
+implements ThreadSafe {
+
+ public Map act(Redirector redirector,
+ SourceResolver resolver,
+ Map objectModel,
+ String source,
+ Parameters par)
+ throws Exception {
+ if (this.getLogger().isDebugEnabled() ) {
+ this.getLogger().debug("BEGIN act resolver="+resolver+
+ ", objectModel="+objectModel+
+ ", source="+source+
+ ", par="+par);
+ }
+
+ StringBuffer buffer = new StringBuffer(source);
+ boolean hasParams = (source.indexOf('?') != -1);
+ final String[] names = par.getNames();
+ for( int i=0; i<names.length; i++ ) {
+ final String key = names[i];
+ final String value = par.getParameter(key);
+ if ( hasParams ) {
+ buffer.append('&');
+ } else {
+ buffer.append('?');
+ hasParams = true;
+ }
+ buffer.append(key);
+ buffer.append('=');
+ buffer.append(NetUtils.encode(value, "utf-8"));
+ }
+ final Map result = Collections.singletonMap("url", buffer.toString());
+ if (this.getLogger().isDebugEnabled() ) {
+ this.getLogger().debug("END act map={}");
+ }
+
+ return result;
+ }
+
+}
Propchange: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/acting/URLAction.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/java/org/apache/cocoon/portal/acting/URLAction.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/coplets/html/sitemap.xmap
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/coplets/html/sitemap.xmap?view=diff&r1=155906&r2=155907
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/coplets/html/sitemap.xmap (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/coplets/html/sitemap.xmap Wed Mar 2 03:01:18 2005
@@ -32,7 +32,10 @@
</map:match>
<map:match pattern="application">
- <map:generate src="{coplet:temporaryAttributes/application-uri}?copletid={coplet:#}"/>
+ <map:act type="portal-urlhelper" src="{coplet:temporaryAttributes/application-uri}">
+ <map:parameter name="copletid" value="{coplet:#}"/>
+ <map:generate src="{url}"/>
+ </map:act>
<map:transform type="htmlroot">
<map:parameter name="add-mode" value="false"/>
</map:transform>
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/sitemap.xmap
URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/sitemap.xmap?view=diff&r1=155906&r2=155907
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/sitemap.xmap (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/portal/samples/sitemap.xmap Wed Mar 2 03:01:18 2005
@@ -72,7 +72,10 @@
<map:action src="org.apache.cocoon.portal.acting.BookmarkAction" name="portal-bookmark">
<parameter name="src" value="resources/bookmarks.xml"/>
</map:action>
- <map:action src="org.apache.cocoon.portal.acting.PreparePortalAction" name="portal-prepare"/>
+ <map:action name="portal-prepare"
+ src="org.apache.cocoon.portal.acting.PreparePortalAction"/>
+ <map:action name="portal-urlhelper"
+ src="org.apache.cocoon.portal.acting.URLAction"/>
</map:actions>
</map:components>