You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2009/06/08 10:06:07 UTC

svn commit: r782554 - in /incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal: EventImpl.java EventProviderImpl.java request/LinkTransformerFactory.java

Author: cziegeler
Date: Mon Jun  8 08:06:07 2009
New Revision: 782554

URL: http://svn.apache.org/viewvc?rev=782554&view=rev
Log:
Update to new rewriter.

Modified:
    incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventImpl.java
    incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventProviderImpl.java
    incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java

Modified: incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventImpl.java
URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventImpl.java?rev=782554&r1=782553&r2=782554&view=diff
==============================================================================
--- incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventImpl.java (original)
+++ incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventImpl.java Mon Jun  8 08:06:07 2009
@@ -16,37 +16,46 @@
  */
 package org.apache.sling.portal.container.internal;
 
+import java.io.Serializable;
+
 import javax.portlet.Event;
 import javax.xml.namespace.QName;
 
 /**
- * Implementation of JSR-286 <code>Event</code>.
- *
- * @since 2.0
+ * Implementation of the event.
  */
 public class EventImpl implements Event {
 
-	private QName _qname;
-	private java.io.Serializable _value;
-	
+	private final QName qname;
+	private final Serializable value;
+
 	public EventImpl(QName qname){
-		_qname = qname;
+        this(qname, null);
 	}
-	
+
 	public EventImpl(QName qname, java.io.Serializable value){
-		this(qname);
-		_value = value;
+        this.qname = qname;
+		this.value = value;
 	}
 
+	/**
+	 * @see javax.portlet.Event#getQName()
+	 */
 	public QName getQName() {
-		return _qname;
+		return qname;
 	}
 
-	public java.io.Serializable getValue() {
-		return _value;
+	/**
+	 * @see javax.portlet.Event#getValue()
+	 */
+	public Serializable getValue() {
+		return value;
 	}
 
+	/**
+	 * @see javax.portlet.Event#getName()
+	 */
 	public String getName() {
-		return _qname.getLocalPart();
+		return qname.getLocalPart();
 	}
 }

Modified: incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventProviderImpl.java
URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventProviderImpl.java?rev=782554&r1=782553&r2=782554&view=diff
==============================================================================
--- incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventProviderImpl.java (original)
+++ incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/EventProviderImpl.java Mon Jun  8 08:06:07 2009
@@ -17,84 +17,39 @@
 package org.apache.sling.portal.container.internal;
 
 import java.io.Serializable;
-import java.io.StringWriter;
-import java.io.Writer;
 import java.util.List;
 
 import javax.portlet.Event;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
 import javax.xml.namespace.QName;
-import javax.xml.stream.FactoryConfigurationError;
 
 import org.apache.pluto.container.EventProvider;
 import org.apache.pluto.container.PortletWindow;
 import org.apache.pluto.container.om.portlet.EventDefinition;
 import org.apache.pluto.container.om.portlet.EventDefinitionReference;
 import org.apache.pluto.container.om.portlet.PortletApplicationDefinition;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class EventProviderImpl implements EventProvider {
 
-    private final Logger LOGGER = LoggerFactory.getLogger(this.getClass().getName());
-
     private PortletWindow portletWindow;
 
     public EventProviderImpl(PortletWindow portletWindow) {
         this.portletWindow = portletWindow;
     }
 
-    @SuppressWarnings("unchecked")
-    public Event createEvent(QName qname, Serializable value) throws IllegalArgumentException
-    {
-        if (isDeclaredAsPublishingEvent(qname))
-        {
-            if (value != null && !isValueInstanceOfDefinedClass(qname, value))
-            {
+    /**
+     * @see org.apache.pluto.container.EventProvider#createEvent(javax.xml.namespace.QName, java.io.Serializable)
+     */
+    public Event createEvent(QName qname, Serializable value) throws IllegalArgumentException {
+        if (isDeclaredAsPublishingEvent(qname)) {
+            if (value != null && !isValueInstanceOfDefinedClass(qname, value)) {
                 throw new IllegalArgumentException("Payload has not the right class");
             }
-            try
-            {
-                if (value == null)
-                {
-                    return new EventImpl(qname, value);
-                }
-                ClassLoader cl = Thread.currentThread().getContextClassLoader();
-                Writer out = new StringWriter();
-                Class clazz = value.getClass();
-                try
-                {
-                    Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
-                    JAXBContext jc = JAXBContext.newInstance(clazz);
-                    Marshaller marshaller = jc.createMarshaller();
-                    JAXBElement<Serializable> element = new JAXBElement<Serializable>(qname, clazz, value);
-                    marshaller.marshal(element, out);
-                }
-                finally
-                {
-                    Thread.currentThread().setContextClassLoader(cl);
-                }
-                return new EventImpl(qname, out.toString());
-            }
-            catch (JAXBException e)
-            {
-                // maybe there is no valid jaxb binding
-                // TODO wsrp:eventHandlingFailed
-                LOGGER.error("Event handling failed", e);
-            }
-            catch (FactoryConfigurationError e)
-            {
-                LOGGER.warn("Configuration error.", e);
-            }
+            return new EventImpl(qname, value);
         }
         return null;
     }
 
-    private boolean isDeclaredAsPublishingEvent(QName qname)
-    {
+    private boolean isDeclaredAsPublishingEvent(QName qname) {
         final List<? extends EventDefinitionReference> events = portletWindow.getPortletDefinition().getSupportedPublishingEvents();
         if (events != null)
         {
@@ -116,8 +71,7 @@
         return false;
     }
 
-    private boolean isValueInstanceOfDefinedClass(QName qname, Serializable value)
-    {
+    private boolean isValueInstanceOfDefinedClass(QName qname, Serializable value) {
         PortletApplicationDefinition app = portletWindow.getPortletDefinition().getApplication();
         List<? extends EventDefinition> events = app.getEventDefinitions();
         if (events != null)

Modified: incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java
URL: http://svn.apache.org/viewvc/incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java?rev=782554&r1=782553&r2=782554&view=diff
==============================================================================
--- incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java (original)
+++ incubator/sling/whiteboard/portal/container/src/main/java/org/apache/sling/portal/container/internal/request/LinkTransformerFactory.java Mon Jun  8 08:06:07 2009
@@ -27,8 +27,8 @@
 import org.apache.sling.portal.container.internal.impl.DefaultPortalURLFactory;
 import org.apache.sling.rewriter.ProcessingComponentConfiguration;
 import org.apache.sling.rewriter.ProcessingContext;
-import org.apache.sling.rewriter.RewriterTransformerFactory;
 import org.apache.sling.rewriter.Transformer;
+import org.apache.sling.rewriter.TransformerFactory;
 import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
@@ -40,14 +40,15 @@
  * In addition it splits up an action url into the path and
  * hidden parameters.
  *
- * @scr.component
+ * @scr.component metatype="no"
  * @scr.service
+ * @scr.property name="pipeline.mode" value="global"
  * @scr.property name="service.ranking" value="999"
  */
-public class LinkTransformerFactory implements RewriterTransformerFactory {
+public class LinkTransformerFactory implements TransformerFactory {
 
     /**
-     * @see org.apache.sling.rewriter.RewriterTransformerFactory#createTransformer()
+     * @see org.apache.sling.rewriter.TransformerFactory#createTransformer()
      */
     public Transformer createTransformer() {
         return new LinkTransformer();