Author: radu
Date: Mon Oct 10 15:39:09 2016
New Revision: 1764122

URL: http://svn.apache.org/viewvc?rev=1764122&view=rev
Log:
SLING-6125 - Switch HTL to OSGi R6 annotations

* removed maven-scr-plugin and configured maven-bundle-plugin to generate SCR 
metadata
* replaced Felix SCR annotations with OSGi Component + Metatype annotations
* removed unused dependencies

Modified:
    sling/trunk/bundles/scripting/sightly/compiler/pom.xml
    
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/SightlyCompiler.java
    
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/package-info.java
    sling/trunk/bundles/scripting/sightly/engine/pom.xml
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ResourceBackedPojoChangeMonitor.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyBindingsValuesProvider.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyEngineConfiguration.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/FormatFilterExtension.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/JoinFilterExtension.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/URIManipulationFilterExtension.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ResourceUseProvider.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
    
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java
    sling/trunk/bundles/scripting/sightly/java-compiler/pom.xml
    sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml
    
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
    
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java
    
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
    sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml
    
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java

Modified: sling/trunk/bundles/scripting/sightly/compiler/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/compiler/pom.xml?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/compiler/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/compiler/pom.xml Mon Oct 10 15:39:09 
2016
@@ -60,26 +60,24 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.felix</groupId>
-                <artifactId>maven-scr-plugin</artifactId>
-                <dependencies>
-                    <dependency>
-                        <groupId>javax.jcr</groupId>
-                        <artifactId>jcr</artifactId>
-                        <version>2.0</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>scr-metadata</id>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
                 <configuration>
+                    <exportScr>true</exportScr>
                     <instructions>
                         
<Embed-Dependency>antlr4-runtime,org.abego.treelayout.core</Embed-Dependency>
                         <Provide-Capability>
-                            io.sightly; version:Version=1.0,
-                            io.sightly; version:Version=1.1,
-                            io.sightly; version:Version=1.2
+                            io.sightly.compiler; version:Version=1.0,
+                            io.sightly.compiler; version:Version=1.1,
+                            io.sightly.compiler; version:Version=1.2
                         </Provide-Capability>
                     </instructions>
                 </configuration>
@@ -192,22 +190,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <version>1.9.5</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.powermock</groupId>
-            <artifactId>powermock-api-mockito</artifactId>
+            <artifactId>powermock-reflect</artifactId>
             <version>1.5.5</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
 </project>

Modified: 
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/SightlyCompiler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/SightlyCompiler.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/SightlyCompiler.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/SightlyCompiler.java
 Mon Oct 10 15:39:09 2016
@@ -25,8 +25,6 @@ import java.util.List;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.scripting.sightly.compiler.backend.BackendCompiler;
 import org.apache.sling.scripting.sightly.compiler.commands.CommandStream;
 import org.apache.sling.scripting.sightly.impl.compiler.CompilationResultImpl;
@@ -61,6 +59,7 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.impl.plugin.TextPlugin;
 import org.apache.sling.scripting.sightly.impl.plugin.UnwrapPlugin;
 import org.apache.sling.scripting.sightly.impl.plugin.UsePlugin;
+import org.osgi.service.component.annotations.Component;
 
 /**
  * <p>
@@ -69,8 +68,9 @@ import org.apache.sling.scripting.sightl
  * transpiling the commands to a JVM supported language or by directly 
executing them.
  * </p>
  */
