http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/feature/src/main/resources/feature.xml
----------------------------------------------------------------------
diff --git a/feature/src/main/resources/feature.xml 
b/feature/src/main/resources/feature.xml
deleted file mode 100644
index ff8c3b7..0000000
--- a/feature/src/main/resources/feature.xml
+++ /dev/null
@@ -1,469 +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.
--->
-<features name="jclouds-${project.version}" 
xmlns="http://karaf.apache.org/xmlns/features/v1.0.0";>
-
-    <feature name='jclouds-guice' description='Jclouds - Google Guice' 
version='${project.version}' resolver='(obr)'>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/${javax.inject.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aopalliance/${aopalliance.bundle.version}</bundle>
-        <bundle>mvn:com.google.inject/guice/${guice.version}</bundle>
-        
<bundle>mvn:com.google.inject.extensions/guice-assistedinject/${guice.version}</bundle>
-        
<bundle>mvn:com.google.inject.extensions/guice-multibindings/${guice.version}</bundle>
-    </feature>
-
-    <feature name='jclouds' description='jclouds' version='${project.version}' 
resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-guice</feature>
-        <bundle 
dependency='true'>mvn:com.google.guava/guava/${guava.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oauth-commons/${net.oauth.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jersey-core/${jersey.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:com.google.code.gson/gson/${gson.version}</bundle>
-        <bundle>mvn:org.apache.jclouds/jclouds-core/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-blobstore' description='jclouds Blobstore' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds</feature>
-        
<bundle>mvn:org.apache.jclouds/jclouds-blobstore/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-compute' description='jclouds Compute' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-log4j/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds/jclouds-scriptbuilder/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds/jclouds-compute/${jclouds.version}</bundle>
-    </feature>
-
-    <!-- APIS -->
-    <feature name='jclouds-api-atmos' description='jclouds - API - Atmos' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        <bundle>mvn:org.apache.jclouds.api/atmos/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-filesystem' description='jclouds - API - 
FileSystem' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        
<bundle>mvn:org.apache.jclouds.api/filesystem/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-elasticstack' description='jclouds - API - 
Elasticstack' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-byon' description='jclouds - API - Byon' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.api/byon/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-openstack-swift' description='jclouds - API - 
OpenStack Swift' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        <feature 
version='${project.version}'>jclouds-api-openstack-keystone</feature>
-        
<bundle>mvn:org.apache.jclouds.api/openstack-swift/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-openstack-nova' description='jclouds - API - 
OpenStack Nova' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature 
version='${project.version}'>jclouds-api-openstack-keystone</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.api/openstack-nova/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-openstack-keystone' description='jclouds - API 
- OpenStack Keystone' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds</feature>
-        
<bundle>mvn:org.apache.jclouds.api/openstack-keystone/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-openstack-cinder' description='jclouds - API - 
OpenStack Cinder' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature 
version='${project.version}'>jclouds-api-openstack-keystone</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.api/openstack-cinder/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-s3" description="S3 API" 
version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        <feature version='${project.version}'>jclouds-api-sts</feature>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.java-xmlbuilder/${java-xmlbuilder.bundle.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.api/s3/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-sqs" description="SQS API" 
version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-api-sts</feature>
-        <bundle>mvn:org.apache.jclouds.api/sqs/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-ec2" description="EC2 API" 
version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature version='${project.version}'>jclouds-api-sts</feature>
-        <bundle>mvn:org.apache.jclouds.api/ec2/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-cloudstack" description="Cloudstack API" 
version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.api/cloudstack/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-rackspace-cloudidentity" description="Rackspace 
Cloud Identity API" version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature 
version='${project.version}'>jclouds-api-openstack-keystone</feature>
-        
<bundle>mvn:org.apache.jclouds.api/rackspace-cloudidentity/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-rackspace-clouddns" description="Rackspace 
Cloud DNS API" version="${project.version}" resolver="(obr)">
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        
<bundle>mvn:org.apache.jclouds.api/rackspace-clouddns/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-chef" description="Jclouds - API - Chef" 
version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.api/chef/${jclouds.chef.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-sts" description="Jclouds - API - STS" 
version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds</feature>
-        <bundle>mvn:org.apache.jclouds.api/sts/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-api-route53" description="Jclouds - API - Route53" 
version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-api-sts</feature>
-        <bundle>mvn:org.apache.jclouds.api/route53/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-api-cloudsigma2' description='jclouds - API - 
CloudSigma v2' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.labs/cloudsigma2/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-aws-cloudwatch' description='Amazon Web Service - 
Cloudwatch' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-api-sts</feature>
-        
<bundle>mvn:org.apache.jclouds.api/cloudwatch/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/aws-cloudwatch/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-aws-ec2' description='Amazon Web Service - EC2' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-api-ec2</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/aws-ec2/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-aws-route53' description='Amazon Web Service - 
Route 53' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-api-route53</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/aws-route53/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-aws-s3' description='Amazon Web Service - S3' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-api-s3</feature>
-        <bundle 
dependency='true'>mvn:org.bouncycastle/bcprov-ext-jdk15on/${bcprov.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-bouncycastle/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:io.netty/netty/${netty.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient.version}</bundle>
-        <bundle 
dependency='true'>mvn:joda-time/joda-time/${joda.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-joda/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-netty/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-enterprise/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-apachehc/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/aws-s3/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-aws-sqs' description='Amazon Web Service - SQS' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-api-sqs</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/aws-sqs/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-aws-sts' description='Amazon Web Service - STS' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-api-sts</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/aws-sts/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-azureblob' description='Azureblob' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/azureblob/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-b2' description='Backblaze B2' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        <bundle>mvn:org.apache.jclouds.labs/b2/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-dynect' description='DynECT Managed DNS' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/dynect/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudloadbalancers-us' description='Cloud 
Load Balancers US' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds/jclouds-loadbalancer/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds/jclouds-scriptbuilder/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds/jclouds-compute/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.api/rackspace-cloudloadbalancers/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudloadbalancers-us/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudloadbalancers-uk' description='Cloud 
Load Balancers UK' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/openstack-common/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds/jclouds-loadbalancer/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds/jclouds-scriptbuilder/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds/jclouds-compute/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.api/rackspace-cloudloadbalancers/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudloadbalancers-uk/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudservers-us' description='Rackspace 
Cloudservers US' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature 
version='${project.version}'>jclouds-api-openstack-nova</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudservers-us/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudservers-uk' description='Rackspace 
Cloudservers UK' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature 
version='${project.version}'>jclouds-api-openstack-nova</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudservers-uk/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-clouddns-us' description='Racksapce Cloud 
DNS US' version='${project.version}' resolver='(obr)'>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-clouddns</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-clouddns-us/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-clouddns-uk' description='Racksapce Cloud 
DNS UK' version='${project.version}' resolver='(obr)'>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-clouddns</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-clouddns-uk/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudblockstorage-us' 
description='Racksapce Cloud Block Storage US' version='${project.version}' 
resolver='(obr)'>
-        <feature 
version='${project.version}'>jclouds-api-openstack-cinder</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudblockstorage-us/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudblockstorage-uk' 
description='Racksapce Cloud Block Storage UK' version='${project.version}' 
resolver='(obr)'>
-        <feature 
version='${project.version}'>jclouds-api-openstack-cinder</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudblockstorage-uk/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudfiles-uk' description='Rackspace 
Cloud Files UK' version='${project.version}' resolver='(obr)'>
-        <feature 
version='${project.version}'>jclouds-api-openstack-swift</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/rackspace-cloudfiles/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudfiles-uk/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-rackspace-cloudfiles-us' description='Rackspace 
Cloud Files US' version='${project.version}' resolver='(obr)'>
-        <feature 
version='${project.version}'>jclouds-api-openstack-swift</feature>
-        <feature 
version='${project.version}'>jclouds-api-rackspace-cloudidentity</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/rackspace-cloudfiles/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/rackspace-cloudfiles-us/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-elastichosts-lon-b' description='Elastichosts 
Bluesquare London' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/elastichosts-lon-b/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-elastichosts-lon-p' description='Elastichosts Peer1 
London' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/elastichosts-lon-p/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-elastichosts-sat-p' description='Elastichosts Peer1 
San Antonio' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/elastichosts-sat-p/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-elastichosts-lax-p' description='Elastichosts Peer1 
Los Angeles' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/elastichosts-lax-p/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-elastichosts-tor-p' description='Elastichosts Peer1 
Toronto' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/elastichosts-tor-p/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-gogrid' description='GoGrid' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/gogrid/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-go2cloud-jhb1' description='Go2Cloud implementation 
targeted to Johannesburg1' version='${project.version}' resolver='(obr)'>
-        <feature 
version='${project.version}'>jclouds-api-elasticstack</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/go2cloud-jhb1/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-google-cloud-storage' description='Google Cloud 
Storage' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/oauth/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/googlecloud/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.labs/google-cloud-storage/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-glesys' description='GleSYS' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/glesys/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-openhosting-east1' description='Open Hosting for 
East1' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/openhosting-east1/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-digitalocean2' description='Components to access 
DigitalOcean v2' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/oauth/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/digitalocean2/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-google-compute-engine' description='Components to 
access Google Compute Engine' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/oauth/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/googlecloud/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/google-compute-engine/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-azurecompute-arm' description='Components to access 
Azure Compute ARM' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature version='${project.version}'>jclouds-azureblob</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/oauth/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${okio.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${okhttp.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-okhttp/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.labs/azurecompute-arm/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-vagrant' description='Components to access Vagrant' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:name.neykov/vagrant-java-bindings/${vagrant-java-bindings.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.labs/vagrant/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-packet' description='Components to access Packet' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle>mvn:org.apache.jclouds.labs/packet/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-profitbricks' description='Components to access 
ProfitBricks' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/profitbricks/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-serverlove-z1-man' description='Serverlove 
implementation targeted to Manchester' version='${project.version}' 
resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/serverlove-z1-man/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-skalicloud-sdg-my' description='SkaliCloud 
implementation targeted to Malaysia' version='${project.version}' 
resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.api/elasticstack/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.provider/skalicloud-sdg-my/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-softlayer' description='Components to access 
SoftLayer' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        
<bundle>mvn:org.apache.jclouds.provider/softlayer/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-cloudsigma2-hnl' description='CloudSigma v2 
Honolulu' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.labs/cloudsigma2/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.labs/cloudsigma2-hnl/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-cloudsigma2-lvs' description='CloudSigma v2 Las 
Vegas' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.labs/cloudsigma2/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.labs/cloudsigma2-lvs/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-cloudsigma2-sjc' description='CloudSigma v2 San 
Jose' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.labs/cloudsigma2/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.labs/cloudsigma2-sjc/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-cloudsigma2-wdc' description='CloudSigma v2 
Washington DC' version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.labs/cloudsigma2/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.labs/cloudsigma2-wdc/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name='jclouds-cloudsigma2-zrh' description='CloudSigma v2 Zurich' 
version='${project.version}' resolver='(obr)'>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.labs/cloudsigma2/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.labs/cloudsigma2-zrh/${jclouds.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-services" description="OSGi Service Factories for 
jclouds" version="${project.version}" resolver="(obr)">
-        <configfile 
finalname="${karaf.etc}/org.apache.jclouds.credentials.cfg">mvn:org.apache.jclouds.karaf/jclouds-karaf/${project.version}/cfg/credentials</configfile>
-        <feature version='${project.version}'>jclouds-compute</feature>
-        <feature version='${project.version}'>jclouds-blobstore</feature>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.karaf.bundles/jsch-agentproxy-jsch/${project.version}</bundle>
-        <bundle 
dependency='true'>mvn:com.jcraft/jsch.agentproxy.connector-factory/${jsch.agentproxy.version}</bundle>
-        <bundle 
dependency='true'>mvn:com.jcraft/jsch.agentproxy.usocket-nc/${jsch.agentproxy.version}</bundle>
-        <bundle 
dependency='true'>mvn:com.jcraft/jsch.agentproxy.sshagent/${jsch.agentproxy.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib.bundle.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.bouncycastle/bcprov-ext-jdk15on/${bcprov.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-bouncycastle/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-slf4j/${jclouds.version}</bundle>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.common/googlecloud/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.driver/jclouds-jsch/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.driver/jclouds-log4j/${jclouds.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.karaf/core/${project.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.karaf/cache/${project.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.karaf/recipe/${project.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.karaf/services/${project.version}</bundle>
-    </feature>
-
-    <feature name="jclouds-commands" description="Karaf Commands for jclouds" 
version="${project.version}" resolver="(obr)">
-        <configfile 
finalname="/etc/org.apache.jclouds.shell.cfg">mvn:org.apache.jclouds.karaf/jclouds-karaf/${project.version}/cfg/shell</configfile>
-        <feature version='${project.version}'>jclouds-services</feature>
-        <bundle 
dependency="true">mvn:org.codehaus.groovy/groovy/${groovy.version}</bundle>
-        <bundle 
dependency="true">mvn:org.codehaus.groovy/groovy-jsr223/${groovy.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.karaf/core/${project.version}</bundle>
-        <bundle>mvn:org.apache.jclouds.karaf/recipe/${project.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.karaf/commands/${project.version}</bundle>
-    </feature>
-
-
-    <feature name="jclouds-chef" description="jclouds Chef Services and 
Commands" version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds-api-chef</feature>
-        <feature version='${project.version}'>jclouds-commands</feature>
-        <bundle 
dependency='true'>mvn:org.apache.jclouds.driver/jclouds-slf4j/${jclouds.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.karaf.chef/cache/${project.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.karaf.chef/services/${project.version}</bundle>
-        
<bundle>mvn:org.apache.jclouds.karaf.chef/commands/${project.version}</bundle>
-    </feature>
-
-     <feature name="jclouds-url-handler" description="Url Handler for jclouds 
Blobs" version="${project.version}" resolver="(obr)">
-        <feature version='${project.version}'>jclouds</feature>
-        
<bundle>mvn:org.apache.jclouds.karaf/urlhandler/${project.version}</bundle>
-    </feature>
-
-</features>

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/pom.xml
----------------------------------------------------------------------
diff --git a/itests/pom.xml b/itests/pom.xml
index 19a1f32..8381ac5 100644
--- a/itests/pom.xml
+++ b/itests/pom.xml
@@ -1,204 +1,167 @@
 <?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.
+    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.
 -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-  <parent>
-    <artifactId>jclouds-karaf</artifactId>
-    <groupId>org.apache.jclouds</groupId>
-    <version>2.1.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <groupId>org.apache.jclouds.karaf</groupId>
-  <artifactId>itests</artifactId>
-  <name>jclouds :: Karaf :: Integration Tests</name>
-
-  <properties>
-    <camel.version>2.9.0</camel.version>
-  </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.ops4j.pax.url</groupId>
-      <artifactId>pax-url-mvn</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.ops4j.pax.url</groupId>
-      <artifactId>pax-url-aether</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.karaf</groupId>
-      <artifactId>apache-karaf</artifactId>
-      <type>tar.gz</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.camel.karaf</groupId>
-      <artifactId>apache-camel</artifactId>
-      <version>${camel.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.servicemix.specs</groupId>
-      <artifactId>org.apache.servicemix.specs.jsr250-1.0</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds.karaf</groupId>
-      <artifactId>jclouds-karaf</artifactId>
-      <type>xml</type>
-      <classifier>features</classifier>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds.karaf</groupId>
-      <artifactId>core</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds.driver</groupId>
-      <artifactId>jclouds-log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-compute</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds</groupId>
-      <artifactId>jclouds-blobstore</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.jclouds.api</groupId>
-      <artifactId>ec2</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-
-    <dependency>
-      <groupId>org.apache.karaf.tooling.exam</groupId>
-      <artifactId>org.apache.karaf.tooling.exam.options</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.karaf.tooling.exam</groupId>
-      <artifactId>org.apache.karaf.tooling.exam.container</artifactId>
-    </dependency>
-
-
-    <dependency>
-      <groupId>org.ops4j.pax.exam</groupId>
-      <artifactId>pax-exam-junit4</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <!-- Pax Exam needs an older Guava version -->
-    <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-      <version>${guava.test.version}</version>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <version>${maven-dependency-plugin.version}</version>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.servicemix.tooling</groupId>
-        <artifactId>depends-maven-plugin</artifactId>
-        <version>${depends-maven-plugin.version}</version>
-        <executions>
-          <execution>
-            <id>generate-depends-file</id>
-            <goals>
-              <goal>generate-depends-file</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>${maven-surefire-plugin.version}</version>
-        <configuration>
-          <forkMode>once</forkMode>
-          <useSystemClassLoader>true</useSystemClassLoader>
-          <failIfNoTests>false</failIfNoTests>
-          <includes>
-            <include>**/*Test.*</include>
-          </includes>
-          <excludes>
-            <exclude>**/live/*Test.*</exclude>
-            <exclude>**/special/*Test.*</exclude>
-          </excludes>
-          <systemPropertyVariables>
-            <!-- Private Maven Repo -->
-            <maven.repo.local>${maven.repo.local}</maven.repo.local>
-            <!-- EC2 Live Variables -->
-            
<jclouds.aws.identity>${jclouds.aws.identity}</jclouds.aws.identity>
-            
<jclouds.aws.credential>${jclouds.aws.credential}</jclouds.aws.credential>
-            <jclouds.aws.region>${jclouds.aws.region}</jclouds.aws.region>
-            <jclouds.aws.image>${jclouds.aws.image}</jclouds.aws.image>
-            
<jclouds.aws.location>${jclouds.aws.location}</jclouds.aws.location>
-            <jclouds.aws.user>${jclouds.aws.user}</jclouds.aws.user>
-
-            <!-- Rackspace Live Variables -->
-            
<jclouds.rackspace.identity>${jclouds.rackspace.identity}</jclouds.rackspace.identity>
-            
<jclouds.rackspace.credential>${jclouds.rackspace.credential}</jclouds.rackspace.credential>
-            
<jclouds.rackspace.region>${jclouds.rackspace.region}</jclouds.rackspace.region>
-            
<jclouds.rackspace.image>${jclouds.rackspace.image}</jclouds.rackspace.image>
-            
<jclouds.rackspace.location>${jclouds.rackspace.location}</jclouds.rackspace.location>
-            
<jclouds.rackspace.user>${jclouds.rackspace.user}</jclouds.rackspace.user>
-          </systemPropertyVariables>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.jclouds</groupId>
+        <artifactId>jclouds-karaf</artifactId>
+        <version>2.1.0-SNAPSHOT</version>
+        <relativePath>..</relativePath>
+    </parent>
+
+    <groupId>org.apache.jclouds.karaf</groupId>
+    <artifactId>itests</artifactId>
+    <name>jclouds :: Karaf :: Integration Tests</name>
+
+
+    <properties>
+        <karaf.version>4.0.8</karaf.version>
+        <osgi.version>6.0.0</osgi.version>
+        <pax.exam.version>4.9.1</pax.exam.version>
+        <servlet.api.version>3.1.0</servlet.api.version>
+        <validation.api.version>1.1.0.Final</validation.api.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.jclouds</groupId>
+            <artifactId>jclouds-compute</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <version>${osgi.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.karaf.itests</groupId>
+            <artifactId>itests</artifactId>
+            <version>${karaf.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.karaf</groupId>
+            <artifactId>apache-karaf-minimal</artifactId>
+            <version>${karaf.version}</version>
+            <scope>test</scope>
+            <type>tar.gz</type>
+            <exclusions>
+                <exclusion>
+                    <artifactId>org.apache.karaf.client</artifactId>
+                    <groupId>org.apache.karaf</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-container-karaf</artifactId>
+            <version>${pax.exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.ops4j.pax.exam</groupId>
+            <artifactId>pax-exam-junit4</artifactId>
+            <version>${pax.exam.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-atinject_1.0_spec</artifactId>
+            <version>1.0</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.servicemix.tooling</groupId>
+                <artifactId>depends-maven-plugin</artifactId>
+                <version>1.3</version>
+                <executions>
+                    <execution>
+                        <id>generate-depends-file</id>
+                        <goals>
+                            <goal>generate-depends-file</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-features-xml</id>
+                        <phase>process-test-resources</phase>
+                        <goals>
+                            <goal>copy</goal>
+                        </goals>
+                        <configuration>
+                            <artifactItems>
+                                <artifactItem>
+                                    <groupId>org.apache.jclouds.karaf</groupId>
+                                    <artifactId>jclouds-karaf</artifactId>
+                                    <version>${project.version}</version>
+                                    <classifier>features</classifier>
+                                    <type>xml</type>
+                                    
<outputDirectory>${project.build.directory}/</outputDirectory>
+                                    <destFileName>features.xml</destFileName>
+                                </artifactItem>
+                                <artifactItem>
+                                    <groupId>org.apache.jclouds.karaf</groupId>
+                                    <artifactId>jclouds-karaf-labs</artifactId>
+                                    <version>${project.version}</version>
+                                    <classifier>features</classifier>
+                                    <type>xml</type>
+                                    
<outputDirectory>${project.build.directory}/</outputDirectory>
+                                    
<destFileName>features-labs.xml</destFileName>
+                                </artifactItem>
+                            </artifactItems>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <systemPropertyVariables>
+                        
<features.xml>${project.build.directory}/features.xml</features.xml>
+                        
<features.repo>${project.build.directory}/features-repo</features.repo>
+                        
<features-labs.xml>${project.build.directory}/features-labs.xml</features-labs.xml>
+                        
<features-labs.repo>${project.build.directory}/features-labs-repo</features-labs.repo>
+                    </systemPropertyVariables>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>
-
-

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/ApisFeaturesInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/ApisFeaturesInstallationTest.java
 
b/itests/src/test/java/org/jclouds/karaf/itests/ApisFeaturesInstallationTest.java
deleted file mode 100644
index 56abae7..0000000
--- 
a/itests/src/test/java/org/jclouds/karaf/itests/ApisFeaturesInstallationTest.java
+++ /dev/null
@@ -1,102 +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.jclouds.karaf.itests;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.junit.ExamReactorStrategy;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
-@RunWith(JUnit4TestRunner.class)
-@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
-public class ApisFeaturesInstallationTest extends JcloudsFeaturesTestSupport {
-
-    @Before
-    public void setUp() {
-        System.err.println(executeCommand("features:addurl " + 
getJcloudsKarafFeatureURL()));
-    }
-
-    @After
-    public void tearDown() {
-
-    }
-
-    @Test
-    public void testAtmosFeature() throws Exception {
-        installAndCheckFeature("jclouds-api-atmos");
-    }
-
-    @Test
-    public void testFileSystemFeature() throws Exception {
-        installAndCheckFeature("jclouds-api-filesystem");
-    }
-
-    @Test
-    public void testOpenstackNova() throws Exception {
-        installAndCheckFeature("jclouds-api-openstack-nova");
-    }
-
-    @Test
-    public void testOpenstackCinder() throws Exception {
-        installAndCheckFeature("jclouds-api-openstack-cinder");
-    }
-
-    @Test
-    public void testOpenstackSwift() throws Exception {
-        installAndCheckFeature("jclouds-api-openstack-swift");
-    }
-
-    @Test
-    public void testCloudStackFeature() throws Exception {
-        installAndCheckFeature("jclouds-api-cloudstack");
-    }
-
-    @Test
-    public void testRackspaceCloudIdentityFeature() throws Exception {
-        installAndCheckFeature("jclouds-api-rackspace-cloudidentity");
-    }
-
-    @Test
-    public void testRackspaceCloudDnsFeature() throws Exception {
-        installAndCheckFeature("jclouds-api-rackspace-clouddns");
-    }
-
-    @Test
-         public void testElasticStackFeature() throws Exception {
-        installAndCheckFeature("jclouds-api-elasticstack");
-    }
-
-    @Test
-    public void testStsFeature() throws Exception {
-        installAndCheckFeature("jclouds-api-sts");
-    }
-
-    @Test
-    public void testCloudSigma2Feature() throws Exception {
-        installAndCheckFeature("jclouds-api-cloudsigma2");
-    }
-
-    @Test
-    public void testVagrant() throws Exception {
-        installAndCheckFeature("jclouds-vagrant");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/AwsFeaturesInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/AwsFeaturesInstallationTest.java
 
b/itests/src/test/java/org/jclouds/karaf/itests/AwsFeaturesInstallationTest.java
deleted file mode 100644
index f282998..0000000
--- 
a/itests/src/test/java/org/jclouds/karaf/itests/AwsFeaturesInstallationTest.java
+++ /dev/null
@@ -1,72 +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.jclouds.karaf.itests;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.junit.ExamReactorStrategy;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
-@RunWith(JUnit4TestRunner.class)
-@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
-public class AwsFeaturesInstallationTest extends JcloudsFeaturesTestSupport {
-
-    @Before
-    public void setUp() {
-        System.err.println(executeCommand("features:addurl " + 
getJcloudsKarafFeatureURL()));
-    }
-
-    @After
-    public void tearDown() {
-
-    }
-
-    @Test
-    public void testAwsRoute53Feature() throws Exception {
-        installAndCheckFeature("jclouds-aws-route53");
-    }
-
-    @Test
-    public void testAwsSqsFeature() throws Exception {
-        installAndCheckFeature("jclouds-aws-sqs");
-    }
-
-    @Test
-    public void testAwsStsFeature() throws Exception {
-        installAndCheckFeature("jclouds-aws-sts");
-    }
-
-    @Test
-    public void testAwsS3Feature() throws Exception {
-        installAndCheckFeature("jclouds-aws-s3");
-    }
-
-    @Test
-    public void testAwsEc2Feature() throws Exception {
-        installAndCheckFeature("jclouds-aws-ec2");
-    }
-
-    @Test
-    public void testAwsCloudwatchFeature() throws Exception {
-        installAndCheckFeature("jclouds-aws-cloudwatch");
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/BasePaxExamTest.java
----------------------------------------------------------------------
diff --git a/itests/src/test/java/org/jclouds/karaf/itests/BasePaxExamTest.java 
b/itests/src/test/java/org/jclouds/karaf/itests/BasePaxExamTest.java
new file mode 100644
index 0000000..8e09806
--- /dev/null
+++ b/itests/src/test/java/org/jclouds/karaf/itests/BasePaxExamTest.java
@@ -0,0 +1,46 @@
+/*
+ * 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.jclouds.karaf.itests;
+
+import static org.ops4j.pax.exam.CoreOptions.maven;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureSecurity;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFileExtend;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
+
+import java.io.File;
+import java.net.URISyntaxException;
+
+import org.junit.Assert;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.karaf.options.LogLevelOption;
+import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
+
+public class BasePaxExamTest {
+
+    static File getFeaturesFile(String feature) throws URISyntaxException {
+        String featuresXml = System.getProperty(feature);
+        Assert.assertNotNull(featuresXml);
+        File featuresFile = new File(featuresXml);
+        Assert.assertNotNull(featuresFile.exists());
+        return featuresFile;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/ChefFeaturesInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/ChefFeaturesInstallationTest.java
 
b/itests/src/test/java/org/jclouds/karaf/itests/ChefFeaturesInstallationTest.java
deleted file mode 100644
index 2396dee..0000000
--- 
a/itests/src/test/java/org/jclouds/karaf/itests/ChefFeaturesInstallationTest.java
+++ /dev/null
@@ -1,51 +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.jclouds.karaf.itests;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.junit.ExamReactorStrategy;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
-@RunWith(JUnit4TestRunner.class)
-@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
-public class ChefFeaturesInstallationTest extends JcloudsFeaturesTestSupport {
-
-    @Before
-    public void setUp() {
-        System.err.println(executeCommand("features:addurl " + 
getJcloudsKarafFeatureURL()));
-    }
-
-    @After
-    public void tearDown() {
-
-    }
-
-    @Test
-    public void testChefApi() throws Exception {
-        installAndCheckFeature("jclouds-api-chef");
-    }
-
-    @Test
-    public void testJcloudsChef() throws Exception {
-        installAndCheckFeature("jclouds-chef");
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/CloudSigma2FeaturesInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/CloudSigma2FeaturesInstallationTest.java
 
b/itests/src/test/java/org/jclouds/karaf/itests/CloudSigma2FeaturesInstallationTest.java
deleted file mode 100644
index f9d848a..0000000
--- 
a/itests/src/test/java/org/jclouds/karaf/itests/CloudSigma2FeaturesInstallationTest.java
+++ /dev/null
@@ -1,66 +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.jclouds.karaf.itests;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.junit.ExamReactorStrategy;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
-@RunWith(JUnit4TestRunner.class)
-@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
-public class CloudSigma2FeaturesInstallationTest extends 
JcloudsFeaturesTestSupport {
-
-    @Before
-    public void setUp() {
-        System.err.println(executeCommand("features:addurl " + 
getJcloudsKarafFeatureURL()));
-    }
-
-    @After
-    public void tearDown() {
-
-    }
-
-    @Test
-    public void testCloudSigma2Honolulu() throws Exception {
-        installAndCheckFeature("jclouds-cloudsigma2-hnl");
-    }
-
-    @Test
-    public void testCloudSigma2LasVegas() throws Exception {
-        installAndCheckFeature("jclouds-cloudsigma2-lvs");
-    }
-
-    @Test
-    public void testCloudSigma2SanJose() throws Exception {
-        installAndCheckFeature("jclouds-cloudsigma2-sjc");
-    }
-
-    @Test
-    public void testCloudSigma2Washington() throws Exception {
-        installAndCheckFeature("jclouds-cloudsigma2-wdc");
-    }
-
-    @Test
-    public void testCloudSigma2Zurich() throws Exception {
-        installAndCheckFeature("jclouds-cloudsigma2-zrh");
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/ElasticHostsFeaturesInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/ElasticHostsFeaturesInstallationTest.java
 
b/itests/src/test/java/org/jclouds/karaf/itests/ElasticHostsFeaturesInstallationTest.java
deleted file mode 100644
index ccec459..0000000
--- 
a/itests/src/test/java/org/jclouds/karaf/itests/ElasticHostsFeaturesInstallationTest.java
+++ /dev/null
@@ -1,56 +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.jclouds.karaf.itests;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.junit.ExamReactorStrategy;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
-@RunWith(JUnit4TestRunner.class)
-@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
-public class ElasticHostsFeaturesInstallationTest extends 
JcloudsFeaturesTestSupport {
-
-    @Before
-    public void setUp() {
-        System.err.println(executeCommand("features:addurl " + 
getJcloudsKarafFeatureURL()));
-    }
-
-    @After
-    public void tearDown() {
-
-    }
-
-    @Test
-    public void testElasticHostsLonBFeature() throws Exception {
-        installAndCheckFeature("jclouds-elastichosts-lon-b");
-    }
-
-    @Test
-    public void testElasticHostsLonPFeature() throws Exception {
-        installAndCheckFeature("jclouds-elastichosts-lon-p");
-    }
-
-    @Test
-    public void testElasticHostsSatPFeature() throws Exception {
-        installAndCheckFeature("jclouds-elastichosts-sat-p");
-    }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/FeatureInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/FeatureInstallationTest.java 
b/itests/src/test/java/org/jclouds/karaf/itests/FeatureInstallationTest.java
new file mode 100644
index 0000000..4a490ac
--- /dev/null
+++ b/itests/src/test/java/org/jclouds/karaf/itests/FeatureInstallationTest.java
@@ -0,0 +1,415 @@
+/*
+ * 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.jclouds.karaf.itests;
+
+import static org.ops4j.pax.exam.CoreOptions.maven;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureSecurity;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFileExtend;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
+
+import java.io.File;
+
+import javax.inject.Inject;
+
+import org.apache.karaf.features.FeaturesService;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.karaf.options.LogLevelOption;
+import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerMethod;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerMethod.class) 
+public class FeatureInstallationTest extends BasePaxExamTest {
+
+   @Inject
+   FeaturesService featuresService;
+
+   @Before
+   public void setUp() throws Exception {
+      featuresService.addRepository(getFeaturesFile("features.xml").toURI());
+   }
+
+   @Test
+   public void testJcloudsFeature() throws Exception {
+      featuresService.installFeature("jclouds");
+   }
+
+   @Test
+   public void testJcloudsComputeFeature() throws Exception {
+      featuresService.installFeature("jclouds-compute");
+   }
+
+   @Test
+   public void testJcloudsBlobstoreFeature() throws Exception {
+      featuresService.installFeature("jclouds-blobstore");
+   }
+
+   @Test
+   public void testJcloudsAllBlobstoreFeature() throws Exception {
+      featuresService.installFeature("jclouds-all-blobstore");
+   }
+
+   @Test
+   public void testJcloudsAllComputeFeature() throws Exception {
+      featuresService.installFeature("jclouds-all-compute");
+   }
+
+   // Drivers
+   @Test
+   public void testDriverApachehcFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-apachehc");
+   }
+
+   @Test
+   public void testDriverBouncycastleFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-bouncycastle");
+   }
+
+   @Test
+   public void testDriverEnterpriseFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-enterprise");
+   }
+
+   @Test
+   public void testDriverJodaFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-joda");
+   }
+
+   @Test
+   public void testDriverJschFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-jsch");
+   }
+
+   @Test
+   public void testDriverLog4jFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-log4j");
+   }
+
+   @Test
+   public void testDriverNettyClientFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-netty");
+   }
+
+   @Test
+   public void testDriverOkHttpClientFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-okhttp");
+   }
+
+   @Test
+   public void testDriverSlf4jFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-slf4j");
+   }
+
+   @Test
+   public void testDriverSshjFeature() throws Exception {
+      featuresService.installFeature("jclouds-driver-sshj");
+   }
+
+   // SCRIPTBUILDER
+   @Test
+   public void testJcloudsScriptbuilderFeature() throws Exception {
+      featuresService.installFeature("jclouds-scriptbuilder");
+   }
+
+   // APIS
+   @Test
+   public void testApiAtmosCoreFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-atmos");
+   }
+
+   @Test
+   public void testApiByonFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-byon");
+   }
+
+   @Test
+   public void testApiCloudstackFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-cloudstack");
+   }
+
+   @Test
+   public void testApiCloudwatchFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-cloudwatch");
+   }
+
+   @Test
+   public void testApiDockerFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-docker");
+   }
+
+   @Test
+   public void testApiElasticStackFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-elasticstack");
+   }
+
+   @Test
+   public void testApiFileSystemFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-filesystem");
+   }
+
+   @Test
+   public void testApiOauthFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-oauth");
+   }
+
+   @Test
+   public void testApiOpenstackCinderFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-openstack-cinder");
+   }
+
+   @Test
+   public void testApiOpenstackKeystoneFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-openstack-keystone");
+   }
+
+   @Test
+   public void testApiOpenstackNovaFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-openstack-nova");
+   }
+
+   @Test
+   public void testApiOpenstackNovaEc2Feature() throws Exception {
+      featuresService.installFeature("jclouds-api-openstack-nova-ec2");
+   }
+
+   @Test
+   public void testApiOpenstackSwiftFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-openstack-swift");
+   }
+
+   @Test
+   public void testApiOpenstackTroveFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-openstack-trove");
+   }
+
+   @Test
+   public void testApiRackspaceCloudDnsFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-rackspace-clouddns");
+   }
+
+   @Test
+   public void testApiRackspaceCloudFilesFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-rackspace-cloudfiles");
+   }
+
+   @Test
+   public void testApiRackspaceCloudIdentityFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-rackspace-cloudidentity");
+   }
+
+   @Test
+   public void testApiRackspaceCloudLoadbalancersFeature() throws Exception {
+      
featuresService.installFeature("jclouds-rackspace-cloudloadbalancers-us");
+   }
+
+   @Test
+   public void testStsFeature() throws Exception {
+      featuresService.installFeature("jclouds-api-sts");
+   }
+
+   // PROVIDERS
+   @Test
+   public void testAwsCloudwatchFeature() throws Exception {
+      featuresService.installFeature("jclouds-aws-cloudwatch");
+   }
+
+   @Test
+   public void testAwsEc2Feature() throws Exception {
+      featuresService.installFeature("jclouds-aws-ec2");
+   }
+
+   @Test
+   public void testAwsRoute53Feature() throws Exception {
+      featuresService.installFeature("jclouds-aws-route53");
+   }
+
+   @Test
+   public void testAwsS3Feature() throws Exception {
+      featuresService.installFeature("jclouds-aws-s3");
+   }
+
+   @Test
+   public void testAwsSqsFeature() throws Exception {
+      featuresService.installFeature("jclouds-aws-sqs");
+   }
+
+   @Test
+   public void testAwsStsFeature() throws Exception {
+      featuresService.installFeature("jclouds-aws-sts");
+   }
+
+   @Test
+   public void testAzureBlobFeature() throws Exception {
+      featuresService.installFeature("jclouds-azureblob");
+   }
+
+   @Test
+   public void testDigitalOcean2Feature() throws Exception {
+      featuresService.installFeature("jclouds-digitalocean2");
+   }
+
+   @Test
+   public void testDynectFeature() throws Exception {
+      featuresService.installFeature("jclouds-dynect");
+   }
+
+   @Test
+   public void testElasticaHostsLonBFeature() throws Exception {
+      featuresService.installFeature("jclouds-elastichosts-lon-b");
+   }
+
+   @Test
+   public void testElasticaHostsLonPFeature() throws Exception {
+      featuresService.installFeature("jclouds-elastichosts-lon-p");
+   }
+
+   @Test
+   public void testElasticaHostsSatPtestStsFeature() throws Exception {
+      featuresService.installFeature("jclouds-elastichosts-sat-p");
+   }
+
+   @Test
+   public void testElasticaHostsLaxPFeature() throws Exception {
+      featuresService.installFeature("jclouds-elastichosts-lax-p");
+   }
+
+   @Test
+   public void testElasticaHostsTorPFeature() throws Exception {
+      featuresService.installFeature("jclouds-elastichosts-tor-p");
+   }
+
+   @Test
+   public void testGlesysFeature() throws Exception {
+      featuresService.installFeature("jclouds-glesys");
+   }
+
+   @Test
+   public void testGo2cloudJhb1Feature() throws Exception {
+      featuresService.installFeature("jclouds-go2cloud-jhb1");
+   }
+
+   @Test
+   public void testGogridFeature() throws Exception {
+      featuresService.installFeature("jclouds-gogrid");
+   }
+
+   @Test
+   public void testGoogleComputeEngineFeature() throws Exception {
+      featuresService.installFeature("jclouds-google-compute-engine");
+   }
+
+   @Test
+   public void testOpenhostingEast1Feature() throws Exception {
+      featuresService.installFeature("jclouds-openhosting-east1");
+   }
+
+   @Test
+   public void testProfitbricksFeature() throws Exception {
+      featuresService.installFeature("jclouds-profitbricks");
+   }
+
+   @Test
+   public void testRackaspaceCloudstorageUkFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-cloudblockstorage-uk");
+   }
+
+   @Test
+   public void testRackaspaceCloudstorageUsFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-cloudblockstorage-us");
+   }
+
+   @Test
+   public void testRackaspaceCloudloadbalancerUsFeature() throws Exception {
+      
featuresService.installFeature("jclouds-rackspace-cloudloadbalancers-us");
+   }
+
+   @Test
+   public void testRackaspaceCloudloadbalancerUkFeature() throws Exception {
+      
featuresService.installFeature("jclouds-rackspace-cloudloadbalancers-uk");
+   }
+
+   @Test
+   public void testRackaspaceCloudserversUsFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-cloudservers-us");
+   }
+
+   @Test
+   public void testRackaspaceCloudserversUkFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-cloudservers-uk");
+   }
+
+   @Test
+   public void testRackaspaceCloudDnsUsFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-clouddns-us");
+   }
+
+   @Test
+   public void testRackaspaceCloudDnsUkFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-clouddns-uk");
+   }
+
+   @Test
+   public void testRackaspaceCloudfilesUkFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-cloudfiles-uk");
+   }
+
+   @Test
+   public void testRackaspaceCloudfilesUsFeature() throws Exception {
+      featuresService.installFeature("jclouds-rackspace-cloudfiles-us");
+   }
+
+   @Test
+   public void testServerloveZ1ManFeature() throws Exception {
+      featuresService.installFeature("jclouds-serverlove-z1-man");
+   }
+
+   @Test
+   public void testSkalicloudSdgMyFeature() throws Exception {
+      featuresService.installFeature("jclouds-skalicloud-sdg-my");
+   }
+
+   @Test
+   public void testSoftlayerFeature() throws Exception {
+      featuresService.installFeature("jclouds-softlayer");
+   }
+
+
+   @Configuration
+   public Option[] config() {
+      MavenArtifactUrlReference karafUrl = 
maven().groupId("org.apache.karaf").artifactId("apache-karaf-minimal").versionAsInProject().type("tar.gz");
+      return new Option[]{
+              
karafDistributionConfiguration().frameworkUrl(karafUrl).name("Apache 
Karaf").unpackDirectory(new File("target/exam")),
+              configureSecurity().disableKarafMBeanServerBuilder(),
+              keepRuntimeFolder(),
+              editConfigurationFilePut("etc/system.properties", 
"features.xml", System.getProperty("features.xml")),
+              editConfigurationFileExtend(
+                      "etc/org.ops4j.pax.url.mvn.cfg",
+                      "org.ops4j.pax.url.mvn.repositories",
+                      "file:" + System.getProperty("features-repo") + 
"@id=local@snapshots@releases"),
+              logLevel(LogLevelOption.LogLevel.INFO),
+      };
+   }
+}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/FeatureLabsInstallationTest.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/FeatureLabsInstallationTest.java
 
b/itests/src/test/java/org/jclouds/karaf/itests/FeatureLabsInstallationTest.java
new file mode 100644
index 0000000..577bd16
--- /dev/null
+++ 
b/itests/src/test/java/org/jclouds/karaf/itests/FeatureLabsInstallationTest.java
@@ -0,0 +1,122 @@
+/*
+ * 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.jclouds.karaf.itests;
+
+import static org.ops4j.pax.exam.CoreOptions.maven;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureSecurity;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFileExtend;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
+
+import java.io.File;
+
+import javax.inject.Inject;
+
+import org.apache.karaf.features.FeaturesService;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.karaf.options.LogLevelOption;
+import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerMethod;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerMethod.class)
+public class FeatureLabsInstallationTest extends BasePaxExamTest {
+
+   @Inject
+   FeaturesService featuresService;
+
+   @Before
+   public void setUp() throws Exception {
+      
featuresService.addRepository(getFeaturesFile("features-labs.xml").toURI());
+   }
+
+   @Test
+   public void testLabsAzureComputeArmFeature() throws Exception {
+      featuresService.installFeature("jclouds-azurecompute-arm");
+   }
+
+   @Test
+   public void testLabsB2Feature() throws Exception {
+      featuresService.installFeature("jclouds-b2");
+   }
+
+   @Test
+   public void testLabsCloudsigma2HnlFeature() throws Exception {
+      featuresService.installFeature("jclouds-cloudsigma2-hnl");
+   }
+
+   @Test
+   public void testLabsCloudsigma2LvsFeature() throws Exception {
+      featuresService.installFeature("jclouds-cloudsigma2-lvs");
+   }
+
+   @Test
+   public void testLabsCloudsigma2SjcFeature() throws Exception {
+      featuresService.installFeature("jclouds-cloudsigma2-sjc");
+   }
+
+   @Test
+   public void testLabsCloudsigma2WdcFeature() throws Exception {
+      featuresService.installFeature("jclouds-cloudsigma2-wdc");
+   }
+
+   @Test
+   public void testLabsCloudsigma2ZrhFeature() throws Exception {
+      featuresService.installFeature("jclouds-cloudsigma2-zrh");
+   }
+
+   @Test
+   public void testLabsGoogleCloudStorageFeature() throws Exception {
+      featuresService.installFeature("jclouds-google-cloud-storage");
+   }
+
+   @Test
+   public void testLabsPacketFeature() throws Exception {
+      featuresService.installFeature("jclouds-packet");
+   }
+
+   @Test
+   public void testLabsVagrantFeature() throws Exception {
+      featuresService.installFeature("jclouds-vagrant");
+   }
+
+
+   @Configuration
+   public Option[] config() {
+      MavenArtifactUrlReference karafUrl = 
maven().groupId("org.apache.karaf").artifactId("apache-karaf-minimal").versionAsInProject().type("tar.gz");
+      return new Option[]{
+              
karafDistributionConfiguration().frameworkUrl(karafUrl).name("Apache 
Karaf").unpackDirectory(new File("target/exam")),
+              configureSecurity().disableKarafMBeanServerBuilder(),
+              keepRuntimeFolder(),
+              editConfigurationFilePut("etc/system.properties", 
"features-labs.xml", System.getProperty("features-labs.xml")),
+              editConfigurationFileExtend(
+                      "etc/org.ops4j.pax.url.mvn.cfg",
+                      "org.ops4j.pax.url.mvn.repositories",
+                      "file:" + System.getProperty("features-repo") + 
"@id=local@snapshots@releases"),
+              logLevel(LogLevelOption.LogLevel.INFO),
+      };
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/jclouds-karaf/blob/fa11dcfc/itests/src/test/java/org/jclouds/karaf/itests/JcloudsFeaturesTestSupport.java
----------------------------------------------------------------------
diff --git 
a/itests/src/test/java/org/jclouds/karaf/itests/JcloudsFeaturesTestSupport.java 
b/itests/src/test/java/org/jclouds/karaf/itests/JcloudsFeaturesTestSupport.java
deleted file mode 100644
index 19757b9..0000000
--- 
a/itests/src/test/java/org/jclouds/karaf/itests/JcloudsFeaturesTestSupport.java
+++ /dev/null
@@ -1,64 +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.jclouds.karaf.itests;
-
-import static junit.framework.Assert.assertTrue;
-import static 
org.apache.karaf.tooling.exam.options.KarafDistributionOption.keepRuntimeFolder;
-import static 
org.apache.karaf.tooling.exam.options.KarafDistributionOption.logLevel;
-
-import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.tooling.exam.options.LogLevelOption;
-import org.ops4j.pax.exam.MavenUtils;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
-
-public class JcloudsFeaturesTestSupport extends JcloudsKarafTestSupport {
-
-    public static final String JCLOUDS_FEATURE_FORMAT = 
"mvn:org.apache.jclouds.karaf/jclouds-karaf/%s/xml/features";
-    public static final String JCLOUDS_FEATURE_VERSION_PROPERTY =  
"jclouds.feature.version";
-
-    /**
-     * Returns the URL of the jclouds-karaf feature.
-     * <p>Note: This method is intended to be invoked inside the test 
container</p>
-     * @return
-     */
-    public String getJcloudsKarafFeatureURL() {
-        return String.format(JCLOUDS_FEATURE_FORMAT, 
System.getProperty(JCLOUDS_FEATURE_VERSION_PROPERTY));
-    }
-
-    /**
-     * Installs a feature and checks that feature is properly installed.
-     * @param feature
-     * @throws Exception
-     */
-    public void installAndCheckFeature(String feature) throws Exception {
-        System.err.println(executeCommand("features:install " + feature));
-        FeaturesService featuresService = 
getOsgiService(FeaturesService.class);
-        System.err.println(executeCommand("osgi:list -t 0"));
-        assertTrue("Expected " + feature + " feature to be installed.", 
featuresService.isInstalled(featuresService.getFeature(feature)));
-    }
-
-
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                jcloudsDistributionConfiguration(), keepRuntimeFolder(),
-                systemProperty(JCLOUDS_FEATURE_VERSION_PROPERTY, 
MavenUtils.getArtifactVersion(JCLOUDS_KARAF_GROUP_ID, 
JCLOUDS_KARAF_ARTIFACT_ID)),
-                logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-}

Reply via email to