nacx requested changes on this pull request.

Epic PR @andreaturli!

> @@ -82,7 +82,8 @@ limitations under the License.
             </goals>
             <configuration>
               <!-- the RAT plugin complains if we use the default location and 
we don't want it in the SCM -->
-              
<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>
+              
<!--<dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation>-->

Why has this been changed? We might need this if we are shading dependencies, 
to let the right dependencies be resolved by the Maven reactor.

> @@ -27,93 +62,141 @@ limitations under the License.
 
     <feature name='jclouds' description='jclouds' version='${project.version}' 
resolver='(obr)'>
         <feature version='${project.version}'>jclouds-guice</feature>
+        <bundle 
dependency="true">mvn:javax.ws.rs/javax.ws.rs-api/2.0.1</bundle>

Movr the version to a property in the root pom.xml

>              </goals>
             <configuration>
               <descriptors>
                 <descriptor>file:${basedir}/target/feature.xml</descriptor>
               </descriptors>
               <features>
-                <feature>jclouds</feature>

Why is this no longer declared here?

> +    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-labs-${project.version}" 
xmlns="http://karaf.apache.org/xmlns/features/v1.0.0";>
+    
<repository>mvn:org.apache.jclouds.karaf/jclouds-karaf/${jclouds.version}/xml/features</repository>
+
+    <!-- JCLOUDS-LABS -->
+    <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>

Depend on the oauth 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-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>

Depend on the oauth feature?

> @@ -193,16 +270,86 @@ limitations under the License.
         
<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 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>

Depend on the oauth feature?

> +        <feature version='${project.version}'>jclouds-compute</feature>
+        
<bundle>mvn:org.apache.jclouds.provider/glesys/${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-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-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>

Depend on the oauth feature?

> @@ -419,6 +545,25 @@ limitations under the License.
         
<bundle>mvn:org.apache.jclouds.labs/cloudsigma2-zrh/${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>

Depend on the oauth feature?

>      </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 name="jclouds-driver-netty" description="Netty driver for 
jclouds" version="${project.version}" resolver="(obr)">
+        <feature version='${project.version}'>jclouds</feature>
+        <bundle dependency='true'>mvn:io.netty/netty/3.5.9.Final</bundle>

Move version to the root pom.xml?

> +        <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-packet' description='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-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>    

These features are already in the labs feature file. Should them be here?

> +        <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-packet' description='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-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>    

Same for B2 and all other labs features

> +@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerMethod.class)
+public class FeatureInstallationTest extends BasePaxExamTest {
+
+   @Inject
+   FeaturesService featuresService;
+
+   @Before
+   public void setUp() throws Exception {
+      featuresService.addRepository(getFeaturesFile().toURI());
+   }
+
+   @Test
+   public void testJcloudsFeature() throws Exception {
+      featuresService.installFeature("jclouds");
+   }

We'd better have just one test and provide the list of features to install:
https://github.com/junit-team/junit4/wiki/Parameterized-tests

> +   }
+
+   @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");
+   }

Same here about parameterized tests.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds-karaf/pull/92#pullrequestreview-22300902

Reply via email to