-@Component
-@Service(SightlyCompiler.class)
+@Component(
+        service = SightlyCompiler.class
+)
 public final class SightlyCompiler {
 
     private StreamTransformer optimizer;

Modified: 
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/package-info.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/package-info.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/package-info.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/compiler/src/main/java/org/apache/sling/scripting/sightly/compiler/package-info.java
 Mon Oct 10 15:39:09 2016
@@ -21,7 +21,7 @@
  * The {@code org.apache.sling.scripting.sightly.compiler} package defines the 
API exposed by the
  * {@link org.apache.sling.scripting.sightly.compiler.SightlyCompiler}.
  */
-@Version("1.0.0")
+@Version("1.0.1")
 package org.apache.sling.scripting.sightly.compiler;
 
 import org.osgi.annotation.versioning.Version;

Modified: sling/trunk/bundles/scripting/sightly/engine/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/pom.xml?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/engine/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/engine/pom.xml Mon Oct 10 15:39:09 
2016
@@ -56,20 +56,18 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.felix</groupId>
-                <artifactId>maven-scr-plugin</artifactId>
-                <dependencies>
-                    <dependency>
-                        <groupId>javax.jcr</groupId>
-                        <artifactId>jcr</artifactId>
-                        <version>2.0</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>scr-metadata</id>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
                 <configuration>
+                    <exportScr>true</exportScr>
                     <instructions>
                         <ScriptEngine-Name>${project.name}</ScriptEngine-Name>
                         
<ScriptEngine-Version>${project.version}</ScriptEngine-Version>
@@ -78,6 +76,10 @@
                             io.sightly; version:Version=1.1,
                             io.sightly; version:Version=1.2
                         </Provide-Capability>
+                        <Require-Capability>
+                            io.sightly.compiler; 
filter:="(&amp;(version&gt;=1.0)(!(version&gt;=2.0)))",
+                            io.sightly.compiler.java; 
filter:="(&amp;(version&gt;=1.0)(!(version&gt;=2.0)))"
+                        </Require-Capability>
                     </instructions>
                 </configuration>
             </plugin>
@@ -121,7 +123,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             
<artifactId>org.apache.sling.scripting.sightly.compiler</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <version>1.0.0</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -226,7 +228,6 @@
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
-            <version>4.11</version>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -237,13 +238,8 @@
         </dependency>
         <dependency>
             <groupId>org.powermock</groupId>
-            <artifactId>powermock-api-mockito</artifactId>
-            <version>1.5.5</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
+            <artifactId>powermock-reflect</artifactId>
+            <version>1.6.5</version>
             <scope>test</scope>
         </dependency>
     </dependencies>

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ExtensionRegistryService.java
 Mon Oct 10 15:39:09 2016
@@ -22,35 +22,33 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.scripting.sightly.extension.RuntimeExtension;
 import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
 
 /**
  * Aggregator for all runtime extensions.
  */
-@Component
-@Service(ExtensionRegistryService.class)
-@Reference(
-        policy = ReferencePolicy.DYNAMIC,
-        referenceInterface = RuntimeExtension.class,
-        name = "extensionService",
-        cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE
-)
+@Component(service = ExtensionRegistryService.class)
 public class ExtensionRegistryService {
 
-    private volatile Map<String, RuntimeExtension> mapping = new 
HashMap<String, RuntimeExtension>();
-    private Map<String, Integer> mappingPriorities = new HashMap<String, 
Integer>(10, 0.9f);
+    private volatile Map<String, RuntimeExtension> mapping = new HashMap<>();
+    private Map<String, Integer> mappingPriorities = new HashMap<>(10, 0.9f);
 
     public Map<String, RuntimeExtension> extensions() {
         return mapping;
     }
 
+    @Reference(
+            policy = ReferencePolicy.DYNAMIC,
+            service = RuntimeExtension.class,
+            cardinality = ReferenceCardinality.MULTIPLE
+            )
+    @SuppressWarnings("unused")
     protected synchronized void bindExtensionService(RuntimeExtension 
extension, Map<String, Object> properties) {
         Integer newPriority = 
PropertiesUtil.toInteger(properties.get(Constants.SERVICE_RANKING), 0);
         String extensionName = 
PropertiesUtil.toString(properties.get(RuntimeExtension.NAME), "");
@@ -67,6 +65,7 @@ public class ExtensionRegistryService {
 
     }
 
+    @SuppressWarnings("unused")
     protected synchronized void unbindExtensionService(RuntimeExtension 
extension, Map<String, Object> properties) {
         String extensionName = 
PropertiesUtil.toString(properties.get(RuntimeExtension.NAME), "");
         mappingPriorities.remove(extensionName);
@@ -74,13 +73,13 @@ public class ExtensionRegistryService {
     }
 
     private Map<String, RuntimeExtension> add(Map<String, RuntimeExtension> 
oldMap, RuntimeExtension extension, String extensionName) {
-        HashMap<String, RuntimeExtension> newMap = new HashMap<String, 
RuntimeExtension>(oldMap);
+        HashMap<String, RuntimeExtension> newMap = new HashMap<>(oldMap);
         newMap.put(extensionName, extension);
         return newMap;
     }
 
     private Map<String, RuntimeExtension> remove(Map<String, RuntimeExtension> 
oldMap, String extensionName) {
-        HashMap<String, RuntimeExtension> newMap = new HashMap<String, 
RuntimeExtension>(oldMap);
+        HashMap<String, RuntimeExtension> newMap = new HashMap<>(oldMap);
         newMap.remove(extensionName);
         return newMap;
     }

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ResourceBackedPojoChangeMonitor.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ResourceBackedPojoChangeMonitor.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ResourceBackedPojoChangeMonitor.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/ResourceBackedPojoChangeMonitor.java
 Mon Oct 10 15:39:09 2016
@@ -25,24 +25,25 @@ import java.util.concurrent.ConcurrentHa
 import javax.annotation.Nonnull;
 
 import org.apache.commons.lang.StringUtils;
-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.resource.observation.ExternalResourceChangeListener;
 import org.apache.sling.api.resource.observation.ResourceChange;
 import org.apache.sling.api.resource.observation.ResourceChangeListener;
 import 
org.apache.sling.scripting.sightly.impl.engine.compiled.SourceIdentifier;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Component
-@Service({ResourceBackedPojoChangeMonitor.class, ResourceChangeListener.class})
-@Properties({
-    @Property(name = ResourceChangeListener.PATHS, value = "glob:**/*.java"),
-    @Property(name = ResourceChangeListener.CHANGES, value = {"ADDED", 
"CHANGED", "REMOVED"})
-})
-public class ResourceBackedPojoChangeMonitor implements ResourceChangeListener 
{
+@Component(
+        service = {ResourceBackedPojoChangeMonitor.class, 
ResourceChangeListener.class},
+        property = {
+                ResourceChangeListener.PATHS + "=glob:**/*.java",
+                ResourceChangeListener.CHANGES + "=ADDED",
+                ResourceChangeListener.CHANGES + "=CHANGED",
+                ResourceChangeListener.CHANGES + "=REMOVED",
+        }
+)
+public class ResourceBackedPojoChangeMonitor implements 
ResourceChangeListener, ExternalResourceChangeListener {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(ResourceBackedPojoChangeMonitor.class);
 

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyBindingsValuesProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyBindingsValuesProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyBindingsValuesProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyBindingsValuesProvider.java
 Mon Oct 10 15:39:09 2016
@@ -20,24 +20,20 @@ package org.apache.sling.scripting.sight
 
 import javax.script.Bindings;
 
-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.Service;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
-import org.apache.sling.api.scripting.SlingBindings;
 import org.apache.sling.scripting.api.BindingsValuesProvider;
 import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
+import org.osgi.service.component.annotations.Component;
 
 /**
  * HTL specific {@code BindingsValuesProvider}.
  */
-@Component()
-@Service(BindingsValuesProvider.class)
-@Properties({
-        @Property(name = "javax.script.name", value = "sightly")
-})
+@Component(
+        property = {
+                "javax.script.name=sightly"
+        }
+)
 public class SightlyBindingsValuesProvider implements BindingsValuesProvider {
 
     public static final String PROPERTIES = "properties";

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyEngineConfiguration.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyEngineConfiguration.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyEngineConfiguration.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyEngineConfiguration.java
 Mon Oct 10 15:39:09 2016
@@ -21,40 +21,41 @@ package org.apache.sling.scripting.sight
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Dictionary;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
 
 import org.apache.commons.lang.StringUtils;
-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.Service;
-import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 
 /**
  * Holds various HTL engine global configurations.
  */
 @Component(
-        metatype = true,
-        label = "Apache Sling Scripting HTL Engine Configuration",
-        description = "HTL Engine Configuration Options"
+        service = SightlyEngineConfiguration.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.impl.engine.SightlyEngineConfiguration"
 )
-@Service(SightlyEngineConfiguration.class)
-@Properties({
-        @Property(
-                name = SightlyEngineConfiguration.SCR_PROP_NAME_KEEPGENERATED,
-                boolValue = 
SightlyEngineConfiguration.SCR_PROP_DEFAULT_KEEPGENERATED,
-                label = "Keep Generated Java Source Code",
+@Designate(ocd = SightlyEngineConfiguration.Configuration.class)
+public class SightlyEngineConfiguration {
+
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL Engine Configuration",
+            description = "HTL Engine Configuration Options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Keep Generated Java Source Code",
                 description = "If enabled, the Java source code generated 
during HTL template files compilation will be stored. " +
                         "Its location is dependent on the available 
org.apache.sling.commons.classloader.ClassLoaderWriter."
+
         )
-})
-public class SightlyEngineConfiguration {
+        boolean keepGenerated() default true;
 
-    public static final String SCR_PROP_NAME_KEEPGENERATED = 
"org.apache.sling.scripting.sightly.keepgenerated";
-    public static final boolean SCR_PROP_DEFAULT_KEEPGENERATED = true;
+    }
 
     private String engineVersion = "0";
     private boolean keepGenerated;
@@ -76,7 +77,8 @@ public class SightlyEngineConfiguration
         return keepGenerated;
     }
 
-    protected void activate(ComponentContext componentContext) {
+    @Activate
+    protected void activate(Configuration configuration) {
         InputStream ins = null;
         try {
             ins = getClass().getResourceAsStream("/META-INF/MANIFEST.MF");
@@ -101,7 +103,6 @@ public class SightlyEngineConfiguration
                 }
             }
         }
-        Dictionary properties = componentContext.getProperties();
-        keepGenerated = 
PropertiesUtil.toBoolean(properties.get(SCR_PROP_NAME_KEEPGENERATED), 
SCR_PROP_DEFAULT_KEEPGENERATED);
+        keepGenerated = configuration.keepGenerated();
     }
 }

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyJavaCompilerService.java
 Mon Oct 10 15:39:09 2016
@@ -28,10 +28,6 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.commons.classloader.ClassLoaderWriter;
@@ -44,6 +40,9 @@ import org.apache.sling.scripting.sightl
 import 
org.apache.sling.scripting.sightly.impl.engine.compiled.SourceIdentifier;
 import 
org.apache.sling.scripting.sightly.impl.engine.runtime.RenderContextImpl;
 import org.apache.sling.scripting.sightly.render.RenderContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,8 +52,9 @@ import org.slf4j.LoggerFactory;
  * or in regular OSGi bundles. It also compiles Java sources on-the-fly and 
can discover class' source files based on
  * {@link Resource}s (typically Sling components). It supports Sling Resource 
type inheritance.
  */
-@Component
-@Service(SightlyJavaCompilerService.class)
+@Component(
+        service = SightlyJavaCompilerService.class
+)
 public class SightlyJavaCompilerService {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(SightlyJavaCompilerService.class);

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/SightlyScriptEngineFactory.java
 Mon Oct 10 15:39:09 2016
@@ -26,28 +26,27 @@ import javax.script.ScriptEngineFactory;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
-import org.apache.felix.scr.annotations.Activate;
-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.commons.classloader.ClassLoaderWriter;
 import org.apache.sling.commons.classloader.DynamicClassLoaderManager;
 import org.apache.sling.scripting.api.AbstractScriptEngineFactory;
 import org.apache.sling.scripting.sightly.compiler.SightlyCompiler;
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * HTL template engine factory
  */
-@Component()
-@Service(ScriptEngineFactory.class)
-@Properties({
-        @Property(name = "service.description", value = "HTL Templating 
Engine"),
-        @Property(name = "compatible.javax.script.name", value = "sly")
-})
+@Component(
+        service = ScriptEngineFactory.class,
+        property = {
+                Constants.SERVICE_DESCRIPTION + "=HTL Templating Engine",
+                "compatible.javax.script.name=sly"
+        }
+)
 public class SightlyScriptEngineFactory extends AbstractScriptEngineFactory {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(SightlyScriptEngineFactory.class);

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/FormatFilterExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/FormatFilterExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/FormatFilterExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/FormatFilterExtension.java
 Mon Oct 10 15:39:09 2016
@@ -21,20 +21,18 @@ package org.apache.sling.scripting.sight
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-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.Service;
 import org.apache.sling.scripting.sightly.compiler.RuntimeFunction;
 import org.apache.sling.scripting.sightly.extension.RuntimeExtension;
 import org.apache.sling.scripting.sightly.render.RenderContext;
 import org.apache.sling.scripting.sightly.render.RuntimeObjectModel;
+import org.osgi.service.component.annotations.Component;
 
-@Component
-@Service(RuntimeExtension.class)
-@Properties({
-        @Property(name = RuntimeExtension.NAME, value = RuntimeFunction.FORMAT)
-})
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.FORMAT
+        }
+)
 public class FormatFilterExtension implements RuntimeExtension {
 
     private static final Pattern PLACEHOLDER_REGEX = 
Pattern.compile("\\{\\d+}");

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/I18nRuntimeExtension.java
 Mon Oct 10 15:39:09 2016
@@ -26,10 +26,6 @@ import javax.script.Bindings;
 
 import org.apache.commons.lang.LocaleUtils;
 import org.apache.commons.lang.StringUtils;
-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.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.scripting.SlingScriptHelper;
 import org.apache.sling.i18n.ResourceBundleProvider;
@@ -38,14 +34,16 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
 import org.apache.sling.scripting.sightly.render.RenderContext;
 import org.apache.sling.scripting.sightly.render.RuntimeObjectModel;
+import org.osgi.service.component.annotations.Component;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Component
-@Service(RuntimeExtension.class)
-@Properties({
-        @Property(name = RuntimeExtension.NAME, value = RuntimeFunction.I18N)
-})
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.I18N
+        }
+)
 public class I18nRuntimeExtension implements RuntimeExtension {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(I18nRuntimeExtension.class);
@@ -97,7 +95,7 @@ public class I18nRuntimeExtension implem
             }
         }
         LOG.warn("No translation found for string '{}' using expression 
provided locale '{}' or default locale '{}'",
-                new String[] {text, locale, 
request.getLocale().getLanguage()});
+                text, locale, request.getLocale().getLanguage());
         return text;
     }
 

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/IncludeRuntimeExtension.java
 Mon Oct 10 15:39:09 2016
@@ -25,10 +25,6 @@ import javax.script.Bindings;
 import javax.servlet.Servlet;
 
 import org.apache.commons.lang.StringUtils;
-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.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.scripting.SlingScriptHelper;
@@ -39,17 +35,19 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
 import org.apache.sling.scripting.sightly.render.RenderContext;
 import org.apache.sling.scripting.sightly.render.RuntimeObjectModel;
+import org.osgi.service.component.annotations.Component;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Runtime support for including resources in a HTL script through {@code 
data-sly-include}.
  */
-@Component
-@Service(RuntimeExtension.class)
-@Properties({
-        @Property(name = RuntimeExtension.NAME, value = 
RuntimeFunction.INCLUDE)
-})
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.INCLUDE
+        }
+)
 public class IncludeRuntimeExtension implements RuntimeExtension {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(IncludeRuntimeExtension.class);

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/JoinFilterExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/JoinFilterExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/JoinFilterExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/JoinFilterExtension.java
 Mon Oct 10 15:39:09 2016
@@ -21,20 +21,18 @@ package org.apache.sling.scripting.sight
 import java.util.Collection;
 import java.util.Iterator;
 
-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.Service;
 import org.apache.sling.scripting.sightly.compiler.RuntimeFunction;
 import org.apache.sling.scripting.sightly.extension.RuntimeExtension;
 import org.apache.sling.scripting.sightly.render.RenderContext;
 import org.apache.sling.scripting.sightly.render.RuntimeObjectModel;
+import org.osgi.service.component.annotations.Component;
 
-@Component
-@Service(RuntimeExtension.class)
-@Properties({
-        @Property(name = RuntimeExtension.NAME, value = RuntimeFunction.JOIN)
-})
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.JOIN
+        }
+)
 public class JoinFilterExtension implements RuntimeExtension {
 
     @Override

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/ResourceRuntimeExtension.java
 Mon Oct 10 15:39:09 2016
@@ -29,10 +29,6 @@ import javax.script.Bindings;
 import javax.servlet.RequestDispatcher;
 
 import org.apache.commons.lang.StringUtils;
-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.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.request.RequestDispatcherOptions;
@@ -44,14 +40,16 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.extension.RuntimeExtension;
 import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
 import org.apache.sling.scripting.sightly.render.RenderContext;
+import org.osgi.service.component.annotations.Component;
 
 /**
  * Runtime support for including resources in a HTL script through {@code 
data-sly-resource}.
  */
-@Component
-@Service(RuntimeExtension.class)
-@Properties(
-        @Property(name = RuntimeExtension.NAME, value = 
RuntimeFunction.RESOURCE)
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.RESOURCE
+        }
 )
 public class ResourceRuntimeExtension implements RuntimeExtension {
 

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/URIManipulationFilterExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/URIManipulationFilterExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/URIManipulationFilterExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/URIManipulationFilterExtension.java
 Mon Oct 10 15:39:09 2016
@@ -30,21 +30,19 @@ import java.util.Set;
 
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang.StringUtils;
-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.Service;
 import org.apache.sling.scripting.sightly.SightlyException;
 import org.apache.sling.scripting.sightly.compiler.RuntimeFunction;
 import org.apache.sling.scripting.sightly.extension.RuntimeExtension;
 import org.apache.sling.scripting.sightly.render.RenderContext;
 import org.apache.sling.scripting.sightly.render.RuntimeObjectModel;
+import org.osgi.service.component.annotations.Component;
 
-@Component
-@Service(RuntimeExtension.class)
-@Properties({
-        @Property(name = RuntimeExtension.NAME, value = 
RuntimeFunction.URI_MANIPULATION)
-})
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.URI_MANIPULATION
+        }
+)
 public class URIManipulationFilterExtension implements RuntimeExtension {
 
     public static final String SCHEME = "scheme";
@@ -390,8 +388,8 @@ public class URIManipulationFilterExtens
             String query = uri.getQuery();
             if (StringUtils.isNotEmpty(query)) {
                 String[] keyValuePairs = query.split("&");
-                for (int i = 0; i < keyValuePairs.length; i++) {
-                    String[] pair = keyValuePairs[i].split("=");
+                for (String keyValuePair : keyValuePairs) {
+                    String[] pair = keyValuePair.split("=");
                     if (pair.length == 2) {
                         String param = pair[0];
                         String value = pair[1];

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/XSSRuntimeExtension.java
 Mon Oct 10 15:39:09 2016
@@ -23,10 +23,6 @@ import java.util.Set;
 import java.util.regex.Pattern;
 import javax.script.Bindings;
 
-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.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.scripting.sightly.SightlyException;
 import org.apache.sling.scripting.sightly.compiler.RuntimeFunction;
@@ -35,20 +31,22 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.impl.utils.BindingsUtils;
 import org.apache.sling.scripting.sightly.render.RenderContext;
 import org.apache.sling.xss.XSSAPI;
+import org.osgi.service.component.annotations.Component;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Runtime support for XSS filtering
  */
-@Component
-@Service(RuntimeExtension.class)
-@Properties(
-        @Property(name = RuntimeExtension.NAME, value = RuntimeFunction.XSS)
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.XSS
+        }
 )
 public class XSSRuntimeExtension implements RuntimeExtension {
 
-    private static final Set<String> elementNameWhiteList = new 
HashSet<String>();
+    private static final Set<String> elementNameWhiteList = new HashSet<>();
     private static final Logger LOG = 
LoggerFactory.getLogger(XSSRuntimeExtension.class);
     private static final Pattern VALID_ATTRIBUTE = 
Pattern.compile("^[a-zA-Z_:][\\-a-zA-Z0-9_:\\.]*$");
     private static final Pattern ATTRIBUTE_BLACKLIST = 
Pattern.compile("^(style|(on.*))$", Pattern.CASE_INSENSITIVE);

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/JavaUseProvider.java
 Mon Oct 10 15:39:09 2016
@@ -24,11 +24,6 @@ import java.util.regex.Pattern;
 import javax.script.Bindings;
 import javax.servlet.ServletRequest;
 
-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.resource.Resource;
 import org.apache.sling.api.scripting.SlingScriptHelper;
@@ -41,26 +36,41 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.use.ProviderOutcome;
 import org.apache.sling.scripting.sightly.use.UseProvider;
 import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @Component(
-        metatype = true,
-        label = "Apache Sling Scripting HTL Java Use Provider",
-        description = "The Java Use Provider is responsible for instantiating 
Java Use-API objects."
+        service = UseProvider.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider",
+        property = {
+                Constants.SERVICE_RANKING + ":Integer=90"
+        }
 )
-@Service(UseProvider.class)
-@Properties({
-        @Property(
-                name = Constants.SERVICE_RANKING,
-                label = "Service Ranking",
+@Designate(
+        ocd = JavaUseProvider.Configuration.class
+)
+public class JavaUseProvider implements UseProvider {
+
+
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL Java Use Provider 
Configuration",
+            description = "HTL Java Use Provider configuration options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Service Ranking",
                 description = "The Service Ranking value acts as the priority 
with which this Use Provider is queried to return an " +
-                        "Use-object. A higher value represents a higher 
priority.",
-                intValue = 90,
-                propertyPrivate = false
+                        "Use-object. A higher value represents a higher 
priority."
         )
-})
-public class JavaUseProvider implements UseProvider {
+        int service_ranking() default 90;
+
+    }
 
     private static final Logger LOG = 
LoggerFactory.getLogger(JavaUseProvider.class);
     private static final Pattern JAVA_PATTERN = 
Pattern.compile("([[\\p{L}&&[^\\p{Lu}]]_$][\\p{L}\\p{N}_$]*\\.)*[\\p{Lu}_$][\\p{L}\\p{N}_$]*");

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/RenderUnitProvider.java
 Mon Oct 10 15:39:09 2016
@@ -26,11 +26,6 @@ import javax.script.CompiledScript;
 import javax.script.ScriptEngineManager;
 
 import org.apache.commons.lang.StringUtils;
-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.resource.Resource;
 import org.apache.sling.api.scripting.SlingScriptHelper;
@@ -48,27 +43,40 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.use.ProviderOutcome;
 import org.apache.sling.scripting.sightly.use.UseProvider;
 import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 
 /**
  * Interprets identifiers as paths to other HTL templates
  */
 @Component(
-        metatype = true,
-        label = "Apache Sling Scripting HTL Render Unit Use Provider",
-        description = "The Render Unit Use Provider is responsible for 
instantiating HTL templates through the Use-API."
+        service = UseProvider.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.impl.engine.extension.use.RenderUnitProvider",
+        property = {
+                Constants.SERVICE_RANKING + ":Integer=100"
+        }
 )
-@Service(UseProvider.class)
-@Properties({
-        @Property(
-                name = Constants.SERVICE_RANKING,
-                label = "Service Ranking",
+@Designate(
+        ocd = RenderUnitProvider.Configuration.class
+)
+public class RenderUnitProvider implements UseProvider {
+
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL Render Unit Use Provider 
Configuration",
+            description = "HTL Render Unit Use Provider configuration options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Service Ranking",
                 description = "The Service Ranking value acts as the priority 
with which this Use Provider is queried to return an " +
-                        "Use-object. A higher value represents a higher 
priority.",
-                intValue = 100,
-                propertyPrivate = false
+                        "Use-object. A higher value represents a higher 
priority."
         )
-})
-public class RenderUnitProvider implements UseProvider {
+        int service_ranking() default 100;
+    }
 
     @Reference
     private ScriptCache scriptCache;

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ResourceUseProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ResourceUseProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ResourceUseProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ResourceUseProvider.java
 Mon Oct 10 15:39:09 2016
@@ -20,10 +20,6 @@ package org.apache.sling.scripting.sight
 
 import javax.script.Bindings;
 
-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.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceUtil;
@@ -32,24 +28,36 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.use.ProviderOutcome;
 import org.apache.sling.scripting.sightly.use.UseProvider;
 import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 
 @Component(
-        metatype = true,
-        label = "Apache Sling Scripting HTL Resource Use Provider",
-        description = "The Java Use Provider is responsible for instantiating 
resource objects."
+        service = UseProvider.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.impl.engine.extension.use.ResourceUseProvider",
+        property = {
+                Constants.SERVICE_RANKING + ":Integer=-10"
+        }
 )
-@Service(UseProvider.class)
-@Properties({
-        @Property(
-                name = Constants.SERVICE_RANKING,
-                label = "Service Ranking",
+@Designate(
+        ocd = ResourceUseProvider.Configuration.class
+)
+public class ResourceUseProvider implements UseProvider {
+
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL Resource Use Provider 
Configuration",
+            description = "HTL Resource Use Provider configuration options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Service Ranking",
                 description = "The Service Ranking value acts as the priority 
with which this Use Provider is queried to return an " +
-                        "Use-object. A higher value represents a higher 
priority.",
-                intValue = -10,
-                propertyPrivate = false
+                        "Use-object. A higher value represents a higher 
priority."
         )
-})
-public class ResourceUseProvider implements UseProvider {
+        int service_ranking() default -10;
+    }
 
     @Override
     public ProviderOutcome provide(String identifier, RenderContext 
renderContext, Bindings arguments) {

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/ScriptUseProvider.java
 Mon Oct 10 15:39:09 2016
@@ -22,10 +22,6 @@ package org.apache.sling.scripting.sight
 import javax.script.Bindings;
 
 import org.apache.commons.lang.StringUtils;
-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.Service;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.scripting.SlingBindings;
 import org.apache.sling.api.scripting.SlingScript;
@@ -36,6 +32,10 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.use.ProviderOutcome;
 import org.apache.sling.scripting.sightly.use.UseProvider;
 import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,23 +47,32 @@ import org.slf4j.LoggerFactory;
  * implementation of the {@link SlingScript#eval(SlingBindings)} method for 
the available script engines from your platform.
  */
 @Component(
-        metatype = true,
-        label = "Apache Sling Scripting HTL Script Use Provider",
-        description = "The Script Use Provider is responsible for 
instantiating objects from scripts evaluated by other Sling Scripting " +
-                "Engines."
+        service = UseProvider.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.impl.engine.extension.use.ScriptUseProvider",
+        property = {
+                Constants.SERVICE_RANKING + ":Integer=0"
+        }
 )
-@Service(UseProvider.class)
-@Properties({
-        @Property(
-                name = Constants.SERVICE_RANKING,
-                label = "Service Ranking",
+@Designate(
+        ocd = ScriptUseProvider.Configuration.class
+)
+public class ScriptUseProvider implements UseProvider {
+
+
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL Script Use Provider 
Configuration",
+            description = "HTL Script Use Provider configuration options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Service Ranking",
                 description = "The Service Ranking value acts as the priority 
with which this Use Provider is queried to return an " +
-                        "Use-object. A higher value represents a higher 
priority.",
-                intValue = 0,
-                propertyPrivate = false
+                        "Use-object. A higher value represents a higher 
priority."
         )
-})
-public class ScriptUseProvider implements UseProvider {
+        int service_ranking() default 0;
+
+    }
 
     private static final Logger log = 
LoggerFactory.getLogger(ScriptUseProvider.class);
 

Modified: 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/engine/src/main/java/org/apache/sling/scripting/sightly/impl/engine/extension/use/UseRuntimeExtension.java
 Mon Oct 10 15:39:09 2016
@@ -27,13 +27,6 @@ import javax.script.Bindings;
 import javax.script.SimpleBindings;
 
 import org.apache.commons.lang.StringUtils;
-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.ReferenceCardinality;
-import org.apache.felix.scr.annotations.ReferencePolicy;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.scripting.sightly.SightlyException;
 import org.apache.sling.scripting.sightly.compiler.RuntimeFunction;
 import org.apache.sling.scripting.sightly.extension.RuntimeExtension;
@@ -44,20 +37,19 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.use.UseProvider;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
 
 /**
  * Runtime extension for the USE plugin
  */
-@Component
-@Service(RuntimeExtension.class)
-@Properties(
-        @Property(name = RuntimeExtension.NAME, value = RuntimeFunction.USE)
-)
-@Reference(
-        policy = ReferencePolicy.DYNAMIC,
-        referenceInterface = UseProvider.class,
-        name = "useProvider",
-        cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE
+@Component(
+        service = RuntimeExtension.class,
+        property = {
+                RuntimeExtension.NAME + "=" + RuntimeFunction.USE
+        }
 )
 public class UseRuntimeExtension implements RuntimeExtension {
 
@@ -89,6 +81,11 @@ public class UseRuntimeExtension impleme
     }
 
     // OSGi 
################################################################################################################################
+    @Reference(
+            policy = ReferencePolicy.DYNAMIC,
+            service = UseProvider.class,
+            cardinality = ReferenceCardinality.MULTIPLE
+    )
     private void bindUseProvider(ServiceReference serviceReference) {
         BundleContext bundleContext = 
serviceReference.getBundle().getBundleContext();
         providersMap.put(serviceReference, (UseProvider) 
bundleContext.getService(serviceReference));

Modified: sling/trunk/bundles/scripting/sightly/java-compiler/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/java-compiler/pom.xml?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/java-compiler/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/java-compiler/pom.xml Mon Oct 10 
15:39:09 2016
@@ -58,25 +58,23 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.felix</groupId>
-                <artifactId>maven-scr-plugin</artifactId>
-                <dependencies>
-                    <dependency>
-                        <groupId>javax.jcr</groupId>
-                        <artifactId>jcr</artifactId>
-                        <version>2.0</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>scr-metadata</id>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
                 <configuration>
+                    <exportScr>true</exportScr>
                     <instructions>
                         <Provide-Capability>
-                            io.sightly.java; version:Version=1.0,
-                            io.sightly.java; version:Version=1.1,
-                            io.sightly.java; version:Version=1.2
+                            io.sightly.compiler.java; version:Version=1.0,
+                            io.sightly.compiler.java; version:Version=1.1,
+                            io.sightly.compiler.java; version:Version=1.2
                         </Provide-Capability>
                     </instructions>
                 </configuration>
@@ -120,7 +118,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             
<artifactId>org.apache.sling.scripting.sightly.compiler</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <version>1.0.0</version>
             <scope>provided</scope>
         </dependency>
 
@@ -151,23 +149,6 @@
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <version>1.9.5</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.powermock</groupId>
-            <artifactId>powermock-api-mockito</artifactId>
-            <version>1.5.5</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
 </project>

Modified: sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/js-use-provider/pom.xml Mon Oct 10 
15:39:09 2016
@@ -55,13 +55,18 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.felix</groupId>
-                <artifactId>maven-scr-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>scr-metadata</id>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
                 <configuration>
+                    <exportScr>true</exportScr>
                     <instructions>
                         
<Sling-Bundle-Resources>/libs/sling/sightly/js;path:=/SLING-INF/libs/sling/sightly/js</Sling-Bundle-Resources>
                         <Require-Capability>io.sightly; 
filter:="(&amp;(version&gt;=1.0)(!(version&gt;=2.0)))"</Require-Capability>
@@ -116,30 +121,18 @@
             <version>2.0.32</version>
             <scope>provided</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.osgi</artifactId>
-            <version>2.2.0</version>
-            <scope>provided</scope>
-        </dependency>
 
         <!-- HTL -->
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.scripting.sightly</artifactId>
-            <version>1.0.21-SNAPSHOT</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            
<artifactId>org.apache.sling.scripting.sightly.compiler</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <version>1.0.20</version>
             <scope>provided</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
             
<artifactId>org.apache.sling.scripting.sightly.compiler.java</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <version>1.0.0</version>
             <scope>provided</scope>
         </dependency>
 
@@ -165,8 +158,7 @@
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
+            <artifactId>javax.servlet-api</artifactId>
             <scope>provided</scope>
         </dependency>
 

Modified: 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/JsUseProvider.java
 Mon Oct 10 15:39:09 2016
@@ -22,13 +22,7 @@ import javax.script.Bindings;
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
 
-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.resource.Resource;
-import org.apache.sling.api.resource.ResourceResolver;
 import org.apache.sling.api.scripting.SlingScriptHelper;
 import org.apache.sling.scripting.sightly.SightlyException;
 import org.apache.sling.scripting.sightly.js.impl.async.AsyncContainer;
@@ -39,28 +33,42 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.use.ProviderOutcome;
 import org.apache.sling.scripting.sightly.use.UseProvider;
 import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 
 /**
  * Use provider for JavaScript Use-API objects.
  */
 @Component(
-    metatype = true,
-    label = "Apache Sling Scripting HTL JavaScript Use Provider",
-    description = "The JavaScript Use Provider is responsible for 
instantiating JavaScript Use-API objects."
+        service = UseProvider.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.js.impl.JsUseProvider",
+        property = {
+                Constants.SERVICE_RANKING + ":Integer=80"
+        }
+)
+@Designate(
+        ocd = JsUseProvider.Configuration.class
 )
-@Service(UseProvider.class)
-@Properties({
-                @Property(
-                    name = Constants.SERVICE_RANKING,
-                    label = "Service Ranking",
-                    description = "The Service Ranking value acts as the 
priority with which this Use Provider is queried to return an " +
-                        "Use-object. A higher value represents a higher 
priority.",
-                    intValue = 80,
-                    propertyPrivate = false
-                )
-            })
 public class JsUseProvider implements UseProvider {
 
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL JavaScript Use Provider 
Configuration",
+            description = "HTL JavaScript Use Provider configuration options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Service Ranking",
+                description = "The Service Ranking value acts as the priority 
with which this Use Provider is queried to return an " +
+                        "Use-object. A higher value represents a higher 
priority."
+        )
+        int service_ranking() default 80;
+
+    }
+
     private static final String JS_ENGINE_NAME = "javascript";
     private static final JsValueAdapter jsValueAdapter = new 
JsValueAdapter(new AsyncExtractor());
 

Modified: 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/ProxyAsyncScriptableFactory.java
 Mon Oct 10 15:39:09 2016
@@ -23,18 +23,18 @@ import javax.script.ScriptEngine;
 import javax.script.SimpleBindings;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.scripting.sightly.js.impl.rhino.HybridObject;
 import org.mozilla.javascript.Scriptable;
 import org.mozilla.javascript.ScriptableObject;
 import org.mozilla.javascript.Undefined;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Component
-@Service(ProxyAsyncScriptableFactory.class)
+@Component(
+        service = ProxyAsyncScriptableFactory.class
+)
 public class ProxyAsyncScriptableFactory {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(ProxyAsyncScriptableFactory.class);
@@ -56,7 +56,7 @@ public class ProxyAsyncScriptableFactory
 
         private String clazz;
         private Bindings bindings;
-        private Set<String> scriptNSUse = new HashSet<String>();
+        private Set<String> scriptNSUse = new HashSet<>();
 
         public ShadowScriptableObject(String clazz, Bindings bindings) {
             this.clazz = clazz;

Modified: 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/js-use-provider/src/main/java/org/apache/sling/scripting/sightly/js/impl/jsapi/SlyBindingsValuesProvider.java
 Mon Oct 10 15:39:09 2016
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Collections;
-import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.Map;
 import javax.script.Bindings;
@@ -32,14 +31,6 @@ import javax.script.SimpleBindings;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Properties;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.PropertyUnbounded;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.LoginException;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceResolver;
@@ -62,30 +53,44 @@ import org.mozilla.javascript.Script;
 import org.mozilla.javascript.Scriptable;
 import org.mozilla.javascript.ScriptableObject;
 import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * Provides the {@code sightly} namespace for usage in HTL &amp; JS scripts 
called from Sightly
  */
-@Component(metatype = true, label = "Apache Sling Scripting HTL JavaScript 
Bindings Provider",
-        description = "The Apache Sling Scripting HTL JavaScript Bindings 
Provider loads the JS Use-API and makes it available in the" +
-                " bindings map.")
-@Service(SlyBindingsValuesProvider.class)
-@Properties({
-        @Property(
-                name = 
SlyBindingsValuesProvider.SCR_PROP_JS_BINDING_IMPLEMENTATIONS,
-                value = {
-                    "sightly:" + SlyBindingsValuesProvider.SLING_NS_PATH
-                },
-                unbounded = PropertyUnbounded.ARRAY,
-                label = "Script Factories",
+@Component(
+        service = SlyBindingsValuesProvider.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.js.impl.jsapi.SlyBindingsValuesProvider"
+)
+@Designate(
+        ocd = SlyBindingsValuesProvider.Configuration.class
+)
+@SuppressWarnings("unused")
+public class SlyBindingsValuesProvider {
+
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL JavaScript Use-API Factories 
Configuration",
+            description = "HTL JavaScript Use-API Factories configuration 
options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Script Factories",
                 description = "Script factories to load in the bindings map. 
The entries should be in the form " +
                         "'namespace:/path/from/repository'."
+
         )
-})
-@SuppressWarnings("unused")
-public class SlyBindingsValuesProvider {
+        String[] org_apache_sling_scripting_sightly_js_bindings() default 
"sightly:" + SlyBindingsValuesProvider.SLING_NS_PATH;
+
+    }
 
     public static final String SCR_PROP_JS_BINDING_IMPLEMENTATIONS = 
"org.apache.sling.scripting.sightly.js.bindings";
 
@@ -144,9 +149,11 @@ public class SlyBindingsValuesProvider {
     }
 
     @Activate
-    protected void activate(ComponentContext componentContext) {
-        Dictionary properties = componentContext.getProperties();
-        String[] factories = 
PropertiesUtil.toStringArray(properties.get(SCR_PROP_JS_BINDING_IMPLEMENTATIONS),
 new String[]{SLING_NS_PATH});
+    protected void activate(Configuration configuration) {
+        String[] factories = PropertiesUtil.toStringArray(
+                configuration.org_apache_sling_scripting_sightly_js_bindings(),
+                new String[]{SLING_NS_PATH}
+        );
         scriptPaths = new HashMap<>(factories.length);
         for (String f : factories) {
             String[] parts = f.split(":");

Modified: sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml (original)
+++ sling/trunk/bundles/scripting/sightly/models-use-provider/pom.xml Mon Oct 
10 15:39:09 2016
@@ -56,12 +56,22 @@
         <plugins>
             <plugin>
                 <groupId>org.apache.felix</groupId>
-                <artifactId>maven-scr-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
                 <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>scr-metadata</id>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <exportScr>true</exportScr>
+                    <instructions>
+                        <Require-Capability>io.sightly; 
filter:="(&amp;(version&gt;=1.0)(!(version&gt;=2.0)))"</Require-Capability>
+                    </instructions>
+                </configuration>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>

Modified: 
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java?rev=1764122&r1=1764121&r2=1764122&view=diff
==============================================================================
--- 
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java
 (original)
+++ 
sling/trunk/bundles/scripting/sightly/models-use-provider/src/main/java/org/apache/sling/scripting/sightly/models/impl/SlingModelsUseProvider.java
 Mon Oct 10 15:39:09 2016
@@ -22,11 +22,6 @@ import java.util.regex.Pattern;
 import javax.script.Bindings;
 import javax.servlet.ServletRequest;
 
-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.resource.Resource;
 import org.apache.sling.api.scripting.SlingBindings;
@@ -36,6 +31,11 @@ import org.apache.sling.scripting.sightl
 import org.apache.sling.scripting.sightly.use.ProviderOutcome;
 import org.apache.sling.scripting.sightly.use.UseProvider;
 import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.metatype.annotations.AttributeDefinition;
+import org.osgi.service.metatype.annotations.Designate;
+import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -58,29 +58,36 @@ import org.slf4j.LoggerFactory;
  * </p>
  */
 @Component(
-    metatype = true,
-    label = "Apache Sling Scripting HTL Sling Models Use Provider",
-    description = "The Sling Models Use Provider is responsible for 
instantiating Sling Models to be used with Sightly's Use-API."
+        service = UseProvider.class,
+        configurationPid = 
"org.apache.sling.scripting.sightly.models.impl.SlingModelsUseProvider",
+        property = {
+                /**
+                 * Must have a higher priority than {@link 
org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider} 
but lower
+                 * than {@link 
org.apache.sling.scripting.sightly.impl.engine.extension.use.RenderUnitProvider}
 to kick in before the
+                 * JavaUseProvider but after the RenderUnitProvider.
+                 */
+                Constants.SERVICE_RANKING + ":Integer=95"
+        }
+)
+@Designate(
+        ocd = SlingModelsUseProvider.Configuration.class
 )
-@Service
-@Properties({
-    @Property(
-        name = Constants.SERVICE_RANKING,
-        label = "Service Ranking",
-        description =
-            "The Service Ranking value acts as the priority with which this 
Use Provider is queried to return an Use-object. A higher " +
-                "value represents a higher priority.",
-        /**
-         * Must have a higher priority than {@link 
org.apache.sling.scripting.sightly.impl.engine.extension.use.JavaUseProvider} 
but lower
-         * than {@link 
org.apache.sling.scripting.sightly.impl.engine.extension.use.RenderUnitProvider}
 to kick in before the
-         * JavaUseProvider but after the RenderUnitProvider.
-         */
-        intValue = 95,
-        propertyPrivate = false
-    )
-})
 public class SlingModelsUseProvider implements UseProvider {
 
+    @ObjectClassDefinition(
+            name = "Apache Sling Scripting HTL Sling Models Use Provider 
Configuration",
+            description = "HTL Sling Models Use Provider configuration options"
+    )
+    @interface Configuration {
+
+        @AttributeDefinition(
+                name = "Service Ranking",
+                description = "The Service Ranking value acts as the priority 
with which this Use Provider is queried to return an " +
+                        "Use-object. A higher value represents a higher 
priority."
+        )
+        int service_ranking() default 95;
+    }
+
     private static final Logger LOGGER = 
LoggerFactory.getLogger(SlingModelsUseProvider.class);
     private static final Pattern JAVA_PATTERN = Pattern.compile(
         
"([[\\p{L}&&[^\\p{Lu}]]_$][\\p{L}\\p{N}_$]*\\.)*[\\p{Lu}_$][\\p{L}\\p{N}_$]*");
@@ -145,7 +152,7 @@ public class SlingModelsUseProvider impl
     }
 
     private Map<String, Object> setRequestAttributes(final ServletRequest 
request, final Bindings arguments) {
-        Map<String, Object> overrides = new HashMap<String, Object>();
+        Map<String, Object> overrides = new HashMap<>();
         for (Map.Entry<String, Object> entry : arguments.entrySet()) {
             String key = entry.getKey();
             Object value = entry.getValue();


Reply via email to