Repository: aries-rsa Updated Branches: refs/heads/master 55809ab28 -> d8162e405
Fix repo and add tests Project: http://git-wip-us.apache.org/repos/asf/aries-rsa/repo Commit: http://git-wip-us.apache.org/repos/asf/aries-rsa/commit/d8162e40 Tree: http://git-wip-us.apache.org/repos/asf/aries-rsa/tree/d8162e40 Diff: http://git-wip-us.apache.org/repos/asf/aries-rsa/diff/d8162e40 Branch: refs/heads/master Commit: d8162e405b3724442d031a52713d40f65af5f239 Parents: 55809ab Author: Christian Schneider <[email protected]> Authored: Tue Mar 29 18:12:51 2016 +0200 Committer: Christian Schneider <[email protected]> Committed: Tue Mar 29 18:12:51 2016 +0200 ---------------------------------------------------------------------- discovery/zookeeper/pom.xml | 35 +++++++++++++- .../aries/rsa/provider/tcp/TcpEndpoint.java | 22 ++++++--- .../aries/rsa/provider/tcp/ActivatorTest.java | 50 ++++++++++++++++++++ .../aries/rsa/provider/tcp/TcpEndpointTest.java | 42 ++++++++++++++++ repository/pom.xml | 8 ++-- 5 files changed, 144 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d8162e40/discovery/zookeeper/pom.xml ---------------------------------------------------------------------- diff --git a/discovery/zookeeper/pom.xml b/discovery/zookeeper/pom.xml index 389704c..b2f718b 100644 --- a/discovery/zookeeper/pom.xml +++ b/discovery/zookeeper/pom.xml @@ -17,7 +17,8 @@ specific language governing permissions and limitations under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> @@ -26,7 +27,7 @@ <version>1.8-SNAPSHOT</version> <relativePath>../../parent/pom.xml</relativePath> </parent> - + <groupId>org.apache.aries.rsa.discovery</groupId> <artifactId>org.apache.aries.rsa.discovery.zookeeper</artifactId> <packaging>bundle</packaging> @@ -45,6 +46,36 @@ <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> + <exclusions> + <exclusion> + <groupId>com.sun.jdmk</groupId> + <artifactId>jmxtools</artifactId> + </exclusion> + <exclusion> + <groupId>com.sun.jmx</groupId> + <artifactId>jmxri</artifactId> + </exclusion> + <exclusion> + <artifactId>slf4j-log4j12</artifactId> + <groupId>org.slf4j</groupId> + </exclusion> + <exclusion> + <artifactId>jline</artifactId> + <groupId>jline</groupId> + </exclusion> + <exclusion> + <artifactId>netty</artifactId> + <groupId>io.netty</groupId> + </exclusion> + <exclusion> + <artifactId>log4j</artifactId> + <groupId>log4j</groupId> + </exclusion> + <exclusion> + <groupId>io.netty</groupId> + <artifactId>netty</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d8162e40/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java ---------------------------------------------------------------------- diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java index 8f61e3c..0dfc9de 100644 --- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java +++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/TcpEndpoint.java @@ -30,19 +30,27 @@ public class TcpEndpoint implements Endpoint { private TCPServer tcpServer; public TcpEndpoint(Object service, Map<String, Object> effectiveProperties) { - Integer port = getInt(effectiveProperties, "port", 0); - String localip = LocalHostUtil.getLocalIp(); - int numThreads = getInt(effectiveProperties, "numThreads", 10); - tcpServer = new TCPServer(service, localip, port, numThreads); - effectiveProperties.put(RemoteConstants.ENDPOINT_ID, "tcp://" + localip + ":" + tcpServer.getPort()); + Integer port = getInt(effectiveProperties, "port", "0"); + String hostName = getString(effectiveProperties, "hostname", System.getProperty("aries.rsa.hostname")); + if (hostName == null) { + hostName = LocalHostUtil.getLocalIp(); + } + int numThreads = getInt(effectiveProperties, "numThreads", "10"); + tcpServer = new TCPServer(service, hostName, port, numThreads); + String endpointId = String.format("tcp://%s:%s",hostName, tcpServer.getPort()); + effectiveProperties.put(RemoteConstants.ENDPOINT_ID, endpointId); effectiveProperties.put(RemoteConstants.SERVICE_EXPORTED_CONFIGS, ""); this.epd = new EndpointDescription(effectiveProperties); } - private Integer getInt(Map<String, Object> effectiveProperties, String key, int defaultValue) { + private Integer getInt(Map<String, Object> effectiveProperties, String key, String defaultValue) { + return Integer.parseInt(getString(effectiveProperties, key, defaultValue)); + } + + private String getString(Map<String, Object> effectiveProperties, String key, String defaultValue) { String value = (String)effectiveProperties.get(key); - return value != null ? Integer.parseInt(value) : defaultValue; + return value != null ? value : defaultValue; } @Override http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d8162e40/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/ActivatorTest.java ---------------------------------------------------------------------- diff --git a/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/ActivatorTest.java b/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/ActivatorTest.java new file mode 100644 index 0000000..029424f --- /dev/null +++ b/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/ActivatorTest.java @@ -0,0 +1,50 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 org.apache.aries.rsa.provider.tcp; + +import static org.easymock.EasyMock.expect; + +import java.util.Dictionary; + +import org.apache.aries.rsa.spi.DistributionProvider; +import org.easymock.EasyMock; +import org.easymock.IMocksControl; +import org.junit.Test; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; + +public class ActivatorTest { + + @SuppressWarnings({ + "rawtypes", "unchecked" + }) + @Test + public void testStartStop() throws Exception { + IMocksControl c = EasyMock.createControl(); + BundleContext context = c.createMock(BundleContext.class); + ServiceRegistration sreg = c.createMock(ServiceRegistration.class); + expect(context.registerService(EasyMock.eq(DistributionProvider.class), EasyMock.anyObject(DistributionProvider.class), EasyMock.anyObject(Dictionary.class))).andReturn(sreg ); + + c.replay(); + Activator activator = new Activator(); + activator.start(context); + activator.stop(context); + c.verify(); + } +} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d8162e40/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpEndpointTest.java ---------------------------------------------------------------------- diff --git a/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpEndpointTest.java b/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpEndpointTest.java new file mode 100644 index 0000000..cf4c291 --- /dev/null +++ b/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpEndpointTest.java @@ -0,0 +1,42 @@ +package org.apache.aries.rsa.provider.tcp; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.apache.aries.rsa.provider.tcp.myservice.MyService; +import org.apache.aries.rsa.provider.tcp.myservice.MyServiceImpl; +import org.junit.Assert; +import org.junit.Test; +import org.osgi.framework.Constants; +import org.osgi.service.remoteserviceadmin.EndpointDescription; +import org.osgi.service.remoteserviceadmin.RemoteConstants; + +public class TcpEndpointTest { + + @Test + public void testEndpointProperties() throws IOException { + Object service = new MyServiceImpl(); + Map<String, Object> props = new HashMap<>(); + props.put(Constants.OBJECTCLASS, new String[]{MyService.class.getName()}); + props.put(RemoteConstants.SERVICE_IMPORTED_CONFIGS, ""); + props.put("port", "45346"); + props.put("hostname", "myhost"); + TcpEndpoint tcpEndpoint = new TcpEndpoint(service, props); + EndpointDescription epd = tcpEndpoint.description(); + Assert.assertEquals("tcp://myhost:45346", epd.getId()); + tcpEndpoint.close(); + } + + @Test + public void testEndpointPropertiesDefault() throws IOException { + Object service = new MyServiceImpl(); + Map<String, Object> props = new HashMap<>(); + props.put(Constants.OBJECTCLASS, new String[]{MyService.class.getName()}); + props.put(RemoteConstants.SERVICE_IMPORTED_CONFIGS, ""); + TcpEndpoint tcpEndpoint = new TcpEndpoint(service, props); + EndpointDescription epd = tcpEndpoint.description(); + Assert.assertNotNull(epd.getId()); + tcpEndpoint.close(); + } +} http://git-wip-us.apache.org/repos/asf/aries-rsa/blob/d8162e40/repository/pom.xml ---------------------------------------------------------------------- diff --git a/repository/pom.xml b/repository/pom.xml index e6f5cd7..e8732e6 100644 --- a/repository/pom.xml +++ b/repository/pom.xml @@ -85,10 +85,10 @@ <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <exclusions> - <exclusion> - <artifactId>slf4j-api</artifactId> - <groupId>org.slf4j</groupId> - </exclusion> + <exclusion> + <artifactId>slf4j-api</artifactId> + <groupId>org.slf4j</groupId> + </exclusion> </exclusions> </dependency> <dependency>
