Author: cziegeler
Date: Mon Apr 26 12:20:03 2010
New Revision: 938017

URL: http://svn.apache.org/viewvc?rev=938017&view=rev
Log:
Use resource api - remove dependency to jcr api.

Modified:
    sling/trunk/contrib/extensions/rewriter/pom.xml
    
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java
    
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/RewriterFilter.java
    
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlGeneratorFactory.java
    
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlSerializerFactory.java
    
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxHtmlSerializerFactory.java
    
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxXHtmlSerializerFactory.java
    
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/XHtmlSerializerFactory.java

Modified: sling/trunk/contrib/extensions/rewriter/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/pom.xml?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/rewriter/pom.xml (original)
+++ sling/trunk/contrib/extensions/rewriter/pom.xml Mon Apr 26 12:20:03 2010
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>8</version>
+        <version>9-SNAPSHOT</version>
     </parent>
 
     <artifactId>org.apache.sling.rewriter</artifactId>
@@ -81,6 +81,12 @@
 
     <dependencies>
         <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+            <version>1.2.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
             <groupId>commons-lang</groupId>
             <artifactId>commons-lang</artifactId>
             <version>2.4</version>
@@ -89,7 +95,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.api</artifactId>
-            <version>2.0.8</version>
+            <version>2.0.9-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -111,12 +117,6 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.jcr.resource</artifactId>
-            <version>2.0.6</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.webconsole</artifactId>
             <version>2.0.6</version>

Modified: 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java
 (original)
+++ 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/ProcessorManagerImpl.java
 Mon Apr 26 12:20:03 2010
@@ -21,24 +21,21 @@ import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Dictionary;
 import java.util.HashMap;
-import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
-
-import javax.jcr.Item;
-import javax.jcr.Node;
-import javax.jcr.NodeIterator;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.observation.Event;
-import javax.jcr.observation.EventIterator;
-import javax.jcr.observation.EventListener;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.api.SlingConstants;
+import org.apache.sling.api.resource.LoginException;
+import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.jcr.api.SlingRepository;
-import org.apache.sling.jcr.resource.JcrResourceResolverFactory;
+import org.apache.sling.api.resource.ResourceResolverFactory;
+import org.apache.sling.api.resource.ResourceUtil;
 import org.apache.sling.rewriter.PipelineConfiguration;
 import org.apache.sling.rewriter.ProcessingContext;
 import org.apache.sling.rewriter.Processor;
@@ -46,17 +43,20 @@ import org.apache.sling.rewriter.Process
 import org.apache.sling.rewriter.ProcessorManager;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.event.EventHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * This manager keeps track of configured processors.
  *
- * @scr.component metatype="no"
- * @scr.service interface="ProcessorManager"
  */
-public class ProcessorManagerImpl implements ProcessorManager {
+...@component
+...@service(value=ProcessorManager.class)
+public class ProcessorManagerImpl
+    implements ProcessorManager, EventHandler {
 
     private static final String CONFIG_REL_PATH = "config/rewriter";
     private static final String CONFIG_PATH = "/" + CONFIG_REL_PATH;
@@ -69,14 +69,8 @@ public class ProcessorManagerImpl implem
     /** The bundle context. */
     private BundleContext bundleContext;
 
-    /** The admin session. */
-    private Session adminSession;
-
-    /** @scr.reference */
-    private SlingRepository repository;
-
     /** @scr.reference */
-    private JcrResourceResolverFactory resourceResolverFactory;
+    private ResourceResolverFactory resourceResolverFactory;
 
     /** The resource resolver. */
     private ResourceResolver resourceResolver;
@@ -87,8 +81,8 @@ public class ProcessorManagerImpl implem
     /** Ordered processor configs. */
     private List<ProcessorConfiguration> orderedProcessors = new 
ArrayList<ProcessorConfiguration>();
 
-    /** Registered listeners */
-    private final List<EventListenerWrapper> listeners = new 
ArrayList<EventListenerWrapper>();
+    /** Event handler registration */
+    private ServiceRegistration eventHandlerRegistration;
 
     /** Search paths */
     private String[] searchPaths;
@@ -101,36 +95,25 @@ public class ProcessorManagerImpl implem
      * @param ctx
      */
     protected void activate(final ComponentContext ctx)
-    throws RepositoryException, InvalidSyntaxException {
+    throws LoginException, InvalidSyntaxException {
         this.bundleContext = ctx.getBundleContext();
         this.factoryCache = new FactoryCache(this.bundleContext);
-        this.adminSession = this.repository.loginAdministrative(null);
 
         // create array of search paths for actions and constraints
-        this.resourceResolver = 
this.resourceResolverFactory.getResourceResolver(adminSession);
+        this.resourceResolver = 
this.resourceResolverFactory.getAdministrativeResourceResolver(null);
         this.searchPaths = resourceResolver.getSearchPath();
 
-        // set up observation listener
-        for(final String p : searchPaths) {
-            // remove trailing slash
-            final String path = p.substring(0, p.length() - 1);
-            // we have to set up a listener for the whole search path
-            // as we support {searchPath}/{appName}/config/rewriter
-            EventListenerWrapper wrapper = new EventListenerWrapper(this, 
path);
-            adminSession.getWorkspace().getObservationManager()
-                       .addEventListener(wrapper,
-                               
Event.NODE_ADDED|Event.NODE_REMOVED|Event.PROPERTY_CHANGED|Event.PROPERTY_ADDED|Event.PROPERTY_REMOVED,
-                               path,
-                               true /* isDeep */,
-                               null /* uuid */,
-                               null /* nodeTypeName */,
-                               true /* noLocal */
-                               );
-            this.listeners.add(wrapper);
-        }
-
         this.initProcessors();
 
+        // register event handler
+        final Dictionary<String, String> props = new Hashtable<String, 
String>();
+        props.put("event.topics","org/apache/sling/api/resource/*");
+        props.put("service.description","Processor Configuration/Modification 
Handler");
+        props.put("service.vendor","The Apache Software Foundation");
+
+        this.eventHandlerRegistration = ctx.getBundleContext()
+                  .registerService(EventHandler.class.getName(), this, props);
+
         this.factoryCache.start();
         try {
             WebConsoleConfigPrinter.register(this.bundleContext, this);
@@ -144,19 +127,15 @@ public class ProcessorManagerImpl implem
      * @param ctx
      */
     protected void deactivate(final ComponentContext ctx) {
+        if ( this.eventHandlerRegistration != null ) {
+            this.eventHandlerRegistration.unregister();
+            this.eventHandlerRegistration = null;
+        }
         this.factoryCache.stop();
         this.factoryCache = null;
-        if ( this.adminSession != null ) {
-            for(final EventListener listener : this.listeners) {
-                try {
-                    
this.adminSession.getWorkspace().getObservationManager().removeEventListener(listener);
-                } catch (RepositoryException e) {
-                    this.log.error("Unable to unregister observation 
manager.", e);
-                }
-            }
-            listeners.clear();
-            this.adminSession.logout();
-            this.adminSession = null;
+        if ( this.resourceResolver != null ) {
+            this.resourceResolver.close();
+            this.resourceResolver = null;
         }
         try {
             WebConsoleConfigPrinter.unregister();
@@ -167,33 +146,72 @@ public class ProcessorManagerImpl implem
     }
 
     /**
+     * @see 
org.osgi.service.event.EventHandler#handleEvent(org.osgi.service.event.Event)
+     */
+    public void handleEvent(final org.osgi.service.event.Event event) {
+        // check if the event handles something in the search paths
+        String path = (String)event.getProperty(SlingConstants.PROPERTY_PATH);
+        int foundPos = -1;
+        for(final String sPath : this.searchPaths) {
+            if ( path.startsWith(sPath) ) {
+                foundPos = sPath.length();
+                break;
+            }
+        }
+        if ( foundPos != -1 ) {
+            // now check if this is a rewriter config
+            // relative path after the search path
+            final int firstSlash = path.indexOf('/', foundPos);
+            final int pattern = path.indexOf(CONFIG_PATH, foundPos);
+            // only if firstSlash and pattern are at the same position, this 
migt be a rewriter config
+            if ( firstSlash == pattern && firstSlash != -1 ) {
+                // the node should be a child of CONFIG_PATH
+                if ( path.length() > pattern + CONFIG_PATH.length() && 
path.charAt(pattern + CONFIG_PATH.length()) == '/') {
+                    // if a child resource is changed, make sure we have the 
correct path
+                    final int slashPos = path.indexOf('/', pattern + 
CONFIG_PATH.length() + 1);
+                    if ( slashPos != -1 ) {
+                        path = path.substring(0, slashPos);
+                    }
+                }
+            }
+            // we should do the update async as we don't want to block the 
event delivery
+            final String configPath = path;
+            final Thread t = new Thread() {
+                public void run() {
+                    if ( 
event.getTopic().equals(SlingConstants.TOPIC_RESOURCE_REMOVED) ) {
+                        removeProcessor(configPath);
+                    } else {
+                        updateProcessor(configPath);
+                    }
+                }
+            };
+            t.start();
+        }
+    }
+
+    /**
      * Initializes the current processors
-     * @throws RepositoryException
      */
-    private synchronized void initProcessors()
-    throws RepositoryException {
+    private synchronized void initProcessors() {
         for(final String path : this.searchPaths ) {
             // check if the search path exists
-            if ( this.adminSession.itemExists(path) ) {
-                final Item item = this.adminSession.getItem(path);
-                if ( item.isNode() ) {
-                    // now iterate over the child nodes
-                    final Node searchPathNode = (Node)item;
-                    final NodeIterator spIter = searchPathNode.getNodes();
-                    while ( spIter.hasNext() ) {
-                        // check if the node has a rewriter config
-                        final Node appNode = spIter.nextNode();
-                        if ( appNode.hasNode(CONFIG_REL_PATH) ) {
-                            final Node parentNode = 
appNode.getNode(CONFIG_REL_PATH);
-                            // now read configs
-                            final NodeIterator iter = parentNode.getNodes();
-                            while ( iter.hasNext() ) {
-                                final Node configNode = iter.nextNode();
-                                final String key = configNode.getName();
-                                final ProcessorConfigurationImpl config = 
this.getProcessorConfiguration(configNode);
-                                this.log.debug("Found new processor 
configuration {}", config);
-                                this.addProcessor(key, configNode.getPath(), 
config);
-                            }
+            final Resource spResource = 
this.resourceResolver.getResource(path.substring(0, path.length() - 1));
+            if ( spResource != null ) {
+                // now iterate over the child nodes
+                final Iterator<Resource> spIter = 
ResourceUtil.listChildren(spResource);
+                while ( spIter.hasNext() ) {
+                    // check if the node has a rewriter config
+                    final Resource appResource = spIter.next();
+                    final Resource parentResource = 
this.resourceResolver.getResource(appResource.getPath() + CONFIG_PATH);
+                    if ( parentResource != null ) {
+                        // now read configs
+                        final Iterator<Resource> iter = 
ResourceUtil.listChildren(parentResource);
+                        while ( iter.hasNext() ) {
+                            final Resource configResource = iter.next();
+                            final String key = 
ResourceUtil.getName(configResource);
+                            final ProcessorConfigurationImpl config = 
this.getProcessorConfiguration(configResource);
+                            this.log.debug("Found new processor configuration 
{}", config);
+                            this.addProcessor(key, configResource.getPath(), 
config);
                         }
                     }
                 }
@@ -204,10 +222,8 @@ public class ProcessorManagerImpl implem
     /**
      * Read the configuration for the processor from the repository.
      */
-    private ProcessorConfigurationImpl getProcessorConfiguration(Node 
configNode)
-    throws RepositoryException {
-        configNode.getSession().refresh(true);
-        final ProcessorConfigurationImpl config = new 
ProcessorConfigurationImpl(this.resourceResolver.getResource(configNode.getPath()));
+    private ProcessorConfigurationImpl getProcessorConfiguration(final 
Resource configResource) {
+        final ProcessorConfigurationImpl config = new 
ProcessorConfigurationImpl(configResource);
         return config;
     }
 
@@ -233,72 +249,6 @@ public class ProcessorManagerImpl implem
         }
     }
 
-    /**
-     * This method is invoked by the event listener wrapper.
-     * The second argument is the search path - which is the prefix we have to 
strip
-     * to check if this is a rewriter configuration change.
-     */
-    public synchronized void onEvent(final EventIterator iter, final String 
searchPath) {
-        final Set<String>removedPaths = new HashSet<String>();
-        final Set<String>changedPaths = new HashSet<String>();
-        while ( iter.hasNext() ) {
-            final Event event = iter.nextEvent();
-            try {
-                String nodePath = event.getPath();
-                if ( event.getType() == Event.PROPERTY_ADDED
-                     || event.getType() == Event.PROPERTY_REMOVED
-                     || event.getType() == Event.PROPERTY_CHANGED ) {
-                    final int lastSlash = nodePath.lastIndexOf('/');
-                    nodePath = nodePath.substring(0, lastSlash);
-                }
-                // relative path after the search path
-                String checkPath = nodePath.substring(searchPath.length() + 1);
-                final int firstSlash = checkPath.indexOf('/');
-                final int pattern = checkPath.indexOf(CONFIG_PATH);
-                // only if firstSlash and pattern are at the same position, 
this migt be a rewriter config
-                if ( firstSlash == pattern && firstSlash != -1 ) {
-                    // the node should be a direct child of CONFIG_PATH
-                    if ( checkPath.length() > pattern + CONFIG_PATH.length() ) 
{
-                        checkPath = checkPath.substring(pattern + 
CONFIG_PATH.length() + 1);
-                        if ( checkPath.indexOf('/') == -1 ) {
-                            switch (event.getType()) {
-                                case Event.NODE_ADDED:
-                                    changedPaths.add(nodePath);
-                                    break;
-
-                                case Event.PROPERTY_ADDED:
-                                case Event.PROPERTY_REMOVED:
-                                case Event.PROPERTY_CHANGED:
-                                    changedPaths.add(nodePath);
-                                    break;
-
-                                case Event.NODE_REMOVED:
-                                    // remove processor
-                                    removedPaths.add(nodePath);
-                                    break;
-                            }
-                        }
-                    }
-                }
-            } catch (RepositoryException e) {
-                log.error("Error during modification: {}", e.getMessage());
-            }
-        }
-        // handle removed first
-        changedPaths.removeAll(removedPaths);
-        for(final String path : removedPaths) {
-            this.removeProcessor(path);
-        }
-        // now update changed/added processors
-        for(final String path : changedPaths) {
-            try {
-                this.updateProcessor(path);
-            } catch (RepositoryException e) {
-                log.error("Error during modification: {}", e.getMessage());
-            }
-        }
-    }
-
     private void printConfiguration(final PrintWriter pw, final ConfigEntry 
entry) {
         if ( entry.config instanceof ProcessorConfigurationImpl ) {
             ((ProcessorConfigurationImpl)entry.config).printConfiguration(pw);
@@ -341,8 +291,7 @@ public class ProcessorManagerImpl implem
     /**
      * updates a processor
      */
-    private void updateProcessor(String path)
-    throws RepositoryException {
+    private synchronized void updateProcessor(String path) {
         final int pos = path.lastIndexOf('/');
         final String key = path.substring(pos + 1);
         int keyIndex = 0;
@@ -354,8 +303,11 @@ public class ProcessorManagerImpl implem
             keyIndex++;
         }
 
-        final Node configNode = (Node) this.adminSession.getItem(path);
-        final ProcessorConfigurationImpl config = 
this.getProcessorConfiguration(configNode);
+        final Resource configResource = 
this.resourceResolver.getResource(path);
+        if ( configResource == null ) {
+            return;
+        }
+        final ProcessorConfigurationImpl config = 
this.getProcessorConfiguration(configResource);
 
         final ConfigEntry[] configs = this.processors.get(key);
         if ( configs != null ) {
@@ -434,7 +386,7 @@ public class ProcessorManagerImpl implem
     /**
      * removes a pipeline
      */
-    private void removeProcessor(String path) {
+    private synchronized void removeProcessor(String path) {
         final int pos = path.lastIndexOf('/');
         final String key = path.substring(pos + 1);
         // we have to search the config
@@ -525,28 +477,6 @@ public class ProcessorManagerImpl implem
 
     }
 
-    /**
-     * Event listener wrapper to be able to add this service several times 
with different paths.
-     */
-    public final static class EventListenerWrapper implements EventListener {
-
-        private final ProcessorManagerImpl delegatee;
-
-        private final String path;
-
-        public EventListenerWrapper(final ProcessorManagerImpl listener, final 
String path) {
-            this.delegatee = listener;
-            this.path = path;
-        }
-
-        /**
-         * @see 
javax.jcr.observation.EventListener#onEvent(javax.jcr.observation.EventIterator)
-         */
-        public void onEvent(EventIterator i) {
-            this.delegatee.onEvent(i, path);
-        }
-    }
-
     public static final class ConfigEntry {
         public final String path;
         public final ProcessorConfiguration config;

Modified: 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/RewriterFilter.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/RewriterFilter.java?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/RewriterFilter.java
 (original)
+++ 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/RewriterFilter.java
 Mon Apr 26 12:20:03 2010
@@ -25,6 +25,11 @@ import javax.servlet.ServletException;
 import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.rewriter.ProcessorManager;
@@ -32,14 +37,17 @@ import org.apache.sling.rewriter.Process
 /**
  * This filter activates the rewriter for the output.
  *
- * @scr.component metatype="no"
- * @scr.property name="filter.scope" value="request" private="true"
- * @scr.property name="filter.order" value="-2500" type="Integer" 
private="true"
- * @scr.service interface="javax.servlet.Filter"
  */
+...@component
+...@service(value=Filter.class)
+...@properties({
+    @Property(name="filter.scope",value="request",propertyPrivate=true),
+    @Property(name="filter.order",intValue=-2500,propertyPrivate=true)
+})
+
 public class RewriterFilter implements Filter {
 
-    /** @scr.reference */
+    @Reference
     private ProcessorManager pipelineManager;
 
     /**

Modified: 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlGeneratorFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlGeneratorFactory.java?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlGeneratorFactory.java
 (original)
+++ 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlGeneratorFactory.java
 Mon Apr 26 12:20:03 2010
@@ -21,6 +21,10 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.html.HtmlParser;
 import org.apache.sling.rewriter.Generator;
 import org.apache.sling.rewriter.GeneratorFactory;
@@ -33,13 +37,13 @@ import org.xml.sax.SAXException;
  * On the fly HTML parser which can be used as the
  * starting point for html pipelines.
  *
- * @scr.component metatype="no"
- * @scr.service
- * @scr.property name="pipeline.type" value="html-generator"
  */
+...@component
+...@service(value=GeneratorFactory.class)
+...@property(name="pipeline.type",value="html-generator")
 public class HtmlGeneratorFactory implements GeneratorFactory {
 
-    /** @scr.reference */
+    @Reference
     private HtmlParser htmlParser;
 
     /**

Modified: 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlSerializerFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlSerializerFactory.java?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlSerializerFactory.java
 (original)
+++ 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/HtmlSerializerFactory.java
 Mon Apr 26 12:20:03 2010
@@ -19,6 +19,9 @@ package org.apache.sling.rewriter.impl.c
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.rewriter.ProcessingComponentConfiguration;
 import org.apache.sling.rewriter.ProcessingContext;
 import org.apache.sling.rewriter.Serializer;
@@ -26,10 +29,10 @@ import org.apache.sling.rewriter.Seriali
 
 /**
  * This sax serializer serializes html-
- * @scr.component metatype="no"
- * @scr.service
- * @scr.property name="pipeline.type" value="html-serializer"
  */
+...@component
+...@service(value=SerializerFactory.class)
+...@property(name="pipeline.type",value="html-serializer")
 public class HtmlSerializerFactory implements SerializerFactory {
 
     /**

Modified: 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxHtmlSerializerFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxHtmlSerializerFactory.java?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxHtmlSerializerFactory.java
 (original)
+++ 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxHtmlSerializerFactory.java
 Mon Apr 26 12:20:03 2010
@@ -16,13 +16,18 @@
  */
 package org.apache.sling.rewriter.impl.components;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.rewriter.SerializerFactory;
+
 
 /**
  * This sax serializer serializes html-
- * @scr.component metatype="no"
- * @scr.service
- * @scr.property name="pipeline.type" value="trax-html-serializer"
  */
+...@component
+...@service(value=SerializerFactory.class)
+...@property(name="pipeline.type",value="trax-html-serializer")
 public class TraxHtmlSerializerFactory extends AbstractTraxSerializerFactory {
 
     @Override

Modified: 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxXHtmlSerializerFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxXHtmlSerializerFactory.java?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxXHtmlSerializerFactory.java
 (original)
+++ 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/TraxXHtmlSerializerFactory.java
 Mon Apr 26 12:20:03 2010
@@ -16,13 +16,18 @@
  */
 package org.apache.sling.rewriter.impl.components;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
+import org.apache.sling.rewriter.SerializerFactory;
+
 
 /**
  * This sax serializer serializes xhtml-
- * @scr.component metatype="no"
- * @scr.service
- * @scr.property name="pipeline.type" value="trax-xhtml-serializer"
  */
+...@component
+...@service(value=SerializerFactory.class)
+...@property(name="pipeline.type",value="trax-xhtml-serializer")
 public class TraxXHtmlSerializerFactory extends AbstractTraxSerializerFactory {
 
     @Override

Modified: 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/XHtmlSerializerFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/XHtmlSerializerFactory.java?rev=938017&r1=938016&r2=938017&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/XHtmlSerializerFactory.java
 (original)
+++ 
sling/trunk/contrib/extensions/rewriter/src/main/java/org/apache/sling/rewriter/impl/components/XHtmlSerializerFactory.java
 Mon Apr 26 12:20:03 2010
@@ -19,6 +19,9 @@ package org.apache.sling.rewriter.impl.c
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.rewriter.ProcessingComponentConfiguration;
 import org.apache.sling.rewriter.ProcessingContext;
 import org.apache.sling.rewriter.Serializer;
@@ -26,10 +29,10 @@ import org.apache.sling.rewriter.Seriali
 
 /**
  * This sax serializer serializes xhtml-
- * @scr.component metatype="no"
- * @scr.service
- * @scr.property name="pipeline.type" value="xhtml-serializer"
  */
+...@component
+...@service(value=SerializerFactory.class)
+...@property(name="pipeline.type",value="xhtml-serializer")
 public class XHtmlSerializerFactory implements SerializerFactory {
 
     /**


Reply via email to