You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2014/04/10 16:15:32 UTC

[10/59] [abbrv] [KARAF-2852] Merge features/core and features/command

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd
----------------------------------------------------------------------
diff --git a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd b/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd
deleted file mode 100644
index 9536ba1..0000000
--- a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.0.0.xsd
+++ /dev/null
@@ -1,239 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements. See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License. You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<xs:schema elementFormDefault="qualified"
-    targetNamespace="http://karaf.apache.org/xmlns/features/v1.0.0"
-    xmlns:tns="http://karaf.apache.org/xmlns/features/v1.0.0"
-    xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-    <xs:annotation>
-        <xs:documentation><![CDATA[
-Karaf features mechanism. For documentation please visit the
-<a href="http://karaf.apache.org/">Karaf website</a>.
-        ]]></xs:documentation>
-    </xs:annotation>
-
-    <xs:complexType name="features">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Root element of the Feature definition. It contains an optional attribute for
-designating the name of the repository of this feature. The Karaf shell will
-show the repository name when displaying information about the feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="repository" type="xs:anyURI">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Additional repositories where dependencies are stored.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="feature" type="tns:feature">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Feature definition.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-        </xs:choice>
-        <xs:attribute name="name" type="xs:string" />
-    </xs:complexType>
-
-    <xs:complexType name="feature">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Definition of the Feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="details" minOccurs="0" type="xs:string">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-The help text shown for this feature when using the feature:info console command.
-                    ]]>
-                    </xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="config" type="tns:config" />
-            <xs:element name="configfile" type="tns:configFile" />
-            <xs:element name="feature" type="tns:dependency" />
-            <xs:element name="bundle" type="tns:bundle" />
-        </xs:choice>
-        <xs:attribute name="name" type="tns:featureName" use="required" />
-        <xs:attribute name="version" type="xs:string" default="0.0.0" />
-        <xs:attribute name="description" type="xs:string" />
-        <xs:attribute name="resolver" type="tns:resolver">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-Optional alternative resolver to use for determining the list of bundles to install for a given feature.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="install" type="tns:install">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-If true, marks that the feature should start automatically when placed in the deploy folder.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="start-level" type="xs:int">
-             <xs:annotation>
-                <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for the bundles in this feature different
-from the default start level defined in Karaf's config.properties.
-                ]]>
-                </xs:documentation>
-             </xs:annotation>
-         </xs:attribute>
-         <xs:attribute name="region" type="xs:string"/>
-    </xs:complexType>
-
-    <xs:complexType name="bundle">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Deployable element to install.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="start-level" type="xs:int">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for this bundle different
-from the default start level defined in Karaf's config.properties.
-
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="start" type="xs:boolean" default="true">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If false, leaves the bundle in resolved state rather than the default active state.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="dependency" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Mark this bundle as a dependency for the resolver.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="dependency">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Dependency of feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="tns:featureName">
-                <xs:attribute name="version" type="xs:string" default="0.0.0" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="config">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Configuration entries which should be created during feature installation. This
-configuration may be used with OSGi Configuration Admin. The element content is
-read in as a properties file.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-                <xs:attribute name="name" type="xs:string" use="required" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="configFile">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Additional configuration files which should be created during feature installation.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="finalname" type="xs:string" use="required">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-The final destination path and name for the configuration file (relative to the KARAF_BASE).
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="override" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If the configFile already exists at the finalname location, whether or not to replace it.
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:simpleType name="featureName">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Feature name should be non empty string.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-
-    <xs:simpleType name="resolver">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Resolver to use. Karaf will look for OSGi service which has following properties:
-objectClass: org.apache.karaf.features.Resolver
-name: the value
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="install">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Installation mode. Can be either manual or auto. Specifies whether the feature should be automatically installed when
-dropped inside the deploy folder. Note: This attribute doesn't affect feature descriptors that are installed from the
-command line or as part of the org.apache.karaf.features.cfg.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:element name="features" type="tns:features" />
-
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.1.0.xsd
----------------------------------------------------------------------
diff --git a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.1.0.xsd b/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.1.0.xsd
deleted file mode 100644
index 7138573..0000000
--- a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.1.0.xsd
+++ /dev/null
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements. See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License. You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<xs:schema elementFormDefault="qualified"
-    targetNamespace="http://karaf.apache.org/xmlns/features/v1.1.0"
-    xmlns:tns="http://karaf.apache.org/xmlns/features/v1.1.0"
-    xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-    <xs:annotation>
-        <xs:documentation><![CDATA[
-Karaf features mechanism. For documentation please visit the
-<a href="http://karaf.apache.org/">Karaf website</a>.
-        ]]></xs:documentation>
-    </xs:annotation>
-
-    <xs:complexType name="features">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Root element of Feature definition. It contains an required attribute for
-designating from which repository this feature should be loaded. The Karaf
-shell will show the repository name when displaying information about the feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="repository" type="xs:anyURI">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Additional repositories where dependencies are stored.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="feature" type="tns:feature">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Feature definition.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-        </xs:choice>
-        <xs:attribute name="name" type="xs:string" use="required"/>
-    </xs:complexType>
-
-    <xs:complexType name="feature">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Definition of the Feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="details" minOccurs="0" type="xs:string">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-The help text shown for this feature when using feature:info console command.
-                    ]]>
-                    </xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="config" type="tns:config" />
-            <xs:element name="configfile" type="tns:configFile" />
-            <xs:element name="feature" type="tns:dependency" />
-            <xs:element name="bundle" type="tns:bundle" />
-        </xs:choice>
-        <xs:attribute name="name" type="tns:featureName" use="required" />
-        <xs:attribute name="version" type="xs:string" default="0.0.0" />
-        <xs:attribute name="description" type="xs:string" />
-        <xs:attribute name="resolver" type="tns:resolver">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-Optional alternative resolver to use for determining the list of bundles to install for a given feature.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="install" type="tns:install">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-Marks if the feaute will be automatically started when thrown to the deploy folder.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="start-level" type="xs:int">
-             <xs:annotation>
-                <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for this feature different
-from the default start level defined in Karaf's config.properties.
-                ]]>
-                </xs:documentation>
-             </xs:annotation>
-         </xs:attribute>
-    </xs:complexType>
-
-    <xs:complexType name="bundle">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Deployable element to install.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="start-level" type="xs:int">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for this bundle different
-from the default start level defined in the Karaf's config.properties.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="start" type="xs:boolean" default="true">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If false, leaves bundle in resolved state rather than the default active state.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="dependency" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Mark this bundle as a dependency for the resolver.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="dependency">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Dependency of feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="tns:featureName">
-                <xs:attribute name="version" type="xs:string" default="0.0.0" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="config">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Configuration entries which should be created during feature installation. This
-configuration may be used with OSGi Configuration Admin. The element content is
-read in as a properties file.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-                <xs:attribute name="name" type="xs:string" use="required" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="configFile">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Additional configuration files which should be created during feature installation.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="finalname" type="xs:string" use="required">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-The final destination path and name for the configuration file.
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="override" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If the configFile already exists at the finalname location, whether or not to replace it.
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:simpleType name="featureName">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Feature name should be non empty string.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-
-    <xs:simpleType name="resolver">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Resolver to use. Karaf will look for OSGi service which have following properties:
-objectClass: org.apache.karaf.features.Resolver
-name: the value
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="install">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Installation mode. Can be either manual or auto. Specifies whether the feature should be automatically installed when
-dropped inside the deploy folder. Note: This attribute doesn't affect feature descriptors that are installed from the
-command line or as part of the org.apache.karaf.features.cfg.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:element name="features" type="tns:features" />
-
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.2.0.xsd
----------------------------------------------------------------------
diff --git a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.2.0.xsd b/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.2.0.xsd
deleted file mode 100644
index dbc4bfa..0000000
--- a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.2.0.xsd
+++ /dev/null
@@ -1,254 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements. See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License. You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<xs:schema elementFormDefault="qualified"
-    targetNamespace="http://karaf.apache.org/xmlns/features/v1.2.0"
-    xmlns:tns="http://karaf.apache.org/xmlns/features/v1.2.0"
-    xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-    <xs:annotation>
-        <xs:documentation><![CDATA[
-Karaf features mechanism. For documentation please visit the
-<a href="http://karaf.apache.org/">Karaf website</a>.
-        ]]></xs:documentation>
-    </xs:annotation>
-
-    <xs:complexType name="features">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Root element of Feature definition. It contains an required attribute for
-designating from which repository this feature should be loaded. The Karaf
-shell will show the repository name when displaying information about the feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="repository" type="xs:anyURI">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Additional repositories where dependencies are stored.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="feature" type="tns:feature">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Feature definition.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-        </xs:choice>
-        <xs:attribute name="name" type="xs:string" use="required"/>
-    </xs:complexType>
-
-    <xs:complexType name="feature">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Definition of the Feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="details" minOccurs="0" type="xs:string">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-The help text shown for this feature when using feature:info console command.
-                    ]]>
-                    </xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="config" type="tns:config" />
-            <xs:element name="configfile" type="tns:configFile" />
-            <xs:element name="feature" type="tns:dependency" />
-            <xs:element name="bundle" type="tns:bundle" />
-            <xs:element name="conditional" type="tns:conditional" />
-        </xs:choice>
-        <xs:attribute name="name" type="tns:featureName" use="required" />
-        <xs:attribute name="version" type="xs:string" default="0.0.0" />
-        <xs:attribute name="description" type="xs:string" />
-        <xs:attribute name="resolver" type="tns:resolver">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-Optional alternative resolver to use for determining the list of bundles to install for a given feature.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="install" type="tns:install">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-Marks if the feaute will be automatically started when thrown to the deploy folder.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="start-level" type="xs:int">
-             <xs:annotation>
-                <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for this feature different
-from the default start level defined in Karaf's config.properties.
-                ]]>
-                </xs:documentation>
-             </xs:annotation>
-         </xs:attribute>
-    </xs:complexType>
-
-    <xs:complexType name="conditional">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Definition of the Conditional.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="config" type="tns:config" />
-            <xs:element name="configfile" type="tns:configFile" />
-            <xs:element name="feature" type="tns:dependency" />
-            <xs:element name="bundle" type="tns:bundle" />
-            <xs:element name="condition" type="tns:dependency" minOccurs="0" maxOccurs="1" />
-        </xs:choice>
-    </xs:complexType>
-
-
-    <xs:complexType name="bundle">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Deployable element to install.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="start-level" type="xs:int">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for this bundle different
-from the default start level defined in the Karaf's config.properties.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="start" type="xs:boolean" default="true">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If false, leaves bundle in resolved state rather than the default active state.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="dependency" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Mark this bundle as a dependency for the resolver.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="dependency">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Dependency of feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="tns:featureName">
-                <xs:attribute name="version" type="xs:string" default="0.0.0" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="config">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Configuration entries which should be created during feature installation. This
-configuration may be used with OSGi Configuration Admin. The element content is
-read in as a properties file.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-                <xs:attribute name="name" type="xs:string" use="required" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="configFile">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Additional configuration files which should be created during feature installation.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="finalname" type="xs:string" use="required">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-The final destination path and name for the configuration file.
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="override" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If the configFile already exists at the finalname location, whether or not to replace it.
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:simpleType name="featureName">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Feature name should be non empty string.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-
-    <xs:simpleType name="resolver">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Resolver to use. Karaf will look for OSGi service which have following properties:
-objectClass: org.apache.karaf.features.Resolver
-name: the value
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="install">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Installation mode. Can be either manual or auto. Specifies whether the feature should be automatically installed when
-dropped inside the deploy folder. Note: This attribute doesn't affect feature descriptors that are installed from the
-command line or as part of the org.apache.karaf.features.cfg.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:element name="features" type="tns:features" />
-
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.3.0.xsd
----------------------------------------------------------------------
diff --git a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.3.0.xsd b/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.3.0.xsd
deleted file mode 100644
index 60ec8d2..0000000
--- a/features/core/src/main/resources/org/apache/karaf/features/karaf-features-1.3.0.xsd
+++ /dev/null
@@ -1,280 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements. See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License. You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<xs:schema elementFormDefault="qualified"
-    targetNamespace="http://karaf.apache.org/xmlns/features/v1.3.0"
-    xmlns:tns="http://karaf.apache.org/xmlns/features/v1.3.0"
-    xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
-    <xs:annotation>
-        <xs:documentation><![CDATA[
-Karaf features mechanism. For documentation please visit the
-<a href="http://karaf.apache.org/">Karaf website</a>.
-        ]]></xs:documentation>
-    </xs:annotation>
-
-    <xs:complexType name="features">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Root element of Feature definition. It contains an required attribute for
-designating from which repository this feature should be loaded. The Karaf
-shell will show the repository name when displaying information about the feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="repository" type="xs:anyURI">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Additional repositories where dependencies are stored.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="feature" type="tns:feature">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-Feature definition.
-                    ]]></xs:documentation>
-                </xs:annotation>
-            </xs:element>
-        </xs:choice>
-        <xs:attribute name="name" type="xs:string" use="required"/>
-    </xs:complexType>
-
-    <xs:complexType name="feature">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Definition of the Feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="details" minOccurs="0" type="xs:string">
-                <xs:annotation>
-                    <xs:documentation><![CDATA[
-The help text shown for this feature when using feature:info console command.
-                    ]]>
-                    </xs:documentation>
-                </xs:annotation>
-            </xs:element>
-            <xs:element name="config" type="tns:config" />
-            <xs:element name="configfile" type="tns:configFile" />
-            <xs:element name="feature" type="tns:dependency" />
-            <xs:element name="bundle" type="tns:bundle" />
-            <xs:element name="conditional" type="tns:conditional" />
-            <xs:element name="requirement" type="tns:requirement" />
-            <xs:element name="capability" type="tns:capability" />
-        </xs:choice>
-        <xs:attribute name="name" type="tns:featureName" use="required" />
-        <xs:attribute name="version" type="xs:string" default="0.0.0" />
-        <xs:attribute name="description" type="xs:string" />
-        <xs:attribute name="resolver" type="tns:resolver">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-Optional alternative resolver to use for determining the list of bundles to install for a given feature.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="install" type="tns:install">
-            <xs:annotation>
-                <xs:documentation><![CDATA[
-Marks if the feaute will be automatically started when thrown to the deploy folder.
-                ]]>
-                </xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-        <xs:attribute name="start-level" type="xs:int">
-             <xs:annotation>
-                <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for this feature different
-from the default start level defined in Karaf's config.properties.
-                ]]>
-                </xs:documentation>
-             </xs:annotation>
-         </xs:attribute>
-    </xs:complexType>
-
-    <xs:complexType name="conditional">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Definition of the Conditional.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="config" type="tns:config" />
-            <xs:element name="configfile" type="tns:configFile" />
-            <xs:element name="feature" type="tns:dependency" />
-            <xs:element name="bundle" type="tns:bundle" />
-            <xs:element name="condition" type="tns:dependency" minOccurs="0" maxOccurs="1" />
-        </xs:choice>
-    </xs:complexType>
-
-
-    <xs:complexType name="bundle">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Deployable element to install.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="start-level" type="xs:int">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Set this attribute to have an OSGi start level for this bundle different
-from the default start level defined in the Karaf's config.properties.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="start" type="xs:boolean" default="true">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If false, leaves bundle in resolved state rather than the default active state.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="dependency" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-Mark this bundle as a dependency for the resolver.
-                        ]]>
-                        </xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="dependency">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Dependency of feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="tns:featureName">
-                <xs:attribute name="version" type="xs:string" default="0.0.0" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="config">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Configuration entries which should be created during feature installation. This
-configuration may be used with OSGi Configuration Admin. The element content is
-read in as a properties file.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-                <xs:attribute name="name" type="xs:string" use="required" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="configFile">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Additional configuration files which should be created during feature installation.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:anyURI">
-                <xs:attribute name="finalname" type="xs:string" use="required">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-The final destination path and name for the configuration file.
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-                <xs:attribute name="override" type="xs:boolean">
-                    <xs:annotation>
-                        <xs:documentation><![CDATA[
-If the configFile already exists at the finalname location, whether or not to replace it.
-                        ]]></xs:documentation>
-                    </xs:annotation>
-                </xs:attribute>
-
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="requirement">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Additional requirements of this feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:complexType name="capability">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Additional capability of this feature.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
-
-    <xs:simpleType name="featureName">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Feature name should be non empty string.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-
-    <xs:simpleType name="resolver">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Resolver to use. Karaf will look for OSGi service which have following properties:
-objectClass: org.apache.karaf.features.Resolver
-name: the value
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:simpleType name="install">
-        <xs:annotation>
-            <xs:documentation><![CDATA[
-Installation mode. Can be either manual or auto. Specifies whether the feature should be automatically installed when
-dropped inside the deploy folder. Note: This attribute doesn't affect feature descriptors that are installed from the
-command line or as part of the org.apache.karaf.features.cfg.
-            ]]></xs:documentation>
-        </xs:annotation>
-        <xs:restriction base="xs:string">
-            <xs:minLength value="1" />
-        </xs:restriction>
-    </xs:simpleType>
-    <xs:element name="features" type="tns:features" />
-
-</xs:schema>

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/test/java/org/apache/karaf/features/ConditionalTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/ConditionalTest.java b/features/core/src/test/java/org/apache/karaf/features/ConditionalTest.java
deleted file mode 100644
index d5e7e46..0000000
--- a/features/core/src/test/java/org/apache/karaf/features/ConditionalTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features;
-
-import junit.framework.TestCase;
-import org.apache.karaf.features.internal.service.RepositoryImpl;
-
-
-public class ConditionalTest extends TestCase {
-
-    public void testLoad() throws Exception {
-        RepositoryImpl r = new RepositoryImpl(getClass().getResource("internal/service/f06.xml").toURI());
-        // Check repo
-        Feature[] features = r.getFeatures();
-        assertNotNull(features);
-        assertEquals(1, features.length);
-        Feature feature = features[0];
-
-        assertNotNull(feature.getConditional());
-        assertEquals(1,feature.getConditional().size());
-
-        Conditional conditional = feature.getConditional().get(0);
-        assertNotNull(conditional.getCondition());
-        assertEquals(1,conditional.getCondition().size());
-        Dependency dependency = conditional.getCondition().get(0);
-        assertNotNull(dependency);
-        assertEquals(dependency.getName(),"http");
-        assertNotNull(conditional.getBundles());
-        assertEquals(1, feature.getConditional().get(0).getBundles().size());
-
-        String wrapperName = "my6/1.5.3-beta-3".replaceAll("[^A-Za-z0-9 ]", "_");
-    }
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java b/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
deleted file mode 100644
index b7d4c27..0000000
--- a/features/core/src/test/java/org/apache/karaf/features/FeatureTest.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features;
-
-import junit.framework.TestCase;
-
-public class FeatureTest extends TestCase {
-	
-	public void testValueOf() {
-		Feature feature = org.apache.karaf.features.internal.model.Feature.valueOf("name" + org.apache.karaf.features.internal.model.Feature.SPLIT_FOR_NAME_AND_VERSION + "version");
-		assertEquals(feature.getName(), "name");
-		assertEquals(feature.getVersion(), "version");
-		feature = org.apache.karaf.features.internal.model.Feature.valueOf("name");
-		assertEquals(feature.getName(), "name");
-		assertEquals(feature.getVersion(), org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION);
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java b/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
deleted file mode 100644
index 9f7e67b..0000000
--- a/features/core/src/test/java/org/apache/karaf/features/FeaturesServiceTest.java
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features;
-
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArraySet;
-
-import org.apache.karaf.features.internal.service.FeaturesServiceImpl;
-import org.apache.karaf.features.internal.service.StateStorage;
-import org.easymock.EasyMock;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-public class FeaturesServiceTest extends TestBase {
-    private static final String FEATURE_WITH_INVALID_BUNDLE = "<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-            + "  <feature name='f1'><bundle>%s</bundle><bundle>zfs:unknown</bundle></feature>"
-            + "  <feature name='f2'><bundle>%s</bundle></feature>"
-            + "</features>";
-
-    File dataFile;
-
-    @Before
-    public void setUp() throws IOException {
-        dataFile = File.createTempFile("features", null, null);
-    }
-    
-    private URI createTempRepo(String repoContent, Object ... variables) throws IOException {
-        File tmp = File.createTempFile("karaf", ".feature");
-        PrintWriter pw = new PrintWriter(new FileWriter(tmp));
-        pw.printf(repoContent, variables);
-        pw.close();
-        return tmp.toURI();
-    }
-
-    /*
-       TODO: migrate those tests
-
-    @Test
-    public void testInstallFeature() throws Exception {
-        URI uri = createTempRepo(
-                "<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>" 
-                + "  <feature name='f1'><bundle start='true'>bundle-f1</bundle></feature>"
-                + "</features>");
-
-        BundleManager bundleManager = EasyMock.createMock(BundleManager.class);
-        Bundle installedBundle = createDummyBundle(12345L, "bundle-f1", headers());
-        FeaturesServiceImpl svc = testAddRepository("bundle-f1", uri, bundleManager, installedBundle);
-        
-        reset(bundleManager);
-        
-        expect(bundleManager.installBundleIfNeeded(eq("bundle-f1"), eq(0), eq((String)null))).andReturn(new BundleInstallerResult(installedBundle, true));
-        expect(bundleManager.getDataFile(EasyMock.anyObject(String.class))).andReturn(dataFile);
-        ignoreRefreshes(bundleManager);
-        replay(bundleManager);
-        svc.installFeature("f1", org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION, EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
-        verify(bundleManager);
-        
-        Feature[] installed = svc.listInstalledFeatures();
-        assertEquals(1, installed.length);
-        assertEquals("f1", installed[0].getName());
-    }
-
-    private FeaturesServiceImpl testAddRepository(String name, URI uri, BundleManager bundleManager,
-            Bundle installedBundle) throws IOException, BundleException, Exception {
-        expect(bundleManager.getDataFile(EasyMock.anyObject(String.class))).andReturn(dataFile);
-        expect(bundleManager.installBundleIfNeeded(eq(name), eq(0), eq((String)null))).andReturn(new BundleInstallerResult(installedBundle, true)).anyTimes();
-
-        replay(bundleManager);
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);
-        svc.addRepository(uri);
-        Repository[] repositories = svc.listRepositories();
-        verify(bundleManager);
-
-        assertNotNull(repositories);
-        assertEquals(1, repositories.length);
-        assertNotNull(repositories[0]);
-        Feature[] features = repositories[0].getFeatures();
-        assertNotNull(features);
-        assertEquals(1, features.length);
-        assertNotNull(features[0]);
-        assertEquals("f1", features[0].getName());
-        assertNotNull(features[0].getDependencies());
-        assertEquals(0, features[0].getDependencies().size());
-        assertNotNull(features[0].getBundles());
-        assertEquals(1, features[0].getBundles().size());
-        assertEquals(name, features[0].getBundles().get(0).getLocation());
-        assertTrue(features[0].getBundles().get(0).isStart());
-        return svc;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testUninstallFeatureWithTwoVersions() throws Exception {
-        URI uri  = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <feature name='f1' version='0.1'><bundle>bundle-0.1</bundle></feature>"
-                + "  <feature name='f1' version='0.2'><bundle>bundle-0.1</bundle></feature>" 
-                + "</features>");
-
-        Bundle bundlef101 = createDummyBundle(12345L, "bundle-0.1", headers());
-
-        BundleManager bundleManager = EasyMock.createMock(BundleManager.class);
-        BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
-        expect(bundleManager.getDataFile(EasyMock.anyObject(String.class))).andReturn(dataFile).anyTimes();
-        expect(bundleManager.installBundleIfNeeded("bundle-0.1", 0, null)).andReturn(new BundleInstallerResult(bundlef101, true));
-        expect(bundleManager.installBundleIfNeeded("bundle-0.1", 0, null)).andReturn(new BundleInstallerResult(bundlef101, false));
-        expect(bundleManager.getBundleContext()).andReturn(bundleContext);
-        ignoreRefreshes(bundleManager);
-        bundleManager.uninstall(Collections.EMPTY_LIST, true);
-        EasyMock.expectLastCall().times(2);
-        
-        
-        replay(bundleManager);
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);
-        svc.addRepository(uri);
-
-        try {
-            svc.uninstallFeature("f1");
-            fail("Uninstall should have failed as feature is not installed");
-        } catch (Exception e) {
-            // ok
-        }
-
-        svc.installFeature("f1", "0.1", EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
-        svc.installFeature("f1", "0.2", EnumSet.of(FeaturesService.Option.NoAutoRefreshBundles));
-
-        try {
-            svc.uninstallFeature("f1");
-            fail("Uninstall should have failed as feature is installed in multiple versions");
-        } catch (Exception e) {
-            // ok
-        }
-
-        svc.uninstallFeature("f1", "0.1");
-        svc.uninstallFeature("f1");
-        verify(bundleManager);
-    }    
-    
-    @Test
-    public void testAddAndRemoveRepository() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <feature name='f1' version='0.1'><bundle>bundle-f1-0.1</bundle></feature>"
-                + "</features>");
-
-        BundleManager bundleManager = EasyMock.createMock(BundleManager.class);
-        expect(bundleManager.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
-
-        replay(bundleManager);
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);
-        EasyMock.verify(bundleManager);
-
-        svc.addRepository(uri);                                                     
-        svc.removeRepository(uri);
-        verify(bundleManager);
-    }
-
-    // Tests install of a Repository that includes a feature
-    // with a feature dependency
-    // The dependant feature is in the same repository
-    // Tests uninstall of features
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testInstallFeatureWithDependantFeatures() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                                 + "  <feature name='f1' version='0.1'><feature version='0.1'>f2</feature><bundle>bundle-f1-0.1</bundle></feature>"
-                                 + "  <feature name='f2' version='0.1'><bundle>bundle-f2-0.1</bundle></feature>"
-                                 + "</features>");
-
-        BundleManager bundleManager = EasyMock.createMock(BundleManager.class);
-        BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
-        Bundle bundlef101 = createDummyBundle(12345L, "bundle-f1-0.1", headers());
-        Bundle bundlef201 = createDummyBundle(54321L, "bundle-f2-0.1", headers());
-        expect(bundleManager.getDataFile(EasyMock.<String> anyObject())).andReturn(dataFile).anyTimes();
-        expect(bundleManager.installBundleIfNeeded("bundle-f1-0.1", 0, null))
-            .andReturn(new BundleInstallerResult(bundlef101, true));
-        expect(bundleManager.installBundleIfNeeded("bundle-f2-0.1", 0, null))
-            .andReturn(new BundleInstallerResult(bundlef201, true));
-        expect(bundleManager.getBundleContext()).andReturn(bundleContext).anyTimes();
-        expect(bundleContext.getBundle(12345)).andReturn(bundlef101).anyTimes();
-        ignoreRefreshes(bundleManager);
-        bundleManager.uninstall(Collections.EMPTY_LIST, true);
-       
-        EasyMock.expectLastCall().anyTimes();
-        replay(bundleManager);
-        
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);
-        svc.addRepository(uri);
-        svc.installFeature("f1", "0.1");
-        svc.uninstallFeature("f1", "0.1");
-        verify(bundleManager);
-
-    }
-
-    @SuppressWarnings("unchecked")
-    private BundleManager prepareBundleManagerForInstallUninstall(String bundleUri, String bundlename) throws Exception {
-        BundleManager bundleManager = EasyMock.createMock(BundleManager.class);
-        BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
-        Bundle installedBundle = createDummyBundle(12345L, bundlename, headers());
-        expect(bundleManager.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
-        expect(bundleManager.installBundleIfNeeded(bundleUri, 0, null)).andReturn(new BundleInstallerResult(installedBundle, true));
-        expect(bundleManager.getBundleContext()).andReturn(bundleContext);
-        ignoreRefreshes(bundleManager);
-        bundleManager.uninstall(Collections.EMPTY_LIST, true);
-        EasyMock.expectLastCall().times(2);
-        return bundleManager;
-    }
-
-    @Test
-    public void testInstallFeatureWithDependantFeaturesAndVersionWithoutPreinstall() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <feature name='f1' version='0.1'><feature version='0.1'>f2</feature></feature>"
-                + "  <feature name='f2' version='0.1'><bundle>bundle-0.1</bundle></feature>"
-                + "  <feature name='f2' version='0.2'><bundle>bundle-0.2</bundle></feature>"
-                + "</features>");
-
-        BundleManager bundleManager = prepareBundleManagerForInstallUninstall("bundle-0.1", "bundle-0.1");
-
-        replay(bundleManager);
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);
-        svc.addRepository(uri);
-        svc.installFeature("f1", "0.1");
-        svc.uninstallFeature("f1", "0.1");
-        svc.uninstallFeature("f2", "0.1");
-        verify(bundleManager);
-    }
-
-    @Test
-    public void testInstallFeatureWithDependantFeaturesAndNoVersionWithoutPreinstall() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <feature name='f1' version='0.1'><feature>f2</feature></feature>"
-                + "  <feature name='f2' version='0.1'><bundle>bundle-0.1</bundle></feature>"
-                + "  <feature name='f2' version='0.2'><bundle>bundle-0.2</bundle></feature>"
-                + "</features>");
-
-        BundleManager bundleManager = prepareBundleManagerForInstallUninstall("bundle-0.2", "bundle-0.2");
-
-        replay(bundleManager);
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);
-        svc.addRepository(uri);
-        svc.installFeature("f1", "0.1");
-        svc.uninstallFeature("f1", "0.1");
-        svc.uninstallFeature("f2", "0.2");
-        verify(bundleManager);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testInstallFeatureWithDependantFeaturesAndRangeWithoutPreinstall() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <feature name='f1' version='0.1'><feature version='[0.1,0.3)'>f2</feature></feature>"
-                + "  <feature name='f2' version='0.1'><bundle>bundle-0.1</bundle></feature>"
-                + "  <feature name='f2' version='0.2'><bundle>bundle-0.2</bundle></feature>"
-                + "</features>");
-
-        BundleManager bundleManager = EasyMock.createMock(BundleManager.class);
-        BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
-        Bundle bundleVer02 = createDummyBundle(54321L, "bundleVer02", headers());
-        expect(bundleManager.getDataFile(EasyMock.<String>anyObject())).andReturn(dataFile).anyTimes();
-        expect(bundleManager.installBundleIfNeeded("bundle-0.2", 0, null)).andReturn(new BundleInstallerResult(bundleVer02, true));
-        expect(bundleManager.getBundleContext()).andReturn(bundleContext);
-        ignoreRefreshes(bundleManager);
-        bundleManager.uninstall(Collections.EMPTY_LIST, true);
-
-        EasyMock.expectLastCall().times(2);
-
-        replay(bundleManager);
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(bundleManager);
-        svc.addRepository(uri);
-        svc.installFeature("f1", "0.1");
-        svc.uninstallFeature("f1", "0.1");
-        svc.uninstallFeature("f2", "0.2");
-        verify(bundleManager);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Test
-    public void testInstallFeatureWithDependantFeaturesAndRangeWithPreinstall() throws Exception {
-        String bundleVer01Uri = "bundle-0.1";
-        String bundleVer02Uri = "bundle-0.2";
-
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "<feature name='f1' version='0.1'><feature version='[0.1,0.3)'>f2</feature></feature>"
-                + "  <feature name='f2' version='0.1'><bundle>%s</bundle></feature>"
-                + "  <feature name='f2' version='0.2'><bundle>%s</bundle></feature>"
-                + "</features>", bundleVer01Uri, bundleVer02Uri);
-        
-        BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
-        expect(bundleContext.getBundles()).andReturn(new Bundle[0]);
-        replay(bundleContext);
-
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(null, bundleContext, new Storage(), null, null, null, null);
-        svc.addRepository(uri);
-        svc.installFeature("f2", "0.1");
-        svc.installFeature("f1", "0.1");
-        svc.uninstallFeature("f1", "0.1");
-        svc.uninstallFeature("f2", "0.1");
-
-        verify(bundleContext);
-    }
-    */
-
-    @Test
-    public void testGetFeaturesShouldHandleDifferentVersionPatterns() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <feature name='f1' version='0.1'><feature version='[0.1,0.3)'>f2</feature></feature>"
-                + "  <feature name='f2' version='0.1'><bundle>bundle1</bundle></feature>"
-                + "  <feature name='f2' version='0.2'><bundle>bundle2</bundle></feature>"
-                + "</features>");
-
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(null, null, new Storage(), null, null, null, null, null, null, null);
-        svc.addRepository(uri);
-
-        assertEquals(feature("f2", "0.2"), svc.getFeature("f2", "[0.1,0.3)"));
-        assertEquals(feature("f2", "0.2"), svc.getFeature("f2", "0.0.0"));
-        assertEquals(feature("f2", "0.2"), svc.getFeature("f2", "0.2"));
-        assertNull(svc.getFeature("f2", "0.3"));
-    }
-
-    @Test
-    public void testInstallBatchFeatureWithFailure() throws Exception {
-        String bundle1Uri = "file:bundle1";
-        String bundle2Uri = "file:bundle2";
-
-        URI uri = createTempRepo(FEATURE_WITH_INVALID_BUNDLE, bundle1Uri, bundle2Uri);
-        
-        BundleContext bundleContext = EasyMock.createMock(BundleContext.class);
-        expect(bundleContext.getBundles()).andReturn(new Bundle[0]);
-        replay(bundleContext);
-
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(null, bundleContext, new Storage(), null, null, null, null, null, null, null);
-        svc.addRepository(uri);
-        try {
-            List<String> features = new ArrayList<String>();
-            for (Feature feature : svc.listFeatures()) {
-                features.add(feature.getId());
-            }
-            Collections.reverse(features);
-            svc.installFeatures(new CopyOnWriteArraySet<String>(features),
-                                EnumSet.noneOf(FeaturesService.Option.class));
-            fail("Call should have thrown an exception");
-        } catch (MalformedURLException e) {
-        }
-        verify(bundleContext);
-    }
-
-    /**
-     * This test checks schema validation of submited uri.
-     */
-    @Test
-    public void testSchemaValidation() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <featur><bundle>somebundle</bundle></featur></features>");
-
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(null, null, new Storage(), null, null, null, null, null, null, null);
-        try {
-            svc.addRepository(uri);
-            fail("exception expected");
-        } catch (Exception e) {
-            assertTrue(e.getMessage().contains("Unable to validate"));
-        }
-    }
-
-    /**
-     * This test checks feature service behavior with old, non namespaced descriptor.
-     */
-    @Test
-    public void testLoadOldFeatureFile() throws Exception {
-        URI uri = createTempRepo("<features name='test' xmlns='http://karaf.apache.org/xmlns/features/v1.0.0'>"
-                + "  <feature name='f1'><bundle>file:bundle1</bundle><bundle>file:bundle2</bundle></feature>"
-                + "</features>");
-
-        FeaturesServiceImpl svc = new FeaturesServiceImpl(null, null, new Storage(), null, null, null, null, null, null, null);
-        svc.addRepository(uri);
-        Feature feature = svc.getFeature("f1");
-        Assert.assertNotNull("No feature named fi found", feature);        
-        List<BundleInfo> bundles = feature.getBundles();
-        Assert.assertEquals(2, bundles.size());
-    }
-
-    static class Storage extends StateStorage {
-        @Override
-        protected InputStream getInputStream() throws IOException {
-            return null;
-        }
-        @Override
-        protected OutputStream getOutputStream() throws IOException {
-            return null;
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java b/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
deleted file mode 100644
index 164dc79..0000000
--- a/features/core/src/test/java/org/apache/karaf/features/RepositoryTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features;
-
-import java.net.URI;
-
-import junit.framework.TestCase;
-import org.apache.karaf.features.internal.resolver.FeatureResource;
-import org.apache.karaf.features.internal.service.RepositoryImpl;
-import org.osgi.resource.Resource;
-
-
-public class RepositoryTest extends TestCase {
-
-    public void testLoad() throws Exception {
-        RepositoryImpl r = new RepositoryImpl(getClass().getResource("repo1.xml").toURI());
-        // Check repo
-        URI[] repos = r.getRepositories();
-        assertNotNull(repos);
-        assertEquals(1, repos.length);
-        assertEquals(URI.create("urn:r1"), repos[0]);
-        // Check features
-        Feature[] features = r.getFeatures();
-        assertNotNull(features);
-        assertEquals(3, features.length);
-        assertNotNull(features[0]);
-        assertEquals("f1", features[0].getName());
-        assertNotNull(features[0].getConfigurations());
-        assertEquals(1, features[0].getConfigurations().size());
-        assertNotNull(features[0].getConfigurations().get("c1"));
-        assertEquals(1, features[0].getConfigurations().get("c1").size());
-        assertEquals("v", features[0].getConfigurations().get("c1").get("k"));
-        assertNotNull(features[0].getDependencies());
-        assertEquals(0, features[0].getDependencies().size());
-        assertNotNull(features[0].getBundles());
-        assertEquals(2, features[0].getBundles().size());
-        assertEquals("b1", features[0].getBundles().get(0).getLocation());
-        assertEquals("b2", features[0].getBundles().get(1).getLocation());
-        assertNotNull(features[1]);
-        assertEquals("f2", features[1].getName());
-        assertNotNull(features[1].getConfigurations());
-        assertEquals(0, features[1].getConfigurations().size());
-        assertNotNull(features[1].getDependencies());
-        assertEquals(1, features[1].getDependencies().size());
-        assertEquals("f1" + org.apache.karaf.features.internal.model.Feature.SPLIT_FOR_NAME_AND_VERSION + org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION, features[1].getDependencies().get(0).toString());
-        assertNotNull(features[1].getBundles());
-        assertEquals(1, features[1].getBundles().size());
-        assertEquals("b3", features[1].getBundles().get(0).getLocation());
-        assertEquals("f3", features[2].getName());
-        assertNotNull(features[2].getConfigurationFiles());
-        assertEquals(1, features[2].getConfigurationFiles().size());
-        assertEquals("cf1", features[2].getConfigurationFiles().get(0).getFinalname());
-        assertEquals(true, features[2].getConfigurationFiles().get(0).isOverride());
-        assertEquals("cfloc", features[2].getConfigurationFiles().get(0).getLocation());
-    }
-
-    public void testLoadFormattedRepo() throws Exception {
-        RepositoryImpl r = new RepositoryImpl(getClass().getResource("repo2.xml").toURI());
-        // Check repo
-        URI[] repos = r.getRepositories();
-        assertNotNull(repos);
-        assertEquals(1, repos.length);
-        assertEquals(URI.create("urn:r1"), repos[0]);
-        // Check features
-        Feature[] features = r.getFeatures();
-        assertNotNull(features);
-        assertEquals(3, features.length);
-        assertNotNull(features[0]);
-        assertEquals("f1", features[0].getName());
-        assertNotNull(features[0].getConfigurations());
-        assertEquals(1, features[0].getConfigurations().size());
-        assertNotNull(features[0].getConfigurations().get("c1"));
-        assertEquals(1, features[0].getConfigurations().get("c1").size());
-        assertEquals("v", features[0].getConfigurations().get("c1").get("k"));
-        assertNotNull(features[0].getDependencies());
-        assertEquals(0, features[0].getDependencies().size());
-        assertNotNull(features[0].getBundles());
-        assertEquals(2, features[0].getBundles().size());
-        assertEquals("b1", features[0].getBundles().get(0).getLocation());
-        assertEquals("b2", features[0].getBundles().get(1).getLocation());
-        assertNotNull(features[1]);
-        assertEquals("f2", features[1].getName());
-        assertNotNull(features[1].getConfigurations());
-        assertEquals(0, features[1].getConfigurations().size());
-        assertNotNull(features[1].getDependencies());
-        assertEquals(1, features[1].getDependencies().size());
-        assertEquals("f1" + org.apache.karaf.features.internal.model.Feature.SPLIT_FOR_NAME_AND_VERSION + org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION, features[1].getDependencies().get(0).toString());
-        assertNotNull(features[1].getBundles());
-        assertEquals(1, features[1].getBundles().size());
-        assertEquals("b3", features[1].getBundles().get(0).getLocation());
-        assertEquals("f3", features[2].getName());
-        assertNotNull(features[2].getConfigurationFiles());
-        assertEquals(1, features[2].getConfigurationFiles().size());
-        assertEquals("cf1", features[2].getConfigurationFiles().get(0).getFinalname());
-        assertEquals(true, features[2].getConfigurationFiles().get(0).isOverride());
-        assertEquals("cfloc", features[2].getConfigurationFiles().get(0).getLocation());
-    }
-
-    public void testLoadRepoWithCapabilitiesAndRequirement() throws Exception {
-        RepositoryImpl r = new RepositoryImpl(getClass().getResource("repo3.xml").toURI());
-        // Check features
-        Feature[] features = r.getFeatures();
-        assertNotNull(features);
-        assertEquals(1, features.length);
-        assertNotNull(features[0]);
-        assertEquals("f1", features[0].getName());
-        assertEquals(1, features[0].getCapabilities().size());
-        assertEquals("cap", features[0].getCapabilities().get(0).getValue().trim());
-        assertEquals(1, features[0].getRequirements().size());
-        assertEquals("req", features[0].getRequirements().get(0).getValue().trim());
-
-        Resource res = FeatureResource.build(features[0], null, null);
-        assertEquals(1, res.getCapabilities("cap").size());
-        assertEquals(1, res.getRequirements("req").size());
-    }
-
-    public void testShowWrongUriInException() throws Exception {
-        String uri = "src/test/resources/org/apache/karaf/shell/features/repo1.xml";
-        RepositoryImpl r = new RepositoryImpl(new URI(uri));
-        try {
-            r.load();
-        } catch (Exception e) {
-            assertTrue(e.getMessage().contains(uri));
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/test/java/org/apache/karaf/features/TestBase.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/TestBase.java b/features/core/src/test/java/org/apache/karaf/features/TestBase.java
deleted file mode 100644
index ac8f3d9..0000000
--- a/features/core/src/test/java/org/apache/karaf/features/TestBase.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features;
-
-import java.util.Arrays;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Map;
-import java.util.Set;
-
-import org.easymock.EasyMock;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.startlevel.BundleStartLevel;
-
-import static java.util.Arrays.asList;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-
-public class TestBase {
-    public Bundle createDummyBundle(long id, final String symbolicName, Dictionary<String,String> headers) {
-        Bundle bundle = EasyMock.createNiceMock(Bundle.class);
-        
-        // Be aware that this means all bundles are treated as different
-        expect(bundle.compareTo(EasyMock.<Bundle>anyObject())).andReturn(1).anyTimes();
-
-        expect(bundle.getBundleId()).andReturn(id).anyTimes();
-        expect(bundle.getSymbolicName()).andReturn(symbolicName).anyTimes();
-        expect(bundle.getHeaders()).andReturn(headers).anyTimes();
-        BundleStartLevel sl = EasyMock.createMock(BundleStartLevel.class);
-        expect(sl.isPersistentlyStarted()).andReturn(true).anyTimes();
-        expect(bundle.adapt(BundleStartLevel.class)).andReturn(sl).anyTimes();
-        replay(bundle, sl);
-        return bundle;
-    }
-    
-    public Dictionary<String, String> headers(String ... keyAndHeader) {
-        Hashtable<String, String> headersTable = new Hashtable<String, String>();
-        int c=0;
-        while (c < keyAndHeader.length) {
-            String key = keyAndHeader[c++];
-            String value = keyAndHeader[c++];
-            headersTable.put(key, value);
-        }
-        return headersTable;
-    }
-    
-    public Map<String, Map<String, Feature>> features(Feature ... features) {
-        final Map<String, Map<String, Feature>> featuresMap = new HashMap<String, Map<String,Feature>>();
-        for (Feature feature : features) {
-            Map<String, Feature> featureVersion = getOrCreate(featuresMap, feature);
-            featureVersion.put(feature.getVersion(), feature);
-        }
-        return featuresMap;
-    }
-    
-    private Map<String, Feature> getOrCreate(final Map<String, Map<String, Feature>> featuresMap, Feature feature) {
-        Map<String, Feature> featureVersion = featuresMap.get(feature.getName());
-        if (featureVersion == null) {
-            featureVersion = new HashMap<String, Feature>();
-            featuresMap.put(feature.getName(), featureVersion);
-        }
-        return featureVersion;
-    }
-
-    public Feature feature(String name) {
-        return feature(name, null);
-    }
-
-    public Feature feature(String name, String version) {
-        return new org.apache.karaf.features.internal.model.Feature(name, version);
-    }
-    
-    public Set<Bundle> setOf(Bundle ... elements) {
-        return new HashSet<Bundle>(Arrays.asList(elements));
-    }
-    
-    public Set<Long> setOf(Long ... elements) {
-        return new HashSet<Long>(Arrays.asList(elements));
-    }
-    
-    public Set<String> setOf(String ... elements) {
-        return new HashSet<String>(asList(elements));
-    }
-    
-    public Set<Feature> setOf(Feature ... elements) {
-        return new HashSet<Feature>(Arrays.asList(elements));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/karaf/blob/999f4970/features/core/src/test/java/org/apache/karaf/features/internal/service/BootFeaturesInstallerTest.java
----------------------------------------------------------------------
diff --git a/features/core/src/test/java/org/apache/karaf/features/internal/service/BootFeaturesInstallerTest.java b/features/core/src/test/java/org/apache/karaf/features/internal/service/BootFeaturesInstallerTest.java
deleted file mode 100644
index 31f4f29..0000000
--- a/features/core/src/test/java/org/apache/karaf/features/internal/service/BootFeaturesInstallerTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.karaf.features.internal.service;
-
-import static java.util.Arrays.asList;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.junit.Assert.fail;
-
-import java.net.URI;
-import java.util.EnumSet;
-
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeaturesService.Option;
-import org.apache.karaf.features.TestBase;
-import org.easymock.EasyMock;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class BootFeaturesInstallerTest extends TestBase {
-
-    @Test
-    @SuppressWarnings("unchecked")
-    public void testParser() {
-        BootFeaturesInstaller installer = new BootFeaturesInstaller(null, null, "", "", false);
-        Assert.assertEquals(asList(setOf("test1", "test2"),setOf("test3")), installer.parseBootFeatures("(test1, test2), test3"));
-        Assert.assertEquals(asList(setOf("test1", "test2", "test3")), installer.parseBootFeatures("test1, test2, test3"));
-    }
-    
-    @Test
-    public void testDefaultBootFeatures() throws Exception  {
-        FeaturesServiceImpl impl = EasyMock.createMock(FeaturesServiceImpl.class);
-
-        impl.installFeatures(setOf("config", "standard", "region"), EnumSet.of(Option.NoFailOnFeatureNotFound));
-        EasyMock.expectLastCall();
-
-        impl.bootDone();
-        EasyMock.expectLastCall();
-
-        replay(impl);
-        BootFeaturesInstaller bootFeatures = new BootFeaturesInstaller(null, impl, "", "config,standard,region", false);
-        bootFeatures.installBootFeatures();
-        EasyMock.verify(impl);        
-    }
-
-    @Test
-    public void testStagedBoot() throws Exception  {
-        FeaturesServiceImpl impl = EasyMock.createStrictMock(FeaturesServiceImpl.class);
-
-        impl.installFeatures(setOf("transaction"), EnumSet.of(Option.NoFailOnFeatureNotFound));
-        EasyMock.expectLastCall();
-        impl.installFeatures(setOf("ssh"), EnumSet.of(Option.NoFailOnFeatureNotFound));
-        EasyMock.expectLastCall();
-
-        impl.bootDone();
-        EasyMock.expectLastCall();
-
-        replay(impl);
-        BootFeaturesInstaller bootFeatures = new BootFeaturesInstaller(null, impl , "", "(transaction), ssh", false);
-        bootFeatures.installBootFeatures();
-        EasyMock.verify(impl);        
-    }
-
-    @Test
-    public void testStartDoesNotFailWithOneInvalidUri() throws Exception {
-        FeaturesServiceImpl impl = EasyMock.createStrictMock(FeaturesServiceImpl.class);
-        impl.addRepository(URI.create("mvn:inexistent/features/1.0/xml/features"));
-        EasyMock.expectLastCall().andThrow(new IllegalArgumentException());
-
-        impl.bootDone();
-        EasyMock.expectLastCall();
-
-        replay(impl);
-        BootFeaturesInstaller bootFeatures = new BootFeaturesInstaller(null, impl, "mvn:inexistent/features/1.0/xml/features", "", false);
-        bootFeatures.installBootFeatures();
-        EasyMock.verify(impl);
-    }
-
-}