mirror of https://github.com/apache/jclouds.git
Issue 435: revised parsers to support savvis org and orglist xml
This commit is contained in:
parent
ec6d03ca37
commit
3e408568e4
|
@ -167,7 +167,9 @@ public class OrgImpl extends ReferenceTypeImpl implements Org {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "[id=" + getHref() + ", name=" + getName() + ", type=" + getType() + "]";
|
return "[href=" + getHref() + ", name=" + getName() + ", type=" + getType() + ", fullName=" + fullName
|
||||||
|
+ ", description=" + description + ", catalogs=" + catalogs + ", networks=" + networks + ", tasksList="
|
||||||
|
+ tasksList + ", vdcs=" + vdcs + ", tasks=" + tasks + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -40,7 +40,9 @@ public class Utils {
|
||||||
public static ReferenceType newReferenceType(Map<String, String> attributes, String defaultType) {
|
public static ReferenceType newReferenceType(Map<String, String> attributes, String defaultType) {
|
||||||
String uri = attributes.get("href");
|
String uri = attributes.get("href");
|
||||||
String type = attributes.get("type");
|
String type = attributes.get("type");
|
||||||
return new ReferenceTypeImpl(attributes.get("name"), type != null ? type : defaultType, URI.create(uri));
|
// savvis org has null href
|
||||||
|
URI href = (uri != null) ? URI.create(uri) : null;
|
||||||
|
return new ReferenceTypeImpl(attributes.get("name"), type != null ? type : defaultType, href);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, String> cleanseAttributes(Attributes in) {
|
public static Map<String, String> cleanseAttributes(Attributes in) {
|
||||||
|
|
|
@ -71,9 +71,9 @@ public class OrgHandler extends ParseSax.HandlerWithResult<Org> {
|
||||||
@Override
|
@Override
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
|
public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
|
||||||
Map<String, String> attributes = cleanseAttributes(attrs);
|
Map<String, String> attributes = cleanseAttributes(attrs);
|
||||||
if (qName.equals("Org")) {
|
if (qName.endsWith("Org")) {
|
||||||
org = newReferenceType(attributes);
|
org = newReferenceType(attributes);
|
||||||
} else if (qName.equals("Link")) {
|
} else if (qName.endsWith("Link")) {
|
||||||
String type = attributes.get("type");
|
String type = attributes.get("type");
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
if (type.indexOf("vdc+xml") != -1) {
|
if (type.indexOf("vdc+xml") != -1) {
|
||||||
|
@ -94,11 +94,11 @@ public class OrgHandler extends ParseSax.HandlerWithResult<Org> {
|
||||||
|
|
||||||
public void endElement(String uri, String name, String qName) {
|
public void endElement(String uri, String name, String qName) {
|
||||||
taskHandler.endElement(uri, name, qName);
|
taskHandler.endElement(uri, name, qName);
|
||||||
if (qName.equals("Task")) {
|
if (qName.endsWith("Task")) {
|
||||||
this.tasks.add(taskHandler.getResult());
|
this.tasks.add(taskHandler.getResult());
|
||||||
} else if (qName.equals("Description")) {
|
} else if (qName.endsWith("Description")) {
|
||||||
description = currentOrNull();
|
description = currentOrNull();
|
||||||
} else if (qName.equals("FullName")) {
|
} else if (qName.endsWith("FullName")) {
|
||||||
fullName = currentOrNull();
|
fullName = currentOrNull();
|
||||||
}
|
}
|
||||||
currentText = new StringBuilder();
|
currentText = new StringBuilder();
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class OrgListHandler extends ParseSax.HandlerWithResult<Map<String, Refer
|
||||||
@Override
|
@Override
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
|
public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
|
||||||
Map<String, String> attributes = cleanseAttributes(attrs);
|
Map<String, String> attributes = cleanseAttributes(attrs);
|
||||||
if (qName.equals("Org")) {
|
if (qName.endsWith("Org")) {
|
||||||
String type = attributes.get("type");
|
String type = attributes.get("type");
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
if (type.indexOf("org+xml") != -1) {
|
if (type.indexOf("org+xml") != -1) {
|
||||||
|
|
|
@ -31,10 +31,14 @@ import org.jclouds.http.functions.ParseSax.Factory;
|
||||||
import org.jclouds.http.functions.config.SaxParserModule;
|
import org.jclouds.http.functions.config.SaxParserModule;
|
||||||
import org.jclouds.vcloud.VCloudMediaType;
|
import org.jclouds.vcloud.VCloudMediaType;
|
||||||
import org.jclouds.vcloud.domain.Org;
|
import org.jclouds.vcloud.domain.Org;
|
||||||
|
import org.jclouds.vcloud.domain.ReferenceType;
|
||||||
|
import org.jclouds.vcloud.domain.Task;
|
||||||
|
import org.jclouds.vcloud.domain.internal.OrgImpl;
|
||||||
import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl;
|
import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.inject.Guice;
|
import com.google.inject.Guice;
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
|
|
||||||
|
@ -107,4 +111,17 @@ public class OrgHandlerTest {
|
||||||
assertEquals(result.getTasksList(), new ReferenceTypeImpl("188849 Task List", TASKSLIST_XML, URI
|
assertEquals(result.getTasksList(), new ReferenceTypeImpl("188849 Task List", TASKSLIST_XML, URI
|
||||||
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/188849")));
|
.create("https://vcloud.safesecureweb.com/api/v0.8/tasksList/188849")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testSavvis() {
|
||||||
|
InputStream is = getClass().getResourceAsStream("/org-savvis.xml");
|
||||||
|
Injector injector = Guice.createInjector(new SaxParserModule());
|
||||||
|
Factory factory = injector.getInstance(ParseSax.Factory.class);
|
||||||
|
Org result = (Org) factory.create(injector.getInstance(OrgHandler.class)).parse(is);
|
||||||
|
assertEquals(result, new OrgImpl("607968.0", null, null, "607968.0", "Gravitant Inc", ImmutableMap
|
||||||
|
.<String, ReferenceType> of(), ImmutableMap.<String, ReferenceType> of("GravDataCenter1(Saved)",
|
||||||
|
new ReferenceTypeImpl("GravDataCenter1(Saved)", "application/vnd.vmware.vcloud.vdc+xml", URI
|
||||||
|
.create("https://api.symphonyVPDC.savvis.net/rest/api/v0.8/org/607968.0/vdc/2826"))),
|
||||||
|
ImmutableMap.<String, ReferenceType> of(), null, ImmutableSet.<Task> of()));
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,4 +48,13 @@ public class OrgListHandlerTest extends BaseHandlerTest {
|
||||||
assertEquals(result, ImmutableMap.of("adrian@jclouds.org", new ReferenceTypeImpl("adrian@jclouds.org",
|
assertEquals(result, ImmutableMap.of("adrian@jclouds.org", new ReferenceTypeImpl("adrian@jclouds.org",
|
||||||
"application/vnd.vmware.vcloud.org+xml", URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/org/48"))));
|
"application/vnd.vmware.vcloud.org+xml", URI.create("https://services.vcloudexpress.terremark.com/api/v0.8/org/48"))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void testSavvis() {
|
||||||
|
InputStream is = getClass().getResourceAsStream("/orglist-savvis.xml");
|
||||||
|
|
||||||
|
Map<String, ReferenceType> result = factory.create(injector.getInstance(OrgListHandler.class)).parse(is);
|
||||||
|
assertEquals(result, ImmutableMap.of("SAVVISStation Integration Testing", new ReferenceTypeImpl("SAVVISStation Integration Testing",
|
||||||
|
"application/vnd.vmware.vcloud.org+xml", URI.create("https://api.sandbox.symphonyvpdc.savvis.net/rest/api/v0.8/org/100000.0"))));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<vApp:Org xmlns:vApp="http://www.vmware.com/vcloud/v0.8"
|
||||||
|
xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common"
|
||||||
|
xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"
|
||||||
|
xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
|
||||||
|
xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
|
||||||
|
name="607968.0">
|
||||||
|
<vApp:Link
|
||||||
|
href="https://api.symphonyVPDC.savvis.net/rest/api/v0.8/org/607968.0/vdc/2826"
|
||||||
|
name="GravDataCenter1(Saved)" rel="down"
|
||||||
|
type="application/vnd.vmware.vcloud.vdc+xml" />
|
||||||
|
<vApp:Description>Gravitant Inc</vApp:Description>
|
||||||
|
</vApp:Org>
|
|
@ -19,6 +19,8 @@
|
||||||
|
|
||||||
package org.jclouds.savvis;
|
package org.jclouds.savvis;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.ws.rs.GET;
|
import javax.ws.rs.GET;
|
||||||
|
|
||||||
|
@ -27,7 +29,6 @@ import org.jclouds.rest.annotations.ExceptionParser;
|
||||||
import org.jclouds.rest.annotations.RequestFilters;
|
import org.jclouds.rest.annotations.RequestFilters;
|
||||||
import org.jclouds.rest.annotations.XMLResponseParser;
|
import org.jclouds.rest.annotations.XMLResponseParser;
|
||||||
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404;
|
||||||
import org.jclouds.vcloud.CommonVCloudClient;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressAsyncClient;
|
import org.jclouds.vcloud.VCloudExpressAsyncClient;
|
||||||
import org.jclouds.vcloud.domain.Org;
|
import org.jclouds.vcloud.domain.Org;
|
||||||
import org.jclouds.vcloud.filters.SetVCloudTokenCookie;
|
import org.jclouds.vcloud.filters.SetVCloudTokenCookie;
|
||||||
|
@ -45,12 +46,25 @@ import com.google.common.util.concurrent.ListenableFuture;
|
||||||
*/
|
*/
|
||||||
@RequestFilters(SetVCloudTokenCookie.class)
|
@RequestFilters(SetVCloudTokenCookie.class)
|
||||||
public interface SymphonyVPDCAsyncClient extends VCloudExpressAsyncClient {
|
public interface SymphonyVPDCAsyncClient extends VCloudExpressAsyncClient {
|
||||||
/**
|
|
||||||
* @see CommonVCloudClient#getOrgNamed
|
/**
|
||||||
*/
|
* {@inheritDoc}
|
||||||
@GET
|
*/
|
||||||
@XMLResponseParser(OrgHandler.class)
|
// savvis doesn't work with accept header
|
||||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
@Override
|
||||||
ListenableFuture<? extends Org> findOrgNamed(
|
@GET
|
||||||
@Nullable @EndpointParam(parser = OrgNameToEndpoint.class) String orgName);
|
@XMLResponseParser(OrgHandler.class)
|
||||||
|
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||||
|
ListenableFuture<? extends Org> findOrgNamed(
|
||||||
|
@Nullable @EndpointParam(parser = OrgNameToEndpoint.class) String orgName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritDoc}
|
||||||
|
*/
|
||||||
|
// savvis doesn't work with accept header
|
||||||
|
@Override
|
||||||
|
@GET
|
||||||
|
@XMLResponseParser(OrgHandler.class)
|
||||||
|
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||||
|
ListenableFuture<? extends Org> getOrg(@EndpointParam URI orgId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,11 +28,9 @@ import org.jclouds.http.annotation.ServerError;
|
||||||
import org.jclouds.savvis.SymphonyVPDCAsyncClient;
|
import org.jclouds.savvis.SymphonyVPDCAsyncClient;
|
||||||
import org.jclouds.savvis.SymphonyVPDCClient;
|
import org.jclouds.savvis.SymphonyVPDCClient;
|
||||||
import org.jclouds.savvis.handlers.SymphonyVPDCErrorHandler;
|
import org.jclouds.savvis.handlers.SymphonyVPDCErrorHandler;
|
||||||
import org.jclouds.savvis.xml.SymphonyVPDCOrgListHandler;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressAsyncClient;
|
import org.jclouds.vcloud.VCloudExpressAsyncClient;
|
||||||
import org.jclouds.vcloud.VCloudExpressClient;
|
import org.jclouds.vcloud.VCloudExpressClient;
|
||||||
import org.jclouds.vcloud.config.BaseVCloudExpressRestClientModule;
|
import org.jclouds.vcloud.config.BaseVCloudExpressRestClientModule;
|
||||||
import org.jclouds.vcloud.xml.OrgListHandler;
|
|
||||||
|
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
|
|
||||||
|
@ -60,7 +58,8 @@ public class SymphonyVPDCRestClientModule extends
|
||||||
@Override
|
@Override
|
||||||
protected void configure() {
|
protected void configure() {
|
||||||
super.configure();
|
super.configure();
|
||||||
bind(OrgListHandler.class).to(SymphonyVPDCOrgListHandler.class);
|
// no longer needed.. just here to show an example of how to override an xml handler
|
||||||
|
// bind(OrgListHandler.class).to(SymphonyVPDCOrgListHandler.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed 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.savvis.xml;
|
|
||||||
|
|
||||||
import static org.jclouds.vcloud.util.Utils.cleanseAttributes;
|
|
||||||
import static org.jclouds.vcloud.util.Utils.putReferenceType;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.jclouds.vcloud.domain.ReferenceType;
|
|
||||||
import org.jclouds.vcloud.xml.OrgListHandler;
|
|
||||||
import org.xml.sax.Attributes;
|
|
||||||
import org.xml.sax.SAXException;
|
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
public class SymphonyVPDCOrgListHandler extends OrgListHandler {
|
|
||||||
|
|
||||||
private Map<String, ReferenceType> org = Maps.newHashMap();
|
|
||||||
|
|
||||||
public Map<String, ReferenceType> getResult() {
|
|
||||||
return org;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
|
|
||||||
Map<String, String> attributes = cleanseAttributes(attrs);
|
|
||||||
if (qName.contains("vApp:Org")) {
|
|
||||||
String type = attributes.get("type");
|
|
||||||
if (type != null) {
|
|
||||||
if (type.indexOf("org+xml") != -1) {
|
|
||||||
putReferenceType(org, attributes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -219,7 +219,7 @@ public class SymphonyVPDCAsyncClientTest extends RestClientTest<SymphonyVPDCAsyn
|
||||||
URI.create("https://api.sandbox.symphonyVPDC.savvis.net/rest/api/v0.8/org/1"));
|
URI.create("https://api.sandbox.symphonyVPDC.savvis.net/rest/api/v0.8/org/1"));
|
||||||
|
|
||||||
assertRequestLineEquals(request, "GET https://api.sandbox.symphonyVPDC.savvis.net/rest/api/v0.8/org/1 HTTP/1.1");
|
assertRequestLineEquals(request, "GET https://api.sandbox.symphonyVPDC.savvis.net/rest/api/v0.8/org/1 HTTP/1.1");
|
||||||
assertNonPayloadHeadersEqual(request, "Accept: application/vnd.vmware.vcloud.org+xml\n");
|
assertNonPayloadHeadersEqual(request, "");
|
||||||
assertPayloadEquals(request, null, null, false);
|
assertPayloadEquals(request, null, null, false);
|
||||||
|
|
||||||
assertResponseParserClassEquals(method, request, ParseSax.class);
|
assertResponseParserClassEquals(method, request, ParseSax.class);
|
||||||
|
@ -234,7 +234,7 @@ public class SymphonyVPDCAsyncClientTest extends RestClientTest<SymphonyVPDCAsyn
|
||||||
HttpRequest request = processor.createRequest(method, "org");
|
HttpRequest request = processor.createRequest(method, "org");
|
||||||
|
|
||||||
assertRequestLineEquals(request, "GET https://api.sandbox.symphonyVPDC.savvis.net/rest/api/v0.8/org/1 HTTP/1.1");
|
assertRequestLineEquals(request, "GET https://api.sandbox.symphonyVPDC.savvis.net/rest/api/v0.8/org/1 HTTP/1.1");
|
||||||
assertNonPayloadHeadersEqual(request, "Accept: application/vnd.vmware.vcloud.org+xml\n");
|
assertNonPayloadHeadersEqual(request, "");
|
||||||
assertPayloadEquals(request, null, null, false);
|
assertPayloadEquals(request, null, null, false);
|
||||||
|
|
||||||
assertResponseParserClassEquals(method, request, ParseSax.class);
|
assertResponseParserClassEquals(method, request, ParseSax.class);
|
||||||
|
|
|
@ -21,10 +21,8 @@ package org.jclouds.savvis;
|
||||||
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import org.jclouds.compute.ComputeServiceContext;
|
|
||||||
import org.jclouds.compute.ComputeServiceContextFactory;
|
import org.jclouds.compute.ComputeServiceContextFactory;
|
||||||
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
import org.jclouds.logging.log4j.config.Log4JLoggingModule;
|
||||||
import org.jclouds.ssh.jsch.config.JschSshClientModule;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressClientLiveTest;
|
import org.jclouds.vcloud.VCloudExpressClientLiveTest;
|
||||||
import org.testng.annotations.BeforeGroups;
|
import org.testng.annotations.BeforeGroups;
|
||||||
|
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 Cloud Conscious, LLC. <info@cloudconscious.com>
|
|
||||||
*
|
|
||||||
* ====================================================================
|
|
||||||
* Licensed 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.savvis.xml;
|
|
||||||
|
|
||||||
import static org.testng.Assert.assertEquals;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.net.URI;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.jclouds.http.functions.BaseHandlerTest;
|
|
||||||
import org.jclouds.vcloud.VCloudExpressMediaType;
|
|
||||||
import org.jclouds.vcloud.domain.ReferenceType;
|
|
||||||
import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl;
|
|
||||||
import org.testng.annotations.Test;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests behavior of {@code OrgListHandler}
|
|
||||||
*
|
|
||||||
* @author Adrian Cole
|
|
||||||
*/
|
|
||||||
// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
|
|
||||||
@Test(groups = "unit", testName = "OrgListHandlerTest")
|
|
||||||
public class SymphonyVPDCOrgListHandlerTest extends BaseHandlerTest {
|
|
||||||
|
|
||||||
public void testApplyInputStream() {
|
|
||||||
InputStream is = getClass().getResourceAsStream("/orglist.xml");
|
|
||||||
|
|
||||||
Map<String, ReferenceType> result = factory.create(injector.getInstance(SymphonyVPDCOrgListHandler.class)).parse(is);
|
|
||||||
assertEquals(result, ImmutableMap.of("SAVVISStation Integration Testing", new ReferenceTypeImpl("SAVVISStation Integration Testing",
|
|
||||||
VCloudExpressMediaType.ORG_XML, URI.create("https://api.sandbox.symphonyvpdc.savvis.net/rest/api/v0.8/org/100000.0"))));
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue