Author: adietish
Date: 2011-09-16 07:36:03 -0400 (Fri, 16 Sep 2011)
New Revision: 34812
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/AbstractOpenshiftJsonResponseUnmarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/UserInfoResponseUnmarshaller.java
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoTest.java
Log:
[JBIDE-9510] implementing IOpenshiftService#getUserInfo
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java 2011-09-16
11:01:12 UTC (rev 34811)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java 2011-09-16
11:36:03 UTC (rev 34812)
@@ -33,9 +33,10 @@
public static final String PROPERTY_SSH = "ssh";
public static final String PROPERTY_UUID = "uuid";
public static final String PROPERTY_USER_INFO = "user_info";
- public static final String PROPERTY_APP_INFO = "app.info";
+ public static final String PROPERTY_APP_INFO = "app_info";
public static final String PROPERTY_RHC_DOMAIN = "rhc_domain";
public static final String PROPERTY_EMBEDDED = "embedded";
public static final String PROPERTY_FRAMEWORK = "framework";
+ public static final String PROPERTY_CREATION_TIME = "creation_time";
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/AbstractOpenshiftJsonResponseUnmarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/AbstractOpenshiftJsonResponseUnmarshaller.java 2011-09-16
11:01:12 UTC (rev 34811)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/AbstractOpenshiftJsonResponseUnmarshaller.java 2011-09-16
11:36:03 UTC (rev 34812)
@@ -10,6 +10,15 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.core.internal.response;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.TimeZone;
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;
import org.jboss.ide.eclipse.as.openshift.core.IOpenshiftJsonConstants;
@@ -38,7 +47,7 @@
}
}
- protected abstract OPENSHIFTOBJECT createOpenshiftObject(ModelNode responseNode);
+ protected abstract OPENSHIFTOBJECT createOpenshiftObject(ModelNode responseNode) throws
Exception;
protected String getResponse() {
return response;
@@ -46,13 +55,30 @@
protected String getString(String property, ModelNode node) {
ModelNode propertyNode = node.get(property);
- if (propertyNode.getType() == ModelType.UNDEFINED) {
+ if (!isSet(node)) {
// replace "undefined" by null
return null;
}
return propertyNode.asString();
}
+ protected boolean isSet(ModelNode node) {
+ return node != null
+ && node.getType() != ModelType.UNDEFINED;
+ }
+
+ protected Date getDate(String property, ModelNode node) throws
DatatypeConfigurationException {
+ ModelNode propertyNode = node.get(property);
+ // SimpleDateFormat can't handle RFC822 (-04:00 instead of GMT-04:00)
+ // date formats
+ // SimpleDateFormat dateFormat = new
+ // SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
+ // return dateFormat.parse(propertyNode.asString());
+ GregorianCalendar calendar =
+ DatatypeFactory.newInstance().newXMLGregorianCalendar(propertyNode.asString()).toGregorianCalendar();
+ return calendar.getTime();
+ }
+
protected long getLong(String property, ModelNode node) {
ModelNode propertyNode = node.get(property);
return propertyNode.asLong(-1);
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/UserInfoResponseUnmarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/UserInfoResponseUnmarshaller.java 2011-09-16
11:01:12 UTC (rev 34811)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/response/UserInfoResponseUnmarshaller.java 2011-09-16
11:36:03 UTC (rev 34812)
@@ -11,8 +11,11 @@
package org.jboss.ide.eclipse.as.openshift.core.internal.response;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import javax.xml.datatype.DatatypeConfigurationException;
+
import org.jboss.dmr.ModelNode;
import org.jboss.ide.eclipse.as.openshift.core.Application;
import org.jboss.ide.eclipse.as.openshift.core.Cartridge;
@@ -34,25 +37,24 @@
}
@Override
- protected UserInfo createOpenshiftObject(ModelNode node) {
+ protected UserInfo createOpenshiftObject(ModelNode node) throws
DatatypeConfigurationException {
ModelNode dataNode = node.get(IOpenshiftJsonConstants.PROPERTY_DATA);
- if (dataNode == null) {
+ if (!isSet(dataNode)) {
return null;
}
- ModelNode userInfoNode = node.get(IOpenshiftJsonConstants.PROPERTY_USER_INFO);
- if (userInfoNode == null) {
+ ModelNode userInfoNode = dataNode.get(IOpenshiftJsonConstants.PROPERTY_USER_INFO);
+ if (!isSet(userInfoNode)) {
return null;
}
- Domain domain = createDomain(userInfoNode);
- User user = createUser(userInfoNode, domain);
+ User user = createUser(userInfoNode, createDomain(userInfoNode));
return new UserInfo(
user,
- createApplications(node.get(IOpenshiftJsonConstants.PROPERTY_APP_INFO)));
+ createApplications(dataNode.get(IOpenshiftJsonConstants.PROPERTY_APP_INFO)));
}
- private List<Application> createApplications(ModelNode appInfoNode) {
+ private List<Application> createApplications(ModelNode appInfoNode) throws
DatatypeConfigurationException {
List<Application> applications = new ArrayList<Application>();
- if (appInfoNode == null) {
+ if (!isSet(appInfoNode)) {
return applications;
}
@@ -63,12 +65,12 @@
}
- private Application createApplication(String name, ModelNode appNode) {
+ private Application createApplication(String name, ModelNode appNode) throws
DatatypeConfigurationException {
String embedded = getString(IOpenshiftJsonConstants.PROPERTY_EMBEDDED, appNode);
String uuid = getString(IOpenshiftJsonConstants.PROPERTY_UUID, appNode);
Cartridge cartrdige = new
Cartridge(getString(IOpenshiftJsonConstants.PROPERTY_FRAMEWORK, appNode));
- long creationTime = getLong(IOpenshiftJsonConstants.PROPERTY_FRAMEWORK, appNode);
- return new Application(name, uuid, cartrdige, embedded, creationTime, service);
+ Date creationTime = getDate(IOpenshiftJsonConstants.PROPERTY_CREATION_TIME, appNode);
+ return new Application(name, uuid, cartrdige, embedded, creationTime.getTime(),
service);
}
protected User createUser(ModelNode userInfoNode, Domain domain) {
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoTest.java
===================================================================
---
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoTest.java 2011-09-16
11:01:12 UTC (rev 34811)
+++
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/UserInfoTest.java 2011-09-16
11:36:03 UTC (rev 34812)
@@ -17,6 +17,9 @@
import
org.jboss.ide.eclipse.as.openshift.core.internal.request.OpenshiftEnvelopeFactory;
import org.jboss.ide.eclipse.as.openshift.core.internal.request.UserInfoRequest;
import
org.jboss.ide.eclipse.as.openshift.core.internal.request.marshalling.UserInfoRequestJsonMarshaller;
+import org.jboss.ide.eclipse.as.openshift.core.internal.response.JsonSanitizer;
+import
org.jboss.ide.eclipse.as.openshift.core.internal.response.UserInfoResponseUnmarshaller;
+import
org.jboss.ide.eclipse.as.openshift.test.internal.core.fakes.NoopOpenshiftServiceFake;
import org.junit.Test;
/**
@@ -31,9 +34,9 @@
"{"
+ " \"messages\":\"\","
+ " \"debug\":\"\","
- + " \"data\":\""
+ + " \"data\":"
+ ""
- + " {"
+ + "\"{"
+ " \\\"user_info\\\":"
+ " {"
+ " \\\"rhc_domain\\\":\\\"rhcloud.com\\\","
@@ -96,7 +99,7 @@
@Test
public void canUnmarshallUserInfoResponse() throws Exception {
-
+ new UserInfoResponseUnmarshaller(new
NoopOpenshiftServiceFake()).unmarshall(JsonSanitizer.sanitize(userInfoRespose));
}
}