diff --git a/DEPENDENCIES b/DEPENDENCIES
index a3ad1f6..b0a9d0b 100644
--- a/DEPENDENCIES
+++ b/DEPENDENCIES
@@ -1,5 +1,5 @@
 Apache Felix SCR Annotations
-Copyright 2007-2010 The Apache Software Foundation
+Copyright 2007-2011 The Apache Software Foundation
 
 
 I. Included Software
diff --git a/NOTICE b/NOTICE
index 3f29aec..cf782a9 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 Apache Felix SCR Annotations
-Copyright 2007-2010 The Apache Software Foundation
+Copyright 2007-2011 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
diff --git a/changelog.txt b/changelog.txt
new file mode 100644
index 0000000..33a3714
--- /dev/null
+++ b/changelog.txt
@@ -0,0 +1,14 @@
+Changes from 1.4.0 to 1.5.0
+---------------------------
+
+** Bug
+    * [FELIX-2704] - @Property(cardinality=Integer.MAX_Int, ...) causes java.lang.NumberFormatException
+
+** Improvement
+    * [FELIX-2753] - Support array of classes for @Service annotation
+    * [FELIX-2874] - Add new scopes to SlingFilter annotation and use new property names
+    * [FELIX-2838] - Allow classes to be specifed as values for the @Property annotation
+    * [FELIX-2863] - Warnings and error messages contain @scr.* if annotations are used
+    * [FELIX-2690] - Add changelog.txt to SCR/Metatype generation modules
+
+
diff --git a/pom.xml b/pom.xml
index 9b9fbe4..f6f5694 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
     <groupId>org.apache.felix</groupId>
     <artifactId>org.apache.felix.scr.annotations</artifactId>
 
-    <version>1.4.1-SNAPSHOT</version>
+    <version>1.5.0</version>
     <packaging>jar</packaging>
 
     <name>Annotations for SCR</name>
