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 {
/**