Jclouds vcloud api 1.8.1 clone with custom changes

Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/6573fbed
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6573fbed
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6573fbed

Branch: refs/heads/master
Commit: 6573fbed3cb2acab9595ab66a4004546076abc81
Parents: ae5425e
Author: R-Rajkumar <[email protected]>
Authored: Tue Nov 25 21:08:52 2014 +0530
Committer: R-Rajkumar <[email protected]>
Committed: Tue Nov 25 21:08:52 2014 +0530

----------------------------------------------------------------------
 .../apis/vcloud/1.8.1-stratos/README.txt        |   6 +
 .../jclouds/apis/vcloud/1.8.1-stratos/pom.xml   | 131 +++
 .../vcloud/TaskInErrorStateException.java       |  34 +
 .../vcloud/TaskStillRunningException.java       |  34 +
 .../main/java/org/jclouds/vcloud/VCloudApi.java |  90 ++
 .../org/jclouds/vcloud/VCloudApiMetadata.java   | 101 +++
 .../org/jclouds/vcloud/VCloudMediaType.java     | 222 +++++
 .../jclouds/vcloud/VCloudResponseException.java |  66 ++
 .../java/org/jclouds/vcloud/VCloudToken.java    |  34 +
 .../org/jclouds/vcloud/VCloudVersionsApi.java   |  38 +
 .../binders/BindCPUCountToXmlPayload.java       |  74 ++
 .../BindCaptureVAppParamsToXmlPayload.java      | 119 +++
 .../binders/BindCatalogItemToXmlPayload.java    | 121 +++
 .../binders/BindCloneParamsToXmlPayload.java    | 128 +++
 .../BindCloneVAppParamsToXmlPayload.java        |  60 ++
 ...BindCloneVAppTemplateParamsToXmlPayload.java |  55 ++
 .../BindDeployVAppParamsToXmlPayload.java       |  37 +
 ...ndGuestCustomizationSectionToXmlPayload.java | 107 +++
 ...stantiateVAppTemplateParamsToXmlPayload.java | 216 +++++
 .../vcloud/binders/BindMemoryToXmlPayload.java  |  75 ++
 ...indNetworkConnectionSectionToXmlPayload.java | 101 +++
 .../vcloud/binders/BindParamsToXmlPayload.java  |  76 ++
 .../BindUndeployVAppParamsToXmlPayload.java     |  37 +
 .../OrgNameAndCatalogNameToEndpoint.java        |  75 ++
 .../binders/OrgNameAndVDCNameToEndpoint.java    |  74 ++
 .../OrgNameCatalogNameItemNameToEndpoint.java   |  73 ++
 ...meCatalogNameVAppTemplateNameToEndpoint.java |  86 ++
 .../OrgNameVDCNameNetworkNameToEndpoint.java    |  50 +
 ...NameVDCNameResourceEntityNameToEndpoint.java |  50 +
 .../OrgNameVDCNameResourceNameToEndpoint.java   |  77 ++
 .../VCloudComputeServiceContextModule.java      |  37 +
 .../VCloudComputeServiceDependenciesModule.java | 150 +++
 .../functions/FindLocationForResource.java      |  66 ++
 .../compute/functions/HardwareForVApp.java      |  68 ++
 .../functions/HardwareForVAppTemplate.java      |  81 ++
 .../compute/functions/ImageForVAppTemplate.java |  79 ++
 .../compute/functions/VAppToNodeMetadata.java   | 111 +++
 ...dHardwareBuilderFromResourceAllocations.java |  40 +
 ...EnvelopeOrThrowIllegalArgumentException.java |  74 ++
 .../internal/VCloudTemplateBuilderImpl.java     |  45 +
 .../compute/options/VCloudTemplateOptions.java  | 348 +++++++
 ...edIntoNameThenCustomizeDeployAndPowerOn.java | 299 ++++++
 ...etworkConfigurationForNetworkAndOptions.java |  76 ++
 .../strategy/VCloudComputeServiceAdapter.java   | 262 ++++++
 .../vcloud/compute/util/VCloudComputeUtils.java | 112 +++
 .../vcloud/config/DefaultCatalogForOrg.java     |  59 ++
 .../vcloud/config/DefaultNetworkForVDC.java     |  61 ++
 .../vcloud/config/DefaultOrgForUser.java        |  54 ++
 .../vcloud/config/DefaultTasksListForOrg.java   |  49 +
 .../config/DefaultVCloudReferencesModule.java   | 161 ++++
 .../jclouds/vcloud/config/DefaultVDCForOrg.java |  59 ++
 .../vcloud/config/VCloudHttpApiModule.java      | 536 +++++++++++
 .../jclouds/vcloud/domain/AllocationModel.java  |  70 ++
 .../org/jclouds/vcloud/domain/Capacity.java     | 106 +++
 .../java/org/jclouds/vcloud/domain/Catalog.java |  66 ++
 .../org/jclouds/vcloud/domain/CatalogItem.java  |  34 +
 .../domain/GuestCustomizationSection.java       | 440 +++++++++
 .../domain/InstantiateVAppTemplateParams.java   |  96 ++
 .../vcloud/domain/NetworkConnection.java        | 231 +++++
 .../vcloud/domain/NetworkConnectionSection.java | 218 +++++
 .../java/org/jclouds/vcloud/domain/Org.java     |  84 ++
 .../jclouds/vcloud/domain/ReferenceType.java    |  52 ++
 .../java/org/jclouds/vcloud/domain/Status.java  | 244 +++++
 .../java/org/jclouds/vcloud/domain/Task.java    |  72 ++
 .../org/jclouds/vcloud/domain/TaskStatus.java   |  68 ++
 .../org/jclouds/vcloud/domain/TasksList.java    |  34 +
 .../java/org/jclouds/vcloud/domain/VApp.java    |  85 ++
 .../org/jclouds/vcloud/domain/VAppTemplate.java |  95 ++
 .../org/jclouds/vcloud/domain/VCloudError.java  | 118 +++
 .../jclouds/vcloud/domain/VCloudSession.java    |  25 +
 .../java/org/jclouds/vcloud/domain/VDC.java     | 144 +++
 .../org/jclouds/vcloud/domain/VDCStatus.java    |  57 ++
 .../main/java/org/jclouds/vcloud/domain/Vm.java | 106 +++
 .../vcloud/domain/internal/CatalogImpl.java     | 189 ++++
 .../vcloud/domain/internal/CatalogItemImpl.java | 106 +++
 .../vcloud/domain/internal/ErrorImpl.java       | 114 +++
 .../jclouds/vcloud/domain/internal/OrgImpl.java | 168 ++++
 .../domain/internal/ReferenceTypeImpl.java      |  99 ++
 .../vcloud/domain/internal/TaskImpl.java        | 160 ++++
 .../vcloud/domain/internal/TasksListImpl.java   |  78 ++
 .../vcloud/domain/internal/VAppImpl.java        | 163 ++++
 .../domain/internal/VAppTemplateImpl.java       | 202 +++++
 .../jclouds/vcloud/domain/internal/VDCImpl.java | 289 ++++++
 .../jclouds/vcloud/domain/internal/VmImpl.java  | 214 +++++
 .../vcloud/domain/network/DhcpService.java      | 106 +++
 .../jclouds/vcloud/domain/network/Features.java |  95 ++
 .../vcloud/domain/network/FenceMode.java        |  68 ++
 .../vcloud/domain/network/FirewallService.java  |  86 ++
 .../domain/network/IpAddressAllocationMode.java |  50 +
 .../jclouds/vcloud/domain/network/IpRange.java  |  75 ++
 .../jclouds/vcloud/domain/network/IpScope.java  | 169 ++++
 .../vcloud/domain/network/NatService.java       | 115 +++
 .../vcloud/domain/network/NetworkConfig.java    | 163 ++++
 .../vcloud/domain/network/OrgNetwork.java       | 119 +++
 .../domain/network/firewall/FirewallPolicy.java |  53 ++
 .../network/firewall/FirewallProtocols.java     |  71 ++
 .../domain/network/firewall/FirewallRule.java   | 124 +++
 .../domain/network/internal/OrgNetworkImpl.java | 198 ++++
 .../vcloud/domain/network/nat/NatPolicy.java    |  53 ++
 .../vcloud/domain/network/nat/NatProtocol.java  |  46 +
 .../vcloud/domain/network/nat/NatRule.java      |  33 +
 .../vcloud/domain/network/nat/NatType.java      |  59 ++
 .../domain/network/nat/rules/MappingMode.java   |  53 ++
 .../network/nat/rules/OneToOneVmRule.java       | 109 +++
 .../network/nat/rules/PortForwardingRule.java   | 110 +++
 .../vcloud/domain/network/nat/rules/VmRule.java | 127 +++
 .../EditableResourceAllocationSettingData.java  | 298 ++++++
 .../vcloud/domain/ovf/VCloudHardDisk.java       | 326 +++++++
 .../vcloud/domain/ovf/VCloudNetworkAdapter.java | 328 +++++++
 .../vcloud/domain/ovf/VCloudNetworkSection.java |  80 ++
 .../ovf/VCloudOperatingSystemSection.java       | 118 +++
 .../ovf/VCloudVirtualHardwareSection.java       | 179 ++++
 .../org/jclouds/vcloud/endpoints/Catalog.java   |  34 +
 .../org/jclouds/vcloud/endpoints/Network.java   |  34 +
 .../java/org/jclouds/vcloud/endpoints/Org.java  |  34 +
 .../org/jclouds/vcloud/endpoints/OrgList.java   |  34 +
 .../org/jclouds/vcloud/endpoints/TasksList.java |  34 +
 .../jclouds/vcloud/endpoints/VCloudLogin.java   |  36 +
 .../java/org/jclouds/vcloud/endpoints/VDC.java  |  34 +
 .../org/jclouds/vcloud/features/CatalogApi.java | 143 +++
 .../org/jclouds/vcloud/features/NetworkApi.java |  60 ++
 .../org/jclouds/vcloud/features/OrgApi.java     |  84 ++
 .../org/jclouds/vcloud/features/TaskApi.java    |  80 ++
 .../org/jclouds/vcloud/features/VAppApi.java    | 260 ++++++
 .../vcloud/features/VAppTemplateApi.java        | 179 ++++
 .../org/jclouds/vcloud/features/VDCApi.java     |  71 ++
 .../java/org/jclouds/vcloud/features/VmApi.java | 293 ++++++
 ...ddVCloudAuthorizationAndCookieToRequest.java |  60 ++
 .../vcloud/functions/CatalogItemsInCatalog.java |  61 ++
 .../vcloud/functions/CatalogItemsInOrg.java     |  54 ++
 .../jclouds/vcloud/functions/CatalogsInOrg.java |  69 ++
 .../functions/DefaultNetworkNameInTemplate.java |  47 +
 .../jclouds/vcloud/functions/NetworksInOrg.java |  54 ++
 .../vcloud/functions/OrgNameToEndpoint.java     |  53 ++
 .../functions/OrgNameToTasksListEndpoint.java   |  58 ++
 .../vcloud/functions/OrgsForLocations.java      |  70 ++
 .../jclouds/vcloud/functions/OrgsForNames.java  |  53 ++
 .../ParseLoginResponseFromHeaders.java          | 103 +++
 .../functions/VAppTemplatesForCatalogItems.java |  63 ++
 .../vcloud/functions/VAppTemplatesInOrg.java    |  62 ++
 .../org/jclouds/vcloud/functions/VDCsInOrg.java |  54 ++
 .../ParseVCloudErrorFromHttpResponse.java       | 118 +++
 .../http/filters/VCloudBasicAuthentication.java |  58 ++
 .../http/filters/VCloudSupportedVersions.java   |  35 +
 .../jclouds/vcloud/internal/VCloudLoginApi.java |  45 +
 .../org/jclouds/vcloud/loaders/OVFLoader.java   |  47 +
 .../vcloud/loaders/VAppTemplateLoader.java      |  47 +
 .../org/jclouds/vcloud/location/DefaultVDC.java |  74 ++
 .../location/OrgAndVDCToLocationSupplier.java   |  90 ++
 .../vcloud/options/CaptureVAppOptions.java      |  46 +
 .../vcloud/options/CatalogItemOptions.java      |  72 ++
 .../jclouds/vcloud/options/CloneOptions.java    |  48 +
 .../vcloud/options/CloneVAppOptions.java        |  83 ++
 .../options/CloneVAppTemplateOptions.java       |  37 +
 .../options/InstantiateVAppTemplateOptions.java | 173 ++++
 .../jclouds/vcloud/predicates/TaskSuccess.java  |  63 ++
 .../vcloud/reference/VCloudConstants.java       |  52 ++
 .../jclouds/vcloud/reference/package-info.java  |  20 +
 ...thNameMatchingConfigurationKeyOrDefault.java |  95 ++
 .../vcloud/suppliers/VAppTemplatesSupplier.java |  83 ++
 .../java/org/jclouds/vcloud/util/Utils.java     |  67 ++
 .../org/jclouds/vcloud/util/VCloudUtils.java    |  65 ++
 .../org/jclouds/vcloud/xml/CatalogHandler.java  | 101 +++
 .../jclouds/vcloud/xml/CatalogItemHandler.java  |  78 ++
 .../org/jclouds/vcloud/xml/ErrorHandler.java    |  42 +
 .../xml/GuestCustomizationSectionHandler.java   | 134 +++
 .../vcloud/xml/NetworkConnectionHandler.java    |  84 ++
 .../xml/NetworkConnectionSectionHandler.java    | 100 ++
 .../java/org/jclouds/vcloud/xml/OrgHandler.java | 109 +++
 .../org/jclouds/vcloud/xml/OrgListHandler.java  |  51 ++
 .../jclouds/vcloud/xml/OrgNetworkHandler.java   | 322 +++++++
 .../vcloud/xml/SupportedVersionsHandler.java    |  57 ++
 .../org/jclouds/vcloud/xml/TaskHandler.java     | 125 +++
 .../jclouds/vcloud/xml/TasksListHandler.java    |  71 ++
 .../org/jclouds/vcloud/xml/VAppHandler.java     | 148 +++
 .../jclouds/vcloud/xml/VAppTemplateHandler.java | 149 +++
 .../xml/VCloudVirtualHardwareHandler.java       |  69 ++
 .../java/org/jclouds/vcloud/xml/VDCHandler.java | 164 ++++
 .../java/org/jclouds/vcloud/xml/VmHandler.java  | 175 ++++
 .../xml/ovf/VCloudNetworkSectionHandler.java    |  66 ++
 .../xml/ovf/VCloudOperatingSystemHandler.java   |  78 ++
 ...oudResourceAllocationSettingDataHandler.java |  86 ++
 .../services/org.jclouds.apis.ApiMetadata       |   1 +
 .../jclouds/vcloud/VCloudApiMetadataTest.java   |  28 +
 .../java/org/jclouds/vcloud/VCloudApiTest.java  |  62 ++
 .../vcloud/VCloudSessionRefreshLiveTest.java    |  39 +
 .../jclouds/vcloud/VCloudVersionsApiTest.java   |  68 ++
 .../BindCatalogItemToXmlPayloadTest.java        |  51 ++
 .../BindCloneVAppParamsToXmlPayloadTest.java    |  79 ++
 ...CloneVAppTemplateParamsToXmlPayloadTest.java |  87 ++
 .../BindDeployVAppParamsToXmlPayloadTest.java   |  59 ++
 ...tiateVAppTemplateParamsToXmlPayloadTest.java | 177 ++++
 ...etworkConnectionSectionToXmlPayloadTest.java |  66 ++
 .../BindUndeployVAppParamsToXmlPayloadTest.java |  59 ++
 .../BaseVCloudComputeServiceExpectTest.java     | 158 ++++
 .../compute/VCloudComputeServiceLiveTest.java   |  49 +
 .../functions/FindLocationForResourceTest.java  |  62 ++
 .../functions/ListImagesInVCloudExpectTest.java |  85 ++
 .../functions/VAppToNodeMetadataTest.java       | 226 +++++
 .../options/VCloudTemplateOptionsTest.java      | 195 ++++
 ...ThenCustomizeDeployAndPowerOnExpectTest.java | 167 ++++
 .../VCloudComputeServiceAdapterTest.java        |  89 ++
 .../vcloud/features/CatalogApiLiveTest.java     |  50 +
 .../jclouds/vcloud/features/CatalogApiTest.java | 129 +++
 .../vcloud/features/NetworkApiLiveTest.java     |  26 +
 .../jclouds/vcloud/features/NetworkApiTest.java |  73 ++
 .../jclouds/vcloud/features/OrgApiLiveTest.java |  39 +
 .../org/jclouds/vcloud/features/OrgApiTest.java |  89 ++
 .../vcloud/features/TaskApiLiveTest.java        |  26 +
 .../jclouds/vcloud/features/TaskApiTest.java    | 106 +++
 .../vcloud/features/VAppApiLiveTest.java        |  49 +
 .../jclouds/vcloud/features/VAppApiTest.java    | 313 +++++++
 .../features/VAppTemplateApiLiveTest.java       | 164 ++++
 .../vcloud/features/VAppTemplateApiTest.java    | 236 +++++
 .../jclouds/vcloud/features/VDCApiLiveTest.java |  26 +
 .../org/jclouds/vcloud/features/VDCApiTest.java | 100 ++
 .../jclouds/vcloud/features/VmApiLiveTest.java  | 161 ++++
 .../org/jclouds/vcloud/features/VmApiTest.java  | 318 +++++++
 ...loudAuthorizationAndCookieToRequestTest.java |  51 ++
 .../ParseLoginResponseFromHeadersTest.java      | 145 +++
 .../ParseVCloudErrorFromHttpResponseTest.java   |  92 ++
 .../vcloud/internal/BasePayloadTest.java        |  51 ++
 .../vcloud/internal/BaseVCloudApiLiveTest.java  |  55 ++
 .../vcloud/internal/BaseVCloudApiTest.java      | 270 ++++++
 .../vcloud/internal/VCloudLoginApiTest.java     |  95 ++
 .../InstantiateVAppTemplateOptionsTest.java     |  72 ++
 ...meMatchingConfigurationKeyOrDefaultTest.java | 113 +++
 .../org/jclouds/vcloud/utils/TestUtils.java     |  30 +
 .../jclouds/vcloud/xml/CatalogHandlerTest.java  | 133 +++
 .../vcloud/xml/CatalogItemHandlerTest.java      |  84 ++
 .../GuestCustomizationSectionHandlerTest.java   |  73 ++
 .../xml/NetworkConnectionHandlerTest.java       |  55 ++
 .../NetworkConnectionSectionHandlerTest.java    |  61 ++
 .../org/jclouds/vcloud/xml/OrgHandlerTest.java  | 122 +++
 .../jclouds/vcloud/xml/OrgListHandlerTest.java  |  55 ++
 .../vcloud/xml/OrgNetworkHandlerTest.java       | 102 +++
 .../xml/SupportedVersionsHandlerTest.java       |  51 ++
 .../org/jclouds/vcloud/xml/TaskHandlerTest.java | 133 +++
 .../vcloud/xml/TasksListHandlerTest.java        |  80 ++
 .../org/jclouds/vcloud/xml/VAppHandlerTest.java |  75 ++
 .../vcloud/xml/VAppTemplateHandlerTest.java     | 162 ++++
 .../org/jclouds/vcloud/xml/VDCHandlerTest.java  | 134 +++
 .../org/jclouds/vcloud/xml/VmHandlerTest.java   |  77 ++
 ...VCloudOperatingSystemSectionHandlerTest.java |  59 ++
 ...VCloudVirtualHardwareSectionHandlerTest.java | 151 ++++
 .../src/test/resources/captureVApp-default.xml  |   1 +
 .../src/test/resources/captureVApp.xml          |   1 +
 .../src/test/resources/catalog-blank.xml        |   7 +
 .../src/test/resources/catalog-hosting.xml      |  25 +
 .../src/test/resources/catalog.xml              |  27 +
 .../src/test/resources/catalog1.0-vcd15.xml     |   9 +
 ...alogItem-carrenza-with-default-namespace.xml |   8 +
 ...talogItem-carrenza-with-vcloud-namespace.xml |   8 +
 .../src/test/resources/catalogItem-hosting.xml  |  14 +
 .../test/resources/catalogItem-terremark.xml    |  16 +
 .../src/test/resources/catalogItem1.0-vcd15.xml |   8 +
 .../src/test/resources/copyVApp-default.xml     |   1 +
 .../src/test/resources/copyVApp.xml             |   1 +
 .../test/resources/copyVAppTemplate-default.xml |   1 +
 .../src/test/resources/copyVAppTemplate.xml     |   1 +
 .../src/test/resources/cpuItem.xml              |   1 +
 .../src/test/resources/guestCustomization.xml   |  23 +
 .../resources/guestCustomizationSection.xml     |   3 +
 .../src/test/resources/instantiatedvapp.xml     |  13 +
 .../instantiationparams-description.xml         |   1 +
 .../resources/instantiationparams-network.xml   |   1 +
 .../src/test/resources/instantiationparams.xml  |   1 +
 .../1.8.1-stratos/src/test/resources/log4j.xml  | 151 ++++
 .../src/test/resources/memoryItem.xml           |   1 +
 .../src/test/resources/moveVApp.xml             |   1 +
 .../src/test/resources/moveVAppTemplate.xml     |   1 +
 .../src/test/resources/networkconnection.xml    |   7 +
 .../test/resources/networkconnectionsection.xml |  18 +
 .../src/test/resources/org-1.0.xml              |  24 +
 .../src/test/resources/org-hosting.xml          |  12 +
 .../src/test/resources/org-savvis.xml           |  13 +
 .../1.8.1-stratos/src/test/resources/org.xml    |   5 +
 .../src/test/resources/org1.0-vcd15.xml         |  11 +
 .../src/test/resources/orgList1.0-vcd15.xml     |   4 +
 .../src/test/resources/orglist-savvis.xml       |   3 +
 .../src/test/resources/orglist.xml              |   3 +
 .../src/test/resources/orgnetwork-bridged.xml   |  20 +
 .../src/test/resources/orgnetwork-isolated.xml  |  31 +
 .../1.8.1-stratos/src/test/resources/os.xml     |  11 +
 .../src/test/resources/ovf-multi-vm.xml         | 285 ++++++
 .../src/test/resources/ovf-ubuntu64.xml         | 148 +++
 .../src/test/resources/task-1.0.xml             |   9 +
 .../src/test/resources/task-error.xml           |   9 +
 .../src/test/resources/task-hosting.xml         |  12 +
 .../src/test/resources/task-self.xml            |  11 +
 .../src/test/resources/task-vcd15.xml           |   5 +
 .../1.8.1-stratos/src/test/resources/task.xml   |   8 +
 .../src/test/resources/taskslist-hosting.xml    |  14 +
 .../src/test/resources/taskslist.xml            |  27 +
 .../resources/template1.0-vcd15-multi-vm.xml    |  68 ++
 .../src/test/resources/template1.0-vcd15.xml    |  72 ++
 .../src/test/resources/vAppTemplate-copying.xml |  41 +
 .../src/test/resources/vAppTemplate.xml         | 143 +++
 .../vAppTemplate1.0-vcd15_withNewlines.xml      | 109 +++
 .../src/test/resources/vapp-hosting.xml         | 235 +++++
 .../src/test/resources/vapp-none.xml            | 237 +++++
 .../src/test/resources/vapp-pool.xml            | 227 +++++
 .../src/test/resources/vapp-rhel-off-static.xml | 325 +++++++
 .../src/test/resources/vapp-ubuntu-off-dhcp.xml | 213 +++++
 .../src/test/resources/vapp-unresolved.xml      |  21 +
 .../src/test/resources/vapp-win-off-static.xml  | 219 +++++
 .../src/test/resources/vdc-1.0.xml              |  49 +
 .../src/test/resources/vdc-hosting.xml          |  60 ++
 .../src/test/resources/vdc-nonet.xml            |  22 +
 .../1.8.1-stratos/src/test/resources/vdc.xml    |  36 +
 .../src/test/resources/vdc1.0-vcd15.xml         |  47 +
 .../src/test/resources/versions-vcd15.xml       | 906 +++++++++++++++++++
 .../src/test/resources/versions.xml             |   7 +
 .../test/resources/virtualhardwaresection.xml   | 118 +++
 .../src/test/resources/vm-rhel-off-static.xml   | 197 ++++
 315 files changed, 29470 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt
