Author: adietish
Date: 2011-09-05 10:12:05 -0400 (Mon, 05 Sep 2011)
New Revision: 34523
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.classpath
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.project
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.settings/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.settings/org.eclipse.jdt.core.prefs
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/META-INF/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/build.properties
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/jboss-dmr-1.0.0.Final.jar
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Domain.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainException.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Openshift.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/OpenshiftException.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserInfo.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractOpenshiftMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftJsonConstants.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequest.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequestMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/OpenshiftJsonRequestFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/UserInfoRequestJsonMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/Activator.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClient.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientException.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientNotFoundException.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/InternalServerErrorException.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/UrlConnectionHttpClient.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/UserInfoRequest.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/StreamUtils.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/UrlBuilder.java
Log:
initial commit
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.classpath
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.classpath
(rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.classpath 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry exported="true" kind="lib"
path="jboss-dmr-1.0.0.Final.jar"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.classpath
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.project
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.project
(rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.project 2011-09-05 14:12:05
UTC (rev 34523)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.ide.eclipse.as.openshift.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Property changes on: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.project
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.settings/org.eclipse.jdt.core.prefs
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.settings/org.eclipse.jdt.core.prefs
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.settings/org.eclipse.jdt.core.prefs 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,8 @@
+#Thu Aug 25 15:26:22 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/META-INF/MANIFEST.MF
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/META-INF/MANIFEST.MF 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Openshift Core Plugin
+Bundle-SymbolicName: org.jboss.ide.eclipse.as.openshift.core
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.jboss.ide.eclipse.as.openshift.internal.core.Activator
+Bundle-Vendor: JBoss by Red Hat
+Require-Bundle: org.eclipse.core.runtime
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: jboss-dmr-1.0.0.Final.jar,
+ .
+Export-Package:
org.jboss.dmr;x-friends:="org.jboss.ide.eclipse.as.openshift.test",
+ org.jboss.ide.eclipse.as.openshift.core,
+
org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;x-friends:="org.jboss.ide.eclipse.as.openshift.test",
+
org.jboss.ide.eclipse.as.openshift.internal.core.request;x-friends:="org.jboss.ide.eclipse.as.openshift.test"
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/META-INF/MANIFEST.MF
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/build.properties
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/build.properties
(rev 0)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/build.properties 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ jboss-dmr-1.0.0.Final.jar
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/build.properties
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/jboss-dmr-1.0.0.Final.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/jboss-dmr-1.0.0.Final.jar
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Domain.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Domain.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Domain.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,5 @@
+package org.jboss.ide.eclipse.as.openshift.core;
+
+public class Domain {
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Domain.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainException.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainException.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainException.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,20 @@
+package org.jboss.ide.eclipse.as.openshift.core;
+
+public class DomainException extends Exception {
+
+ private DomainException(String message, Throwable cause) {
+ super(message, cause);
+ // TODO Auto-generated constructor stub
+ }
+
+ private DomainException(String message) {
+ super(message);
+ // TODO Auto-generated constructor stub
+ }
+
+ private DomainException(Throwable cause) {
+ super(cause);
+ // TODO Auto-generated constructor stub
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainException.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainFactory.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainFactory.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainFactory.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,22 @@
+package org.jboss.ide.eclipse.as.openshift.core;
+
+import org.jboss.dmr.ModelNode;
+import org.jboss.ide.eclipse.as.openshift.internal.core.utils.UrlBuilder;
+
+public class DomainFactory {
+
+ private UrlBuilder urlBuilder;
+
+ public DomainFactory() {
+ this.urlBuilder = new UrlBuilder("https://openshift.redhat.com");
+ }
+
+ public Domain create() throws DomainException {
+ ModelNode node = new ModelNode();
+ node.get("namespace").set("string");
+System.err.println(node.toJSONString(false));
+ // new
UrlConnectionHttpClient(urlBuilder.path("broker").path("domain").toUrl()).post(node.toJSONString(false));
+ return null;
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/DomainFactory.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Openshift.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Openshift.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Openshift.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,59 @@
+package org.jboss.ide.eclipse.as.openshift.core;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.osgi.util.NLS;
+import org.jboss.dmr.ModelNode;
+import
org.jboss.ide.eclipse.as.openshift.core.internal.marshalling.OpenshiftJsonRequestFactory;
+import org.jboss.ide.eclipse.as.openshift.internal.core.HttpClient;
+import org.jboss.ide.eclipse.as.openshift.internal.core.HttpClientException;
+import org.jboss.ide.eclipse.as.openshift.internal.core.UrlConnectionHttpClient;
+import org.jboss.ide.eclipse.as.openshift.internal.core.utils.UrlBuilder;
+
+public class Openshift {
+
+ private static final String BASE_URL = "https://openshift.redhat.com/broker";
+
+ private String username;
+ private String password;
+
+ public Openshift(String username, String password) {
+ this.username = username;
+ this.password = password;
+ }
+
+ public UserInfo getUserInfo() throws OpenshiftException {
+ UrlBuilder userInfoUrlBuilder = new UrlBuilder(BASE_URL).path("userinfo");
+ try {
+ ModelNode node = new ModelNode();
+ node.get("rhlogin").set(username);
+ node.get("debug").set("true");
+ HttpClient httpClient = createHttpClient(userInfoUrlBuilder.toUrl());
+ String request = new OpenshiftJsonRequestFactory(password,
node.toJSONString(true)).create();
+ String userInfoResponse = httpClient.post(request);
+ ModelNode userInfoReponse = ModelNode.fromJSONString(userInfoResponse);
+ return new UserInfo(
+ userInfoReponse.get("rhlogin").asString(),
+ userInfoReponse.get("uuid").asString(),
+ userInfoReponse.get("ssh_key").asString(),
+ userInfoReponse.get("rhc_domain").asString(),
+ userInfoReponse.get("namespace").asString());
+ } catch (MalformedURLException e) {
+ throw new OpenshiftException(
+ NLS.bind("Could not get user info for user \"{0}\" at
\"{1}\"", username,
+ userInfoUrlBuilder.toString()), e);
+ } catch (HttpClientException e) {
+ throw new OpenshiftException(
+ NLS.bind("Could not get user info for user \"{0}\" at
\"{1}\"", username,
+ userInfoUrlBuilder.toString()), e);
+ }
+
+
+ }
+
+ private HttpClient createHttpClient(URL url) {
+ return new UrlConnectionHttpClient(url);
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/Openshift.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/OpenshiftException.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/OpenshiftException.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/OpenshiftException.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,17 @@
+package org.jboss.ide.eclipse.as.openshift.core;
+
+public class OpenshiftException extends Exception {
+
+ public OpenshiftException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public OpenshiftException(String message) {
+ super(message);
+ }
+
+ public OpenshiftException(Throwable cause) {
+ super(cause);
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/OpenshiftException.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserInfo.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserInfo.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserInfo.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,40 @@
+package org.jboss.ide.eclipse.as.openshift.core;
+
+import org.jboss.ide.eclipse.as.openshift.core.internal.marshalling.IOpenshiftRequest;
+
+public class UserInfo implements IOpenshiftRequest {
+
+ private String rhlogin;
+ private String uuId;
+ private String sshKey;
+ private String rhcDomain;
+ private String namespace;
+
+ UserInfo(String rhlogin, String uuid, String sshKey, String rhcDomain, String namespace)
{
+ this.rhlogin = rhlogin;
+ this.uuId = uuid;
+ this.sshKey = sshKey;
+ this.rhcDomain = rhcDomain;
+ this.namespace = namespace;
+ }
+
+ public String getRhlogin() {
+ return rhlogin;
+ }
+
+ public String getUuId() {
+ return uuId;
+ }
+
+ public String getRhcDomain() {
+ return rhcDomain;
+ }
+
+ public String getSSHKey() {
+ return sshKey;
+ }
+
+ public String getNamespace() {
+ return namespace;
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/UserInfo.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractOpenshiftMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractOpenshiftMarshaller.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractOpenshiftMarshaller.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,15 @@
+package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+
+
+public abstract class AbstractOpenshiftMarshaller<OPENSHIFTOBJECT extends
IOpenshiftRequest> implements IOpenshiftMarshaller<OPENSHIFTOBJECT> {
+
+ @Override
+ public String marshall(OPENSHIFTOBJECT object) {
+ StringBuilder builder = new StringBuilder();
+ append(builder);
+ return builder.toString();
+ }
+
+ protected abstract void append(StringBuilder builder);
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractOpenshiftMarshaller.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftJsonConstants.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftJsonConstants.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftJsonConstants.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,8 @@
+package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+
+public class IOpenshiftJsonConstants {
+
+ public static final String PROPERTY_DEBUG = "debug";
+ public static final String PROPERTY_RHLOGIN = "rhlogin";
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftJsonConstants.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,8 @@
+package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+
+
+public interface IOpenshiftMarshaller<OBJECT extends IOpenshiftRequest> {
+
+ public String marshall(OBJECT object);
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequest.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequest.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequest.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,5 @@
+package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+
+public interface IOpenshiftRequest {
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequestMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequestMarshaller.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequestMarshaller.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,5 @@
+package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+
+public interface IOpenshiftRequestMarshaller<OPENSHIFTREQUEST> {
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftRequestMarshaller.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/OpenshiftJsonRequestFactory.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/OpenshiftJsonRequestFactory.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/OpenshiftJsonRequestFactory.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,59 @@
+package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
+
+public class OpenshiftJsonRequestFactory {
+
+ private static final char EQ = '=';
+ private static final String PROPERTY_PASSWORD = "password";
+ private static final String PROPERTY_JSON_DATA = "json_data";
+ private static final String DATA_ENCODING = "UTF-8";
+ private static final char AMP = '&';
+ private String[] payloads;
+ private String password;
+
+ public OpenshiftJsonRequestFactory(String password, String... payloads) {
+ this.password = password;
+ this.payloads = payloads;
+ }
+
+ public String create() throws OpenshiftException {
+ try {
+ StringBuilder builder = new StringBuilder();
+ appendPassword(builder);
+ builder.append(AMP);
+ appendPayload(builder);
+ return builder.toString();
+ } catch (UnsupportedEncodingException e) {
+ throw new OpenshiftException("Could not create request", e);
+ }
+ }
+
+ private void appendPassword(StringBuilder builder) throws UnsupportedEncodingException
{
+ builder.append(PROPERTY_PASSWORD)
+ .append(EQ)
+ .append(URLEncoder.encode(password, DATA_ENCODING));
+ }
+
+ private void appendPayload(StringBuilder builder) throws UnsupportedEncodingException {
+ StringBuilder payloadBuilder = new StringBuilder();
+ for (int i = 0; i < payloads.length; i++) {
+ if (i > 0
+ && i < payloads.length + 1) {
+ payloadBuilder.append(AMP);
+ }
+ payloadBuilder.append(payloads[i]);
+ }
+
+ if (builder.length() > 0) {
+ builder
+ .append(PROPERTY_JSON_DATA)
+ .append(EQ)
+ .append(URLEncoder.encode(payloadBuilder.toString(), DATA_ENCODING));
+ }
+
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/OpenshiftJsonRequestFactory.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/UserInfoRequestJsonMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/UserInfoRequestJsonMarshaller.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/UserInfoRequestJsonMarshaller.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,22 @@
+package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+
+import org.jboss.dmr.ModelNode;
+import org.jboss.ide.eclipse.as.openshift.internal.core.request.UserInfoRequest;
+
+
+public class UserInfoRequestJsonMarshaller implements
IOpenshiftRequestMarshaller<UserInfoRequest> {
+
+ private UserInfoRequest userInfoRequest;
+
+ public UserInfoRequestJsonMarshaller(UserInfoRequest userInfoRequest) {
+ this.userInfoRequest = userInfoRequest;
+ }
+
+ public String create() {
+ ModelNode node = new ModelNode();
+ node.get(IOpenshiftJsonConstants.PROPERTY_RHLOGIN).set(userInfoRequest.getRhLogin());
+ node.get(IOpenshiftJsonConstants.PROPERTY_DEBUG).set(String.valueOf(userInfoRequest.isDebug()));
+ return node.toJSONString(true);
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/UserInfoRequestJsonMarshaller.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/Activator.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/Activator.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/Activator.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,30 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/Activator.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClient.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClient.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClient.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,6 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core;
+
+public interface HttpClient {
+
+ public String post(String data) throws HttpClientException;
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClient.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientException.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientException.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientException.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,17 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core;
+
+public class HttpClientException extends Exception {
+
+ public HttpClientException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public HttpClientException(String message) {
+ super(message);
+ }
+
+ public HttpClientException(Throwable cause) {
+ super(cause);
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientException.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientNotFoundException.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientNotFoundException.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientNotFoundException.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,17 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core;
+
+public class HttpClientNotFoundException extends HttpClientException {
+
+ public HttpClientNotFoundException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public HttpClientNotFoundException(String message) {
+ super(message);
+ }
+
+ private HttpClientNotFoundException(Throwable cause) {
+ super(cause);
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/HttpClientNotFoundException.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/InternalServerErrorException.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/InternalServerErrorException.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/InternalServerErrorException.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,17 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core;
+
+public class InternalServerErrorException extends HttpClientException {
+
+ InternalServerErrorException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ InternalServerErrorException(String message) {
+ super(message);
+ }
+
+ InternalServerErrorException(Throwable cause) {
+ super(cause);
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/InternalServerErrorException.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/UrlConnectionHttpClient.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/UrlConnectionHttpClient.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/UrlConnectionHttpClient.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,67 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.text.MessageFormat;
+
+import org.jboss.ide.eclipse.as.openshift.internal.core.utils.StreamUtils;
+
+public class UrlConnectionHttpClient implements HttpClient {
+
+ private static final String PROPERTY_CONTENT_TYPE = "Content-Type";
+ private static final int TIMEOUT = 10 * 1024;
+
+ private URL url;
+
+ public UrlConnectionHttpClient(URL url) {
+ this.url = url;
+ }
+
+ public String post(String data) throws HttpClientException {
+ HttpURLConnection connection = null;
+ try {
+ connection = createConnection(url);
+ connection.setDoOutput(true);
+ StreamUtils.writeTo(data.getBytes(), connection.getOutputStream());
+ return StreamUtils.readToString(connection.getInputStream());
+ } catch (FileNotFoundException e) {
+ /*
+ * thrown by #connect when server resonds with 404
+ */
+ throw new HttpClientNotFoundException(
+ MessageFormat.format("Could not find resource {0}", url.toString()));
+ } catch (IOException e) {
+ throw getException(e, connection);
+ } finally {
+ if (connection != null) {
+ connection.disconnect();
+ }
+ }
+ }
+
+ private HttpClientException getException(IOException ioe, HttpURLConnection connection)
{
+ try {
+ int responseCode = connection.getResponseCode();
+ if (responseCode == 500) {
+ return new InternalServerErrorException(ioe);
+ } else {
+ return new HttpClientException(ioe);
+ }
+ } catch (IOException e) {
+ return new HttpClientException(e);
+ }
+ }
+
+ private HttpURLConnection createConnection(URL url) throws IOException {
+ HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+ connection.setUseCaches(false);
+ connection.setDoInput(true);
+ connection.setAllowUserInteraction(false);
+ connection.setConnectTimeout(TIMEOUT);
+ connection.setRequestProperty(PROPERTY_CONTENT_TYPE,
"application/x-www-form-urlencoded");
+ connection.setInstanceFollowRedirects(true);
+ return connection;
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/UrlConnectionHttpClient.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/UserInfoRequest.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/UserInfoRequest.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/UserInfoRequest.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,28 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core.request;
+
+import org.jboss.ide.eclipse.as.openshift.core.internal.marshalling.IOpenshiftRequest;
+
+
+public class UserInfoRequest implements IOpenshiftRequest {
+
+ private String rhlogin;
+ private boolean debug;
+
+ public UserInfoRequest(String username) {
+ this(username, false);
+ }
+
+ public UserInfoRequest(String username, boolean debug) {
+ this.rhlogin = username;
+ this.debug = debug;
+ }
+
+ public String getRhLogin() {
+ return rhlogin;
+ }
+
+ public boolean isDebug() {
+ return debug;
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/UserInfoRequest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/StreamUtils.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/StreamUtils.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/StreamUtils.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,81 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core.utils;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+public class StreamUtils {
+
+ /**
+ * Writes the content of the given input stream to the given output stream
+ * and returns and input stream that may still be used to read from.
+ *
+ * @param outputStream
+ * the output stream to write to
+ * @param inputStream
+ * the input stream to read from
+ * @return a new, unread input stream
+ * @throws IOException
+ */
+ public static InputStream writeTo(InputStream inputStream, OutputStream outputStream)
throws IOException {
+ List<Byte> data = new ArrayList<Byte>();
+ for (int character = -1; (character = inputStream.read()) != -1;) {
+ data.add((byte) character);
+ outputStream.write(character);
+ }
+ byte[] byteArray = new byte[data.size()];
+ for (int i = byteArray.length - 1; i >= 0; i--) {
+ byteArray[i] = data.get(i);
+ }
+ return new ByteArrayInputStream(byteArray);
+ }
+
+ public static String readToString(InputStream inputStream) throws IOException {
+ try {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
+ StringWriter writer = new StringWriter();
+ String line = null;
+ while ((line = reader.readLine()) != null) {
+ writer.write(line);
+ }
+ return writer.toString();
+ } finally {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ }
+ }
+
+ /**
+ * Writes the given string to the given output stream. The stream is closed
+ * after writing all data.
+ *
+ * @param data the data to write
+ * @param outputStream the stream to write to
+ * @throws IOException
+ */
+ public static void writeTo(byte[] data, OutputStream outputStream) throws IOException {
+ outputStream.write(data);
+ outputStream.flush();
+ outputStream.close();
+ }
+
+ public static void close(InputStream inputStream) throws IOException {
+ if (inputStream != null) {
+ inputStream.close();
+ }
+ }
+
+ public static void close(OutputStream outputStream) throws IOException {
+ if (outputStream != null) {
+ outputStream.close();
+ }
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/StreamUtils.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/UrlBuilder.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/UrlBuilder.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/UrlBuilder.java 2011-09-05
14:12:05 UTC (rev 34523)
@@ -0,0 +1,133 @@
+package org.jboss.ide.eclipse.as.openshift.internal.core.utils;
+
+import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.Collection;
+
+/**
+ * A builder for an url. Currently no state checking is done, the user is
+ * responsible to build something that makes sense.
+ *
+ * @author André Dietisheim
+ */
+public class UrlBuilder {
+ private static final String URL_ENCODING = "UTF-8";
+ private static final String HOST_PROTOCOL_DELIMITER = ":";
+ private static final String HTTP_PROTOCOL_PREFIX = "http://";
+ private static final char PARAMETER_URL_DELIMITER = '?';
+ private static final char PARAMETER_DELIMITER = '&';
+ private static final char PARAMETER_NAME_VALUE_DELIMITER = '=';
+ private static final char PATH_SEPARATOR = '/';
+
+ private StringBuilder urlStringBuilder = new StringBuilder();
+
+ private boolean parametersAdded = false;
+
+ public UrlBuilder() {
+ }
+
+ public UrlBuilder(String baseUrl) {
+ urlStringBuilder.append(baseUrl);
+ }
+
+ public UrlBuilder(URL baseUrl) {
+ urlStringBuilder.append(baseUrl.toString());
+ }
+
+ /**
+ * adds a host to .
+ *
+ * @param host
+ * the host
+ *
+ * @return the url builder
+ */
+ public UrlBuilder host(String host) {
+ urlStringBuilder.append(HTTP_PROTOCOL_PREFIX);
+ urlStringBuilder.append(host);
+ return this;
+ }
+
+ /**
+ * Adds a port.
+ *
+ * @param port
+ * the port
+ *
+ * @return the url builder
+ */
+ public UrlBuilder port(String port) {
+ urlStringBuilder.append(HOST_PROTOCOL_DELIMITER);
+ urlStringBuilder.append(port);
+ return this;
+ }
+
+ /**
+ * adds a path to the url.
+ *
+ * @param path
+ * the path
+ *
+ * @return the url builder
+ */
+ public UrlBuilder path(String path) {
+ urlStringBuilder.append(PATH_SEPARATOR);
+ urlStringBuilder.append(path);
+ return this;
+ }
+
+ public UrlBuilder path(Collection<String> paths) {
+ for (String path : paths) {
+ path(path);
+ }
+ return this;
+ }
+
+ public UrlBuilder parameter(String name, String value) {
+ if (value != null) {
+ appendParameterDelimiter();
+ urlStringBuilder.append(name).append(PARAMETER_NAME_VALUE_DELIMITER).append(urlEncode(value));
+ }
+ return this;
+ }
+
+ private void appendParameterDelimiter() {
+ if (!parametersAdded) {
+ urlStringBuilder.append(PARAMETER_URL_DELIMITER);
+ parametersAdded = true;
+ } else {
+ urlStringBuilder.append(PARAMETER_DELIMITER);
+ }
+ }
+
+ public UrlBuilder parameters(String... parameters) {
+ for (String parameter : parameters) {
+ parameter(parameter);
+ }
+ return this;
+ }
+
+ public UrlBuilder parameter(String parameter) {
+ appendParameterDelimiter();
+ urlStringBuilder.append(urlEncode(parameter));
+ return this;
+ }
+
+ private String urlEncode(String value) {
+ try {
+ return URLEncoder.encode(value, URL_ENCODING);
+ } catch (UnsupportedEncodingException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public URL toUrl() throws MalformedURLException {
+ return new URL(urlStringBuilder.toString());
+ }
+
+ public String toString() {
+ return urlStringBuilder.toString();
+ }
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/utils/UrlBuilder.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain