You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whirr.apache.org by to...@apache.org on 2010/06/21 08:47:30 UTC
svn commit: r956457 - in /incubator/whirr/trunk: ./ build-tools/
build-tools/src/ build-tools/src/main/ build-tools/src/main/resources/
core/ core/src/main/java/org/apache/whirr/service/ services/hadoop/
services/hadoop/src/main/java/org/apache/whirr/s...
Author: tomwhite
Date: Mon Jun 21 04:35:36 2010
New Revision: 956457
URL: http://svn.apache.org/viewvc?rev=956457&view=rev
Log:
WHIRR-21. Enforce source code style.
Added:
incubator/whirr/trunk/build-tools/ (with props)
incubator/whirr/trunk/build-tools/pom.xml (with props)
incubator/whirr/trunk/build-tools/src/
incubator/whirr/trunk/build-tools/src/main/
incubator/whirr/trunk/build-tools/src/main/resources/
incubator/whirr/trunk/build-tools/src/main/resources/checkstyle.xml (with props)
Modified:
incubator/whirr/trunk/CHANGES.txt
incubator/whirr/trunk/core/pom.xml
incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java
incubator/whirr/trunk/pom.xml
incubator/whirr/trunk/services/hadoop/pom.xml
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java
incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java
incubator/whirr/trunk/services/zookeeper/pom.xml
incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java
Modified: incubator/whirr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/CHANGES.txt?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/CHANGES.txt (original)
+++ incubator/whirr/trunk/CHANGES.txt Mon Jun 21 04:35:36 2010
@@ -1,8 +1,20 @@
+Apache Whirr Change Log
+
Trunk (unreleased changes)
+ INCOMPATIBLE CHANGES
+
+ NEW FEATURES
+
+ IMPROVEMENTS
+
WHIRR-2. Import initial Java source code. (tomwhite)
WHIRR-20. Generate RAT report. (phunt via tomwhite)
WHIRR-32. Update POM to point to Apache RAT 0.8-SNAPSHOT.
- (Jeff Hammerbacher via tomwhite)
\ No newline at end of file
+ (Jeff Hammerbacher via tomwhite)
+
+ WHIRR-21. Enforce source code style. (tomwhite)
+
+ BUG FIXES
Propchange: incubator/whirr/trunk/build-tools/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Jun 21 04:35:36 2010
@@ -0,0 +1,4 @@
+.project
+.classpath
+.settings
+target
Added: incubator/whirr/trunk/build-tools/pom.xml
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/build-tools/pom.xml?rev=956457&view=auto
==============================================================================
--- incubator/whirr/trunk/build-tools/pom.xml (added)
+++ incubator/whirr/trunk/build-tools/pom.xml Mon Jun 21 04:35:36 2010
@@ -0,0 +1,31 @@
+<!--
+ 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.
+-->
+<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>
+ <groupId>org.apache.whirr</groupId>
+ <artifactId>whirr</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <groupId>org.apache.whirr</groupId>
+ <artifactId>whirr-build-tools</artifactId>
+ <packaging>jar</packaging>
+ <version>0.1.0-SNAPSHOT</version>
+ <name>Whirr Build Tools</name>
+</project>
Propchange: incubator/whirr/trunk/build-tools/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/whirr/trunk/build-tools/src/main/resources/checkstyle.xml
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/build-tools/src/main/resources/checkstyle.xml?rev=956457&view=auto
==============================================================================
--- incubator/whirr/trunk/build-tools/src/main/resources/checkstyle.xml (added)
+++ incubator/whirr/trunk/build-tools/src/main/resources/checkstyle.xml Mon Jun 21 04:35:36 2010
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<!--
+ 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.
+-->
+
+<!DOCTYPE module PUBLIC
+ "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+ "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
+
+<module name="Checker">
+ <module name="FileTabCharacter"/>
+ <module name="NewlineAtEndOfFile">
+ <property name="lineSeparator" value="lf"/>
+ </module>
+
+ <module name="TreeWalker">
+ <module name="ConstantName"/>
+ <module name="LocalFinalVariableName"/>
+ <module name="LocalVariableName"/>
+ <module name="MemberName"/>
+ <module name="MethodName"/>
+ <module name="PackageName"/>
+ <module name="ParameterName"/>
+ <module name="StaticVariableName"/>
+ <module name="TypeName"/>
+
+ <module name="AvoidStarImport"/>
+ <module name="RedundantImport"/>
+ <module name="UnusedImports"/>
+
+ <module name="RedundantModifier"/>
+
+ <module name="EmptyStatement"/>
+ <module name="IllegalInstantiation"/>
+ <module name="RedundantThrows"/>
+ <module name="SimplifyBooleanExpression"/>
+ <module name="SimplifyBooleanReturn"/>
+
+ <module name="InterfaceIsType"/>
+
+ <module name="ArrayTypeStyle"/>
+ <module name="UpperEll"/>
+
+ </module>
+</module>
Propchange: incubator/whirr/trunk/build-tools/src/main/resources/checkstyle.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/whirr/trunk/core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/pom.xml?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/core/pom.xml (original)
+++ incubator/whirr/trunk/core/pom.xml Mon Jun 21 04:35:36 2010
@@ -17,6 +17,12 @@
<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>
+ <groupId>org.apache.whirr</groupId>
+ <artifactId>whirr</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
<groupId>org.apache.whirr</groupId>
<artifactId>whirr-core</artifactId>
<packaging>jar</packaging>
Modified: incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java (original)
+++ incubator/whirr/trunk/core/src/main/java/org/apache/whirr/service/Cluster.java Mon Jun 21 04:35:36 2010
@@ -30,7 +30,7 @@ public class Cluster {
private InetAddress privateAddress;
public Instance(Set<String> roles, InetAddress publicAddress,
- InetAddress privateAddress) {
+ InetAddress privateAddress) {
this.roles = roles;
this.publicAddress = publicAddress;
this.privateAddress = privateAddress;
Modified: incubator/whirr/trunk/pom.xml
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/pom.xml?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/pom.xml (original)
+++ incubator/whirr/trunk/pom.xml Mon Jun 21 04:35:36 2010
@@ -24,6 +24,7 @@
<name>Whirr</name>
<modules>
+ <module>build-tools</module>
<module>core</module>
<module>services/hadoop</module>
<module>services/zookeeper</module>
@@ -56,6 +57,30 @@
</excludes>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>2.5</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.whirr</groupId>
+ <artifactId>whirr-build-tools</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ </plugin>
</plugins>
</build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>2.5</version>
+ <configuration>
+ <configLocation>checkstyle.xml</configLocation>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
</project>
Modified: incubator/whirr/trunk/services/hadoop/pom.xml
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/pom.xml?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/pom.xml (original)
+++ incubator/whirr/trunk/services/hadoop/pom.xml Mon Jun 21 04:35:36 2010
@@ -17,6 +17,12 @@
<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>
+ <groupId>org.apache.whirr</groupId>
+ <artifactId>whirr</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
<groupId>org.apache.whirr</groupId>
<artifactId>whirr-hadoop</artifactId>
<packaging>jar</packaging>
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopCluster.java Mon Jun 21 04:35:36 2010
@@ -36,7 +36,7 @@ public class HadoopCluster extends Clust
return Iterables.getOnlyElement(Sets.filter(getInstances(), new Predicate<Instance>() {
@Override
public boolean apply(Instance instance) {
- return instance.getRoles().contains("nn");
+ return instance.getRoles().contains("nn");
}
})).getPublicAddress();
}
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopProxy.java Mon Jun 21 04:35:36 2010
@@ -42,13 +42,13 @@ public class HadoopProxy {
String user = "ubuntu"; // TODO: get from jclouds
String server = cluster.getNamenodePublicAddress().getHostName();
String[] command = new String[] { "ssh",
- "-i", identityFile,
- "-o", "ConnectTimeout=10",
- "-o", "ServerAliveInterval=60",
- "-o", "StrictHostKeyChecking=no",
- "-N",
- "-D 6666",
- String.format("%s@%s", user, server)};
+ "-i", identityFile,
+ "-o", "ConnectTimeout=10",
+ "-o", "ServerAliveInterval=60",
+ "-o", "StrictHostKeyChecking=no",
+ "-N",
+ "-D 6666",
+ String.format("%s@%s", user, server)};
ProcessBuilder processBuilder = new ProcessBuilder(command);
process = processBuilder.start();
Modified: incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java (original)
+++ incubator/whirr/trunk/services/hadoop/src/main/java/org/apache/whirr/service/hadoop/HadoopService.java Mon Jun 21 04:35:36 2010
@@ -33,10 +33,9 @@ import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.util.Collections;
-import java.util.Map;
+import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
-import java.util.Map.Entry;
import org.apache.whirr.service.ClusterSpec;
import org.apache.whirr.service.ComputeServiceBuilder;
@@ -76,8 +75,8 @@ public class HadoopService extends Servi
.osFamily(OsFamily.UBUNTU)
.options(runScript(nnjtBootScript)
.installPrivateKey(privateKey)
- .authorizePublicKey(publicKey)
- .inboundPorts(22, 80, 8020, 8021, 50030)) // TODO: restrict further
+ .authorizePublicKey(publicKey)
+ .inboundPorts(22, 80, 8020, 8021, 50030)) // TODO: restrict further
.build();
InstanceTemplate instanceTemplate = clusterSpec.getInstanceTemplate(MASTER_ROLE);
@@ -98,14 +97,14 @@ public class HadoopService extends Servi
byte[] slaveBootScript = RunUrlBuilder.runUrls(
"sun/java/install",
String.format("apache/hadoop/install dn,tt -n %s -j %s",
- namenodePublicAddress.getHostName(),
- jobtrackerPublicAddress.getHostName()));
+ namenodePublicAddress.getHostName(),
+ jobtrackerPublicAddress.getHostName()));
template = computeService.templateBuilder()
.osFamily(OsFamily.UBUNTU)
.options(runScript(slaveBootScript)
.installPrivateKey(privateKey)
- .authorizePublicKey(publicKey))
+ .authorizePublicKey(publicKey))
.build();
instanceTemplate = clusterSpec.getInstanceTemplate(WORKER_ROLE);
@@ -114,7 +113,7 @@ public class HadoopService extends Servi
Set<? extends NodeMetadata> workerNodes;
try {
workerNodes = computeService.runNodesWithTag(serviceSpec.getClusterName(),
- instanceTemplate.getNumberOfInstances(), template);
+ instanceTemplate.getNumberOfInstances(), template);
} catch (RunNodesException e) {
// TODO: don't bail out if only a few have failed to start
throw new IOException(e);
@@ -123,7 +122,7 @@ public class HadoopService extends Servi
// TODO: wait for TTs to come up (done in test for the moment)
Set<Instance> instances = Sets.union(getInstances(MASTER_ROLE, Collections.singleton(node)),
- getInstances(WORKER_ROLE, workerNodes));
+ getInstances(WORKER_ROLE, workerNodes));
Properties config = createClientSideProperties(namenodePublicAddress, jobtrackerPublicAddress);
return new HadoopCluster(instances, config);
@@ -131,12 +130,12 @@ public class HadoopService extends Servi
private Set<Instance> getInstances(final Set<String> roles, Set<? extends NodeMetadata> nodes) {
return Sets.newHashSet(Collections2.transform(Sets.newHashSet(nodes),
- new Function<NodeMetadata, Instance>() {
+ new Function<NodeMetadata, Instance>() {
@Override
public Instance apply(NodeMetadata node) {
- return new Instance(roles,
- Iterables.get(node.getPublicAddresses(), 0),
- Iterables.get(node.getPrivateAddresses(), 0));
+ return new Instance(roles,
+ Iterables.get(node.getPublicAddresses(), 0),
+ Iterables.get(node.getPrivateAddresses(), 0));
}
}));
}
Modified: incubator/whirr/trunk/services/zookeeper/pom.xml
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/zookeeper/pom.xml?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/services/zookeeper/pom.xml (original)
+++ incubator/whirr/trunk/services/zookeeper/pom.xml Mon Jun 21 04:35:36 2010
@@ -17,6 +17,12 @@
<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>
+ <groupId>org.apache.whirr</groupId>
+ <artifactId>whirr</artifactId>
+ <version>0.1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
<groupId>org.apache.whirr</groupId>
<artifactId>whirr-zookeeper</artifactId>
<packaging>jar</packaging>
Modified: incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java
URL: http://svn.apache.org/viewvc/incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java?rev=956457&r1=956456&r2=956457&view=diff
==============================================================================
--- incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java (original)
+++ incubator/whirr/trunk/services/zookeeper/src/main/java/org/apache/whirr/service/zookeeper/ZooKeeperService.java Mon Jun 21 04:35:36 2010
@@ -31,7 +31,6 @@ import com.google.common.collect.Sets;
import java.io.IOException;
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.apache.whirr.service.ClusterSpec;
@@ -63,14 +62,14 @@ public class ZooKeeperService extends Se
ComputeService computeService = ComputeServiceBuilder.build(serviceSpec);
byte[] bootScript = RunUrlBuilder.runUrls(
- "sun/java/install",
- "apache/zookeeper/install");
+ "sun/java/install",
+ "apache/zookeeper/install");
Template template = computeService.templateBuilder()
.osFamily(OsFamily.UBUNTU)
.options(runScript(bootScript)
- .installPrivateKey(serviceSpec.readPrivateKey())
- .authorizePublicKey(serviceSpec.readPublicKey())
- .inboundPorts(22, CLIENT_PORT))
+ .installPrivateKey(serviceSpec.readPrivateKey())
+ .authorizePublicKey(serviceSpec.readPublicKey())
+ .inboundPorts(22, CLIENT_PORT))
.build();
InstanceTemplate instanceTemplate = clusterSpec.getInstanceTemplate(ZOOKEEPER_ROLE);
@@ -79,7 +78,7 @@ public class ZooKeeperService extends Se
Set<? extends NodeMetadata> nodeMap;
try {
nodeMap = computeService.runNodesWithTag(serviceSpec.getClusterName(), ensembleSize,
- template);
+ template);
} catch (RunNodesException e) {
// TODO: can we do better here - proceed if ensemble is big enough?
throw new IOException(e);
@@ -90,7 +89,7 @@ public class ZooKeeperService extends Se
// Position is significant: i-th server has id i.
String servers = Joiner.on(' ').join(getPrivateIps(nodes));
byte[] configureScript = RunUrlBuilder.runUrls(
- "apache/zookeeper/post-configure " + servers);
+ "apache/zookeeper/post-configure " + servers);
try {
computeService.runScriptOnNodesWithTag(serviceSpec.getClusterName(), configureScript);
} catch (RunScriptOnNodesException e) {
@@ -104,34 +103,34 @@ public class ZooKeeperService extends Se
private List<String> getPrivateIps(List<NodeMetadata> nodes) {
return Lists.transform(Lists.newArrayList(nodes),
- new Function<NodeMetadata, String>() {
+ new Function<NodeMetadata, String>() {
@Override
public String apply(NodeMetadata node) {
- return Iterables.get(node.getPrivateAddresses(), 0).getHostAddress();
+ return Iterables.get(node.getPrivateAddresses(), 0).getHostAddress();
}
});
}
private Set<Instance> getInstances(List<NodeMetadata> nodes) {
return Sets.newHashSet(Collections2.transform(Sets.newHashSet(nodes),
- new Function<NodeMetadata, Instance>() {
+ new Function<NodeMetadata, Instance>() {
@Override
public Instance apply(NodeMetadata node) {
- return new Instance(Collections.singleton(ZOOKEEPER_ROLE),
- Iterables.get(node.getPublicAddresses(), 0),
- Iterables.get(node.getPrivateAddresses(), 0));
+ return new Instance(Collections.singleton(ZOOKEEPER_ROLE),
+ Iterables.get(node.getPublicAddresses(), 0),
+ Iterables.get(node.getPrivateAddresses(), 0));
}
}));
}
private List<String> getHosts(List<NodeMetadata> nodes) {
return Lists.transform(Lists.newArrayList(nodes),
- new Function<NodeMetadata, String>() {
+ new Function<NodeMetadata, String>() {
@Override
public String apply(NodeMetadata node) {
- String publicIp = Iterables.get(node.getPublicAddresses(), 0)
- .getHostName();
- return String.format("%s:%d", publicIp, CLIENT_PORT);
+ String publicIp = Iterables.get(node.getPublicAddresses(), 0)
+ .getHostName();
+ return String.format("%s:%d", publicIp, CLIENT_PORT);
}
});
}