@@ -38,16 +38,16 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/scrplugin/annotations</connection>
-        <developerConnection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/scrplugin/annotations</developerConnection>
-        <url>http://svn.apache.org/repos/asf/felix/scrplugin/annotations</url>
+        <connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.scr.annotations-1.5.0</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.scr.annotations-1.5.0</developerConnection>
+        <url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.scr.annotations-1.5.0</url>
     </scm>
 
     <dependencies>
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.scr.generator</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <version>1.1.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilterScope.java b/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilterScope.java
index 72bed73..8e6a9db 100644
--- a/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilterScope.java
+++ b/src/main/java/org/apache/felix/scr/annotations/sling/SlingFilterScope.java
@@ -23,9 +23,15 @@
  */
 public enum SlingFilterScope {
 
-    REQUEST("request"),
+    REQUEST("REQUEST"),
 
-    COMPONENT("component");
+    COMPONENT("COMPONENT"),
+
+    ERROR("ERROR"),
+
+    INCLUDE("INCLUDE"),
+
+    FORWARD("FORWARD");
 
     private final String scope;
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java
index 0f21cd7..cb400ca 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ComponentTag.java
@@ -117,6 +117,11 @@
 
     @Override
     public String getName() {
+        return Constants.COMPONENT;
+    }
+
+    @Override
+    public String getSourceName() {
         return "Component";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
index f625d6d..47efce5 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
@@ -141,6 +141,11 @@
 
     @Override
     public String getName() {
+        return Constants.PROPERTY;
+    }
+
+    @Override
+    public String getSourceName() {
         return "Property";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ReferenceTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ReferenceTag.java
index e6ca972..0c27191 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ReferenceTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ReferenceTag.java
@@ -90,6 +90,11 @@
 
     @Override
     public String getName() {
+        return Constants.REFERENCE;
+    }
+
+    @Override
+    public String getSourceName() {
         return "Reference";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ServiceTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ServiceTag.java
index 39069d7..0cbf0e5 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ServiceTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/ServiceTag.java
@@ -53,6 +53,11 @@
 
     @Override
     public String getName() {
+        return Constants.SERVICE;
+    }
+
+    @Override
+    public String getSourceName() {
         return "Service";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingAnnotationTagProvider.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingAnnotationTagProvider.java
index 174c3df..041b989 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingAnnotationTagProvider.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingAnnotationTagProvider.java
@@ -21,14 +21,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.felix.scr.annotations.sling.SlingFilter;
-import org.apache.felix.scr.annotations.sling.SlingFilterScope;
-import org.apache.felix.scr.annotations.sling.SlingServlet;
+import org.apache.felix.scr.annotations.sling.*;
 import org.apache.felix.scrplugin.tags.JavaField;
 import org.apache.felix.scrplugin.tags.JavaTag;
-import org.apache.felix.scrplugin.tags.annotation.AnnotationJavaClassDescription;
-import org.apache.felix.scrplugin.tags.annotation.AnnotationTagProvider;
-import org.apache.felix.scrplugin.tags.annotation.Util;
+import org.apache.felix.scrplugin.tags.annotation.*;
 
 /**
  * Annotation tag provider for sling-specific SCR annotations.
@@ -130,13 +126,13 @@
                 tags.add(new SlingFilterServiceTag(annotation, description));
             }
 
-            // property order
+            // property order = service.ranking
             final int order = Util.getIntValue(annotation, "order", SlingFilter.class);
-            tags.add(new SlingServletPropertyTag(annotation, "filter.order",String.valueOf(order), description, "Integer", true));
+            tags.add(new SlingServletPropertyTag(annotation, "service.ranking", String.valueOf(order), description, "Integer", true));
 
             // property scope
             final SlingFilterScope scope = Util.getEnumValue(annotation, "scope", SlingFilterScope.class, SlingFilter.class);
-            tags.add(new SlingServletPropertyTag(annotation, "filter.scope",scope.getScope(), description, null, true));
+            tags.add(new SlingServletPropertyTag(annotation, "sling.filter.scope", scope.getScope(), description, null, true));
         }
 
         return tags;
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterComponentTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterComponentTag.java
index 77434b7..f9b0638 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterComponentTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterComponentTag.java
@@ -55,6 +55,11 @@
 
     @Override
     public String getName() {
+        return Constants.COMPONENT;
+    }
+
+    @Override
+    public String getSourceName() {
         return "SlingFilter";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterServiceTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterServiceTag.java
index d4b0062..8991482 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterServiceTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingFilterServiceTag.java
@@ -44,6 +44,11 @@
 
     @Override
     public String getName() {
+        return Constants.SERVICE;
+    }
+
+    @Override
+    public String getSourceName() {
         return "SlingFilter";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletComponentTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletComponentTag.java
index ce7bbb2..84450a6 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletComponentTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletComponentTag.java
@@ -21,6 +21,7 @@
 import java.util.Collections;
 import java.util.Map;
 
+import org.apache.felix.scrplugin.Constants;
 import org.apache.felix.scrplugin.tags.JavaClassDescription;
 import org.apache.felix.scrplugin.tags.annotation.AbstractTag;
 
@@ -40,6 +41,11 @@
 
     @Override
     public String getName() {
+        return Constants.COMPONENT;
+    }
+
+    @Override
+    public String getSourceName() {
         return "SlingServlet";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletPropertyTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletPropertyTag.java
index 899e3e9..e17533c 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletPropertyTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletPropertyTag.java
@@ -70,6 +70,11 @@
 
     @Override
     public String getName() {
+        return Constants.PROPERTY;
+    }
+
+    @Override
+    public String getSourceName() {
         return "SlingServlet";
     }
 
diff --git a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletServiceTag.java b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletServiceTag.java
index 4d5c40c..da9944b 100644
--- a/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletServiceTag.java
+++ b/src/main/java/org/apache/felix/scrplugin/tags/annotation/sling/SlingServletServiceTag.java
@@ -44,6 +44,11 @@
 
     @Override
     public String getName() {
+        return Constants.SERVICE;
+    }
+
+    @Override
+    public String getSourceName() {
         return "SlingServlet";
     }
 
