[jbosstools-issues] [JBoss JIRA] Created: (JBIDE-7930) patch for less static urls for deltacloud

Max Andersen (JIRA) jira-events at lists.jboss.org
Fri Dec 17 03:40:17 EST 2010


patch for less static urls for deltacloud
-----------------------------------------

                 Key: JBIDE-7930
                 URL: https://issues.jboss.org/browse/JBIDE-7930
             Project: Tools (JBoss Tools)
          Issue Type: Feature Request
          Components: deltacloud
            Reporter: Benjamin Browning
            Assignee: Andre Dietisheim


(created by max based on mail from ben)

The patch below is a stab at making your deltacloud client use dynamic URLs instead of hardcoding "/api/images" and so forth.

Note that with this patch you're also expected to provide the complete URL to the API endpoint - http://try.steamcannon.org/deltacloud/api instead of http://try.steamcannon.org/deltacloud for example.

With SteamCannon's next release we'll have a Deltacloud endpoint exposed per environment which should allow your existing tooling to view, start, and stop instances inside a running environment. This is the first step towards the overall SteamCannon API which will come shortly after. The URLs we provide for the Deltacloud endpoints didn't match the hardcoded ones in the client so I figured this was as good of a time as any to make it more dynamic.

Ben


---
.../jboss/tools/deltacloud/core/DeltaCloud.java    |    3 +-
.../core/client/DeltaCloudClientImpl.java          |   60 +++++++++++++++-----
.../client/request/AbstractDeltaCloudRequest.java  |    2 +-
.../client/request/AbstractListObjectsRequest.java |    7 +--
.../core/client/request/CreateInstanceRequest.java |   13 ++--
.../client/request/ListHardwareProfileRequest.java |    9 +--
.../request/ListHardwareProfilesRequest.java       |    6 +-
.../core/client/request/ListImageRequest.java      |    9 +--
.../core/client/request/ListImagesRequest.java     |    6 +-
.../core/client/request/ListInstanceRequest.java   |    9 +--
.../core/client/request/ListInstancesRequest.java  |    6 +-
.../core/client/request/ListRealmRequest.java      |    9 +--
.../core/client/request/ListRealmsRequest.java     |    6 +-
.../tools/deltacloud/core/client/utils/UrlMap.java |   19 ++++++
14 files changed, 102 insertions(+), 62 deletions(-)
create mode 100644 src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java

diff --git a/src/org/jboss/tools/deltacloud/core/DeltaCloud.java b/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
index 5374bc4..87dd632 100644
--- a/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
+++ b/src/org/jboss/tools/deltacloud/core/DeltaCloud.java
@@ -10,7 +10,6 @@
 *******************************************************************************/
package org.jboss.tools.deltacloud.core;

-import java.net.MalformedURLException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Iterator;
@@ -147,7 +146,7 @@ public class DeltaCloud extends ObservablePojo {
			throws DeltaCloudException {
		try {
			return new DeltaCloudClientImpl(url, username, password);
-		} catch (MalformedURLException e) {
+		} catch (Exception e) {
			throw new DeltaCloudException(MessageFormat.format("Could not access cloud at {0}", url), e);
		}
	}
diff --git a/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java b/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
index dcaefde..2e39542 100644
--- a/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
+++ b/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
@@ -65,6 +65,7 @@ import org.jboss.tools.deltacloud.core.client.request.ListRealmRequest;
import org.jboss.tools.deltacloud.core.client.request.ListRealmsRequest;
import org.jboss.tools.deltacloud.core.client.request.PerformInstanceActionRequest;
import org.jboss.tools.deltacloud.core.client.request.TypeRequest;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -90,20 +91,22 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
	}

	private URL baseUrl;
+	private UrlMap urlMap;
	private String username;
	private String password;

-	public DeltaCloudClientImpl(String url) throws MalformedURLException {
+	public DeltaCloudClientImpl(String url) throws MalformedURLException, DeltaCloudClientException {
		this(url, null, null);
	}

-	public DeltaCloudClientImpl(String url, String username, String password) throws MalformedURLException {
+	public DeltaCloudClientImpl(String url, String username, String password) throws MalformedURLException, DeltaCloudClientException{

		logger.debug("Creating new Delta Cloud Client for Server: " + url);

		this.baseUrl = new URL(url);
		this.username = username;
		this.password = password;
+		this.urlMap = getUrlMap();
	}

	protected String sendRequest(DeltaCloudRequest deltaCloudRequest) throws DeltaCloudClientException {
@@ -181,7 +184,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
		default:
			request = new HttpGet(url);
		}
-		request.setHeader("Accept", "application/xml;q=1");
+		request.setHeader("Accept", "application/xml");
		return request;
	}

@@ -248,7 +251,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {

	@Override
	public Instance createInstance(String imageId) throws DeltaCloudClientException {
-		return buildInstance(sendRequest(new CreateInstanceRequest(baseUrl, imageId)));
+		return buildInstance(sendRequest(new CreateInstanceRequest(urlMap, imageId)));
	}

	@Override
@@ -263,49 +266,49 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
	}

	public Instance createInstance(String imageId, String profileId, String realmId, String name, String keyname, String memory, String storage) throws DeltaCloudClientException { 
-		return buildInstance(sendRequest(new CreateInstanceRequest(baseUrl, imageId, profileId, realmId, name, keyname, memory, storage)));
+		return buildInstance(sendRequest(new CreateInstanceRequest(urlMap, imageId, profileId, realmId, name, keyname, memory, storage)));
	}

	@Override
	public HardwareProfile listProfile(String profileId) throws DeltaCloudClientException {
-		return buildDeltaCloudObject(HardwareProfile.class, sendRequest(new ListHardwareProfileRequest(baseUrl, profileId)));
+		return buildDeltaCloudObject(HardwareProfile.class, sendRequest(new ListHardwareProfileRequest(urlMap, profileId)));
	}

	@Override
	public List<HardwareProfile> listProfiles() throws DeltaCloudClientException {
		return listDeltaCloudObjects(HardwareProfile.class, 
-				new ListHardwareProfilesRequest(baseUrl),"hardware_profile");
+				new ListHardwareProfilesRequest(urlMap),"hardware_profile");
	}

	@Override
	public List<Image> listImages() throws DeltaCloudClientException {
-		return listDeltaCloudObjects(Image.class, new ListImagesRequest(baseUrl), "image");
+		return listDeltaCloudObjects(Image.class, new ListImagesRequest(urlMap), "image");
	}

	@Override
	public Image listImages(String imageId) throws DeltaCloudClientException {
-		return JAXB.unmarshal(new StringReader(sendRequest(new ListImageRequest(baseUrl, imageId))), Image.class);
+		return JAXB.unmarshal(new StringReader(sendRequest(new ListImageRequest(urlMap, imageId))), Image.class);
	}

	@Override
	public List<Instance> listInstances() throws DeltaCloudClientException {
-		return listDeltaCloudObjects(Instance.class, new ListInstancesRequest(baseUrl), "instance");
+		return listDeltaCloudObjects(Instance.class, new ListInstancesRequest(urlMap), "instance");
	}

	@Override
	public Instance listInstances(String instanceId) throws DeltaCloudClientException {
//		return JAXB.unmarshal(new StringReader(sendRequest(new ListInstanceRequest(baseUrl, instanceId))), Instance.class);
-		return buildInstance(sendRequest(new ListInstanceRequest(baseUrl, instanceId)));
+		return buildInstance(sendRequest(new ListInstanceRequest(urlMap, instanceId)));
	}

	@Override
	public List<Realm> listRealms() throws DeltaCloudClientException {
-		return listDeltaCloudObjects(Realm.class, new ListRealmsRequest(baseUrl), "realm");
+		return listDeltaCloudObjects(Realm.class, new ListRealmsRequest(urlMap), "realm");
	}

	@Override
	public Realm listRealms(String realmId) throws DeltaCloudClientException {
-		return JAXB.unmarshal(new StringReader(sendRequest(new ListRealmRequest(baseUrl, realmId))), Realm.class);
+		return JAXB.unmarshal(new StringReader(sendRequest(new ListRealmRequest(urlMap, realmId))), Realm.class);
	}

	/**
@@ -395,7 +398,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
		} catch (DeltaCloudClientException e) {
			throw e;
		} catch (Exception e) {
-			DeltaCloudClientException newException = new DeltaCloudClientException(e.getLocalizedMessage());
+			DeltaCloudClientException newException = new DeltaCloudClientException(e.getLocalizedMessage(), e);
			throw newException;
		}
	}
@@ -605,7 +608,7 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
			throw new DeltaCloudClientException(MessageFormat.format("Could not list object of type {0}", clazz), e);
		}
	}
-
+	
	private Document getDocument(String response) throws ParserConfigurationException,
			SAXException, IOException {
		InputSource is = new InputSource(new StringReader(response));
@@ -657,4 +660,31 @@ public class DeltaCloudClientImpl implements InternalDeltaCloudClient {
	private interface INodeVisitor {
		public void visit(Node node) throws Exception;
	}
+	
+	private UrlMap getUrlMap() throws DeltaCloudClientException {
+	    UrlMap map = new UrlMap();
+	    DeltaCloudRequest request = new DeltaCloudRequest() {
+            public URL getUrl() throws MalformedURLException {
+                return baseUrl;
+            }
+            public HttpMethod getHttpMethod() {
+                return HttpMethod.GET;
+            }
+        };
+        try {
+            Document document = getDocument(sendRequest(request));
+            NodeList linksList = document.getElementsByTagName("link");
+            for (int i = 0; i < linksList.getLength(); i++) {
+                NamedNodeMap attributes = linksList.item(i).getAttributes();
+                String rel = attributes.getNamedItem("rel").getNodeValue();
+                String href = attributes.getNamedItem("href").getNodeValue();
+                map.put(rel, new URL(href));
+            }
+        } catch (DeltaCloudClientException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new DeltaCloudClientException(MessageFormat.format("Could not create url map for {0}", baseUrl), e);
+        }
+        return map;
+	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
index b8aca04..16f34b2 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
@@ -30,7 +30,7 @@ public abstract class AbstractDeltaCloudRequest implements DeltaCloudRequest {
	protected abstract String doCreateUrl(UrlBuilder urlBuilder);

	protected UrlBuilder createUrlBuilder(URL baseURL) {
-		return new UrlBuilder(baseURL).path(API_PATH_SEGMENT);
+		return new UrlBuilder(baseURL);
	}
	
	public URL getUrl() throws MalformedURLException {
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java
index 7ea9ca1..9947813 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/AbstractListObjectsRequest.java
@@ -24,16 +24,13 @@ import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
 * @see ListInstancesRequest
 */
