diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..c5f3f6b9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/ci/pmd-ruleset.xml b/ci/pmd-ruleset.xml new file mode 100644 index 00000000..6866d596 --- /dev/null +++ b/ci/pmd-ruleset.xml @@ -0,0 +1,34 @@ + + + + + Reports unused code as part of the build. The Java compiler's -Xlint + cannot detect unused local variables, private fields, private methods or + private/constructor parameters. + + Note: there is no reliable rule for "unused public class/method" as those may + form part of the published API and cannot be judged from this codebase alone, + so they are intentionally out of scope. + + + + + + + + + + + + + + + + + + diff --git a/ip-intelligence.cloud/src/main/java/fiftyone/ipintelligence/cloud/data/MultiIPIDataCloud.java b/ip-intelligence.cloud/src/main/java/fiftyone/ipintelligence/cloud/data/MultiIPIDataCloud.java index bd6d870b..f25e0edc 100644 --- a/ip-intelligence.cloud/src/main/java/fiftyone/ipintelligence/cloud/data/MultiIPIDataCloud.java +++ b/ip-intelligence.cloud/src/main/java/fiftyone/ipintelligence/cloud/data/MultiIPIDataCloud.java @@ -41,7 +41,7 @@ * by the 51Degrees Cloud service when evidence matching multiple profiles is * provided. */ -public class MultiIPIDataCloud +public final class MultiIPIDataCloud extends AspectDataBase implements MultiProfileData { private static final String PROFILE_LIST_KEY = "profiles"; diff --git a/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/IPIntelligenceCloudEngineTests.java b/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/IPIntelligenceCloudEngineTests.java index 6b14439c..dc30c665 100644 --- a/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/IPIntelligenceCloudEngineTests.java +++ b/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/IPIntelligenceCloudEngineTests.java @@ -38,7 +38,6 @@ import java.net.InetAddress; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/MissingPropertyHandlingTests.java b/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/MissingPropertyHandlingTests.java index fa7ec56f..2e860d03 100644 --- a/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/MissingPropertyHandlingTests.java +++ b/ip-intelligence.cloud/src/test/java/fiftyone/ipintelligence/cloud/flowelements/MissingPropertyHandlingTests.java @@ -26,7 +26,6 @@ import fiftyone.pipeline.cloudrequestengine.data.CloudRequestData; import fiftyone.pipeline.cloudrequestengine.flowelements.CloudRequestEngine; import fiftyone.pipeline.core.data.FlowData; -import fiftyone.pipeline.core.data.IWeightedValue; import fiftyone.pipeline.engines.data.AspectPropertyMetaData; import fiftyone.pipeline.engines.data.AspectPropertyMetaDataDefault; import fiftyone.pipeline.engines.data.AspectPropertyValue; diff --git a/ip-intelligence.engine.on-premise/src/test/java/fiftyone/ipintelligence/engine/onpremise/data/DataValidatorHash.java b/ip-intelligence.engine.on-premise/src/test/java/fiftyone/ipintelligence/engine/onpremise/data/DataValidatorHash.java index 017ee631..3ae0e1d8 100644 --- a/ip-intelligence.engine.on-premise/src/test/java/fiftyone/ipintelligence/engine/onpremise/data/DataValidatorHash.java +++ b/ip-intelligence.engine.on-premise/src/test/java/fiftyone/ipintelligence/engine/onpremise/data/DataValidatorHash.java @@ -26,13 +26,10 @@ import fiftyone.ipintelligence.shared.IPIntelligenceData; import fiftyone.ipintelligence.shared.testhelpers.data.DataValidator; import fiftyone.pipeline.core.data.FlowData; -import fiftyone.pipeline.core.data.IWeightedValue; import fiftyone.pipeline.engines.data.AspectPropertyValue; import fiftyone.pipeline.engines.exceptions.NoValueException; import fiftyone.pipeline.engines.fiftyone.data.FiftyOneAspectPropertyMetaData; -import java.util.Arrays; -import java.util.List; import java.util.Map; import static org.junit.Assert.*; diff --git a/ip-intelligence.shared/src/main/java/fiftyone/ipintelligence/shared/flowelements/OnPremiseIPIntelligenceEngineBuilderBase.java b/ip-intelligence.shared/src/main/java/fiftyone/ipintelligence/shared/flowelements/OnPremiseIPIntelligenceEngineBuilderBase.java index a3612c71..52c90d9f 100644 --- a/ip-intelligence.shared/src/main/java/fiftyone/ipintelligence/shared/flowelements/OnPremiseIPIntelligenceEngineBuilderBase.java +++ b/ip-intelligence.shared/src/main/java/fiftyone/ipintelligence/shared/flowelements/OnPremiseIPIntelligenceEngineBuilderBase.java @@ -24,7 +24,6 @@ import fiftyone.pipeline.engines.data.AspectData; import fiftyone.pipeline.engines.data.AspectPropertyMetaData; -import fiftyone.pipeline.engines.data.AspectPropertyValue; import fiftyone.pipeline.engines.fiftyone.flowelements.FiftyOneAspectEngine; import fiftyone.pipeline.engines.fiftyone.flowelements.FiftyOneOnPremiseAspectEngineBuilderBase; import fiftyone.pipeline.engines.services.DataUpdateService; diff --git a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/FileUtilsTest.java b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/FileUtilsTest.java index a06de96f..bb1b302b 100644 --- a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/FileUtilsTest.java +++ b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/FileUtilsTest.java @@ -22,7 +22,6 @@ package fiftyone.ipintelligence.shared.testhelpers; -import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/ListRuntimeConfigTest.java b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/ListRuntimeConfigTest.java index 14b85ca3..bdf7aae6 100644 --- a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/ListRuntimeConfigTest.java +++ b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/ListRuntimeConfigTest.java @@ -22,7 +22,6 @@ package fiftyone.ipintelligence.shared.testhelpers; -import org.junit.Ignore; import org.junit.Test; public class ListRuntimeConfigTest { diff --git a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/MetaDataTests.java b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/MetaDataTests.java index d4563f92..7a5f5e90 100644 --- a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/MetaDataTests.java +++ b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/MetaDataTests.java @@ -30,7 +30,6 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; -import java.util.concurrent.atomic.AtomicBoolean; import static org.junit.Assert.assertEquals; diff --git a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/ValueTests.java b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/ValueTests.java index bc033403..4934d973 100644 --- a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/ValueTests.java +++ b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/data/ValueTests.java @@ -33,7 +33,10 @@ import fiftyone.pipeline.engines.fiftyone.data.FiftyOneAspectPropertyMetaData; import java.lang.reflect.Method; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; import static fiftyone.pipeline.util.StringManipulation.stringJoin; import static org.junit.Assert.*; diff --git a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/flowelements/ProcessTests.java b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/flowelements/ProcessTests.java index c2d0fbb7..5b273669 100644 --- a/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/flowelements/ProcessTests.java +++ b/ip-intelligence.shared/src/test/java/fiftyone/ipintelligence/shared/testhelpers/flowelements/ProcessTests.java @@ -27,10 +27,7 @@ import fiftyone.ipintelligence.shared.testhelpers.data.DataValidator; import fiftyone.pipeline.core.data.FlowData; -import java.util.Arrays; -import java.util.List; -import static fiftyone.pipeline.util.StringManipulation.stringJoin; public class ProcessTests { diff --git a/ip-intelligence/src/main/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilder.java b/ip-intelligence/src/main/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilder.java index 59042020..0ebff7a8 100644 --- a/ip-intelligence/src/main/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilder.java +++ b/ip-intelligence/src/main/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilder.java @@ -34,7 +34,6 @@ import fiftyone.pipeline.engines.flowelements.AspectEngine; import fiftyone.pipeline.engines.flowelements.PrePackagedPipelineBuilderBase; import fiftyone.pipeline.engines.services.DataUpdateService; -import fiftyone.pipeline.engines.services.HttpClient; import org.slf4j.ILoggerFactory; import org.slf4j.LoggerFactory; diff --git a/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilderTest.java b/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilderTest.java index dd745168..98b386e9 100644 --- a/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilderTest.java +++ b/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceOnPremisePipelineBuilderTest.java @@ -42,7 +42,6 @@ import java.io.File; import java.lang.reflect.Field; -import java.nio.file.Files; import java.util.List; import static org.junit.Assert.*; @@ -160,7 +159,7 @@ public void setDataFileSystemWatcher_PropertyPropagatedToDataFileConfiguration() @Test public void setDataUpdateService_RegisterDataFileTriggered() throws Exception { DataUpdateServiceDefault dataUpdateServiceDefault = mock(DataUpdateServiceDefault.class); - Pipeline pipeline = builder + builder .setAutoUpdate(true) .setDataUpdateService(dataUpdateServiceDefault) .build(); diff --git a/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceTests.java b/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceTests.java index b40f3c62..231e7198 100644 --- a/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceTests.java +++ b/ip-intelligence/src/test/java/fiftyone/ipintelligence/IPIntelligenceTests.java @@ -43,6 +43,7 @@ import java.io.File; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; @@ -56,7 +57,7 @@ import static fiftyone.ipintelligence.shared.testhelpers.FileUtils.IP_ADDRESSES_FILE_NAME; import static fiftyone.pipeline.engines.Constants.PerformanceProfiles.*; import static org.junit.Assert.assertEquals; -import static org.junit.Assume.assumeTrue; +import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; @@ -230,6 +231,8 @@ public void TestOnPremiseBuilder_CreateTempFile() throws Exception { pipeline.getElement(IPIntelligenceOnPremiseEngine.class); String tempDir = engine.getTempDataDirPath(); Path tempPath = Paths.get(tempDir); + assertTrue("A temp data file should have been created under " + tempPath, + Files.exists(tempPath)); } } logger.info("Completed {} creations", i); diff --git a/pom.xml b/pom.xml index 0b1391cf..62ea8471 100644 --- a/pom.xml +++ b/pom.xml @@ -40,6 +40,7 @@ 20211205 3.9.0 + 3.26.0 1.6.0 2.5.2 3.2.2 @@ -119,7 +120,7 @@ true -Xlint:all,-try,-options - + -Werror @@ -158,6 +159,44 @@ published + + + org.apache.maven.plugins + maven-pmd-plugin + ${maven-pmd-plugin.version} + + + + ${maven.multiModuleProjectDirectory}/ci/pmd-ruleset.xml + + + true + true + true + + false + + + **/interop/swig/*.java + + + + + check-unused-code + compile + + check + + + + org.apache.maven.plugins maven-surefire-plugin