Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jclouds Wiki" for 
change notification.

The "Create a New API or Provider" page has been changed by EverettToews:
https://wiki.apache.org/jclouds/Create%20a%20New%20API%20or%20Provider

New page:
Adding a new provider is quite an important change for jclouds. The first thing 
you'll want to do is review [[How to Contribute]]. We need to make sure it will 
work properly and we'll be able to properly test it so don't be discouraged by 
the reviews. A good example of a JIRA issue for tracking the development of a 
new API and providers is 
[[https://issues.apache.org/jira/browse/JCLOUDS-340|Implement OpenStack Marconi 
and Rackspace Cloud Queues]].

Having said this, a number of general considerations to take into account when 
starting a new API or provider:

 1. New providers are added in labs 
([[https://github.com/jclouds/jclouds-labs|labs]], 
[[https://github.com/jclouds/jclouds-labs-aws|aws]], 
[[https://github.com/jclouds/jclouds-labs-google|google]], 
[[https://github.com/jclouds/jclouds-labs-openstack|openstack]]) first, until 
they are stable.
 1. To follow the jclouds style, use a 3 space indent and a 120 character line 
length.
 1. We use Guava as our core library. Try to use its utilities before adding 
new dependencies. In general, do not add dependencies before consulting our 
dev@ list.
 1. We require both live and mock tests. "mock" tests verify that the api 
generates the expected request according to the method annotations, and that 
the response is properly parsed. We use MockWebServer to do that, and you can 
take a look at the 
[[https://github.com/jclouds/jclouds-labs-openstack/tree/master/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1|MockTests
 classes in the openstack-swift API]] to see an example of how these tests work.
 1. Often the best thing to do is to copy the entire directory structure of one 
of the existing apis or providers and delete everything that you don't need but 
keep some of the files around in each directory to server as an example of how 
to do things. You can rename those classes and start your work from there.

Which api or provider should you choose to use as an example for your work? It 
depends! Please email us on our dev@ list to describe the work your doing and 
we will recommend one. The earlier you get engaged with the jclouds community, 
the easier the whole process will be.

Reply via email to