public abstract class AbstractListObjectsRequest extends AbstractDeltaCloudRequest {
-	
-	private String objectType;

-	public AbstractListObjectsRequest(URL baseUrl, String objectType) {
+	public AbstractListObjectsRequest(URL baseUrl) {
		super(baseUrl, HttpMethod.GET);
-		this.objectType = objectType;
	}

	@Override
	protected String doCreateUrl(UrlBuilder urlBuilder) {
-		return urlBuilder.path(objectType).toString();
+		return urlBuilder.toString();
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java
index c315f18..782ec36 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/CreateInstanceRequest.java
@@ -10,9 +10,8 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
-
import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;

/**
 * Creates a new instance
@@ -27,13 +26,13 @@ public class CreateInstanceRequest extends AbstractDeltaCloudRequest {
	private String memory;
	private String storage;

-	public CreateInstanceRequest(URL baseUrl, String imageId) {
-		this(baseUrl, imageId, null, null, null, null, null, null);
+	public CreateInstanceRequest(UrlMap urlMap, String imageId) {
+		this(urlMap, imageId, null, null, null, null, null, null);
	}
	
-	public CreateInstanceRequest(URL baseUrl, String imageId, String profileId, String realmId, String name,
+	public CreateInstanceRequest(UrlMap urlMap, String imageId, String profileId, String realmId, String name,
			String keyname, String memory, String storage) {
-		super(baseUrl, HttpMethod.POST);
+		super(urlMap.get("instances"), HttpMethod.POST);
		this.imageId = imageId;
		this.profileId = profileId;
		this.realmId = realmId;
@@ -45,7 +44,7 @@ public class CreateInstanceRequest extends AbstractDeltaCloudRequest {

	@Override
	protected String doCreateUrl(UrlBuilder urlBuilder) {
-		urlBuilder.path("instances").parameter("image_id", imageId);
+		urlBuilder.parameter("image_id", imageId);
		appendParameter("hwp_id", profileId, urlBuilder);
		appendParameter("realm_id", realmId, urlBuilder);
		appendParameter("name", name, urlBuilder);
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java
index 077225d..6daf06d 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfileRequest.java
@@ -10,9 +10,8 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
-
import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -28,13 +27,13 @@ public class ListHardwareProfileRequest extends AbstractDeltaCloudRequest {
	 * @param baseUrl the base url
	 * @param imageId 
	 */
-	public ListHardwareProfileRequest(URL baseUrl, String profileId) {
-		super(baseUrl, HttpMethod.GET);
+	public ListHardwareProfileRequest(UrlMap urlMap, String profileId) {
+		super(urlMap.get("hardware_profiles"), HttpMethod.GET);
		this.profileId = profileId;
	}

	@Override
	protected String doCreateUrl(UrlBuilder urlBuilder) {
-		return urlBuilder.path("hardware_profiles").path(profileId).toString();
+		return urlBuilder.path(profileId).toString();
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java
index 9992db5..89e3bc2 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListHardwareProfilesRequest.java
@@ -10,7 +10,7 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -18,7 +18,7 @@ import java.net.URL;
 */
public class ListHardwareProfilesRequest extends AbstractListObjectsRequest {
	
-	public ListHardwareProfilesRequest(URL baseUrl) {
-		super(baseUrl, "hardware_profiles");
+	public ListHardwareProfilesRequest(UrlMap urlMap) {
+		super(urlMap.get("hardware_profiles"));
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java
index 391645c..a246270 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListImageRequest.java
@@ -10,9 +10,8 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
-
import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -22,13 +21,13 @@ public class ListImageRequest extends AbstractDeltaCloudRequest {
	
	private String imageId;

-	public ListImageRequest(URL baseUrl, String imageId) {
-		super(baseUrl, HttpMethod.GET);
+	public ListImageRequest(UrlMap urlMap, String imageId) {
+		super(urlMap.get("images"), HttpMethod.GET);
		this.imageId = imageId;
	}

	@Override
	protected String doCreateUrl(UrlBuilder urlBuilder) {
-		return urlBuilder.path("images").path(imageId).toString();
+		return urlBuilder.path(imageId).toString();
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java
index a7438af..3a62c29 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListImagesRequest.java
@@ -10,7 +10,7 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -18,7 +18,7 @@ import java.net.URL;
 */
public class ListImagesRequest extends AbstractListObjectsRequest {
	
-	public ListImagesRequest(URL baseUrl) {
-		super(baseUrl, "images");
+	public ListImagesRequest(UrlMap urlMap) {
+		super(urlMap.get("images"));
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java
index 55a8d74..0bf9f44 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListInstanceRequest.java
@@ -10,9 +10,8 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
-
import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -22,13 +21,13 @@ public class ListInstanceRequest extends AbstractDeltaCloudRequest {
	
	private String instanceId;

-	public ListInstanceRequest(URL baseUrl, String instanceId) {
-		super(baseUrl, HttpMethod.GET);
+	public ListInstanceRequest(UrlMap urlMap, String instanceId) {
+		super(urlMap.get("instances"), HttpMethod.GET);
		this.instanceId = instanceId;
	}

	@Override
	protected String doCreateUrl(UrlBuilder urlBuilder) {
-		return urlBuilder.path("instances").path(instanceId).toString();
+		return urlBuilder.path(instanceId).toString();
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java
index b853940..bc4ab66 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListInstancesRequest.java
@@ -10,7 +10,7 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -18,7 +18,7 @@ import java.net.URL;
 */
public class ListInstancesRequest extends AbstractListObjectsRequest {
	
-	public ListInstancesRequest(URL baseUrl) {
-		super(baseUrl, "instances");
+	public ListInstancesRequest(UrlMap urlMap) {
+		super(urlMap.get("instances"));
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java
index 03209c2..9d251eb 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmRequest.java
@@ -10,9 +10,8 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
-
import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -22,13 +21,13 @@ public class ListRealmRequest extends AbstractDeltaCloudRequest {
	
	private String realmId;

-	public ListRealmRequest(URL baseUrl, String realmId) {
-		super(baseUrl, HttpMethod.GET);
+	public ListRealmRequest(UrlMap urlMap, String realmId) {
+		super(urlMap.get("realms"), HttpMethod.GET);
		this.realmId = realmId;
	}

	@Override
	protected String doCreateUrl(UrlBuilder urlBuilder) {
-		return urlBuilder.path("realms").path(realmId).toString();
+		return urlBuilder.path(realmId).toString();
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java
index 4bfb8ef..785e2d8 100644
--- a/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java
+++ b/src/org/jboss/tools/deltacloud/core/client/request/ListRealmsRequest.java
@@ -10,7 +10,7 @@
 ******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;

-import java.net.URL;
+import org.jboss.tools.deltacloud.core.client.utils.UrlMap;


/**
@@ -18,7 +18,7 @@ import java.net.URL;
 */
public class ListRealmsRequest extends AbstractListObjectsRequest {
	
-	public ListRealmsRequest(URL baseUrl) {
-		super(baseUrl, "realms");
+	public ListRealmsRequest(UrlMap urlMap) {
+		super(urlMap.get("realms"));
	}
}
diff --git a/src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java b/src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java
new file mode 100644
index 0000000..d0b4de0
--- /dev/null
+++ b/src/org/jboss/tools/deltacloud/core/client/utils/UrlMap.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.deltacloud.core.client.utils;
+
+import java.net.URL;
+import java.util.HashMap;
+
+public class UrlMap extends HashMap<String, URL> {
+
+}
-- 
1.7.2.1


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbosstools-issues mailing list