Repository: hazelcast/hazelcast-kubernetes
Pull request #27 (2017-01-25 08:29:49)

Package and mvn profile arrangements after repo ownership transfer
This PR;
- Aligns package namings with other Hazelcast plugins.
- Adds necessary mvn profiles, checkstyle/findbugs/master/release)
- Fixes checkstyle/findbugs errors.


Patch:
diff --git a/README.adoc b/README.adoc
index 2a1bd7b..b27273b 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1,5 +1,4 @@
 = Hazelcast Discovery Plugin for Kubernetes
-Christoph Engelbert <https://github.com/noctarius[@noctarius2k]>
 // Settings:
 :compat-mode!:
 :idseparator: -
@@ -25,7 +24,7 @@ link:http://docs.hazelcast.org/docs/3.6-EA2/manual/html-single/index.html#discov
 == Configuration Property Documentation
 
 The available configuration properties are documented inside the Javadoc of this plugin:
-link:http://noctarius.github.io/hazelcast-kubernetes-discovery/com/noctarius/hazelcast/kubernetes/KubernetesProperties.html#field_summary[Configuration Properties]
+link:http://hazelcast.github.io/hazelcast-kubernetes/com/hazelcast/kubernetes/KubernetesProperties.html#field_summary[Configuration Properties]
 
 == Configuration
 === REST API Request
@@ -42,8 +41,8 @@ maven, Gradle, sbt or similar tools, this is as easy as adding it to the build c
     <!-- application dependencies -->
 
     <dependency>
-      <groupId>com.noctarius.discovery</groupId>
-      <artifactId>hazelcast-kubernetes-discovery</artifactId>
+      <groupId>com.hazelcast</groupId>
+      <artifactId>hazelcast-kubernetes</artifactId>
       <version>${hazelcast-kubernetes-version}</version>
     </dependency>
   </dependencies>
@@ -79,7 +78,7 @@ This fragment will add the discovery plugin as well as necessary transitive depe
       <!-- activate the Kubernetes plugin -->
       <discovery-strategies>
         <discovery-strategy enabled="true"
-            class="com.noctarius.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategy">
+            class="com.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategy">
 
           <properties>
             <!-- configure discovery service API lookup -->
@@ -110,8 +109,8 @@ If using maven, Gradle, sbt or similar tools, this is as easy as adding it to th
     <!-- application dependencies -->
 
     <dependency>
-      <groupId>com.noctarius.discovery</groupId>
-      <artifactId>hazelcast-kubernetes-discovery</artifactId>
+      <groupId>com.hazelcast</groupId>
+      <artifactId>hazelcast-kubernetes</artifactId>
       <version>${hazelcast-kubernetes-version}</version>
     </dependency>
   </dependencies>
@@ -141,7 +140,7 @@ link:https://github.com/kubernetes/kubernetes/tree/v1.0.6/cluster/addons/dns[Kub
       <!-- activate the Kubernetes plugin -->
       <discovery-strategies>
         <discovery-strategy enabled="true"
-            class="com.noctarius.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategy">
+            class="com.hazelcast.HazelcastKubernetesDiscoveryStrategy">
 
           <properties>
             <!-- configure discovery service API lookup -->
diff --git a/checkstyle/ClassHeader.txt b/checkstyle/ClassHeader.txt
new file mode 100644
index 0000000..0084ddb
--- /dev/null
+++ b/checkstyle/ClassHeader.txt
@@ -0,0 +1,16 @@
+/*
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
+ *
+ * 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.
+ */
+
diff --git a/checkstyle/checkstyle.xml b/checkstyle/checkstyle.xml
new file mode 100644
index 0000000..ceec48e
--- /dev/null
+++ b/checkstyle/checkstyle.xml
@@ -0,0 +1,303 @@
+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+        "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
+        "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
+
+<!--
+  Checkstyle configuration that checks the sun coding conventions from:
+
+    - the Java Language Specification at
+      http://java.sun.com/docs/books/jls/second_edition/html/index.html
+
+    - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
+
+    - the Javadoc guidelines at
+      http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
+
+    - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
+
+    - some best practices
+
+  Checkstyle is very configurable. Be sure to read the documentation at
+  http://checkstyle.sf.net (or in your downloaded distribution).
+
+  Most Checks are configurable, be sure to consult the documentation.
+
+  To completely disable a check, just comment it out or delete it from the file.
+
+  Finally, it is worth reading the documentation.
+-->
+
+<module name="Checker">
+    <!--
+        If you set the basedir property below, then all reported file
+        names will be relative to the specified directory. See
+        http://checkstyle.sourceforge.net/5.x/config.html#Checker
+
+        <property name="basedir" value="${basedir}"/>
+    -->
+
+    <!-- Activation here is needed for IntelliJ CheckstyleIDEA plugin -->
+    <module name="SuppressionFilter">
+        <property name="file" value="${main.basedir}/checkstyle/suppressions.xml"/>
+    </module>
+
+    <!-- Enable suppression of file contents using //CHECKSTYLE:[ON|OFF] comments -->
+    <module name="SuppressionCommentFilter"/>
+
+    <!-- Enable the suppression annotation @SuppressWarnings("checkstyle:lowercasecheckname"} -->
+    <module name="SuppressWarningsFilter"/>
+
+    <!-- Checks that a package-info.java file exists for each package.     -->
+    <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
+    <module name="JavadocPackage"/>
+
+    <!-- Checks whether files end with a new line.                        -->
+    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+    <module name="NewlineAtEndOfFile"/>
+
+    <!-- Checks that property files contain the same keys.         -->
+    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+    <module name="Translation"/>
+
+    <!-- Checks for Size Violations.                    -->
+    <!-- See http://checkstyle.sf.net/config_sizes.html -->
+    <module name="FileLength">
+        <property name="max" value="1500"/>
+    </module>
+
+    <!-- Checks for whitespace                               -->
+    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+    <module name="FileTabCharacter"/>
+
+    <!-- Miscellaneous other checks.                   -->
+    <!-- See http://checkstyle.sf.net/config_misc.html -->
+    <module name="RegexpSingleline">
+        <property name="format" value="\s+$"/>
+        <property name="minimum" value="0"/>
+        <property name="maximum" value="0"/>
+        <property name="message" value="Line has trailing spaces."/>
+    </module>
+
+    <!-- Checks for Headers                                -->
+    <!-- See http://checkstyle.sf.net/config_header.html   -->
+    <module name="Header">
+        <property name="headerFile" value="${main.basedir}/checkstyle/ClassHeader.txt"/>
+        <property name="fileExtensions" value="java"/>
+    </module>
+
+    <module name="TreeWalker">
+        <!-- Activate comment suppression filters -->
+        <module name="FileContentsHolder"/>
+
+        <!-- Needed for SuppressWarningsFilter to work -->
+        <module name="SuppressWarningsHolder"/>
+
+        <!-- Checks for Javadoc comments.                     -->
+        <!-- See http://checkstyle.sf.net/config_javadoc.html -->
+        <!-- Only for methods on public APIs we agreed to have JavaDoc. -->
+        <!-- TODO: figure out how to do that -->
+        <!--<module name="JavadocMethod">-->
+        <!--<property name="scope" value="public"/>-->
+        <!--<property name="allowMissingParamTags" value="true"/>-->
+        <!--</module>-->
+        <module name="JavadocType">
+            <property name="scope" value="public"/>
+        </module>
+        <module name="JavadocVariable">
+            <property name="scope" value="public"/>
+        </module>
+        <module name="JavadocStyle">
+            <property name="checkFirstSentence" value="false"/>
+            <property name="checkHtml" value="false"/>
+        </module>
+
+        <module name="TrailingComment"/>
+
+        <!-- Checks for Naming Conventions.                  -->
+        <!-- See http://checkstyle.sf.net/config_naming.html -->
+        <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="UpperEll"/>
+
+        <!-- Checks for imports                              -->
+        <!-- See http://checkstyle.sf.net/config_import.html -->
+        <module name="AvoidStarImport">
+            <property name="excludes" value="java.awt,javax.swing"/>
+        </module>
+        <!-- defaults to sun.* packages -->
+        <module name="IllegalImport"/>
+        <module name="RedundantImport"/>
+        <module name="UnusedImports">
+            <property name="processJavadoc" value="true"/>
+        </module>
+
+        <!-- Checks for Size Violations.                    -->
+        <!-- See http://checkstyle.sf.net/config_sizes.html -->
+        <module name="LineLength">
+            <property name="max" value="130"/>
+        </module>
+        <module name="MethodLength">
+            <property name="tokens" value="METHOD_DEF"/>
+            <property name="max" value="60"/>
+            <property name="countEmpty" value="false"/>
+        </module>
+        <module name="MethodLength">
+            <property name="max" value="200"/>
+            <property name="tokens" value="METHOD_DEF"/>
+        </module>
+        <module name="MethodLength">
+            <property name="max" value="60"/>
+            <property name="tokens" value="CTOR_DEF"/>
+        </module>
+        <module name="ParameterNumber">
+            <property name="max" value="8"/>
+            <property name="tokens" value="METHOD_DEF"/>
+        </module>
+        <module name="ParameterNumber">
+            <property name="max" value="10"/>
+            <property name="tokens" value="CTOR_DEF"/>
+        </module>
+        <module name="AnonInnerLength">
+            <property name="max" value="30"/>
+        </module>
+        <module name="ExecutableStatementCount">
+            <property name="max" value="20"/>
+            <property name="tokens" value="CTOR_DEF, INSTANCE_INIT, STATIC_INIT"/>
+        </module>
+        <module name="OuterTypeNumber">
+            <property name="max" value="2"/>
+        </module>
+        <module name="MethodCount">
+            <property name="maxTotal" value="30"/>
+        </module>
+
+        <!-- Checks for whitespace                               -->
+        <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+        <!-- module name="EmptyForIteratorPad"/ -->
+        <module name="GenericWhitespace"/>
+        <module name="MethodParamPad"/>
+        <!-- module name="NoWhitespaceAfter"/ -->
+        <!-- module name="NoWhitespaceBefore"/ -->
+        <module name="OperatorWrap"/>
+        <module name="ParenPad"/>
+        <module name="TypecastParenPad"/>
+        <module name="WhitespaceAfter"/>
+        <module name="WhitespaceAround"/>
+
+        <!-- Modifier Checks                                    -->
+        <!-- See http://checkstyle.sf.net/config_modifiers.html -->
+        <module name="ModifierOrder"/>
+        <module name="RedundantModifier"/>
+
+        <!-- Checks for blocks. You know, those {}'s         -->
+        <!-- See http://checkstyle.sf.net/config_blocks.html -->
+        <module name="AvoidNestedBlocks"/>
+        <module name="EmptyBlock"/>
+        <module name="LeftCurly"/>
+        <module name="NeedBraces"/>
+        <module name="RightCurly"/>
+
+        <!-- Checks for common coding problems               -->
+        <!-- See http://checkstyle.sf.net/config_coding.html -->
+        <module name="ArrayTrailingComma"/>
+        <module name="CovariantEquals"/>
+        <module name="DeclarationOrder"/>
+        <module name="ExplicitInitialization"/>
+        <module name="DefaultComesLast"/>
+        <module name="FallThrough"/>
+        <module name="MultipleVariableDeclarations"/>
+        <module name="EmptyStatement"/>
+        <!--<module name="HiddenField">-->
+        <!--<property name="tokens" value="VARIABLE_DEF"/>-->
+        <!--</module>-->
+        <module name="IllegalInstantiation">
+            <property name="classes" value="java.lang.Boolean"/>
+        </module>
+        <module name="IllegalTokenText">
+            <property name="tokens" value="NUM_INT,NUM_LONG"/>
+            <property name="format" value="^0[^lx]"/>
+            <property name="ignoreCase" value="true"/>
+        </module>
+        <module name="IllegalType">
+            <property name="ignoredMethodNames" value="getInstance"/>
+            <property name="tokens" value="PARAMETER_DEF, METHOD_DEF"/>
+        </module>
+        <module name="InnerAssignment"/>
+        <module name="JUnitTestCase"/>
+        <module name="ReturnCount">
+            <property name="max" value="8"/>
+        </module>
+        <module name="NestedIfDepth">
+            <property name="max" value="2"/>
+        </module>
+        <module name="NestedTryDepth">
+            <property name="max" value="2"/>
+        </module>
+        <module name="PackageDeclaration"/>
+        <module name="RedundantThrows">
+            <property name="severity" value="warning"/>
+            <property name="allowUnchecked" value="true"/>
+        </module>
+        <module name="SimplifyBooleanExpression"/>
+        <module name="SimplifyBooleanReturn"/>
+        <module name="StringLiteralEquality"/>
+        <module name="SuperClone"/>
+        <module name="SuperFinalize"/>
+        <module name="MagicNumber">
+            <property name="ignoreHashCodeMethod" value="true"/>
+            <property name="ignoreAnnotation" value="true"/>
+            <property name="ignoreNumbers" value="-1, 0, 1, 2, 3"/>
+        </module>
+        <module name="EqualsHashCode"/>
+        <module name="IllegalInstantiation"/>
+        <module name="MissingSwitchDefault"/>
+
+        <!-- Checks for class design                         -->
+        <!-- See http://checkstyle.sf.net/config_design.html -->
+        <module name="FinalClass"/>
+        <module name="HideUtilityClassConstructor"/>
+        <module name="InterfaceIsType"/>
+        <module name="VisibilityModifier">
+            <property name="packageAllowed" value="true"/>
+            <property name="protectedAllowed" value="true"/>
+        </module>
+
+        <!-- Metrics -->
+        <module name="BooleanExpressionComplexity">
+            <property name="max" value="4"/>
+        </module>
+        <module name="ClassDataAbstractionCoupling">
+            <property name="max" value="15"/>
+        </module>
+        <module name="ClassFanOutComplexity">
+            <property name="max" value="40"/>
+        </module>
+        <module name="CyclomaticComplexity">
+            <property name="severity" value="error"/>
+            <property name="max" value="12"/>
+        </module>
+        <module name="NPathComplexity">
+            <property name="max" value="50"/>
+        </module>
+
+        <!-- Miscellaneous other checks.                   -->
+        <!-- See http://checkstyle.sf.net/config_misc.html -->
+        <module name="ArrayTypeStyle"/>
+        <module name="UpperEll"/>
+
+        <!-- Check for usage of UuidUtil instead of UUID -->
+        <module name="RegexpSinglelineJava">
+            <property name="format" value="(import static java\.util\.UUID\.randomUUID|UUID\.randomUUID\(\))"/>
+            <property name="ignoreComments" value="true"/>
+            <property name="message" value="Please use UuidUtil.buildRandomUUID() instead of UUID.randomUUID()!"/>
+        </module>
+    </module>
+</module>
diff --git a/checkstyle/suppressions.xml b/checkstyle/suppressions.xml
new file mode 100644
index 0000000..a87a3e5
--- /dev/null
+++ b/checkstyle/suppressions.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE suppressions PUBLIC
+        "-//Puppy Crawl//DTD Suppressions 1.1//EN"
+        "http://www.puppycrawl.com/dtds/suppressions_1_1.dtd">
+
+<suppressions>
+
+    <!-- Suppress strict duplicate code checking -->
+    <suppress checks="StrictDuplicateCode" files="\.java" lines="1-15"/>
+
+    <!-- Kubernetes -->
+    <suppress checks="JavadocType" files="com/hazelcast/kubernetes/"/>
+
+    <!-- Exclude Clover instrumented sources -->
+    <suppress checks="" files="/src-instrumented/"/>
+
+</suppressions>
diff --git a/findbugs/findbugs-exclude.xml b/findbugs/findbugs-exclude.xml
new file mode 100644
index 0000000..5fd588b
--- /dev/null
+++ b/findbugs/findbugs-exclude.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<FindBugsFilter>
+
+</FindBugsFilter>
diff --git a/pom.xml b/pom.xml
index 67553de..7c83d6d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,25 +12,41 @@
   - 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/xsd/maven-4.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/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
-  <groupId>com.noctarius.discovery</groupId>
-  <artifactId>hazelcast-kubernetes-discovery</artifactId>
+  <groupId>com.hazelcast</groupId>
+  <artifactId>hazelcast-kubernetes</artifactId>
   <version>0.9.4-SNAPSHOT</version>
   <name>Kubernetes Discovery Plugin for Hazelcast</name>
   <description>Kubernetes Service Discovery for Hazelcast Discovery SPI</description>
-  <url>http://github.com/noctarius/hazelcast-kubernetes-discovery</url>
+  <url>http://github.com/hazelcast/hazelcast-kubernetes</url>
   <inceptionYear>2015</inceptionYear>
   <packaging>bundle</packaging>
 
   <properties>
+    <!-- needed for checkstyle/findbugs -->
+    <main.basedir>${project.basedir}</main.basedir>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <timestamp>${maven.build.timestamp}</timestamp>
     <maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
 
+    <log4j.version>1.2.12</log4j.version>
+    <junit.version>4.12</junit.version>
+
     <hazelcast.version>3.7.4</hazelcast.version>
     <kubernetes-client.version>1.3.66</kubernetes-client.version>
     <dnsjava.version>2.1.7</dnsjava.version>
+
+    <maven.checkstyle.plugin.version>2.15</maven.checkstyle.plugin.version>
+    <maven.findbugs.plugin.version>3.0.1</maven.findbugs.plugin.version>
+    <maven.surefire.plugin.version>2.18.1</maven.surefire.plugin.version>
+    <maven.sonar.plugin.version>2.6</maven.sonar.plugin.version>
+    <maven.jacoco.plugin.version>0.7.4.201502262128</maven.jacoco.plugin.version>
+    <maven.javadoc.plugin.version>2.9</maven.javadoc.plugin.version>
+    <maven.gpg.plugin.version>1.4</maven.gpg.plugin.version>
   </properties>
 
 
@@ -48,9 +64,9 @@
   </distributionManagement>
 
   <scm>
-    <connection>scm:git:git://github.com/noctarius/hazelcast-kubernetes-discovery.git</connection>
-    <developerConnection>scm:git:git@github.com:noctarius/hazelcast-kubernetes-discovery.git</developerConnection>
-    <url>https://github.com/noctarius/hazelcast-kubernetes-discovery/</url>
+    <connection>scm:git:git://github.com/hazelcast/hazelcast-kubernetes.git</connection>
+    <developerConnection>scm:git:git@github.com:hazelcast/hazelcast-kubernetes.git</developerConnection>
+    <url>https://github.com/hazelcast/hazelcast-kubernetes/</url>
     <tag>HEAD</tag>
   </scm>
 
@@ -72,12 +88,12 @@
 
   <issueManagement>
     <system>github</system>
-    <url>https://github.com/noctarius/hazelcast-kubernetes-discovery/issues</url>
+    <url>https://github.com/hazelcast/hazelcast-kubernetes/issues</url>
   </issueManagement>
 
   <ciManagement>
     <system>Jenkins</system>
-    <url>https://noctarius.ci.cloudbees.com/job/hazelcast-kubernetes-discovery</url>
+    <url>https://hazelcast-l337.ci.cloudbees.com/job/Kubernetes-pr-builder/</url>
   </ciManagement>
 
   <dependencies>
@@ -96,6 +112,33 @@
       <artifactId>dnsjava</artifactId>
       <version>${dnsjava.version}</version>
     </dependency>
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>annotations</artifactId>
+      <version>3.0.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.hazelcast</groupId>
+      <artifactId>hazelcast</artifactId>
+      <scope>test</scope>
+      <version>${hazelcast.version}</version>
+      <classifier>tests</classifier>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+      <optional>true</optional>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>${log4j.version}</version>
+      <scope>test</scope>
+      <optional>true</optional>
+    </dependency>
   </dependencies>
 
   <build>
@@ -108,7 +151,7 @@
         <configuration>
           <instructions>
             <Export-Package>
-              com.noctarius.hazelcast.kubernetes.*
+              com.hazelcast.kubernetes.*
             </Export-Package>
             <Import-Package>
               com.hazelcast.config,com.hazelcast.config.properties,
@@ -147,6 +190,8 @@
           <excludes>
             <exclude>README.adoc</exclude>
             <exclude>LICENSE</exclude>
