[maven-release-plugin]  copy for tag maven-scr-plugin-1.0.6

git-svn-id: https://svn.apache.org/repos/asf/felix/releases/maven-scr-plugin-1.0.6@673339 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index b6b57fd..42d6da3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
     <groupId>org.apache.felix</groupId>
     <artifactId>maven-scr-plugin</artifactId>
 
-	<version>1.0.6-SNAPSHOT</version>
+	<version>1.0.6</version>
 	<packaging>maven-plugin</packaging>
 
 	<name>Maven SCR Plugin</name>
@@ -37,9 +37,9 @@
 	</description>
 
 	<scm>
-		<connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/scrplugin</connection>
-		<developerConnection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/scrplugin</developerConnection>
-		<url>http://svn.apache.org/repos/asf/felix/scrplugin</url>
+		<connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/maven-scr-plugin-1.0.6</connection>
+		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/maven-scr-plugin-1.0.6</developerConnection>
+		<url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/maven-scr-plugin-1.0.6</url>
 	</scm>
 
 	<dependencies>
diff --git a/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java b/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
index d6277f5..37b6678 100644
--- a/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
+++ b/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
@@ -346,7 +346,7 @@
 
         component.setEnabled(Boolean.valueOf(getBoolean(tag, Constants.COMPONENT_ENABLED, true)));
         component.setFactory(tag.getNamedParameter(Constants.COMPONENT_FACTORY));
-        
+
         // FELIX-593: immediate attribute does not default to true all the
         // times hence we only set it if declared in the tag
         if (tag.getNamedParameter(Constants.COMPONENT_IMMEDIATE) != null) {
@@ -404,13 +404,19 @@
         component.setService(service);
         boolean serviceFactory = false;
         for (int i=0; i < services.length; i++) {
-            String name = services[i].getNamedParameter(Constants.SERVICE_INTERFACE);
+            final String name = services[i].getNamedParameter(Constants.SERVICE_INTERFACE);
             if (StringUtils.isEmpty(name)) {
 
                 this.addInterfaces(service, services[i], description);
             } else {
+                // check if the value points to a class/interface
+                // and search through the imports
+                final JavaClassDescription serviceClass = description.getReferencedClass(name);
+                if ( serviceClass == null ) {
+                    throw new MojoExecutionException("Interface '"+ name + "' in class " + description.getName() + " does not point to a valid class/interface.");
+                }
                 final Interface interf = new Interface(services[i]);
-                interf.setInterfacename(name);
+                interf.setInterfacename(serviceClass.getName());
                 service.addInterface(interf);
             }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescription.java b/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescription.java
index 724a395..af008e4 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescription.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescription.java
@@ -125,4 +125,15 @@
      * @throws MojoExecutionException
      */
     boolean isA(String type) throws MojoExecutionException;
+
+    /**
+     * Search for the class.
+     * If the referenced name is not fully qualified, the imports
+     * of the class are searched.
+     * @param referencedName
+     * @return The java class description or null
+     * @throws MojoExecutionException
+     */
+    JavaClassDescription getReferencedClass(String referencedName)
+    throws MojoExecutionException;
 }
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescriptorManager.java b/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescriptorManager.java
index e93455d..d133121 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescriptorManager.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/JavaClassDescriptorManager.java
@@ -140,7 +140,8 @@
             final Artifact declared = (Artifact) it.next();
             this.log.debug("Checking artifact " + declared);
             if (Artifact.SCOPE_COMPILE.equals(declared.getScope())
-                || Artifact.SCOPE_RUNTIME.equals(declared.getScope())) {
+                || Artifact.SCOPE_RUNTIME.equals(declared.getScope())
+                || Artifact.SCOPE_PROVIDED.equals(declared.getScope())) {
                 this.log.debug("Resolving artifact " + declared);
                 final Artifact artifact = (Artifact) resolved.get(ArtifactUtils.versionlessKey(declared));
                 if (artifact != null) {
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java b/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
index cb69ee2..576c08a 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/cl/ClassLoaderJavaClassDescription.java
@@ -88,6 +88,14 @@
     }
 
     /**
+     * @see org.apache.felix.scrplugin.tags.JavaClassDescription#getReferencedClass(java.lang.String)
+     */
+    public JavaClassDescription getReferencedClass(String referencedName)
+    throws MojoExecutionException {
+        throw new MojoExecutionException("getDescription not support for this class.");
+    }
+
+    /**
      * @see org.apache.felix.scrplugin.tags.JavaClassDescription#getImplementedInterfaces()
      */
     public JavaClassDescription[] getImplementedInterfaces() throws MojoExecutionException {
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java b/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
index db58728..e87c2ae 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
@@ -203,6 +203,28 @@
     }
 
     /**
+     * @see org.apache.felix.scrplugin.tags.JavaClassDescription#getReferencedClass(java.lang.String)
+     */
+    public JavaClassDescription getReferencedClass(final String referencedName) {
+        String className = referencedName;
+        int pos = className.indexOf('.');
+        if ( pos == -1 ) {
+            className = this.searchImport('.' + referencedName);
+        }
+        if ( className == null ) {
+            if ( pos != -1 ) {
+                return null;
+            }
+            className = this.javaClass.getSource().getPackage() + '.' + referencedName;
+        }
+        try {
+            return this.manager.getJavaClassDescription(className);
+        } catch (MojoExecutionException mee) {
+            return null;
+        }
+    }
+
+    /**
      * @see org.apache.felix.scrplugin.tags.JavaClassDescription#getImplementedInterfaces()
      */
     public JavaClassDescription[] getImplementedInterfaces()