FELIX-1010 : Add several diffferently typed properties to the property tag.

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@774907 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scr-annotations/pom.xml b/scr-annotations/pom.xml
index d26196d..e6385d3 100644
--- a/scr-annotations/pom.xml
+++ b/scr-annotations/pom.xml
@@ -20,9 +20,9 @@
 
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
-		<artifactId>felix</artifactId>
+        <artifactId>felix-parent</artifactId>
 		<groupId>org.apache.felix</groupId>
-		<version>1.0.4</version>
+		<version>1.2.0</version>
 		<relativePath>../pom/pom.xml</relativePath>
 	</parent>
 	
diff --git a/scr-annotations/src/main/java/org/apache/felix/scr/annotations/Property.java b/scr-annotations/src/main/java/org/apache/felix/scr/annotations/Property.java
index c3c624b..c4a7910 100644
--- a/scr-annotations/src/main/java/org/apache/felix/scr/annotations/Property.java
+++ b/scr-annotations/src/main/java/org/apache/felix/scr/annotations/Property.java
@@ -60,15 +60,66 @@
      * The value(s) of the property. If the property type is not String, parsing
      * of the value is done using the valueOf(String) method of the class
      * defined by the property type.
+     * This attribute should not be used in combination with any of the other
+     * value attributes.
      */
     String[] value() default "";
 
     /**
-     * The type of the property value. This must be one of {@link String},
-     * {@link Long}, {@link Double}, {@link Float}, {@link Integer},
-     * {@link Byte}, {@link Character}, {@link Boolean} and {@link Short}.
+     * The long value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes or the type attribute.
      */
-    Class<?> type() default AutoDetect.class;
+    long[] longValue() default 0;
+
+    /**
+     * The double value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes.
+     */
+    double[] doubleValue() default 0.0;
+
+    /**
+     * The float value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes or the type attribute.
+     */
+    float[] floatValue() default 0;
+
+    /**
+     * The int value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes or the type attribute.
+     */
+    int[] intValue() default 0;
+
+    /**
+     * The byte value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes or the type attribute.
+     */
+    byte[] byteValue() default 0;
+
+    /**
+     * The char value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes or the type attribute.
+     */
+    char[] charValue() default '\0';
+
+    /**
+     * The bool value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes or the type attribute.
+     */
+    boolean[] boolValue() default false;
+
+    /**
+     * The short value(s) of the property.
+     * This attribute should not be used in combination with any of the other
+     * value attributes or the type attribute.
+     */
+    short[] shortValue() default 0;
 
     /**
      * Defines the cardinality of the property and its collection type. If the