summaryrefslogtreecommitdiffstats
path: root/openstack-client-connectors/jersey2-connector/src/main/java/com/woorea/openstack/connector/OpenStack.java
diff options
context:
space:
mode:
authorChrisC <cc697w@intl.att.com>2017-01-31 13:57:24 +0100
committerChrisC <cc697w@intl.att.com>2017-01-31 14:55:11 +0100
commit2e984294ac28c6f2ede290c38164c5d536ccaf4a (patch)
tree5eba5a929b7a961c98749fa69e03cfea58e1a724 /openstack-client-connectors/jersey2-connector/src/main/java/com/woorea/openstack/connector/OpenStack.java
parent86c0f28c8ed469486b64d6422dc53e3a7bcc8adb (diff)
Initial OpenECOMP MSO OpenStack SDK lib commit
Change-Id: Ieaacb2b2c0dcc469669880e73f0cda9fa59a6c5a Signed-off-by: ChrisC <cc697w@intl.att.com>
Diffstat (limited to 'openstack-client-connectors/jersey2-connector/src/main/java/com/woorea/openstack/connector/OpenStack.java')
-rw-r--r--openstack-client-connectors/jersey2-connector/src/main/java/com/woorea/openstack/connector/OpenStack.java110
1 files changed, 110 insertions, 0 deletions
diff --git a/openstack-client-connectors/jersey2-connector/src/main/java/com/woorea/openstack/connector/OpenStack.java b/openstack-client-connectors/jersey2-connector/src/main/java/com/woorea/openstack/connector/OpenStack.java
new file mode 100644
index 0000000..f514cc8
--- /dev/null
+++ b/openstack-client-connectors/jersey2-connector/src/main/java/com/woorea/openstack/connector/OpenStack.java
@@ -0,0 +1,110 @@
+package com.woorea.openstack.connector;
+
+import java.io.IOException;
+
+import javax.net.ssl.SSLContext;
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.client.ClientRequestFilter;
+import javax.ws.rs.ext.ContextResolver;
+
+import org.codehaus.jackson.map.DeserializationConfig;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.SerializationConfig;
+import org.codehaus.jackson.map.annotate.JsonRootName;
+import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
+import org.glassfish.jersey.SslConfigurator;
+import org.glassfish.jersey.jackson.JacksonFeature;
+
+public class OpenStack {
+
+ public static Client CLIENT;
+
+ public static ObjectMapper DEFAULT_MAPPER;
+
+ public static ObjectMapper WRAPPED_MAPPER;
+
+ static {
+ initialize();
+ }
+
+ private static void initialize() {
+
+ /*
+ //class MyX509TrustManager implements X509TrustManager
+ TrustManager mytm[] = null;
+ KeyManager mykm[] = null;
+
+ try {
+ mytm = new TrustManager[]{new MyX509TrustManager("./truststore_client", "asdfgh".toCharArray())};
+ mykm = new KeyManager[]{new MyX509KeyManager("./keystore_client", "asdfgh".toCharArray())};
+ } catch (Exception ex) {
+
+ }
+
+ SSLContext context = null;
+ context = SSLContext.getInstance("SSL");
+ context.init(mykm, mytm, null);
+
+ */
+
+ try {
+
+ SSLContext context = null;
+ context = SSLContext.getInstance("SSL");
+ context.init(null, null, null);
+
+ SslConfigurator sslConfig = SslConfigurator.newInstance();
+ /*
+ .trustStoreFile("./truststore_client")
+ .trustStorePassword("asdfgh")
+
+ .keyStoreFile("./keystore_client")
+ .keyPassword("asdfgh");
+ */
+ //old: CLIENT.property(ClientProperties.SSL_CONFIG, new SslConfig(context));
+
+ CLIENT = ClientBuilder.newBuilder().sslContext(sslConfig.createSSLContext()).build();
+
+ DEFAULT_MAPPER = new ObjectMapper();
+
+ DEFAULT_MAPPER.setSerializationInclusion(Inclusion.NON_NULL);
+ DEFAULT_MAPPER.enable(SerializationConfig.Feature.INDENT_OUTPUT);
+ DEFAULT_MAPPER.enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
+ DEFAULT_MAPPER.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
+ DEFAULT_MAPPER.enable(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
+
+ WRAPPED_MAPPER = new ObjectMapper();
+
+ WRAPPED_MAPPER.setSerializationInclusion(Inclusion.NON_NULL);
+ WRAPPED_MAPPER.enable(SerializationConfig.Feature.INDENT_OUTPUT);
+ WRAPPED_MAPPER.enable(SerializationConfig.Feature.WRAP_ROOT_VALUE);
+ WRAPPED_MAPPER.enable(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE);
+ WRAPPED_MAPPER.enable(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
+ WRAPPED_MAPPER.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES);
+ WRAPPED_MAPPER.enable(DeserializationConfig.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
+
+ CLIENT.register(new JacksonFeature()).register(new ContextResolver<ObjectMapper>() {
+
+ public ObjectMapper getContext(Class<?> type) {
+ return type.getAnnotation(JsonRootName.class) == null ? DEFAULT_MAPPER : WRAPPED_MAPPER;
+ }
+
+ });
+
+ CLIENT.register(new ClientRequestFilter() {
+
+ public void filter(ClientRequestContext requestContext) throws IOException {
+ requestContext.getHeaders().remove("Content-Language");
+ requestContext.getHeaders().remove("Content-Encoding");
+ }
+ });
+
+ } catch(Exception e) {
+ throw new RuntimeException(e.getMessage(), e);
+ }
+
+ }
+
+}