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 2007/02/23 14:43:57 UTC

svn commit: r510946 - in /cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal: event/aspect/impl/RequestParameterEventAspect.java services/LinkService.java services/impl/links/DefaultLinkService.java

Author: cziegeler
Date: Fri Feb 23 05:43:56 2007
New Revision: 510946

URL: http://svn.apache.org/viewvc?view=rev&rev=510946
Log:
Use configured request parameter name for decoding events

Modified:
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/RequestParameterEventAspect.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/LinkService.java
    cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/links/DefaultLinkService.java

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/RequestParameterEventAspect.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/RequestParameterEventAspect.java?view=diff&rev=510946&r1=510945&r2=510946
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/RequestParameterEventAspect.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/event/aspect/impl/RequestParameterEventAspect.java Fri Feb 23 05:43:56 2007
@@ -21,10 +21,10 @@
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.portal.event.Event;
+import org.apache.cocoon.portal.event.EventConverter;
 import org.apache.cocoon.portal.event.EventManager;
 import org.apache.cocoon.portal.event.aspect.EventAspect;
 import org.apache.cocoon.portal.event.aspect.EventAspectContext;
-import org.apache.cocoon.portal.services.LinkService;
 import org.apache.cocoon.portal.util.AbstractBean;
 
 /**
@@ -38,12 +38,14 @@
     protected void process(EventAspectContext context,
                            Request            request,
                            String             parameterName) {
-        String[] values = request.getParameterValues( parameterName );
         final EventManager publisher = context.getPortalService().getEventManager();
+        final EventConverter converter = context.getPortalService().getEventConverter();
+
+        final String[] values = request.getParameterValues( parameterName );
         if ( values != null ) {
             for(int i=0; i<values.length; i++) {
                 final String current = values[i];
-                final Event e = context.getPortalService().getEventConverter().decode(current);
+                final Event e = converter.decode(current);
                 if ( null != e) {
                     publisher.send(e);
                 }
@@ -55,20 +57,21 @@
 	 * @see org.apache.cocoon.portal.event.aspect.EventAspect#process(org.apache.cocoon.portal.event.aspect.EventAspectContext)
 	 */
 	public void process(EventAspectContext context) {
+        final String defaultRequestParameterName = context.getPortalService().getLinkService().getEventRequestParameterName();
         final Request request = ObjectModelHelper.getRequest(context.getPortalService().getProcessInfoProvider().getObjectModel());
-        final String requestParameterNames = context.getAspectProperties().getProperty("parameter-name", LinkService.DEFAULT_REQUEST_EVENT_PARAMETER_NAME);
+        final String requestParameterNames = context.getAspectProperties().getProperty("parameter-name", defaultRequestParameterName);
         boolean processedDefault = false;
 
         StringTokenizer tokenizer = new StringTokenizer(requestParameterNames, ", ");
         while ( tokenizer.hasMoreTokens() ) {
             final String currentName = tokenizer.nextToken();
             this.process(context, request, currentName);
-            if ( LinkService.DEFAULT_REQUEST_EVENT_PARAMETER_NAME.equals(currentName) ) {
+            if ( defaultRequestParameterName.equals(currentName) ) {
                 processedDefault = true;
             }
         }
         if ( !processedDefault ) {
-            this.process( context, request, LinkService.DEFAULT_REQUEST_EVENT_PARAMETER_NAME );
+            this.process( context, request, defaultRequestParameterName );
         }
         context.invokeNext();
 	}

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/LinkService.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/LinkService.java?view=diff&rev=510946&r1=510945&r2=510946
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/LinkService.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/LinkService.java Fri Feb 23 05:43:56 2007
@@ -30,14 +30,14 @@
 public interface LinkService {
 
     /** The request parameter name used for adding event information to the url. */
-    String DEFAULT_REQUEST_EVENT_PARAMETER_NAME = "cocoon-portal-event";
+    String DEFAULT_EVENT_REQUEST_PARAMETER_NAME = "cocoon-portal-event";
 
     /** These parameters are used by default for adding portal specific information to a url. */
     List DEFAULT_INTERNAL_PARAMETERS = Collections.singletonList("cocoon-*");
 
     /**
      * This object holds a 'complete' request parameter (or several) which means it
-     * contains a string like {name}={value}. The value should already be url encoded! 
+     * contains a string like {name}={value}. The value should already be url encoded!
      */
     static class ParameterDescription {
 
@@ -131,7 +131,7 @@
     /**
      * @param url The url to encode.
      * @return The enocoded URL.
-     * @see javax.servlet.http.HttpServletResponse#encodeURL(java.lang.String) 
+     * @see javax.servlet.http.HttpServletResponse#encodeURL(java.lang.String)
      */
     String encodeURL(String url);
 
@@ -139,4 +139,9 @@
      * Test if the parameter is an internal one.
      */
     boolean isInternalParameterName(String name);
+
+    /**
+     * Get the name of the request parameter used to encode events.
+     */
+    String getEventRequestParameterName();
 }

Modified: cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/links/DefaultLinkService.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/links/DefaultLinkService.java?view=diff&rev=510946&r1=510945&r2=510946
==============================================================================
--- cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/links/DefaultLinkService.java (original)
+++ cocoon/trunk/blocks/cocoon-portal/cocoon-portal-impl/src/main/java/org/apache/cocoon/portal/services/impl/links/DefaultLinkService.java Fri Feb 23 05:43:56 2007
@@ -40,7 +40,7 @@
  *
  * @version $Id$
  */
-public class DefaultLinkService 
+public class DefaultLinkService
     extends AbstractBean
     implements LinkService {
 
@@ -54,7 +54,7 @@
     protected List internalParametersMatchers = new ArrayList();
 
     /** The name of the request parameter for events. */
-    protected String requestParameterName = LinkService.DEFAULT_REQUEST_EVENT_PARAMETER_NAME;
+    protected String requestParameterName = LinkService.DEFAULT_EVENT_REQUEST_PARAMETER_NAME;
 
     /**
      * Construct a new link service.
@@ -98,7 +98,7 @@
                 } else {
                     this.internalParametersMatchers.add(new ConstantParameterMatcher(parameter));
                 }
-            }            
+            }
         }
     }
 
@@ -205,7 +205,7 @@
             final Iterator iter = info.comparableEvents.iterator();
             while (iter.hasNext()) {
                 final ComparableEvent current = (ComparableEvent)iter.next();
-    
+
                 final Iterator eventIterator = events.iterator();
                 boolean found = false;
                 while (!found && eventIterator.hasNext()) {
@@ -351,5 +351,12 @@
         }
 
         return buffer.toString();
+    }
+
+    /**
+     * @see org.apache.cocoon.portal.services.LinkService#getEventRequestParameterName()
+     */
+    public String getEventRequestParameterName() {
+        return this.requestParameterName;
     }
 }