summaryrefslogtreecommitdiffstats
path: root/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf
diff options
context:
space:
mode:
Diffstat (limited to 'infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf')
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.groovy24
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.java41
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.groovy57
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.java75
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.groovy80
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.java80
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.groovy39
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.java40
-rw-r--r--infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfProvider.java (renamed from infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfProvider.groovy)42
9 files changed, 256 insertions, 222 deletions
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.groovy
deleted file mode 100644
index 0be4a3264..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.groovy
+++ /dev/null
@@ -1,24 +0,0 @@
-package io.fd.honeycomb.infra.distro.restconf
-
-import com.google.inject.Inject
-import io.fd.honeycomb.infra.distro.ProviderTrait
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration
-import org.eclipse.jetty.server.Server
-import org.eclipse.jetty.server.ServerConnector
-
-class HttpConnectorProvider extends ProviderTrait<ServerConnector> {
-
- @Inject
- HoneycombConfiguration cfg
- @Inject
- Server server
-
- @Override
- def create() {
- def httpConnector = new ServerConnector(server, cfg.acceptorsSize.get(), cfg.selectorsSize.get())
- httpConnector.setHost(cfg.restconfBindingAddress.get())
- httpConnector.setPort(cfg.restconfPort.get())
- server.addConnector(httpConnector)
- httpConnector
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.java
new file mode 100644
index 000000000..e3c9577e7
--- /dev/null
+++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpConnectorProvider.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * 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 io.fd.honeycomb.infra.distro.restconf;
+
+import com.google.inject.Inject;
+import io.fd.honeycomb.infra.distro.ProviderTrait;
+import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+
+public final class HttpConnectorProvider extends ProviderTrait<ServerConnector> {
+
+ @Inject
+ private HoneycombConfiguration cfg;
+ @Inject
+ private Server server;
+
+ @Override
+ protected ServerConnector create() {
+ ServerConnector httpConnector =
+ new ServerConnector(server, cfg.acceptorsSize.get(), cfg.selectorsSize.get());
+ httpConnector.setHost(cfg.restconfBindingAddress.get());
+ httpConnector.setPort(cfg.restconfPort.get());
+ server.addConnector(httpConnector);
+ return httpConnector;
+ }
+}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.groovy
deleted file mode 100644
index 388aa2bbe..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.groovy
+++ /dev/null
@@ -1,57 +0,0 @@
-package io.fd.honeycomb.infra.distro.restconf
-
-import com.google.inject.Inject
-import io.fd.honeycomb.infra.distro.ProviderTrait
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration
-import org.eclipse.jetty.http.HttpVersion
-import org.eclipse.jetty.server.Server
-import org.eclipse.jetty.server.ServerConnector
-import org.eclipse.jetty.server.SslConnectionFactory
-import org.eclipse.jetty.util.ssl.SslContextFactory
-
-class HttpsConnectorProvider extends ProviderTrait<ServerConnector> {
-
- @Inject
- HoneycombConfiguration cfg
- @Inject
- Server server
-
- @Override
- def create() {
-
- // SSL Context Factory
- // Based on:
- // https://github.com/eclipse/jetty.project/blob/jetty-9.3.x/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
- // https://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Loading_Keys_and_Certificates_via_PKCS12
- // Keystore created with:
- // openssl genrsa -des3 -out honeycomb.key
- // openssl req -new -x509 -key honeycomb.key -out honeycomb.crt
- // openssl pkcs12 -inkey honeycomb.key -in honeycomb.crt -export -out honeycomb.pkcs12
- // keytool -importkeystore -srckeystore honeycomb.pkcs12 -srcstoretype PKCS12 -destkeystore honeycomb-keystore
- def sslContextFactory = new SslContextFactory()
- def keystoreURL = getClass().getResource(cfg.restconfKeystore.get())
- sslContextFactory.setKeyStorePath(keystoreURL.path)
- sslContextFactory.setKeyStorePassword(cfg.keystorePassword.get())
- sslContextFactory.setKeyManagerPassword((cfg.keystoreManagerPassword.get()))
- def truststoreURL = getClass().getResource(cfg.restconfTruststore.get())
- sslContextFactory.setTrustStorePath(truststoreURL.path)
- sslContextFactory.setTrustStorePassword((cfg.truststorePassword.get()))
- // TODO make this more configurable
- sslContextFactory.setExcludeCipherSuites(
- "SSL_RSA_WITH_DES_CBC_SHA",
- "SSL_DHE_RSA_WITH_DES_CBC_SHA",
- "SSL_DHE_DSS_WITH_DES_CBC_SHA",
- "SSL_RSA_EXPORT_WITH_RC4_40_MD5",
- "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
- "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
- "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA")
-
- // SSL Connector
- def sslConnector = new ServerConnector(server, cfg.httpsAcceptorsSize.get(), cfg.httpsSelectorsSize.get(),
- new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()))
- sslConnector.setHost(cfg.restconfHttpsBindingAddress.get())
- sslConnector.setPort(cfg.restconfHttpsPort.get())
- server.addConnector(sslConnector)
- return sslConnector
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.java
new file mode 100644
index 000000000..76fc72f3f
--- /dev/null
+++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/HttpsConnectorProvider.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * 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 io.fd.honeycomb.infra.distro.restconf;
+
+import com.google.inject.Inject;
+import io.fd.honeycomb.infra.distro.ProviderTrait;
+import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
+import java.net.URL;
+import org.eclipse.jetty.http.HttpVersion;
+import org.eclipse.jetty.server.HttpConnectionFactory;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.SslConnectionFactory;
+import org.eclipse.jetty.util.ssl.SslContextFactory;
+
+public final class HttpsConnectorProvider extends ProviderTrait<ServerConnector> {
+
+ @Inject
+ private HoneycombConfiguration cfg;
+ @Inject
+ private Server server;
+
+ @Override
+ protected ServerConnector create() {
+ // SSL Context Factory
+ // Based on:
+ // https://github.com/eclipse/jetty.project/blob/jetty-9.3.x/examples/embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
+ // https://wiki.eclipse.org/Jetty/Howto/Configure_SSL#Loading_Keys_and_Certificates_via_PKCS12
+ // Keystore created with:
+ // openssl genrsa -des3 -out honeycomb.key
+ // openssl req -new -x509 -key honeycomb.key -out honeycomb.crt
+ // openssl pkcs12 -inkey honeycomb.key -in honeycomb.crt -export -out honeycomb.pkcs12
+ // keytool -importkeystore -srckeystore honeycomb.pkcs12 -srcstoretype PKCS12 -destkeystore honeycomb-keystore
+ SslContextFactory sslContextFactory = new SslContextFactory();
+ URL keystoreURL = getClass().getResource(cfg.restconfKeystore.get());
+ sslContextFactory.setKeyStorePath(keystoreURL.getPath());
+ sslContextFactory.setKeyStorePassword(cfg.keystorePassword.get());
+ sslContextFactory.setKeyManagerPassword((cfg.keystoreManagerPassword.get()));
+ URL truststoreURL = getClass().getResource(cfg.restconfTruststore.get());
+ sslContextFactory.setTrustStorePath(truststoreURL.getPath());
+ sslContextFactory.setTrustStorePassword((cfg.truststorePassword.get()));
+ // TODO make this more configurable
+ sslContextFactory.setExcludeCipherSuites("SSL_RSA_WITH_DES_CBC_SHA", "SSL_DHE_RSA_WITH_DES_CBC_SHA",
+ "SSL_DHE_DSS_WITH_DES_CBC_SHA", "SSL_RSA_EXPORT_WITH_RC4_40_MD5", "SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
+ "SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", "SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA");
+
+ // SSL Connector
+ ServerConnector sslConnector =
+ new ServerConnector(server, cfg.httpsAcceptorsSize.get(), cfg.httpsSelectorsSize.get(),
+ // The ssl connection factory delegates the real processing to http connection factory
+ new SslConnectionFactory(sslContextFactory, HttpVersion.HTTP_1_1.asString()),
+ // That's why http connection factory is also required here
+ // Order is IMPORTANT here
+ new HttpConnectionFactory()
+ );
+ sslConnector.setHost(cfg.restconfHttpsBindingAddress.get());
+ sslConnector.setPort(cfg.restconfHttpsPort.get());
+ server.addConnector(sslConnector);
+ return sslConnector;
+ }
+}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.groovy
deleted file mode 100644
index 14e6ae6f2..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.groovy
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * 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 io.fd.honeycomb.infra.distro.restconf
-
-import com.google.inject.Inject
-import groovy.transform.ToString
-import groovy.util.logging.Slf4j
-import io.fd.honeycomb.infra.distro.ProviderTrait
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration
-import org.eclipse.jetty.security.ConstraintMapping
-import org.eclipse.jetty.security.ConstraintSecurityHandler
-import org.eclipse.jetty.security.HashLoginService
-import org.eclipse.jetty.security.authentication.BasicAuthenticator
-import org.eclipse.jetty.server.Server
-import org.eclipse.jetty.util.security.Constraint
-import org.eclipse.jetty.util.security.Password
-import org.eclipse.jetty.util.thread.QueuedThreadPool
-import org.eclipse.jetty.webapp.WebAppContext
-
-@Slf4j
-@ToString
-class JettyServerProvider extends ProviderTrait<Server> {
-
- public static final String REALM = "HCRealm"
-
- @Inject
- HoneycombConfiguration cfg
-
- def create() {
- def server = new Server(new QueuedThreadPool(cfg.restPoolMaxSize.get(), cfg.restPoolMinSize.get()))
-
- // Load Realm for basic auth
- def service = new HashLoginService(REALM)
- // Reusing the name as role
- service.putUser(cfg.username, new Password(cfg.password), cfg.username)
- server.addBean(service)
-
- final URL resource = getClass().getResource("/")
- WebAppContext webapp = new WebAppContext(resource.getPath(), cfg.restconfRootPath.get())
-
- ConstraintSecurityHandler security = getBaseAuth(service, webapp)
- server.setHandler(security)
-
- return server
- }
-
- private ConstraintSecurityHandler getBaseAuth(HashLoginService service, WebAppContext webapp) {
- ConstraintSecurityHandler security = new ConstraintSecurityHandler()
-
- Constraint constraint = new Constraint()
- constraint.setName("auth")
- constraint.setAuthenticate(true)
- constraint.setRoles(cfg.username)
-
- ConstraintMapping mapping = new ConstraintMapping()
- mapping.setPathSpec("/*")
- mapping.setConstraint(constraint)
-
- security.setConstraintMappings(Collections.singletonList(mapping))
- security.setAuthenticator(new BasicAuthenticator())
- security.setLoginService(service)
-
- security.setHandler(webapp)
- security
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.java
new file mode 100644
index 000000000..6d055bf81
--- /dev/null
+++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/JettyServerProvider.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * 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 io.fd.honeycomb.infra.distro.restconf;
+
+import com.google.inject.Inject;
+import io.fd.honeycomb.infra.distro.ProviderTrait;
+import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
+import java.net.URL;
+import java.util.Collections;
+import org.eclipse.jetty.security.ConstraintMapping;
+import org.eclipse.jetty.security.ConstraintSecurityHandler;
+import org.eclipse.jetty.security.HashLoginService;
+import org.eclipse.jetty.security.authentication.BasicAuthenticator;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.util.security.Constraint;
+import org.eclipse.jetty.util.security.Password;
+import org.eclipse.jetty.util.thread.QueuedThreadPool;
+import org.eclipse.jetty.webapp.WebAppContext;
+
+public final class JettyServerProvider extends ProviderTrait<Server> {
+
+ public static final String REALM = "HCRealm";
+
+ @Inject
+ private HoneycombConfiguration cfg;
+
+ @Override
+ protected Server create() {
+ Server server = new Server(new QueuedThreadPool(cfg.restPoolMaxSize.get(), cfg.restPoolMinSize.get()));
+
+
+ // Load Realm for basic auth
+ HashLoginService service = new HashLoginService(REALM);
+ // Reusing the name as role
+ service.putUser(cfg.username, new Password(cfg.password), new String[]{cfg.username});
+ server.addBean(service);
+
+ final URL resource = getClass().getResource("/");
+ WebAppContext webapp = new WebAppContext(resource.getPath(), cfg.restconfRootPath.get());
+
+ ConstraintSecurityHandler security = getBaseAuth(service, webapp);
+ server.setHandler(security);
+
+ return server;
+ }
+
+ private ConstraintSecurityHandler getBaseAuth(HashLoginService service, WebAppContext webapp) {
+ ConstraintSecurityHandler security = new ConstraintSecurityHandler();
+
+ Constraint constraint = new Constraint();
+ constraint.setName("auth");
+ constraint.setAuthenticate(true);
+ constraint.setRoles(new String[]{cfg.username});
+
+ ConstraintMapping mapping = new ConstraintMapping();
+ mapping.setPathSpec("/*");
+ mapping.setConstraint(constraint);
+
+ security.setConstraintMappings(Collections.singletonList(mapping));
+ security.setAuthenticator(new BasicAuthenticator());
+ security.setLoginService(service);
+
+ security.setHandler(webapp);
+ return security;
+ }
+}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.groovy
deleted file mode 100644
index e8594a8c3..000000000
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.groovy
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2016 Cisco and/or its affiliates.
- *
- * 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 io.fd.honeycomb.infra.distro.restconf
-
-import com.google.inject.AbstractModule
-import com.google.inject.Singleton
-import com.google.inject.name.Names
-import groovy.util.logging.Slf4j
-import org.eclipse.jetty.server.Server
-import org.eclipse.jetty.server.ServerConnector
-import org.opendaylight.netconf.sal.rest.api.RestConnector
-
-@Slf4j
-class RestconfModule extends AbstractModule {
-
- public static final String RESTCONF_HTTP = "restconf-http"
- public static final String RESTCONF_HTTPS = "restconf-https"
-
- protected void configure() {
- bind(Server).toProvider(JettyServerProvider).in(Singleton)
- bind(ServerConnector).annotatedWith(Names.named(RESTCONF_HTTP)).toProvider(HttpConnectorProvider).in(Singleton)
- bind(ServerConnector).annotatedWith(Names.named(RESTCONF_HTTPS)).toProvider(HttpsConnectorProvider).in(Singleton)
- bind(RestConnector).toProvider(RestconfProvider).in(Singleton)
- }
-}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.java
new file mode 100644
index 000000000..846ed1b03
--- /dev/null
+++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfModule.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2016 Cisco and/or its affiliates.
+ *
+ * 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 io.fd.honeycomb.infra.distro.restconf;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Singleton;
+import com.google.inject.name.Names;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.ServerConnector;
+import org.opendaylight.netconf.sal.rest.api.RestConnector;
+
+
+public class RestconfModule extends AbstractModule {
+
+ public static final String RESTCONF_HTTP = "restconf-http";
+ public static final String RESTCONF_HTTPS = "restconf-https";
+
+ protected void configure() {
+ bind(Server.class).toProvider(JettyServerProvider.class).in(Singleton.class);
+ bind(ServerConnector.class).annotatedWith(Names.named(RESTCONF_HTTP)).toProvider(HttpConnectorProvider.class)
+ .in(Singleton.class);
+ bind(ServerConnector.class).annotatedWith(Names.named(RESTCONF_HTTPS)).toProvider(HttpsConnectorProvider.class)
+ .in(Singleton.class);
+ bind(RestConnector.class).toProvider(RestconfProvider.class).in(Singleton.class);
+ }
+}
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfProvider.groovy b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfProvider.java
index 657e16986..16a33ecbb 100644
--- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfProvider.groovy
+++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/restconf/RestconfProvider.java
@@ -1,7 +1,7 @@
/*
* Copyright (c) 2016 Cisco and/or its affiliates.
*
- * Licensed under the Apache License, Version 2.0 (the "License")
+ * 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:
*
@@ -14,32 +14,30 @@
* limitations under the License.
*/
-package io.fd.honeycomb.infra.distro.restconf
+package io.fd.honeycomb.infra.distro.restconf;
-import com.google.inject.Inject
-import groovy.transform.ToString
-import groovy.util.logging.Slf4j
-import io.fd.honeycomb.infra.distro.ProviderTrait
-import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration
-import org.opendaylight.controller.sal.core.api.Broker
-import org.opendaylight.netconf.sal.rest.api.RestConnector
-import org.opendaylight.netconf.sal.restconf.impl.RestconfProviderImpl
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber
+import com.google.inject.Inject;
+import io.fd.honeycomb.infra.distro.ProviderTrait;
+import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration;
+import org.opendaylight.controller.sal.core.api.Broker;
+import org.opendaylight.netconf.sal.rest.api.RestConnector;
+import org.opendaylight.netconf.sal.restconf.impl.RestconfProviderImpl;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
-@Slf4j
-@ToString
-class RestconfProvider extends ProviderTrait<RestConnector> {
- @Inject
- HoneycombConfiguration cfg
+public class RestconfProvider extends ProviderTrait<RestConnector> {
+
+ @Inject
+ private HoneycombConfiguration cfg;
@Inject
- Broker domBroker
+ private Broker domBroker;
- def create() {
- def instance = new RestconfProviderImpl()
- instance.setWebsocketPort(new PortNumber(cfg.restconfWebsocketPort.get()))
- domBroker.registerProvider(instance)
- instance
+ @Override
+ protected RestconfProviderImpl create() {
+ RestconfProviderImpl instance = new RestconfProviderImpl();
+ instance.setWebsocketPort(new PortNumber(cfg.restconfWebsocketPort.get()));
+ domBroker.registerProvider(instance);
+ return instance;
}
}