new file mode 100644
index 0000000..b00a7af
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/README.txt
@@ -0,0 +1,6 @@
+#
+# The jclouds API for VMware vCloud (http://www.vmware.com/products/vcloud/).
+#
+# TODO: Implementation status.
+# TODO: Supported features.
+# TODO: Usage example.

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml
new file mode 100644
index 0000000..8357aec
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/pom.xml
@@ -0,0 +1,131 @@
+<?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.
+
+-->
+<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/maven-v4_0_0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.jclouds</groupId>
+    <artifactId>jclouds-project</artifactId>
+    <version>1.8.1</version>
+  </parent>
+  <groupId>org.apache.stratos</groupId>
+  <artifactId>vcloud</artifactId>
+  <version>1.8.1-stratos</version>
+  <name>jclouds vcloud api</name>
+  <description>jclouds components to access an implementation of VMWare 
vCloud</description>
+  <packaging>bundle</packaging>
+
+  <properties>
+    <jclouds.version>1.8.1</jclouds.version>
+    <test.vcloud.endpoint>FIXME_ENDPOINT</test.vcloud.endpoint>
+    <test.vcloud.api-version>1.0</test.vcloud.api-version>
+    <test.vcloud.build-version />
+    <test.vcloud.identity>FIXME_IDENTITY</test.vcloud.identity>
+    <test.vcloud.credential>FIXME_CREDENTIAL</test.vcloud.credential>
+    <test.vcloud.template />
+    
<jclouds.osgi.export>org.jclouds.vcloud*;version="${project.version}"</jclouds.osgi.export>
+    <jclouds.osgi.import>
+      org.jclouds.compute.internal;version="${jclouds.version}",
+      org.jclouds.rest.internal;version="${jclouds.version}",
+      org.jclouds*;version="${jclouds.version}",
+      *
+    </jclouds.osgi.import>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.jamesmurty.utils</groupId>
+      <artifactId>java-xmlbuilder</artifactId>
+      <version>0.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-core</artifactId>
+      <version>${jclouds.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-core</artifactId>
+      <version>${jclouds.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-compute</artifactId>
+      <version>${jclouds.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds</groupId>
+      <artifactId>jclouds-compute</artifactId>
+      <version>${jclouds.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-sshj</artifactId>
+      <version>${jclouds.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jclouds.driver</groupId>
+      <artifactId>jclouds-log4j</artifactId>
+      <version>${jclouds.version}</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+    <profile>
+      <id>live</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>integration</id>
+                <phase>integration-test</phase>
+                <goals>
+                  <goal>test</goal>
+                </goals>
+                <configuration>
+                  <systemPropertyVariables>
+                    
<test.vcloud.endpoint>${test.vcloud.endpoint}</test.vcloud.endpoint>
+                    
<test.vcloud.api-version>${test.vcloud.api-version}</test.vcloud.api-version>
+                    
<test.vcloud.build-version>${test.vcloud.build-version}</test.vcloud.build-version>
+                    
<test.vcloud.identity>${test.vcloud.identity}</test.vcloud.identity>
+                    
<test.vcloud.credential>${test.vcloud.credential}</test.vcloud.credential>
+                    
<test.vcloud.template>${test.vcloud.template}</test.vcloud.template>
+                  </systemPropertyVariables>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
+  <scm>
+    <tag>4.0.0-rc4</tag>
+  </scm>
+</project>

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
new file mode 100644
index 0000000..fb54599
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskInErrorStateException.java
@@ -0,0 +1,34 @@
+/*
+ * 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.vcloud;
+
+import org.jclouds.vcloud.domain.Task;
+
+public class TaskInErrorStateException extends RuntimeException {
+
+   private final Task task;
+
+   public TaskInErrorStateException(Task task) {
+      super("error on task: " + task + " error: " + task.getError());
+      this.task = task;
+   }
+
+   public Task getTask() {
+      return task;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
new file mode 100644
index 0000000..64eafbe
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/TaskStillRunningException.java
@@ -0,0 +1,34 @@
+/*
+ * 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.vcloud;
+
+import org.jclouds.vcloud.domain.Task;
+
+public class TaskStillRunningException extends RuntimeException {
+
+   private final Task task;
+
+   public TaskStillRunningException(Task task) {
+      super("task still running: " + task);
+      this.task = task;
+   }
+
+   public Task getTask() {
+      return task;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
new file mode 100644
index 0000000..1c3b46c
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApi.java
@@ -0,0 +1,90 @@
+/*
+ * 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.vcloud;
+
+import java.io.Closeable;
+
+import org.jclouds.rest.annotations.Delegate;
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.vcloud.features.CatalogApi;
+import org.jclouds.vcloud.features.NetworkApi;
+import org.jclouds.vcloud.features.OrgApi;
+import org.jclouds.vcloud.features.TaskApi;
+import org.jclouds.vcloud.features.VAppApi;
+import org.jclouds.vcloud.features.VAppTemplateApi;
+import org.jclouds.vcloud.features.VDCApi;
+import org.jclouds.vcloud.features.VmApi;
+import org.jclouds.vcloud.filters.AddVCloudAuthorizationAndCookieToRequest;
+
+/**
+ * Provides access to VCloud resources via their REST API.
+ * <p/>
+ * 
+ * @see <a 
href="http://communities.vmware.com/community/developer/forums/vcloudapi"; />
+ */
+@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
+public interface VCloudApi extends Closeable {
+   /**
+    * Provides asynchronous access to VApp Template features.
+    * 
+    */
+   @Delegate
+   VAppTemplateApi getVAppTemplateApi();
+
+   /**
+    * Provides synchronous access to VApp features.
+    */
+   @Delegate
+   VAppApi getVAppApi();
+
+   /**
+    * Provides synchronous access to Vm features.
+    */
+   @Delegate
+   VmApi getVmApi();
+
+   /**
+    * Provides synchronous access to Catalog features.
+    */
+   @Delegate
+   CatalogApi getCatalogApi();
+
+   /**
+    * Provides synchronous access to Task features.
+    */
+   @Delegate
+   TaskApi getTaskApi();
+
+   /**
+    * Provides synchronous access to VDC features.
+    */
+   @Delegate
+   VDCApi getVDCApi();
+
+   /**
+    * Provides synchronous access to Network features.
+    */
+   @Delegate
+   NetworkApi getNetworkApi();
+
+   /**
+    * Provides synchronous access to Org features.
+    */
+   @Delegate
+   OrgApi getOrgApi();
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
new file mode 100644
index 0000000..4c88d8a
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudApiMetadata.java
@@ -0,0 +1,101 @@
+/*
+ * 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.vcloud;
+import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
+import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE;
+import static org.jclouds.reflect.Reflection2.typeToken;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_FENCEMODE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_VERSION_SCHEMA;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import java.net.URI;
+import java.util.Properties;
+
+import org.jclouds.compute.ComputeServiceContext;
+import org.jclouds.rest.internal.BaseHttpApiMetadata;
+import org.jclouds.vcloud.compute.config.VCloudComputeServiceContextModule;
+import org.jclouds.vcloud.config.VCloudHttpApiModule;
+import org.jclouds.vcloud.domain.network.FenceMode;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.inject.Module;
+
+/**
+ * Implementation of {@link ApiMetadata} for VCloud 1.0 API
+ */
+public class VCloudApiMetadata extends BaseHttpApiMetadata<VCloudApi> {
+
+
+   @Override
+   public Builder toBuilder() {
+      return new Builder().fromApiMetadata(this);
+   }
+
+   public VCloudApiMetadata() {
+      this(new Builder());
+   }
+
+   protected VCloudApiMetadata(Builder builder) {
+      super(builder);
+   }
+
+   public static Properties defaultProperties() {
+      Properties properties = BaseHttpApiMetadata.defaultProperties();
+      properties.setProperty(PROPERTY_VCLOUD_VERSION_SCHEMA, "1");
+      properties.setProperty(PROPERTY_VCLOUD_XML_NAMESPACE,
+            String.format("http://www.vmware.com/vcloud/v${%s}";, 
PROPERTY_VCLOUD_VERSION_SCHEMA));
+      properties.setProperty(PROPERTY_SESSION_INTERVAL, 8 * 60 + "");
+      properties.setProperty(PROPERTY_VCLOUD_XML_SCHEMA, 
"http://vcloud.safesecureweb.com/ns/vcloud.xsd";);
+      properties.setProperty("jclouds.dns_name_length_min", "1");
+      properties.setProperty("jclouds.dns_name_length_max", "80");
+      properties.setProperty(PROPERTY_VCLOUD_DEFAULT_FENCEMODE, 
FenceMode.BRIDGED.toString());
+      // TODO integrate this with the {@link ComputeTimeouts} instead of having
+      // a single timeout for
+      // everything.
+      properties.setProperty(PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED, 1200l * 
1000l + "");
+      properties.setProperty(PROPERTY_SESSION_INTERVAL, 300 + "");
+      // CIM ostype does not include version info
+      properties.setProperty(TEMPLATE, "osFamily=UBUNTU,os64Bit=true");
+      return properties;
+   }
+
+   public static class Builder extends BaseHttpApiMetadata.Builder<VCloudApi, 
Builder> {
+      protected Builder() {
+          id("vcloud")
+         .name("VCloud 1.0 API")
+         .identityName("User at Organization (user@org)")
+         .credentialName("Password")
+         
.documentation(URI.create("http://www.vmware.com/support/pubs/vcd_pubs.html";))
+         .version("1.0")
+         .defaultProperties(VCloudApiMetadata.defaultProperties())
+         .view(typeToken(ComputeServiceContext.class))
+         .defaultModules(ImmutableSet.<Class<? extends 
Module>>of(VCloudHttpApiModule.class, VCloudComputeServiceContextModule.class));
+      }
+
+      @Override
+      public VCloudApiMetadata build() {
+         return new VCloudApiMetadata(this);
+      }
+
+      @Override
+      protected Builder self() {
+         return this;
+      }
+   }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudMediaType.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudMediaType.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudMediaType.java
new file mode 100644
index 0000000..67701fb
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudMediaType.java
@@ -0,0 +1,222 @@
+/*
+ * 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.vcloud;
+
+import javax.ws.rs.core.MediaType;
+
+/**
+ * Resource Types used in VCloud
+ * 
+ * @see MediaType
+ */
+public interface VCloudMediaType {
+   /**
+    * "application/vnd.vmware.vcloud.error+xml"
+    */
+   public static final String ERROR_XML = 
"application/vnd.vmware.vcloud.error+xml";
+
+   /**
+    * "application/vnd.vmware.vcloud.error+xml"
+    */
+   public static final MediaType ERROR_XML_TYPE = new MediaType("application", 
"vnd.vmware.vcloud.error+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.vcloud+xml"
+    */
+   public static final String VCLOUD_XML = 
"application/vnd.vmware.vcloud.vcloud+xml";
+
+   /**
+    * "application/vnd.vmware.vcloud.vcloud+xml"
+    */
+   public static final MediaType VCLOUD_XML_TYPE = new 
MediaType("application", "vnd.vmware.vcloud.vcloud+xml");
+   /**
+    * "application/vnd.vmware.vcloud.orgList+xml"
+    */
+   public static final String ORGLIST_XML = 
"application/vnd.vmware.vcloud.orgList+xml";
+
+   /**
+    * "application/vnd.vmware.vcloud.orgList+xml"
+    */
+   public static final MediaType ORGLIST_XML_TYPE = new 
MediaType("application", "vnd.vmware.vcloud.orgList+xml");
+   /**
+    * "application/vnd.vmware.vcloud.org+xml"
+    */
+   public static final String ORG_XML = 
"application/vnd.vmware.vcloud.org+xml";
+   /**
+    * "application/vnd.vmware.vcloud.org+xml"
+    */
+   public static final MediaType ORG_XML_TYPE = new MediaType("application", 
"vnd.vmware.vcloud.org+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.vdc+xml"
+    */
+   public static final String VDC_XML = 
"application/vnd.vmware.vcloud.vdc+xml";
+   /**
+    * "application/vnd.vmware.vcloud.vdc+xml"
+    */
+   public static final MediaType VDC_XML_TYPE = new MediaType("application", 
"vnd.vmware.vcloud.vdc+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.catalog+xml"
+    */
+   public static final String CATALOG_XML = 
"application/vnd.vmware.vcloud.catalog+xml";
+   /**
+    * "application/vnd.vmware.vcloud.catalog+xml"
+    */
+   public static final MediaType CATALOG_XML_TYPE = new 
MediaType("application", "vnd.vmware.vcloud.catalog+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.tasksList+xml"
+    */
+   public static final String TASKSLIST_XML = 
"application/vnd.vmware.vcloud.tasksList+xml";
+   /**
+    * "application/vnd.vmware.vcloud.tasksList+xml"
+    */
+   public static final MediaType TASKSLIST_XML_TYPE = new 
MediaType("application", "vnd.vmware.vcloud.tasksList+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.catalogItem+xml"
+    */
+   public static final String CATALOGITEM_XML = 
"application/vnd.vmware.vcloud.catalogItem+xml";
+   /**
+    * "application/vnd.vmware.vcloud.catalogItem+xml"
+    */
+   public static final MediaType CATALOGITEM_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.catalogItem+xml");
+   /**
+    * "application/vnd.vmware.vcloud.networkConnectionSection+xml"
+    */
+   public static final String NETWORKCONNECTIONSECTION_XML = 
"application/vnd.vmware.vcloud.networkConnectionSection+xml";
+   /**
+    * "application/vnd.vmware.vcloud.networkConnectionSection+xml"
+    */
+   public static final MediaType NETWORKCONNECTIONSECTION_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.networkConnectionSection+xml");
+   /**
+    * "application/vnd.vmware.vcloud.virtualHardwareSection+xml"
+    */
+   public static final String VIRTUALHARDWARESECTION_XML = 
"application/vnd.vmware.vcloud.virtualHardwareSection+xml";
+   /**
+    * "application/vnd.vmware.vcloud.virtualHardwareSection+xml"
+    */
+   public static final MediaType VIRTUALHARDWARESECTION_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.virtualHardwareSection+xml");
+   /**
+    * "application/vnd.vmware.vcloud.guestCustomizationSection+xml"
+    */
+   public static final String GUESTCUSTOMIZATIONSECTION_XML = 
"application/vnd.vmware.vcloud.guestCustomizationSection+xml";
+   /**
+    * "application/vnd.vmware.vcloud.guestCustomizationSection+xml"
+    */
+   public static final MediaType GUESTCUSTOMIZATIONSECTION_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.guestCustomizationSection+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.networkSection+xml"
+    */
+   public static final String NETWORKSECTION_XML = 
"application/vnd.vmware.vcloud.networkSection+xml";
+   /**
+    * "application/vnd.vmware.vcloud.networkSection+xml"
+    */
+   public static final MediaType NETWORKSECTION_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.networkSection+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.task+xml"
+    */
+   public static final String TASK_XML = 
"application/vnd.vmware.vcloud.task+xml";
+   /**
+    * "application/vnd.vmware.vcloud.task+xml"
+    */
+   public static final MediaType TASK_XML_TYPE = new MediaType("application", 
"vnd.vmware.vcloud.task+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.undeployVAppParams+xml"
+    */
+   public static final String UNDEPLOYVAPPPARAMS_XML = 
"application/vnd.vmware.vcloud.undeployVAppParams+xml";
+   /**
+    * "application/vnd.vmware.vcloud.undeployVAppParams+xml"
+    */
+   public static final MediaType UNDEPLOYVAPPPARAMS_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.undeployVAppParams+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.deployVAppParams+xml"
+    */
+   public static final String DEPLOYVAPPPARAMS_XML = 
"application/vnd.vmware.vcloud.deployVAppParams+xml";
+   /**
+    * "application/vnd.vmware.vcloud.deployVAppParams+xml"
+    */
+   public static final MediaType DEPLOYVAPPPARAMS_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.deployVAppParams+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.vApp+xml"
+    */
+   public static final String VAPP_XML = 
"application/vnd.vmware.vcloud.vApp+xml";
+   /**
+    * "application/vnd.vmware.vcloud.vApp+xml"
+    */
+   public static final MediaType VAPP_XML_TYPE = new MediaType("application", 
"vnd.vmware.vcloud.vApp+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.vm+xml"
+    */
+   public static final String VM_XML = "application/vnd.vmware.vcloud.vm+xml";
+   /**
+    * "application/vnd.vmware.vcloud.vm+xml"
+    */
+   public static final MediaType VM_XML_TYPE = new MediaType("application", 
"vnd.vmware.vcloud.vm+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.vAppTemplate+xml"
+    */
+   public static final String VAPPTEMPLATE_XML = 
"application/vnd.vmware.vcloud.vAppTemplate+xml";
+   /**
+    * "application/vnd.vmware.vcloud.vAppTemplate+xml"
+    */
+   public static final MediaType VAPPTEMPLATE_XML_TYPE = new 
MediaType("application",
+         "vnd.vmware.vcloud.vAppTemplate+xml");
+   /**
+    * "application/vnd.vmware.vcloud.network+xml"
+    */
+   public static final String NETWORK_XML = 
"application/vnd.vmware.vcloud.network+xml";
+   /**
+    * "application/vnd.vmware.vcloud.network+xml"
+    */
+   public static final MediaType NETWORK_XML_TYPE = new 
MediaType("application", "vnd.vmware.vcloud.network+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.rasdItem+xml"
+    */
+   public static final String RASDITEM_XML = 
"application/vnd.vmware.vcloud.rasdItem+xml";
+   /**
+    * "application/vnd.vmware.vcloud.rasdItem+xml"
+    */
+   public static final MediaType RASDITEM_XML_TYPE = new 
MediaType("application", "vnd.vmware.vcloud.rasdItem+xml");
+
+   /**
+    * "application/vnd.vmware.vcloud.session+xml"
+    */
+   public static final String SESSION_XML = 
"application/vnd.vmware.vcloud.session+xml";
+
+   /**
+    * "application/vnd.vmware.vcloud.session+xml"
+    */
+   public static final MediaType SESSION_XML_TYPE = new 
MediaType("application", "vnd.vmware.vcloud.session+xml");
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudResponseException.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudResponseException.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudResponseException.java
new file mode 100644
index 0000000..ea8d7f8
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudResponseException.java
@@ -0,0 +1,66 @@
+/*
+ * 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.vcloud;
+
+import org.jclouds.http.HttpCommand;
+import org.jclouds.http.HttpResponse;
+import org.jclouds.http.HttpResponseException;
+import org.jclouds.vcloud.domain.VCloudError;
+
+/**
+ * Encapsulates an VCloud Error.
+ */
+public class VCloudResponseException extends HttpResponseException {
+
+   private org.jclouds.vcloud.domain.VCloudError error;
+
+   public VCloudResponseException(HttpCommand command, HttpResponse response, 
VCloudError error) {
+      super(String.format("request %s failed with code %s, error: %s", 
command.getCurrentRequest().getRequestLine(), response
+               .getStatusCode(), error.toString()), command, response);
+      this.setError(error);
+
+   }
+
+   public VCloudResponseException(HttpCommand command, HttpResponse response, 
VCloudError error, Throwable cause) {
+      super(String.format("request %1$s failed with error: %2$s", 
command.getCurrentRequest().getRequestLine(), error
+               .toString()), command, response, cause);
+      this.setError(error);
+
+   }
+
+   public VCloudResponseException(String message, HttpCommand command, 
HttpResponse response, VCloudError error) {
+      super(message, command, response);
+      this.setError(error);
+
+   }
+
+   public VCloudResponseException(String message, HttpCommand command, 
HttpResponse response, VCloudError error,
+            Throwable cause) {
+      super(message, command, response, cause);
+      this.setError(error);
+
+   }
+
+   public void setError(VCloudError error) {
+      this.error = error;
+   }
+
+   public VCloudError getError() {
+      return error;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudToken.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudToken.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudToken.java
new file mode 100644
index 0000000..2aca7bd
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudToken.java
@@ -0,0 +1,34 @@
+/*
+ * 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.vcloud;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+/**
+ * A VCloud Session Token
+ */
+@Retention(value = RetentionPolicy.RUNTIME)
+@Target(value = { ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD 
})
+@Qualifier
+public @interface VCloudToken {
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudVersionsApi.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudVersionsApi.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudVersionsApi.java
new file mode 100644
index 0000000..b6c46f9
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/VCloudVersionsApi.java
@@ -0,0 +1,38 @@
+/*
+ * 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.vcloud;
+
+import java.io.Closeable;
+import java.net.URI;
+import java.util.SortedMap;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+
+import org.jclouds.rest.annotations.RequestFilters;
+import org.jclouds.rest.annotations.XMLResponseParser;
+import org.jclouds.vcloud.http.filters.VCloudSupportedVersions;
+import org.jclouds.vcloud.xml.SupportedVersionsHandler;
+
+@RequestFilters(VCloudSupportedVersions.class)
+public interface VCloudVersionsApi extends Closeable {
+
+   @GET
+   @XMLResponseParser(SupportedVersionsHandler.class)
+   @Path("/versions")
+   SortedMap<String, URI> getSupportedVersions();
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCPUCountToXmlPayload.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCPUCountToXmlPayload.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCPUCountToXmlPayload.java
new file mode 100644
index 0000000..fc757a1
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCPUCountToXmlPayload.java
@@ -0,0 +1,74 @@
+/*
+ * 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.vcloud.binders;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import java.util.Properties;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.jclouds.cim.ResourceAllocationSettingData.ResourceType;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.binders.BindToStringPayload;
+
+import com.google.common.base.Throwables;
+import com.google.inject.Inject;
+import com.jamesmurty.utils.XMLBuilder;
+
+@Singleton
+public class BindCPUCountToXmlPayload extends BindToStringPayload {
+   protected final String ns;
+   protected final String schema;
+
+   @Inject
+   public BindCPUCountToXmlPayload(BindToStringPayload stringBinder, 
@Named(PROPERTY_VCLOUD_XML_NAMESPACE) String ns,
+         @Named(PROPERTY_VCLOUD_XML_SCHEMA) String schema) {
+      this.ns = ns;
+      this.schema = schema;
+   }
+
+   private static final String RESOURCE_ALLOCATION_NS = 
"http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData";;
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Object payload) {
+      checkArgument(checkNotNull(payload, "cpuCount") instanceof Integer, 
"this binder is only valid for Integers!");
+      Integer cpuCount = Integer.class.cast(payload);
+      XMLBuilder cpuItem;
+      try {
+         cpuItem = XMLBuilder.create("Item").a("xmlns", ns).a("xmlns:rasd", 
RESOURCE_ALLOCATION_NS);
+         cpuItem.e("rasd:AllocationUnits").t("hertz * 10^6");
+         cpuItem.e("rasd:Description").t("Number of Virtual CPUs");
+         cpuItem.e("rasd:ElementName").t(cpuCount.toString() + " virtual 
CPU(s)");
+         cpuItem.e("rasd:InstanceID").t("4");
+         cpuItem.e("rasd:ResourceType").t(ResourceType.PROCESSOR.value());
+         cpuItem.e("rasd:VirtualQuantity").t(cpuCount.toString());
+         cpuItem.e("rasd:Weight").t("0");
+         Properties outputProperties = new Properties();
+         
outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, 
"yes");
+         request = super.bindToRequest(request, 
cpuItem.asString(outputProperties));
+      } catch (Exception e) {
+         Throwables.propagate(e);
+      }
+      return request;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCaptureVAppParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCaptureVAppParamsToXmlPayload.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCaptureVAppParamsToXmlPayload.java
new file mode 100644
index 0000000..8a556be
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCaptureVAppParamsToXmlPayload.java
@@ -0,0 +1,119 @@
+/*
+ * 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.vcloud.binders;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
+
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.MapBinder;
+import org.jclouds.rest.binders.BindToStringPayload;
+import org.jclouds.rest.internal.GeneratedHttpRequest;
+import org.jclouds.vcloud.VCloudMediaType;
+import org.jclouds.vcloud.options.CaptureVAppOptions;
+
+import com.google.inject.Inject;
+import com.jamesmurty.utils.XMLBuilder;
+
+@Singleton
+public class BindCaptureVAppParamsToXmlPayload implements MapBinder {
+
+   protected final String ns;
+   protected final String schema;
+   private final BindToStringPayload stringBinder;
+
+   @Inject
+   public BindCaptureVAppParamsToXmlPayload(BindToStringPayload stringBinder,
+         @Named(PROPERTY_VCLOUD_XML_NAMESPACE) String ns, 
@Named(PROPERTY_VCLOUD_XML_SCHEMA) String schema) {
+      this.ns = ns;
+      this.schema = schema;
+      this.stringBinder = stringBinder;
+   }
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Map<String, 
Object> postParams) {
+      checkArgument(checkNotNull(request, "request") instanceof 
GeneratedHttpRequest,
+            "this binder is only valid for GeneratedHttpRequests!");
+      GeneratedHttpRequest gRequest = (GeneratedHttpRequest) request;
+      String templateName = checkNotNull(postParams.remove("templateName"), 
"templateName").toString();
+      String vApp = checkNotNull(postParams.remove("vApp"), "vApp").toString();
+
+      CaptureVAppOptions options = findOptionsInArgsOrNull(gRequest);
+      if (options == null) {
+         options = new CaptureVAppOptions();
+      }
+      try {
+         return stringBinder.bindToRequest(request, generateXml(templateName, 
vApp, options));
+      } catch (ParserConfigurationException e) {
+         throw new RuntimeException(e);
+      } catch (FactoryConfigurationError e) {
+         throw new RuntimeException(e);
+      } catch (TransformerException e) {
+         throw new RuntimeException(e);
+      }
+
+   }
+
+   protected String generateXml(String templateName, String vApp, 
CaptureVAppOptions options)
+         throws ParserConfigurationException, FactoryConfigurationError, 
TransformerException {
+      XMLBuilder rootBuilder = buildRoot(templateName);
+      if (options.getDescription() != null)
+         rootBuilder.e("Description").text(options.getDescription());
+      rootBuilder.e("Source").a("href", vApp).a("type", 
VCloudMediaType.VAPP_XML);
+      Properties outputProperties = new Properties();
+      
outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, 
"yes");
+      return rootBuilder.asString(outputProperties);
+   }
+
+   protected XMLBuilder buildRoot(String name) throws 
ParserConfigurationException, FactoryConfigurationError {
+      XMLBuilder rootBuilder = 
XMLBuilder.create("CaptureVAppParams").a("name", name).a("xmlns", ns)
+            .a("xmlns:xsi", 
"http://www.w3.org/2001/XMLSchema-instance";).a("xsi:schemaLocation", ns + " " + 
schema);
+      return rootBuilder;
+   }
+
+   protected CaptureVAppOptions findOptionsInArgsOrNull(GeneratedHttpRequest 
gRequest) {
+      for (Object arg : gRequest.getInvocation().getArgs()) {
+         if (arg instanceof CaptureVAppOptions) {
+            return (CaptureVAppOptions) arg;
+         } else if (arg instanceof CaptureVAppOptions[]) {
+            CaptureVAppOptions[] options = (CaptureVAppOptions[]) arg;
+            return (options.length > 0) ? options[0] : null;
+         }
+      }
+      return null;
+   }
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+      throw new IllegalStateException("CaptureVAppParams is needs parameters");
+   }
+
+   protected String ifNullDefaultTo(String value, String defaultValue) {
+      return value != null ? value : checkNotNull(defaultValue, 
"defaultValue");
+   }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCatalogItemToXmlPayload.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCatalogItemToXmlPayload.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCatalogItemToXmlPayload.java
new file mode 100644
index 0000000..98c4e3a
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCatalogItemToXmlPayload.java
@@ -0,0 +1,121 @@
+/*
+ * 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.vcloud.binders;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import java.net.URI;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Properties;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerException;
+
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.MapBinder;
+import org.jclouds.rest.binders.BindToStringPayload;
+import org.jclouds.rest.internal.GeneratedHttpRequest;
+import org.jclouds.vcloud.options.CatalogItemOptions;
+
+import com.google.inject.Inject;
+import com.jamesmurty.utils.XMLBuilder;
+
+@Singleton
+public class BindCatalogItemToXmlPayload implements MapBinder {
+
+   protected final String ns;
+   protected final String schema;
+   private final BindToStringPayload stringBinder;
+
+   @Inject
+   public BindCatalogItemToXmlPayload(BindToStringPayload stringBinder,
+            @Named(PROPERTY_VCLOUD_XML_NAMESPACE) String ns, 
@Named(PROPERTY_VCLOUD_XML_SCHEMA) String schema) {
+      this.ns = ns;
+      this.schema = schema;
+      this.stringBinder = stringBinder;
+   }
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Map<String, 
Object> postParams) {
+      checkArgument(checkNotNull(request, "request") instanceof 
GeneratedHttpRequest,
+               "this binder is only valid for GeneratedHttpRequests!");
+      GeneratedHttpRequest gRequest = (GeneratedHttpRequest) request;
+      String name = checkNotNull(postParams.get("name"), "name").toString();
+      URI entity = URI.create(checkNotNull(postParams.get("Entity"), 
"Entity").toString());
+
+      CatalogItemOptions options = findOptionsInArgsOrNew(gRequest);
+      try {
+         return stringBinder.bindToRequest(request, generateXml(name, entity, 
options));
+      } catch (ParserConfigurationException e) {
+         throw new RuntimeException(e);
+      } catch (FactoryConfigurationError e) {
+         throw new RuntimeException(e);
+      } catch (TransformerException e) {
+         throw new RuntimeException(e);
+      }
+
+   }
+
+   protected String generateXml(String templateName, URI entity, 
CatalogItemOptions options)
+            throws ParserConfigurationException, FactoryConfigurationError, 
TransformerException {
+      XMLBuilder rootBuilder = buildRoot(templateName);
+      if (options.getDescription() != null)
+         rootBuilder.e("Description").t(options.getDescription());
+      rootBuilder.e("Entity").a("href", entity.toASCIIString());
+      for (Entry<String, String> entry : options.getProperties().entrySet()) {
+         rootBuilder.e("Property").a("key", 
entry.getKey()).t(entry.getValue());
+      }
+      Properties outputProperties = new Properties();
+      
outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, 
"yes");
+      return rootBuilder.asString(outputProperties);
+   }
+
+   protected XMLBuilder buildRoot(String name) throws 
ParserConfigurationException, FactoryConfigurationError {
+      XMLBuilder rootBuilder = XMLBuilder.create("CatalogItem").a("name", 
name).a("xmlns", ns).a("xmlns:xsi",
+               
"http://www.w3.org/2001/XMLSchema-instance";).a("xsi:schemaLocation", ns + " " + 
schema);
+      return rootBuilder;
+   }
+
+   protected CatalogItemOptions findOptionsInArgsOrNew(GeneratedHttpRequest 
gRequest) {
+      for (Object arg : gRequest.getInvocation().getArgs()) {
+         if (arg instanceof CatalogItemOptions) {
+            return CatalogItemOptions.class.cast(arg);
+         } else if (arg.getClass().isArray()) {
+            Object[] array = (Object[]) arg;
+            if (array.length > 0 && array[0] instanceof CatalogItemOptions)
+               return CatalogItemOptions.class.cast(array[0]);
+         }
+      }
+      return new CatalogItemOptions();
+   }
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+      throw new IllegalStateException("CatalogItem is needs parameters");
+   }
+
+   protected String ifNullDefaultTo(String value, String defaultValue) {
+      return value != null ? value : checkNotNull(defaultValue, 
"defaultValue");
+   }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneParamsToXmlPayload.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneParamsToXmlPayload.java
new file mode 100644
index 0000000..71617bc
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneParamsToXmlPayload.java
@@ -0,0 +1,128 @@
+/*
+ * 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.vcloud.binders;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import java.util.Map;
+import java.util.Properties;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.MapBinder;
+import org.jclouds.rest.binders.BindToStringPayload;
+import org.jclouds.rest.internal.GeneratedHttpRequest;
+import org.jclouds.vcloud.options.CloneOptions;
+
+import com.google.common.base.Throwables;
+import com.google.inject.Inject;
+import com.jamesmurty.utils.XMLBuilder;
+
+@Singleton
+public abstract class BindCloneParamsToXmlPayload<O extends CloneOptions> 
implements MapBinder {
+
+   protected final String ns;
+   protected final String schema;
+   private final BindToStringPayload stringBinder;
+
+   protected abstract String getRootElement();
+   protected abstract String getSourceMediaType();
+   protected abstract Class<O> getOptionClass();
+
+   @Inject
+   public BindCloneParamsToXmlPayload(BindToStringPayload stringBinder,
+            @Named(PROPERTY_VCLOUD_XML_NAMESPACE) String ns, 
@Named(PROPERTY_VCLOUD_XML_SCHEMA) String schema) {
+      this.ns = ns;
+      this.schema = schema;
+      this.stringBinder = stringBinder;
+   }
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Map<String, 
Object> postParams) {
+      checkArgument(checkNotNull(request, "request") instanceof 
GeneratedHttpRequest,
+               "this binder is only valid for GeneratedHttpRequests!");
+      GeneratedHttpRequest gRequest = (GeneratedHttpRequest) request;
+      String name = checkNotNull(postParams.get("name"), "name").toString();
+      String source = checkNotNull(postParams.get("Source"), 
"Source").toString();
+      boolean isSourceDelete = Boolean.parseBoolean((String) 
postParams.get("IsSourceDelete"));
+
+      O options = findOptionsInArgsOrNew(gRequest);
+      return stringBinder.bindToRequest(request, generateXml(name, source, 
isSourceDelete, options));
+   }
+
+   protected String generateXml(String name, String source, boolean 
isSourceDelete, O options) {
+      XMLBuilder rootBuilder = buildRoot(name, options);
+      addElementsUnderRoot(rootBuilder, source, options, isSourceDelete);
+      Properties outputProperties = new Properties();
+      
outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, 
"yes");
+      try {
+         return rootBuilder.asString(outputProperties);
+      } catch (Exception e) {
+         throw Throwables.propagate(e);
+      }
+   }
+
+   protected void addElementsUnderRoot(XMLBuilder rootBuilder, String source, 
O options, boolean isSourceDelete) {
+      if (options.getDescription() != null)
+         rootBuilder.e("Description").text(options.getDescription());
+      rootBuilder.e("Source").a("href", source).a("type", 
getSourceMediaType());
+      if (isSourceDelete)
+         rootBuilder.e("IsSourceDelete").t("true");
+   }
+
+   protected XMLBuilder buildRoot(String name, O options) {
+      try {
+         return XMLBuilder.create(getRootElement()).a("xmlns", 
ns).a("xmlns:xsi",
+                  
"http://www.w3.org/2001/XMLSchema-instance";).a("xsi:schemaLocation", ns + " " + 
schema).a("name",
+                  name);
+      } catch (Exception e) {
+         throw Throwables.propagate(e);
+      }
+   }
+
+   @SuppressWarnings("unchecked")
+   protected O findOptionsInArgsOrNew(GeneratedHttpRequest gRequest) {
+      for (Object arg : gRequest.getInvocation().getArgs()) {
+         if (getOptionClass().isInstance(arg)) {
+            return (O) arg;
+         } else if (arg.getClass().isArray()) {
+            Object[] array = (Object[]) arg;
+            if (array.length > 0 && getOptionClass().isInstance(array[0]))
+               return (O) array[0];
+         }
+      }
+      try {
+         return getOptionClass().newInstance();
+      } catch (Exception e) {
+         throw Throwables.propagate(e);
+      }
+   }
+
+   @Override
+   public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+      throw new IllegalStateException("CloneParams is needs parameters");
+   }
+
+   protected String ifNullDefaultTo(String value, String defaultValue) {
+      return value != null ? value : checkNotNull(defaultValue, 
"defaultValue");
+   }
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppParamsToXmlPayload.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppParamsToXmlPayload.java
new file mode 100644
index 0000000..50c3b83
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppParamsToXmlPayload.java
@@ -0,0 +1,60 @@
+/*
+ * 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.vcloud.binders;
+
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.jclouds.rest.binders.BindToStringPayload;
+import org.jclouds.vcloud.VCloudMediaType;
+import org.jclouds.vcloud.options.CloneVAppOptions;
+
+import com.google.inject.Inject;
+import com.jamesmurty.utils.XMLBuilder;
+
+@Singleton
+public class BindCloneVAppParamsToXmlPayload extends 
BindCloneParamsToXmlPayload<CloneVAppOptions> {
+
+   @Inject
+   public BindCloneVAppParamsToXmlPayload(BindToStringPayload stringBinder,
+            @Named(PROPERTY_VCLOUD_XML_NAMESPACE) String ns, 
@Named(PROPERTY_VCLOUD_XML_SCHEMA) String schema) {
+      super(stringBinder, ns, schema);
+   }
+
+   @Override
+   protected Class<CloneVAppOptions> getOptionClass() {
+      return CloneVAppOptions.class;
+   }
+
+   @Override
+   protected String getRootElement() {
+      return "CloneVAppParams";
+   }
+
+   @Override
+   protected String getSourceMediaType() {
+      return VCloudMediaType.VAPP_XML;
+   }
+
+   protected XMLBuilder buildRoot(String name, CloneVAppOptions options) {
+      return super.buildRoot(name, options).a("deploy", options.isDeploy() + 
"").a("powerOn", options.isPowerOn() + "");
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppTemplateParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppTemplateParamsToXmlPayload.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppTemplateParamsToXmlPayload.java
new file mode 100644
index 0000000..2323c94
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindCloneVAppTemplateParamsToXmlPayload.java
@@ -0,0 +1,55 @@
+/*
+ * 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.vcloud.binders;
+
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_SCHEMA;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.jclouds.rest.binders.BindToStringPayload;
+import org.jclouds.vcloud.VCloudMediaType;
+import org.jclouds.vcloud.options.CloneVAppTemplateOptions;
+
+import com.google.inject.Inject;
+
+@Singleton
+public class BindCloneVAppTemplateParamsToXmlPayload extends 
BindCloneParamsToXmlPayload<CloneVAppTemplateOptions> {
+
+   @Inject
+   public BindCloneVAppTemplateParamsToXmlPayload(BindToStringPayload 
stringBinder,
+            @Named(PROPERTY_VCLOUD_XML_NAMESPACE) String ns, 
@Named(PROPERTY_VCLOUD_XML_SCHEMA) String schema) {
+      super(stringBinder, schema, schema);
+   }
+
+   @Override
+   protected Class<CloneVAppTemplateOptions> getOptionClass() {
+      return CloneVAppTemplateOptions.class;
+   }
+
+   @Override
+   protected String getRootElement() {
+      return "CloneVAppTemplateParams";
+   }
+
+   @Override
+   protected String getSourceMediaType() {
+      return VCloudMediaType.VAPPTEMPLATE_XML;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/stratos/blob/6573fbed/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindDeployVAppParamsToXmlPayload.java
----------------------------------------------------------------------
diff --git 
a/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindDeployVAppParamsToXmlPayload.java
 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindDeployVAppParamsToXmlPayload.java
new file mode 100644
index 0000000..d376222
--- /dev/null
+++ 
b/dependencies/jclouds/apis/vcloud/1.8.1-stratos/src/main/java/org/jclouds/vcloud/binders/BindDeployVAppParamsToXmlPayload.java
@@ -0,0 +1,37 @@
+/*
+ * 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.vcloud.binders;
+
+import static 
org.jclouds.vcloud.reference.VCloudConstants.PROPERTY_VCLOUD_XML_NAMESPACE;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import org.jclouds.rest.binders.BindToStringPayload;
+
+import com.google.inject.Inject;
+
+@Singleton
+public class BindDeployVAppParamsToXmlPayload extends BindParamsToXmlPayload {
+
+   @Inject
+   public BindDeployVAppParamsToXmlPayload(BindToStringPayload stringBinder,
+            @Named(PROPERTY_VCLOUD_XML_NAMESPACE) String ns) {
+      super("DeployVAppParams", stringBinder, ns);
+   }
+
+}

Reply via email to