+            <exclude>checkstyle/*</exclude>
+            <exclude>findbugs/*</exclude>
           </excludes>
         </configuration>
       </plugin>
@@ -176,10 +221,10 @@
             <configuration>
               <show>public</show>
               <sourceFileExcludes>
-                <exclude>com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java</exclude>
+                <exclude>com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java</exclude>
               </sourceFileExcludes>
               <sourceFileIncludes>
-                <include>com/noctarius/hazelcast/kubernetes/*.java</include>
+                <include>com/hazelcast/kubernetes/*.java</include>
               </sourceFileIncludes>
               <detectJavaApiLink>true</detectJavaApiLink>
               <links>
@@ -200,10 +245,55 @@
           <checkinComment>Publishing javadoc for ${project.artifactId}:${project.version}</checkinComment>
           <content>${project.build.directory}/apidocs</content>
           <skipDeletedFiles>true</skipDeletedFiles>
-          <pubScmUrl>scm:git:git@github.com:noctarius/hazelcast-kubernetes-discovery.git</pubScmUrl>
+          <pubScmUrl>scm:git:git@github.com:hazelcast/hazelcast-kubernetes.git</pubScmUrl>
           <scmBranch>gh-pages</scmBranch>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${maven.checkstyle.plugin.version}</version>
+        <executions>
+          <execution>
+            <phase>validate</phase>
+            <goals>
+              <goal>checkstyle</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <configLocation>${main.basedir}/checkstyle/checkstyle.xml</configLocation>
+          <suppressionsLocation>${main.basedir}/checkstyle/suppressions.xml</suppressionsLocation>
+          <headerLocation>${main.basedir}/checkstyle/ClassHeader.txt</headerLocation>
+          <enableRSS>false</enableRSS>
+          <linkXRef>true</linkXRef>
+          <consoleOutput>true</consoleOutput>
+          <failsOnError>true</failsOnError>
+          <failOnViolation>true</failOnViolation>
+          <includeTestSourceDirectory>false</includeTestSourceDirectory>
+          <enableRulesSummary>true</enableRulesSummary>
+          <propertyExpansion>main.basedir=${main.basedir}</propertyExpansion>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>findbugs-maven-plugin</artifactId>
+        <version>${maven.findbugs.plugin.version}</version>
+        <executions>
+          <execution>
+            <phase>compile</phase>
+            <goals>
+              <goal>check</goal>
+            </goals>
+          </execution>
+        </executions>
+        <configuration>
+          <failOnError>true</failOnError>
+          <excludeFilterFile>${main.basedir}/findbugs/findbugs-exclude.xml</excludeFilterFile>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
 
@@ -215,10 +305,10 @@
         <configuration>
           <show>public</show>
           <sourceFileExcludes>
-            <exclude>com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java</exclude>
+            <exclude>com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java</exclude>
           </sourceFileExcludes>
           <sourceFileIncludes>
-            <include>com/noctarius/hazelcast/kubernetes/*.java</include>
+            <include>com/hazelcast/kubernetes/*.java</include>
           </sourceFileIncludes>
           <detectJavaApiLink>true</detectJavaApiLink>
           <links>
@@ -230,6 +320,174 @@
   </reporting>
 
   <profiles>
+    <profile>
+      <id>test-coverage</id>
+      <properties>
+        <argLine>
+          -Xms128m -Xmx1G -XX:MaxPermSize=128M
+          -Dhazelcast.version.check.enabled=false
+          -Dhazelcast.mancenter.enabled=false
+          -Dhazelcast.logging.type=none
+          -Dhazelcast.test.use.network=false
+        </argLine>
+      </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.jacoco</groupId>
+            <artifactId>jacoco-maven-plugin</artifactId>
+            <version>${maven.jacoco.plugin.version}</version>
+          </plugin>
+
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <version>${maven.surefire.plugin.version}</version>
+            <configuration combine.self="override">
+              <redirectTestOutputToFile>true</redirectTestOutputToFile>
+              <testFailureIgnore>true</testFailureIgnore>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>release</id>
+      <properties>
+        <javadoc>true</javadoc>
+      </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-gpg-plugin</artifactId>
+            <version>${maven.gpg.plugin.version}</version>
+            <executions>
+              <execution>
+                <id>sign-artifacts</id>
+                <phase>verify</phase>
+                <goals>
+                  <goal>sign</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>${maven.javadoc.plugin.version}</version>
+            <configuration>
+              <javaApiLinks>
+                <property>
+                  <name>api_1.6</name>
+                  <value>http://download.oracle.com/javase/1.6.0/docs/api/</value>
+                </property>
+                <property>
+                  <name>api_1.7</name>
+                  <value>http://download.oracle.com/javase/1.7.0/docs/api/</value>
+                </property>
+              </javaApiLinks>
+              <maxmemory>1024</maxmemory>
+            </configuration>
+            <executions>
+              <execution>
+                <id>attach-javadocs</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+
+          <plugin>
+            <groupId>org.sonatype.plugins</groupId>
+            <artifactId>nexus-staging-maven-plugin</artifactId>
+            <version>1.6.3</version>
+            <extensions>true</extensions>
+            <configuration>
+              <serverId>release-repository</serverId>
+              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
+              <autoReleaseAfterClose>false</autoReleaseAfterClose>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>release-snapshot</id>
+      <properties>
+        <javadoc>true</javadoc>
+      </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <version>${maven.javadoc.plugin.version}</version>
+            <configuration>
+              <javaApiLinks>
+                <property>
+                  <name>api_1.6</name>
+                  <value>http://download.oracle.com/javase/1.6.0/docs/api/</value>
+                </property>
+                <property>
+                  <name>api_1.7</name>
+                  <value>http://download.oracle.com/javase/1.7.0/docs/api/</value>
+                </property>
+              </javaApiLinks>
+              <excludePackageNames>
+                *.impl:*.internal:*.operations:*.proxy:*.util:com.hazelcast.aws.security:
+                *.handlermigration:*.client.connection.nio:*.client.console:*.buildutils:
+                *.client.protocol.generator:*.cluster.client:*.concurrent:*.collection:
+                *.nio.ascii:*.nio.ssl:*.nio.tcp:*.partition.client:*.transaction.client:
+                *.core.server:com.hazelcast.instance:com.hazelcast.PlaceHolder
+              </excludePackageNames>
+            </configuration>
+            <executions>
+              <execution>
+                <id>attach-javadocs</id>
+                <goals>
+                  <goal>jar</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>master</id>
+      <properties>
+        <hazelcast.version>3.8-SNAPSHOT</hazelcast.version>
+      </properties>
+      <dependencies>
+        <dependency>
+          <groupId>com.hazelcast</groupId>
+          <artifactId>hazelcast</artifactId>
+          <version>${hazelcast.version}</version>
+        </dependency>
+      </dependencies>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <version>${maven.surefire.plugin.version}</version>
+            <configuration combine.self="override">
+              <parallel>none</parallel>
+              <redirectTestOutputToFile>true</redirectTestOutputToFile>
+              <argLine>-Xms128m -Xmx1G -XX:MaxPermSize=128M
+                -Dhazelcast.phone.home.enabled=false
+                -Dhazelcast.mancenter.enabled=false
+                -Dhazelcast.logging.type=none
+                -Dhazelcast.test.use.network=true
+              </argLine>
+            </configuration>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
     <profile>
       <id>release-sign-artifacts</id>
       <activation>
diff --git a/src/main/java/com/noctarius/hazelcast/kubernetes/DnsEndpointResolver.java b/src/main/java/com/hazelcast/kubernetes/DnsEndpointResolver.java
similarity index 97%
rename from src/main/java/com/noctarius/hazelcast/kubernetes/DnsEndpointResolver.java
rename to src/main/java/com/hazelcast/kubernetes/DnsEndpointResolver.java
index feb15c6..36e92a5 100644
--- a/src/main/java/com/noctarius/hazelcast/kubernetes/DnsEndpointResolver.java
+++ b/src/main/java/com/hazelcast/kubernetes/DnsEndpointResolver.java
@@ -1,6 +1,5 @@
 /*
- * Copyright (c) 2015, Christoph Engelbert (aka noctarius) and
- * contributors. All rights reserved.
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.noctarius.hazelcast.kubernetes;
+
+package com.hazelcast.kubernetes;
 
 import com.hazelcast.config.NetworkConfig;
 import com.hazelcast.logging.ILogger;
diff --git a/src/main/java/com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategy.java b/src/main/java/com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategy.java
similarity index 82%
rename from src/main/java/com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategy.java
rename to src/main/java/com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategy.java
index dfec966..fd6fb09 100644
--- a/src/main/java/com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategy.java
+++ b/src/main/java/com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategy.java
@@ -1,6 +1,5 @@
 /*
- * Copyright (c) 2015, Christoph Engelbert (aka noctarius) and
- * contributors. All rights reserved.
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.noctarius.hazelcast.kubernetes;
+
+package com.hazelcast.kubernetes;
 
 import com.hazelcast.config.NetworkConfig;
 import com.hazelcast.config.properties.PropertyDefinition;
@@ -28,21 +28,22 @@ import java.net.UnknownHostException;
 import java.util.List;
 import java.util.Map;
 
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.KUBERNETES_API_TOKEN;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.KUBERNETES_MASTER_URL;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.KUBERNETES_SYSTEM_PREFIX;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.NAMESPACE;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.SERVICE_DNS;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.SERVICE_DNS_TIMEOUT;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.SERVICE_LABEL_NAME;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.SERVICE_LABEL_VALUE;
-import static com.noctarius.hazelcast.kubernetes.KubernetesProperties.SERVICE_NAME;
+import static com.hazelcast.kubernetes.KubernetesProperties.KUBERNETES_API_TOKEN;
+import static com.hazelcast.kubernetes.KubernetesProperties.KUBERNETES_MASTER_URL;
+import static com.hazelcast.kubernetes.KubernetesProperties.KUBERNETES_SYSTEM_PREFIX;
+import static com.hazelcast.kubernetes.KubernetesProperties.NAMESPACE;
+import static com.hazelcast.kubernetes.KubernetesProperties.SERVICE_DNS;
+import static com.hazelcast.kubernetes.KubernetesProperties.SERVICE_DNS_TIMEOUT;
+import static com.hazelcast.kubernetes.KubernetesProperties.SERVICE_LABEL_NAME;
+import static com.hazelcast.kubernetes.KubernetesProperties.SERVICE_LABEL_VALUE;
+import static com.hazelcast.kubernetes.KubernetesProperties.SERVICE_NAME;
 
 final class HazelcastKubernetesDiscoveryStrategy
         extends AbstractDiscoveryStrategy {
 
     private static final String DEFAULT_MASTER_URL = "https://kubernetes.default.svc";
     private static final String HAZELCAST_SERVICE_PORT = "hazelcast-service-port";
+    private static final int DEFAULT_SERVICE_DNS_TIMEOUT_SECONDS = 5;
 
     private final EndpointResolver endpointResolver;
 
@@ -50,7 +51,8 @@ final class HazelcastKubernetesDiscoveryStrategy
         super(logger, properties);
 
         String serviceDns = getOrNull(properties, KUBERNETES_SYSTEM_PREFIX, SERVICE_DNS);
-        int serviceDnsTimeout = getOrDefault(properties, KUBERNETES_SYSTEM_PREFIX, SERVICE_DNS_TIMEOUT, 5);
+        int serviceDnsTimeout
+                = getOrDefault(properties, KUBERNETES_SYSTEM_PREFIX, SERVICE_DNS_TIMEOUT, DEFAULT_SERVICE_DNS_TIMEOUT_SECONDS);
         String serviceName = getOrNull(properties, KUBERNETES_SYSTEM_PREFIX, SERVICE_NAME);
         String serviceLabel = getOrNull(properties, KUBERNETES_SYSTEM_PREFIX, SERVICE_LABEL_NAME);
         String serviceLabelValue = getOrDefault(properties, KUBERNETES_SYSTEM_PREFIX, SERVICE_LABEL_VALUE, "true");
@@ -58,12 +60,12 @@ final class HazelcastKubernetesDiscoveryStrategy
         String namespace = getOrDefault(properties, KUBERNETES_SYSTEM_PREFIX, NAMESPACE, getNamespaceOrDefault());
         String kubernetesMaster = getOrDefault(properties, KUBERNETES_SYSTEM_PREFIX, KUBERNETES_MASTER_URL, DEFAULT_MASTER_URL);
 
-        logger.info("Kubernetes Discovery properties: { " //
-                + "service-dns: " + serviceDns + ", " //
-                + "service-dns-timeout: " + serviceDnsTimeout + ", " //
-                + "service-name: " + serviceName + ", " //
-                + "service-label: " + serviceLabel + ", " //
-                + "service-label-value: " + serviceLabelValue + ", " //
+        logger.info("Kubernetes Discovery properties: { "
+                + "service-dns: " + serviceDns + ", "
+                + "service-dns-timeout: " + serviceDnsTimeout + ", "
+                + "service-name: " + serviceName + ", "
+                + "service-label: " + serviceLabel + ", "
+                + "service-label-value: " + serviceLabelValue + ", "
                 + "namespace: " + namespace + ", " + "kubernetes-master: " + kubernetesMaster + "}");
 
         EndpointResolver endpointResolver;
@@ -154,7 +156,7 @@ final class HazelcastKubernetesDiscoveryStrategy
         return sb.append(property.key()).toString();
     }
 
-    static abstract class EndpointResolver {
+    abstract static class EndpointResolver {
         protected final ILogger logger;
 
         EndpointResolver(ILogger logger) {
diff --git a/src/main/java/com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java b/src/main/java/com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java
similarity index 78%
rename from src/main/java/com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java
rename to src/main/java/com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java
index 263e8d7..1af96f8 100644
--- a/src/main/java/com/noctarius/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java
+++ b/src/main/java/com/hazelcast/kubernetes/HazelcastKubernetesDiscoveryStrategyFactory.java
@@ -1,6 +1,5 @@
 /*
- * Copyright (c) 2015, Christoph Engelbert (aka noctarius) and
- * contributors. All rights reserved.
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.noctarius.hazelcast.kubernetes;
+
+package com.hazelcast.kubernetes;
 
 import com.hazelcast.config.properties.PropertyDefinition;
 import com.hazelcast.logging.ILogger;
@@ -36,13 +36,13 @@ public class HazelcastKubernetesDiscoveryStrategyFactory
     private static final Collection<PropertyDefinition> PROPERTY_DEFINITIONS;
 
     static {
-        PROPERTY_DEFINITIONS = Collections.unmodifiableCollection(Arrays.asList( //
-                KubernetesProperties.SERVICE_DNS, //
-                KubernetesProperties.SERVICE_NAME, //
-                KubernetesProperties.NAMESPACE, //
-                KubernetesProperties.SERVICE_LABEL_NAME, //
-                KubernetesProperties.SERVICE_LABEL_VALUE, //
-                KubernetesProperties.KUBERNETES_MASTER_URL, //
+        PROPERTY_DEFINITIONS = Collections.unmodifiableCollection(Arrays.asList(
+                KubernetesProperties.SERVICE_DNS,
+                KubernetesProperties.SERVICE_NAME,
+                KubernetesProperties.NAMESPACE,
+                KubernetesProperties.SERVICE_LABEL_NAME,
+                KubernetesProperties.SERVICE_LABEL_VALUE,
+                KubernetesProperties.KUBERNETES_MASTER_URL,
                 KubernetesProperties.KUBERNETES_API_TOKEN));
     }
 
diff --git a/src/main/java/com/noctarius/hazelcast/kubernetes/KubernetesProperties.java b/src/main/java/com/hazelcast/kubernetes/KubernetesProperties.java
similarity index 97%
rename from src/main/java/com/noctarius/hazelcast/kubernetes/KubernetesProperties.java
rename to src/main/java/com/hazelcast/kubernetes/KubernetesProperties.java
index 6c10d7a..a892171 100644
--- a/src/main/java/com/noctarius/hazelcast/kubernetes/KubernetesProperties.java
+++ b/src/main/java/com/hazelcast/kubernetes/KubernetesProperties.java
@@ -1,6 +1,5 @@
 /*
- * Copyright (c) 2015, Christoph Engelbert (aka noctarius) and
- * contributors. All rights reserved.
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,7 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.noctarius.hazelcast.kubernetes;
+
+package com.hazelcast.kubernetes;
 
 import com.hazelcast.config.properties.PropertyDefinition;
 import com.hazelcast.config.properties.SimplePropertyDefinition;
diff --git a/src/main/java/com/noctarius/hazelcast/kubernetes/ServiceEndpointResolver.java b/src/main/java/com/hazelcast/kubernetes/ServiceEndpointResolver.java
similarity index 89%
rename from src/main/java/com/noctarius/hazelcast/kubernetes/ServiceEndpointResolver.java
rename to src/main/java/com/hazelcast/kubernetes/ServiceEndpointResolver.java
index 91ce97d..cb6b35a 100644
--- a/src/main/java/com/noctarius/hazelcast/kubernetes/ServiceEndpointResolver.java
+++ b/src/main/java/com/hazelcast/kubernetes/ServiceEndpointResolver.java
@@ -1,6 +1,5 @@
 /*
- * Copyright (c) 2015, Christoph Engelbert (aka noctarius) and
- * contributors. All rights reserved.
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,13 +13,16 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.noctarius.hazelcast.kubernetes;
+
+package com.hazelcast.kubernetes;
 
 import com.hazelcast.logging.ILogger;
 import com.hazelcast.nio.Address;
+import com.hazelcast.nio.IOUtil;
 import com.hazelcast.spi.discovery.DiscoveryNode;
 import com.hazelcast.spi.discovery.SimpleDiscoveryNode;
 import com.hazelcast.util.StringUtil;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import io.fabric8.kubernetes.api.model.EndpointAddress;
 import io.fabric8.kubernetes.api.model.EndpointSubset;
 import io.fabric8.kubernetes.api.model.Endpoints;
@@ -59,10 +61,10 @@ class ServiceEndpointResolver
         this.namespace = namespace;
         this.serviceLabel = serviceLabel;
         this.serviceLabelValue = serviceLabelValue;
-        this.client = buildeKubernetesClient(apiToken, kubernetesMaster);
+        this.client = buildKubernetesClient(apiToken, kubernetesMaster);
     }
 
-    private KubernetesClient buildeKubernetesClient(String apiToken, String kubernetesMaster) {
+    private KubernetesClient buildKubernetesClient(String apiToken, String kubernetesMaster) {
         String oauthToken = apiToken;
         if (StringUtil.isNullOrEmpty(oauthToken)) {
             oauthToken = getAccountToken();
@@ -128,17 +130,20 @@ class ServiceEndpointResolver
         client.close();
     }
 
+    @SuppressFBWarnings("DMI_HARDCODED_ABSOLUTE_FILENAME")
     private String getAccountToken() {
+        InputStream is = null;
         try {
             String tokenFile = "/var/run/secrets/kubernetes.io/serviceaccount/token";
             File file = new File(tokenFile);
             byte[] data = new byte[(int) file.length()];
-            InputStream is = new FileInputStream(file);
+            is = new FileInputStream(file);
             is.read(data);
-            return new String(data);
-
+            return new String(data, "UTF-8");
         } catch (IOException e) {
             throw new RuntimeException("Could not get token file", e);
+        } finally {
+            IOUtil.closeResource(is);
         }
     }
 }
diff --git a/src/main/java/com/hazelcast/kubernetes/package-info.java b/src/main/java/com/hazelcast/kubernetes/package-info.java
new file mode 100644
index 0000000..a910721
--- /dev/null
+++ b/src/main/java/com/hazelcast/kubernetes/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
+ *
+ * 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.
+ */
+
+/**
+ * Provides interfaces/classes for Hazelcast Kubernetes Discovery Plugin
+ */
+package com.hazelcast.kubernetes;
diff --git a/src/main/resources/META-INF/services/com.hazelcast.spi.discovery.DiscoveryStrategyFactory b/src/main/resources/META-INF/services/com.hazelcast.spi.discovery.DiscoveryStrategyFactory
index 14c2b57..7560d21 100644
--- a/src/main/resources/META-INF/services/com.hazelcast.spi.discovery.DiscoveryStrategyFactory
+++ b/src/main/resources/META-INF/services/com.hazelcast.spi.discovery.DiscoveryStrategyFactory
@@ -9,4 +9,4 @@
 # 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.
-com.noctarius.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategyFactory
\ No newline at end of file
+com.hazelcast.kubernetes.HazelcastKubernetesDiscoveryStrategyFactory
\ No newline at end of file


Test patch:
diff --git a/src/test/java/com/hazelcast/kubernetes/KubernetesPropertiesTest.java b/src/test/java/com/hazelcast/kubernetes/KubernetesPropertiesTest.java
new file mode 100644
index 0000000..637e754
--- /dev/null
+++ b/src/test/java/com/hazelcast/kubernetes/KubernetesPropertiesTest.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2008-2017, Hazelcast, Inc. All Rights Reserved.
+ *
+ * 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 com.hazelcast.kubernetes;
+
+import com.hazelcast.test.HazelcastTestSupport;
+import org.junit.Test;
+
+public class KubernetesPropertiesTest extends HazelcastTestSupport {
+
+    @Test
+    public void privateConstructorTest() {
+        assertUtilityConstructor(KubernetesProperties.class);
+    }
+
+}