From d8ae8ce0b3685fc34c8e74f6a3f4401d72d01e61 Mon Sep 17 00:00:00 2001 From: bohlski Date: Thu, 5 Aug 2021 17:05:50 +0200 Subject: [PATCH 1/7] Got the project compiling with java 11 and removed a bunch of warnings --- .../AlarmDatabaseExtractionModelTest.java | 2 +- bitrepository-client/README.md | 6 +- .../client/componentid/ComponentIDHelper.java | 2 +- .../IdentifyPillarsForPutFile.java | 2 +- .../settings/XMLFileSettingsLoader.java | 6 +- .../destination/DestinationHelper.java | 3 +- .../security/BasicMessageAuthenticator.java | 6 +- ...zor.java => BasicOperationAuthorizer.java} | 4 +- .../security/BasicSecurityManager.java | 65 ++++++++-------- ...thorizor.java => OperationAuthorizer.java} | 6 +- .../security/SecurityManagerUtil.java | 2 +- .../common/DefaultThreadFactoryTest.java | 3 +- .../common/TestValidationUtils.java | 6 +- .../common/utils/DatabaseTestUtils.java | 6 +- .../protocol/MessageCreationTest.java | 6 +- .../fileexchange/LocalFileExchangeTest.java | 2 +- .../message/ExampleMessageFactory.java | 4 +- .../protocol/security/CertificateIDTest.java | 4 +- .../security/PermissionStoreTest.java | 6 +- .../security/SecurityManagerTest.java | 2 +- .../security/SignatureGenetatorTest.java | 2 +- .../step/HandleChecksumValidationStep.java | 2 +- .../cache/IntegrityDAOTest.java | 77 ++++++++++--------- .../cache/IntegrityDBToolsTest.java | 10 +-- .../RepairMissingFilesWorkflowTest.java | 17 ++-- .../workflow/SaltedChecksumWorkflowTest.java | 33 ++++---- .../step/GetChecksumForFileStepTest.java | 6 +- .../pillar/PillarComponentFactory.java | 6 +- .../checksumdatabase/ChecksumExtractor.java | 22 ++---- .../integration/PillarIntegrationTest.java | 6 +- bitrepository-reference-settings/pom.xml | 45 ++++++++++- .../audit/AuditTrailContributerDAO.java | 7 +- .../service/workflow/WorkflowManager.java | 4 +- pom.xml | 37 ++++++++- 34 files changed, 238 insertions(+), 179 deletions(-) rename bitrepository-core/src/main/java/org/bitrepository/protocol/security/{BasicOperationAuthorizor.java => BasicOperationAuthorizer.java} (96%) rename bitrepository-core/src/main/java/org/bitrepository/protocol/security/{OperationAuthorizor.java => OperationAuthorizer.java} (89%) diff --git a/bitrepository-alarm-service/src/test/java/org/bitrepository/alarm/store/AlarmDatabaseExtractionModelTest.java b/bitrepository-alarm-service/src/test/java/org/bitrepository/alarm/store/AlarmDatabaseExtractionModelTest.java index 73a16576c..ad746832d 100644 --- a/bitrepository-alarm-service/src/test/java/org/bitrepository/alarm/store/AlarmDatabaseExtractionModelTest.java +++ b/bitrepository-alarm-service/src/test/java/org/bitrepository/alarm/store/AlarmDatabaseExtractionModelTest.java @@ -77,7 +77,7 @@ public void alarmExceptionTest() throws Exception { Assert.assertEquals(model.getFileID(), defaultFileID); addStep("Test the MaxCount", "Should be able to put a new one in and extract it again."); - Integer defaultMaxCount = new Integer(192837456); + Integer defaultMaxCount = 192837456; model.setMaxCount(defaultMaxCount); Assert.assertEquals(model.getMaxCount(), defaultMaxCount); diff --git a/bitrepository-client/README.md b/bitrepository-client/README.md index 12b5da68d..38852c244 100644 --- a/bitrepository-client/README.md +++ b/bitrepository-client/README.md @@ -156,12 +156,12 @@ import org.bitrepository.protocol.messagebus.MessageBus; import org.bitrepository.protocol.messagebus.MessageBusManager; import org.bitrepository.protocol.security.BasicMessageAuthenticator; import org.bitrepository.protocol.security.BasicMessageSigner; -import org.bitrepository.protocol.security.BasicOperationAuthorizor; +import org.bitrepository.protocol.security.BasicOperationAuthorizer; import org.bitrepository.protocol.security.SecurityManager; import org.bitrepository.protocol.security.BasicSecurityManager; import org.bitrepository.protocol.security.MessageAuthenticator; import org.bitrepository.protocol.security.MessageSigner; -import org.bitrepository.protocol.security.OperationAuthorizor; +import org.bitrepository.protocol.security.OperationAuthorizer; import org.bitrepository.protocol.security.PermissionStore; public class BitrepositoryClientExample { @@ -226,7 +226,7 @@ public class BitrepositoryClientExample { PermissionStore permissionStore = new PermissionStore(); MessageAuthenticator authenticator = new BasicMessageAuthenticator(permissionStore); MessageSigner signer = new BasicMessageSigner(); - OperationAuthorizor authorizer = new BasicOperationAuthorizor(permissionStore); + OperationAuthorizer authorizer = new BasicOperationAuthorizer(permissionStore); SecurityManager securityManager = new BasicSecurityManager( settings.getRepositorySettings(), certificateFile, authenticator, signer, authorizer, permissionStore, settings.getComponentID()); diff --git a/bitrepository-client/src/main/java/org/bitrepository/client/componentid/ComponentIDHelper.java b/bitrepository-client/src/main/java/org/bitrepository/client/componentid/ComponentIDHelper.java index 9b32390ea..bdd60c0c2 100644 --- a/bitrepository-client/src/main/java/org/bitrepository/client/componentid/ComponentIDHelper.java +++ b/bitrepository-client/src/main/java/org/bitrepository/client/componentid/ComponentIDHelper.java @@ -52,7 +52,7 @@ private ComponentIDFactory createClientIDFactory(String clientIDFactoryClass) { return new DefaultCommandlineComponentID(); } else { try { - return (ComponentIDFactory)Class.forName(clientIDFactoryClass).newInstance(); + return (ComponentIDFactory)Class.forName(clientIDFactoryClass).getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new RuntimeException("Unable to instantiate ClientIDFactory " + clientIDFactoryClass + diff --git a/bitrepository-client/src/main/java/org/bitrepository/modify/putfile/conversation/IdentifyPillarsForPutFile.java b/bitrepository-client/src/main/java/org/bitrepository/modify/putfile/conversation/IdentifyPillarsForPutFile.java index 89487f865..7ab93f484 100644 --- a/bitrepository-client/src/main/java/org/bitrepository/modify/putfile/conversation/IdentifyPillarsForPutFile.java +++ b/bitrepository-client/src/main/java/org/bitrepository/modify/putfile/conversation/IdentifyPillarsForPutFile.java @@ -49,7 +49,7 @@ public IdentifyPillarsForPutFile(PutFileConversationContext context) { } /** - * Extends the default behaviour with a idempotent aspects. This assumes that the put to a pillar is successful if + * Extends the default behaviour with an idempotent aspect. This assumes that the put to a pillar is successful if * the same file already exists. * * The existence of a different file on the other hand is a fatal problem. diff --git a/bitrepository-core/src/main/java/org/bitrepository/common/settings/XMLFileSettingsLoader.java b/bitrepository-core/src/main/java/org/bitrepository/common/settings/XMLFileSettingsLoader.java index 2eed60ac9..66af399b7 100644 --- a/bitrepository-core/src/main/java/org/bitrepository/common/settings/XMLFileSettingsLoader.java +++ b/bitrepository-core/src/main/java/org/bitrepository/common/settings/XMLFileSettingsLoader.java @@ -72,9 +72,9 @@ public XMLFileSettingsLoader(String pathToSettingsFiles) { public T loadSettings(Class settingsClass) { StringBuilder fileLocationBuilder = new StringBuilder(); if (pathToSettingsFiles != null && !pathToSettingsFiles.equals("")) { - fileLocationBuilder.append(pathToSettingsFiles + DIRECTORY_SEPERATOR); + fileLocationBuilder.append(pathToSettingsFiles).append(DIRECTORY_SEPERATOR); } - fileLocationBuilder.append(settingsClass.getSimpleName() + XML_FILE_EXTENSION); + fileLocationBuilder.append(settingsClass.getSimpleName()).append(XML_FILE_EXTENSION); String fileLocation = fileLocationBuilder.toString(); String schemaLocation = settingsClass.getSimpleName() + XSD_FILE_EXTENSION; JaxbHelper jaxbHelper = new JaxbHelper(XSD_SCHEMA_DIR, schemaLocation); @@ -94,7 +94,7 @@ public T loadSettings(Class settingsClass) { log.debug("Loading the settings file '" + fileLocation + "'."); try { jaxbHelper.validate(configStreamValidate); - return (T) jaxbHelper.loadXml(settingsClass, configStreamLoad); + return jaxbHelper.loadXml(settingsClass, configStreamLoad); } catch (SAXException e) { throw new RuntimeException("Unable to validate settings from " + Thread.currentThread().getContextClassLoader().getResource(fileLocation), e); diff --git a/bitrepository-core/src/main/java/org/bitrepository/protocol/messagebus/destination/DestinationHelper.java b/bitrepository-core/src/main/java/org/bitrepository/protocol/messagebus/destination/DestinationHelper.java index 6ea562423..9bc48fb93 100644 --- a/bitrepository-core/src/main/java/org/bitrepository/protocol/messagebus/destination/DestinationHelper.java +++ b/bitrepository-core/src/main/java/org/bitrepository/protocol/messagebus/destination/DestinationHelper.java @@ -59,7 +59,8 @@ private ReceiverDestinationIDFactory createReceiverDestinationIDFactory( return new DefaultReceiverDestinationIDFactory(); } else { try { - return (ReceiverDestinationIDFactory)Class.forName(receiverDestinationIDFactoryClass).newInstance(); + return (ReceiverDestinationIDFactory) Class.forName(receiverDestinationIDFactoryClass) + .getDeclaredConstructor().newInstance(); } catch (Exception e) { throw new RuntimeException("Unable to instantiate ReceiverDestinationIDFactory " + receiverDestinationIDFactoryClass + diff --git a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicMessageAuthenticator.java b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicMessageAuthenticator.java index b165309d0..257d2c0c9 100644 --- a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicMessageAuthenticator.java +++ b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicMessageAuthenticator.java @@ -56,7 +56,7 @@ public BasicMessageAuthenticator(PermissionStore permissionStore) { public SignerId authenticateMessage(byte[] messageData, byte[] signatureData) throws MessageAuthenticationException { try { CMSSignedData s = new CMSSignedData(new CMSProcessableByteArray(messageData), signatureData); - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); X509Certificate signingCert = permissionStore.getCertificate(signer.getSID()); SignerInformationVerifier verifier = new JcaSimpleSignerInfoVerifierBuilder().setProvider( SecurityModuleConstants.BC).build(signingCert); @@ -70,9 +70,7 @@ public SignerId authenticateMessage(byte[] messageData, byte[] signatureData) th return signer.getSID(); } catch (PermissionStoreException e) { throw new MessageAuthenticationException(e.getMessage(), e); - } catch (CMSException e) { - throw new SecurityException(e.getMessage(), e); - } catch (OperatorCreationException e) { + } catch (CMSException | OperatorCreationException e) { throw new SecurityException(e.getMessage(), e); } } diff --git a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicOperationAuthorizor.java b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicOperationAuthorizer.java similarity index 96% rename from bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicOperationAuthorizor.java rename to bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicOperationAuthorizer.java index 1a7fa4f0d..4c538a2e8 100644 --- a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicOperationAuthorizor.java +++ b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicOperationAuthorizer.java @@ -32,7 +32,7 @@ /** * Class to check permissions based on the signer of a MessageRequest and the type of request. */ -public class BasicOperationAuthorizor implements OperationAuthorizor { +public class BasicOperationAuthorizer implements OperationAuthorizer { /** Mapper from operation type to needed permission */ private RequestToOperationPermissionMapper requestToPermissionMapper; @@ -42,7 +42,7 @@ public class BasicOperationAuthorizor implements OperationAuthorizor { /** * @param permissionStore permissionStore which holds the permissions to check against. */ - public BasicOperationAuthorizor(PermissionStore permissionStore) { + public BasicOperationAuthorizer(PermissionStore permissionStore) { requestToPermissionMapper = new RequestToOperationPermissionMapper(); this.permissionStore = permissionStore; } diff --git a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicSecurityManager.java b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicSecurityManager.java index e2a6f4fd6..c270b6a20 100644 --- a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicSecurityManager.java +++ b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/BasicSecurityManager.java @@ -98,7 +98,7 @@ public class BasicSecurityManager implements SecurityManager { /** Object to sign messages */ private final MessageSigner signer; /** Object to authorize operations */ - private final OperationAuthorizor authorizer; + private final OperationAuthorizer authorizer; /** Object storing permissions and certificates */ private final PermissionStore permissionStore; /** int value to keep track of the next keystore alias */ @@ -122,7 +122,7 @@ public class BasicSecurityManager implements SecurityManager { * @param componentID the component ID */ public BasicSecurityManager(RepositorySettings repositorySettings, String privateKeyFile, MessageAuthenticator authenticator, - MessageSigner signer, OperationAuthorizor authorizer, PermissionStore permissionStore, String componentID) { + MessageSigner signer, OperationAuthorizer authorizer, PermissionStore permissionStore, String componentID) { ArgumentValidator.checkNotNull(repositorySettings, "repositorySettings"); ArgumentValidator.checkNotNull(authenticator, "authenticator"); ArgumentValidator.checkNotNull(signer, "signer"); @@ -185,51 +185,56 @@ public String signMessage(String message) throws MessageSigningException { public void authorizeCertificateUse(String certificateUser, String messageData, String signature) throws CertificateUseException { if(repositorySettings.getProtocolSettings().isRequireOperationAuthorization()) { - byte[] decodeSig = Base64.decode(signature.getBytes(StandardCharsets.UTF_8)); - CMSSignedData s; - try { - s = new CMSSignedData(new CMSProcessableByteArray(messageData.getBytes(StandardCharsets.UTF_8)), decodeSig); - } catch (CMSException e) { - throw new SecurityException(e.getMessage(), e); - } - - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + CMSSignedData s = makeSignedData(messageData, signature); + + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); authorizer.authorizeCertificateUse(certificateUser, signer.getSID()); } } - @Override - public String getCertificateFingerprint(SignerId signer) throws UnregisteredPermissionException { - return permissionStore.getCertificateFingerprint(signer); - } - /** - * Method to authorize an operation + * Method to authorize an operation * @param operationType the type of operation that is to be authorized. * @param messageData the data of the message request. * @param signature the signature belonging to the message request. - * @throws OperationAuthorizationException in case of failure. + * @throws OperationAuthorizationException in case of failure. */ - public void authorizeOperation(String operationType, String messageData, String signature, String collectionID) + public void authorizeOperation(String operationType, String messageData, String signature, String collectionID) throws OperationAuthorizationException { if(repositorySettings.getProtocolSettings().isRequireOperationAuthorization()) { - byte[] decodeSig = Base64.decode(signature.getBytes(StandardCharsets.UTF_8)); - CMSSignedData s; - try { - s = new CMSSignedData(new CMSProcessableByteArray(messageData.getBytes(StandardCharsets.UTF_8)), decodeSig); - } catch (CMSException e) { - throw new SecurityException(e.getMessage(), e); - } - - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + CMSSignedData s = makeSignedData(messageData, signature); + + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); try { - authorizer.authorizeOperation(operationType, signer.getSID(), collectionID); + authorizer.authorizeOperation(operationType, signer.getSID(), collectionID); } catch (UnregisteredPermissionException e) { log.info(e.getMessage()); } } } - + + /** + * Encapsulates the data of a message request and a signature into a CMSSignedData object. + * @param messageData the data of a message request. + * @param signature the signature belonging to the message request. + * @return the signed data. + */ + private CMSSignedData makeSignedData(String messageData, String signature) { + byte[] decodeSig = Base64.decode(signature.getBytes(StandardCharsets.UTF_8)); + CMSSignedData signedData; + try { + signedData = new CMSSignedData(new CMSProcessableByteArray(messageData.getBytes(StandardCharsets.UTF_8)), decodeSig); + } catch (CMSException e) { + throw new SecurityException(e.getMessage(), e); + } + return signedData; + } + + @Override + public String getCertificateFingerprint(SignerId signer) throws UnregisteredPermissionException { + return permissionStore.getCertificateFingerprint(signer); + } + /** * Do initialization work * - Creates keystore diff --git a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/OperationAuthorizor.java b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/OperationAuthorizer.java similarity index 89% rename from bitrepository-core/src/main/java/org/bitrepository/protocol/security/OperationAuthorizor.java rename to bitrepository-core/src/main/java/org/bitrepository/protocol/security/OperationAuthorizer.java index 4efa4b3f3..70a299993 100644 --- a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/OperationAuthorizor.java +++ b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/OperationAuthorizer.java @@ -29,7 +29,7 @@ /** * Class to authorize an operation based on the certificate which has signed the operation request. */ -public interface OperationAuthorizor { +public interface OperationAuthorizer { /** * Authorize an operation based on its signature @@ -39,7 +39,7 @@ public interface OperationAuthorizor { * @throws OperationAuthorizationException if the authorization fails. * @throws UnregisteredPermissionException if no permissions could be found for the signer */ - abstract void authorizeOperation(String operationType, SignerId signer, String collectionID) + void authorizeOperation(String operationType, SignerId signer, String collectionID) throws OperationAuthorizationException, UnregisteredPermissionException; /** @@ -49,6 +49,6 @@ abstract void authorizeOperation(String operationType, SignerId signer, String c * @throws CertificateUseException in case the message has been signed by the wrong user. * */ - abstract void authorizeCertificateUse(String certificateUser, SignerId signer) throws CertificateUseException; + void authorizeCertificateUse(String certificateUser, SignerId signer) throws CertificateUseException; } diff --git a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/SecurityManagerUtil.java b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/SecurityManagerUtil.java index e082edd39..eeb2255c4 100644 --- a/bitrepository-core/src/main/java/org/bitrepository/protocol/security/SecurityManagerUtil.java +++ b/bitrepository-core/src/main/java/org/bitrepository/protocol/security/SecurityManagerUtil.java @@ -30,7 +30,7 @@ public static SecurityManager getSecurityManager(Settings settings, Path compone PermissionStore permissionStore = new PermissionStore(); MessageAuthenticator authenticator = new BasicMessageAuthenticator(permissionStore); MessageSigner signer = new BasicMessageSigner(); - OperationAuthorizor authorizer = new BasicOperationAuthorizor(permissionStore); + OperationAuthorizer authorizer = new BasicOperationAuthorizer(permissionStore); return new BasicSecurityManager(settings.getRepositorySettings(), componentCertificate.toString(), authenticator, signer, authorizer, permissionStore, componentID); } diff --git a/bitrepository-core/src/test/java/org/bitrepository/common/DefaultThreadFactoryTest.java b/bitrepository-core/src/test/java/org/bitrepository/common/DefaultThreadFactoryTest.java index a4c46f4f9..78b31927d 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/common/DefaultThreadFactoryTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/common/DefaultThreadFactoryTest.java @@ -30,9 +30,10 @@ public void testUncaughtExceptionHandler() throws Exception { ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); //We mock an appender so we can catch the log messages + @SuppressWarnings("unchecked") final Appender mockAppender = mock(Appender.class); - //Nessesary for the logback framework, all appenders must have a name + //Necessary for the logback framework, all appenders must have a name when(mockAppender.getName()).thenReturn("MOCK"); //Add the appender to the root logger rootLogger.addAppender(mockAppender); diff --git a/bitrepository-core/src/test/java/org/bitrepository/common/TestValidationUtils.java b/bitrepository-core/src/test/java/org/bitrepository/common/TestValidationUtils.java index 2feb9c8c6..2cf41c798 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/common/TestValidationUtils.java +++ b/bitrepository-core/src/test/java/org/bitrepository/common/TestValidationUtils.java @@ -21,12 +21,12 @@ */ package org.bitrepository.common; +import org.testng.Assert; + import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import org.testng.Assert; - public class TestValidationUtils { /** * Validates that only one constructor is declared and it is private and inaccessible. @@ -39,7 +39,7 @@ public class TestValidationUtils { public static void validateUtilityClass(Class utilityClass) { Constructor[] constructors = utilityClass.getDeclaredConstructors(); Assert.assertEquals(constructors.length, 1); - Assert.assertFalse(constructors[0].isAccessible(), "The constructor should not be accessible."); + Assert.assertFalse(constructors[0].canAccess(null), "The constructor should not be accessible."); Assert.assertNotEquals((constructors[0].getModifiers() & Modifier.PRIVATE), 0, "The constructor should be private: " + constructors[0]); diff --git a/bitrepository-core/src/test/java/org/bitrepository/common/utils/DatabaseTestUtils.java b/bitrepository-core/src/test/java/org/bitrepository/common/utils/DatabaseTestUtils.java index 1f6f631a3..498dfac6b 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/common/utils/DatabaseTestUtils.java +++ b/bitrepository-core/src/test/java/org/bitrepository/common/utils/DatabaseTestUtils.java @@ -46,9 +46,9 @@ public static Connection takeDatabase(File jarfile, String dbname, File dbUnzipD /* Set DB name */ String driverName = "org.apache.derby.jdbc.EmbeddedDriver"; - Class.forName(driverName).newInstance(); + Class.forName(driverName).getDeclaredConstructor().newInstance(); - String dburi = "jdbc:derby:" + dbfile; - return DriverManager.getConnection(dburi); + String dbUri = "jdbc:derby:" + dbfile; + return DriverManager.getConnection(dbUri); } } \ No newline at end of file diff --git a/bitrepository-core/src/test/java/org/bitrepository/protocol/MessageCreationTest.java b/bitrepository-core/src/test/java/org/bitrepository/protocol/MessageCreationTest.java index 26fe4e03a..0362eda5b 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/protocol/MessageCreationTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/protocol/MessageCreationTest.java @@ -73,7 +73,8 @@ public void badDateMessageTest() throws IOException, SAXException, JAXBException addDescription("Test to ensure that messages carrying dates must provide offset."); String messagePath = ExampleMessageFactory.PATH_TO_EXAMPLES + "BadMessages/" + "BadDateAlarmMessage" + ExampleMessageFactory.EXAMPLE_FILE_POSTFIX; - String message = IOUtils.toString(Thread.currentThread().getContextClassLoader().getResourceAsStream(messagePath)); + InputStream messageIS = Thread.currentThread().getContextClassLoader().getResourceAsStream(messagePath); + String message = IOUtils.toString(messageIS, StandardCharsets.UTF_8); JaxbHelper jaxbHelper = new JaxbHelper(ExampleMessageFactory.PATH_TO_SCHEMA, ExampleMessageFactory.SCHEMA_NAME); jaxbHelper.validate(new ByteArrayInputStream(message.getBytes(StandardCharsets.UTF_8))); AlarmMessage am = jaxbHelper.loadXml(AlarmMessage.class, new ByteArrayInputStream(message.getBytes(StandardCharsets.UTF_8))); @@ -123,8 +124,7 @@ public String getNamespaceURI(String prefix) { } // Dummy implementation - not used! - @SuppressWarnings("rawtypes") - public Iterator getPrefixes(String val) { + public Iterator getPrefixes(String val) { return null; } diff --git a/bitrepository-core/src/test/java/org/bitrepository/protocol/fileexchange/LocalFileExchangeTest.java b/bitrepository-core/src/test/java/org/bitrepository/protocol/fileexchange/LocalFileExchangeTest.java index c72a6dff5..f077eb54e 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/protocol/fileexchange/LocalFileExchangeTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/protocol/fileexchange/LocalFileExchangeTest.java @@ -128,7 +128,7 @@ public void getFileByInputStreamTest() throws IOException { URL testFileUrl = testFile.toURI().toURL(); InputStream is = lfe.getFile(testFileUrl); - String fileContent = IOUtils.toString(is); + String fileContent = IOUtils.toString(is, StandardCharsets.UTF_8); Assert.assertEquals(fileContent, testFileContent); } diff --git a/bitrepository-core/src/test/java/org/bitrepository/protocol/message/ExampleMessageFactory.java b/bitrepository-core/src/test/java/org/bitrepository/protocol/message/ExampleMessageFactory.java index 98f30e98b..4886be1bd 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/protocol/message/ExampleMessageFactory.java +++ b/bitrepository-core/src/test/java/org/bitrepository/protocol/message/ExampleMessageFactory.java @@ -56,8 +56,8 @@ public static T createMessage(Class messageType) throws Exception { */ private static String loadXMLExample(String messageName) throws Exception { String filePath = PATH_TO_EXAMPLES + messageName + EXAMPLE_FILE_POSTFIX; - InputStream f = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath); - return IOUtils.toString(f); + InputStream fileIS = Thread.currentThread().getContextClassLoader().getResourceAsStream(filePath); + return IOUtils.toString(fileIS, StandardCharsets.UTF_8); } } diff --git a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/CertificateIDTest.java b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/CertificateIDTest.java index e905d042a..f230e1fb0 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/CertificateIDTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/CertificateIDTest.java @@ -57,7 +57,7 @@ public void positiveCertificateIdentificationTest() throws Exception { byte[] decodeSig = Base64.decode(SecurityTestConstants.getSignature().getBytes(StandardCharsets.UTF_8)); CMSSignedData s = new CMSSignedData(new CMSProcessableByteArray( SecurityTestConstants.getTestData().getBytes(SecurityModuleConstants.defaultEncodingType)), decodeSig); - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); CertificateID certificateIDfromSignature = new CertificateID(signer.getSID().getIssuer(), signer.getSID().getSerialNumber()); addStep("Assert that the two CertificateID objects are equal", "Assert succeeds"); @@ -82,7 +82,7 @@ public void negativeCertificateIdentificationTest() throws Exception { byte[] decodeSig = Base64.decode(SecurityTestConstants.getSignature().getBytes(StandardCharsets.UTF_8)); CMSSignedData s = new CMSSignedData(new CMSProcessableByteArray( SecurityTestConstants.getTestData().getBytes(SecurityModuleConstants.defaultEncodingType)), decodeSig); - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); CertificateID certificateIDfromSignature = new CertificateID(signer.getSID().getIssuer(), signer.getSID().getSerialNumber()); addStep("Assert that the two CertificateID objects are equal", "Assert succeeds"); diff --git a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/PermissionStoreTest.java b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/PermissionStoreTest.java index 312a30ccc..b1a3d5e3e 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/PermissionStoreTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/PermissionStoreTest.java @@ -57,7 +57,7 @@ public void positiveCertificateRetrievalTest() throws Exception { Base64.decode(SecurityTestConstants.getSignature().getBytes(SecurityModuleConstants.defaultEncodingType)); CMSSignedData s = new CMSSignedData(new CMSProcessableByteArray( SecurityTestConstants.getTestData().getBytes(SecurityModuleConstants.defaultEncodingType)), decodeSig); - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); addStep("Lookup certificate based on signerId", "No exceptions"); X509Certificate certificateFromStore = permissionStore.getCertificate(signer.getSID()); ByteArrayInputStream bs = new ByteArrayInputStream( @@ -75,7 +75,7 @@ public void negativeCertificateRetrievalTest() throws Exception { Base64.decode(SecurityTestConstants.getSignature().getBytes(SecurityModuleConstants.defaultEncodingType)); CMSSignedData s = new CMSSignedData(new CMSProcessableByteArray( SecurityTestConstants.getTestData().getBytes(SecurityModuleConstants.defaultEncodingType)), decodeSig); - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); SignerId signerId= signer.getSID(); BigInteger serial = signerId.getSerialNumber(); serial.add(new BigInteger("2")); @@ -107,7 +107,7 @@ public void certificateFingerprintTest() throws Exception { Base64.decode(SecurityTestConstants.getSignature().getBytes(SecurityModuleConstants.defaultEncodingType)); CMSSignedData s = new CMSSignedData(new CMSProcessableByteArray( SecurityTestConstants.getTestData().getBytes(SecurityModuleConstants.defaultEncodingType)), decodeSig); - SignerInformation signer = (SignerInformation) s.getSignerInfos().getSigners().iterator().next(); + SignerInformation signer = s.getSignerInfos().getSigners().iterator().next(); addStep("Lookup fingerprint based on signerId", "The correct finger print should be returned with openssl" + "used to generate reference finger print"); diff --git a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SecurityManagerTest.java b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SecurityManagerTest.java index 6e156a558..b6f6183e3 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SecurityManagerTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SecurityManagerTest.java @@ -66,7 +66,7 @@ public void setUp() throws Exception { private void setupSecurityManager(Settings settings) { permissionStore = new PermissionStore(); MessageAuthenticator authenticator = new BasicMessageAuthenticator(permissionStore); - OperationAuthorizor authorizer = new BasicOperationAuthorizor(permissionStore); + OperationAuthorizer authorizer = new BasicOperationAuthorizer(permissionStore); MessageSigner messageSigner = new BasicMessageSigner(); securityManager = new BasicSecurityManager(settings.getRepositorySettings(), SecurityTestConstants.getKeyFile(), diff --git a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SignatureGenetatorTest.java b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SignatureGenetatorTest.java index 093588f45..519e1b782 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SignatureGenetatorTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/protocol/security/SignatureGenetatorTest.java @@ -14,7 +14,7 @@ public class SignatureGenetatorTest { public void generateSignature() throws MessageSigningException { PermissionStore permissionStore = new PermissionStore(); MessageAuthenticator authenticator = new BasicMessageAuthenticator(permissionStore); - OperationAuthorizor authorizer = new BasicOperationAuthorizor(permissionStore); + OperationAuthorizer authorizer = new BasicOperationAuthorizer(permissionStore); MessageSigner messageSigner = new BasicMessageSigner(); Settings settings = TestSettingsProvider.reloadSettings(getClass().getSimpleName()); settings.getRepositorySettings().getProtocolSettings().setRequireMessageAuthentication(true); diff --git a/bitrepository-integrity-service/src/main/java/org/bitrepository/integrityservice/workflow/step/HandleChecksumValidationStep.java b/bitrepository-integrity-service/src/main/java/org/bitrepository/integrityservice/workflow/step/HandleChecksumValidationStep.java index 732f71b6f..fe95a5d1b 100644 --- a/bitrepository-integrity-service/src/main/java/org/bitrepository/integrityservice/workflow/step/HandleChecksumValidationStep.java +++ b/bitrepository-integrity-service/src/main/java/org/bitrepository/integrityservice/workflow/step/HandleChecksumValidationStep.java @@ -68,7 +68,7 @@ public HandleChecksumValidationStep(IntegrityModel store, AuditTrailManager audi pillarChecksumErrors = new HashMap<>(); List pillars = SettingsUtils.getPillarIDsForCollection(reporter.getCollectionID()); for(String pillar : pillars) { - pillarChecksumErrors.put(pillar, new Long(0)); + pillarChecksumErrors.put(pillar, 0L); } } diff --git a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDAOTest.java b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDAOTest.java index 85bb5fc42..2f47f3380 100644 --- a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDAOTest.java +++ b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDAOTest.java @@ -30,6 +30,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Locale; @@ -132,8 +133,8 @@ public void initialStateExtractionTest() throws Exception { Assert.assertTrue(collectionsInDB.containsAll(Arrays.asList(TEST_COLLECTIONID, EXTRA_COLLECTION))); Assert.assertEquals(collectionsInDB.size(), 2); - Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), new Long(0)); - Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), new Long(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), Long.valueOf(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), Long.valueOf(0)); } @Test(groups = {"regressiontest", "databasetest", "integritytest"}) @@ -182,8 +183,8 @@ public void testIngestOfFileIDsData() throws Exception { addDescription("Tests the ingesting of file ids data"); IntegrityDAO cache = createDAO(); - Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), new Long(0)); - Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), new Long(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), Long.valueOf(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), Long.valueOf(0)); addStep("Create data", "Should be ingested into the database"); FileIDsData data1 = getFileIDsData(TEST_FILE_ID); @@ -198,12 +199,12 @@ public void testIngestOfFileIDsData() throws Exception { Assert.assertNull(fi.getChecksum()); Assert.assertEquals(fi.getDateForLastChecksumCheck(), CalendarUtils.getEpoch()); Assert.assertEquals(fi.getDateForLastFileIDCheck(), data1.getFileIDsDataItems().getFileIDsDataItem().get(0).getLastModificationTime()); - Assert.assertEquals(fi.getFileSize(), new Long(data1.getFileIDsDataItems().getFileIDsDataItem().get(0).getFileSize().longValue())); + Assert.assertEquals(fi.getFileSize(), Long.valueOf(data1.getFileIDsDataItems().getFileIDsDataItem().get(0).getFileSize().longValue())); } addStep("Check that the extra collection is untouched by the ingest", "should deliver an empty collection and no errors"); - Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), new Long(1)); - Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), new Long(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), Long.valueOf(1)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), Long.valueOf(0)); } @Test(groups = {"regressiontest", "databasetest", "integritytest"}) @@ -211,8 +212,8 @@ public void testIngestOfChecksumsData() throws Exception { addDescription("Tests the ingesting of checksums data"); IntegrityDAO cache = createDAO(); - Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), new Long(0)); - Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), new Long(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), Long.valueOf(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), Long.valueOf(0)); addStep("Create data", "Should be ingested into the database"); List csData = getChecksumResults(TEST_FILE_ID, TEST_CHECKSUM); @@ -229,8 +230,8 @@ public void testIngestOfChecksumsData() throws Exception { } addStep("Check that the extra collection is untouched by the ingest", "should deliver an empty collection and no errors"); - Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), new Long(1)); - Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), new Long(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), Long.valueOf(1)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), Long.valueOf(0)); } @@ -321,8 +322,8 @@ public void testFindOrphanFiles() throws Exception { cache.updateFileIDs(data1, TEST_PILLAR_2, TEST_COLLECTIONID); cache.updateFileIDs(data3, TEST_PILLAR_1, TEST_COLLECTIONID); cache.updateFileIDs(data3, TEST_PILLAR_2, TEST_COLLECTIONID); - Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), new Long(2)); - Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), new Long(0)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), Long.valueOf(2)); + Assert.assertEquals(cache.getNumberOfFilesInCollection(EXTRA_COLLECTION), Long.valueOf(0)); Thread.sleep(100); Date updateTime = new Date(); cache.updateFileIDs(data1, TEST_PILLAR_1, TEST_COLLECTIONID); @@ -387,7 +388,7 @@ public void testNoChecksums() throws Exception { addStep("Finding the files with inconsistent checksums", "No checksum thus no errors"); List filesWithChecksumError = getIssuesFromIterator(cache.findFilesWithChecksumInconsistencies(TEST_COLLECTIONID)); - Assert.assertEquals(filesWithChecksumError, Arrays.asList()); + Assert.assertEquals(filesWithChecksumError, Collections.emptyList()); } @Test(groups = {"regressiontest", "databasetest", "integritytest"}) @@ -405,14 +406,14 @@ public void testMissingChecksums() throws Exception { addStep("Finding the files with inconsistent checksums", "No checksum thus no errors"); List filesWithChecksumError = getIssuesFromIterator(cache.findFilesWithChecksumInconsistencies(TEST_COLLECTIONID)); - Assert.assertEquals(filesWithChecksumError, Arrays.asList()); + Assert.assertEquals(filesWithChecksumError, Collections.emptyList()); List fileWithMissingChecksumPillar1 = getIssuesFromIterator(cache.getFilesWithMissingChecksums(TEST_COLLECTIONID, TEST_PILLAR_1, testStart)); - Assert.assertEquals(fileWithMissingChecksumPillar1, Arrays.asList()); + Assert.assertEquals(fileWithMissingChecksumPillar1, Collections.emptyList()); List fileWithMissingChecksumPillar2 = getIssuesFromIterator(cache.getFilesWithMissingChecksums(TEST_COLLECTIONID, TEST_PILLAR_2, testStart)); - Assert.assertEquals(fileWithMissingChecksumPillar2, Arrays.asList(TEST_FILE_ID)); + Assert.assertEquals(fileWithMissingChecksumPillar2, Collections.singletonList(TEST_FILE_ID)); } @Test(groups = {"regressiontest", "databasetest", "integritytest"}) @@ -431,14 +432,14 @@ public void testMissingChecksumsChecksumNotUpdated() throws Exception { addStep("Finding the files with inconsistent checksums", "No checksum thus no errors"); List filesWithChecksumError = getIssuesFromIterator(cache.findFilesWithChecksumInconsistencies(TEST_COLLECTIONID)); - Assert.assertEquals(filesWithChecksumError, Arrays.asList()); + Assert.assertEquals(filesWithChecksumError, Collections.emptyList()); List fileWithMissingChecksumPillar1 = getIssuesFromIterator(cache.getFilesWithMissingChecksums(TEST_COLLECTIONID, TEST_PILLAR_1, testStart)); - Assert.assertEquals(fileWithMissingChecksumPillar1, Arrays.asList()); + Assert.assertEquals(fileWithMissingChecksumPillar1, Collections.emptyList()); List fileWithMissingChecksumPillar2 = getIssuesFromIterator(cache.getFilesWithMissingChecksums(TEST_COLLECTIONID, TEST_PILLAR_2, testStart)); - Assert.assertEquals(fileWithMissingChecksumPillar2, Arrays.asList()); + Assert.assertEquals(fileWithMissingChecksumPillar2, Collections.emptyList()); addStep("Updating the checksum for one pillar, and checking that the other pillars checksum is now missing", "The second pillar is reported to be missing the checksum for the file"); @@ -447,14 +448,14 @@ public void testMissingChecksumsChecksumNotUpdated() throws Exception { cache.updateChecksums(getChecksumResults(TEST_FILE_ID, TEST_CHECKSUM), TEST_PILLAR_1, TEST_COLLECTIONID); addStep("Finding the files with inconsistent checksums", "No checksum thus no errors"); filesWithChecksumError = getIssuesFromIterator(cache.findFilesWithChecksumInconsistencies(TEST_COLLECTIONID)); - Assert.assertEquals(filesWithChecksumError, Arrays.asList()); + Assert.assertEquals(filesWithChecksumError, Collections.emptyList()); fileWithMissingChecksumPillar1 = getIssuesFromIterator(cache.getFilesWithMissingChecksums(TEST_COLLECTIONID, TEST_PILLAR_1, secondUpdate)); - Assert.assertEquals(fileWithMissingChecksumPillar1, Arrays.asList()); + Assert.assertEquals(fileWithMissingChecksumPillar1, Collections.emptyList()); fileWithMissingChecksumPillar2 = getIssuesFromIterator(cache.getFilesWithMissingChecksums(TEST_COLLECTIONID, TEST_PILLAR_2, secondUpdate)); - Assert.assertEquals(fileWithMissingChecksumPillar2, Arrays.asList(TEST_FILE_ID)); + Assert.assertEquals(fileWithMissingChecksumPillar2, Collections.singletonList(TEST_FILE_ID)); } @@ -478,15 +479,15 @@ public void testOutdatedChecksums() throws Exception { addStep("Finding the files with inconsistent checksums", "No checksum thus no errors"); List filesWithChecksumError = getIssuesFromIterator(cache.findFilesWithChecksumInconsistencies(TEST_COLLECTIONID)); - Assert.assertEquals(filesWithChecksumError, Arrays.asList()); + Assert.assertEquals(filesWithChecksumError, Collections.emptyList()); List fileWithOutdatedChecksumsPillar1 = getIssuesFromIterator(cache.getFilesWithOutdatedChecksums(TEST_COLLECTIONID, TEST_PILLAR_1, maxDate)); - Assert.assertEquals(fileWithOutdatedChecksumsPillar1, Arrays.asList()); + Assert.assertEquals(fileWithOutdatedChecksumsPillar1, Collections.emptyList()); List fileWithOutdatedChecksumPillar2 = getIssuesFromIterator(cache.getFilesWithOutdatedChecksums(TEST_COLLECTIONID, TEST_PILLAR_2, maxDate)); - Assert.assertEquals(fileWithOutdatedChecksumPillar2, Arrays.asList(TEST_FILE_ID)); + Assert.assertEquals(fileWithOutdatedChecksumPillar2, Collections.singletonList(TEST_FILE_ID)); } @Test(groups = {"regressiontest", "databasetest", "integritytest"}) @@ -502,23 +503,23 @@ public void testExtractingAllKnownFilesForPillars() throws Exception { cache.updateFileIDs(getFileIDsData(file3), TEST_PILLAR_1, EXTRA_COLLECTION); addStep("Extract all the existing file ids for the pillar for collection '" + TEST_COLLECTIONID + "'", "Both file ids is found."); - IntegrityIssueIterator it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_1, new Long(0), Long.MAX_VALUE); + IntegrityIssueIterator it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_1, 0L, Long.MAX_VALUE); Collection fileIDs = getIssuesFromIterator(it); - Assert.assertTrue(fileIDs.size() == 2, "Number of files: " + fileIDs.size()); + Assert.assertEquals(fileIDs.size(), 2, "Number of files: " + fileIDs.size()); Assert.assertTrue(fileIDs.contains(TEST_FILE_ID)); Assert.assertTrue(fileIDs.contains(file2)); Assert.assertFalse(fileIDs.contains(file3)); addStep("Extract the single fileID for the extra collection", "Only the one file id exists"); - it = cache.getAllFileIDsOnPillar(EXTRA_COLLECTION, TEST_PILLAR_1, new Long(0), Long.MAX_VALUE); + it = cache.getAllFileIDsOnPillar(EXTRA_COLLECTION, TEST_PILLAR_1, 0L, Long.MAX_VALUE); fileIDs = getIssuesFromIterator(it); - Assert.assertTrue(fileIDs.size() == 1, "Number of files: " + fileIDs.size()); + Assert.assertEquals(fileIDs.size(), 1, "Number of files: " + fileIDs.size()); Assert.assertTrue(fileIDs.contains(file3)); Assert.assertFalse(fileIDs.contains(file2)); Assert.assertFalse(fileIDs.contains(TEST_FILE_ID)); addStep("Extract all the existing file ids for another pillar", "No files are found."); - it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_2, new Long(0), Long.MAX_VALUE); + it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_2, 0L, Long.MAX_VALUE); fileIDs = getIssuesFromIterator(it); Assert.assertTrue(fileIDs.isEmpty()); } @@ -533,13 +534,13 @@ public void testExtractingAllKnownFilesForPillarsLimits() throws Exception { cache.updateFileIDs(getFileIDsData(TEST_FILE_ID, file2), TEST_PILLAR_1, TEST_COLLECTIONID); addStep("Extract with a maximum of 1", "The first file."); - IntegrityIssueIterator it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_1, new Long(0), new Long(1)); + IntegrityIssueIterator it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_1, 0L, 1L); Collection fileIDs = getIssuesFromIterator(it); Assert.assertEquals(fileIDs.size(), 1); Assert.assertTrue(fileIDs.contains(TEST_FILE_ID)); addStep("Extract with a minimum of 1 and maximum of infinite", "The last file."); - it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_1, new Long(1), Long.MAX_VALUE); + it = cache.getAllFileIDsOnPillar(TEST_COLLECTIONID, TEST_PILLAR_1, 1L, Long.MAX_VALUE); fileIDs = getIssuesFromIterator(it); Assert.assertEquals(fileIDs.size(), 1); Assert.assertTrue(fileIDs.contains(file2)); @@ -559,7 +560,7 @@ public void testExtractingAllMissingFiles() throws Exception { addStep("Check the number of files in collection and on pillars", "The collection should have two files, the first pillar two, the second one"); - Assert.assertTrue(cache.getNumberOfFilesInCollection(TEST_COLLECTIONID) == 2); + Assert.assertEquals((long) cache.getNumberOfFilesInCollection(TEST_COLLECTIONID), 2); Map metrics = cache.getPillarCollectionMetrics(TEST_COLLECTIONID); Assert.assertEquals(metrics.get(TEST_PILLAR_1).getPillarFileCount(), 2); Assert.assertEquals(metrics.get(TEST_PILLAR_2).getPillarFileCount(), 1); @@ -567,7 +568,7 @@ public void testExtractingAllMissingFiles() throws Exception { addStep("Extract missing files", "one file should be missing"); List missingFiles = getIssuesFromIterator(cache.findFilesWithMissingCopies(TEST_COLLECTIONID, 2, 0L, 10L)); - Assert.assertEquals(missingFiles, Arrays.asList(file2)); + Assert.assertEquals(missingFiles, Collections.singletonList(file2)); } @Test(groups = {"regressiontest", "databasetest", "integritytest"}) @@ -657,9 +658,9 @@ public void testExtractCollectionFileSize() throws Exception { addStep("Insert test data into database", "Data is ingested"); String file2 = TEST_FILE_ID + "-2"; String file3 = TEST_FILE_ID + "-3"; - Long size1 = new Long(100); - Long size2 = new Long(200); - Long size3 = new Long(300); + Long size1 = 100L; + Long size2 = 200L; + Long size3 = 300L; FileIDsData data1 = makeFileIDsDataWithGivenFileSize(TEST_FILE_ID, size1); FileIDsData data2 = makeFileIDsDataWithGivenFileSize(file2, size2); FileIDsData data3 = makeFileIDsDataWithGivenFileSize(file3, size3); diff --git a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDBToolsTest.java b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDBToolsTest.java index 8c86e70c9..bbccc4bcf 100644 --- a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDBToolsTest.java +++ b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/cache/IntegrityDBToolsTest.java @@ -221,11 +221,11 @@ private void populateCollection(IntegrityDAO dao, String collectionID) { String file3 = TEST_FILE_ID + "-3"; String file4 = TEST_FILE_ID + "-4"; String file5 = TEST_FILE_ID + "-5"; - Long size1 = new Long(100); - Long size2 = new Long(200); - Long size3 = new Long(300); - Long size4 = new Long(400); - Long size5 = new Long(500); + Long size1 = 100L; + Long size2 = 200L; + Long size3 = 300L; + Long size4 = 400L; + Long size5 = 500L; String checksum1 = "abcd"; String checksum2 = "acbd"; String checksum3 = "aacc"; diff --git a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/RepairMissingFilesWorkflowTest.java b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/RepairMissingFilesWorkflowTest.java index facb87a23..f5d2cd176 100644 --- a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/RepairMissingFilesWorkflowTest.java +++ b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/RepairMissingFilesWorkflowTest.java @@ -61,7 +61,6 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -@SuppressWarnings("rawtypes") public class RepairMissingFilesWorkflowTest extends ExtendedTestCase { private static final String PILLAR_1 = "pillar1"; @@ -105,7 +104,7 @@ public void testNoMissingFiles() throws Exception { addDescription("Test that the workflow does nothing, when it has no missing files."); addStep("Prepare for calls to mocks", ""); when(model.findFilesWithMissingCopies(anyString(), anyInt(), anyLong(), anyLong())) - .thenReturn(createMockIterator(new String[0])); + .thenReturn(createMockIterator()); addStep("Run workflow for repairing missing files.", "Should not try to repair anything."); @@ -124,7 +123,7 @@ public void testNoMissingFiles() throws Exception { } @Test(groups = {"regressiontest", "integritytest"}) - public void testSuccesRepair() throws Exception { + public void testSuccessRepair() throws Exception { addDescription("Test that the workflow makes calls to the collector, when a file is missing"); addStep("Prepare for calls to mocks to handle a repair", ""); when(model.findFilesWithMissingCopies(eq(TEST_COLLECTION), anyInt(), anyLong(), anyLong())) @@ -133,7 +132,7 @@ public void testSuccesRepair() throws Exception { when(model.getFileInfos(eq(TEST_FILE_1), eq(TEST_COLLECTION))) .thenReturn(createMockFileInfo(TEST_FILE_1, DEFAULT_CHECKSUM, PILLAR_1)); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[3]; eventHandler.handleEvent(new CompleteEvent(TEST_COLLECTION, null)); @@ -142,7 +141,7 @@ public Void answer(InvocationOnMock invocation) { }).when(collector).getFile( anyString(), anyString(), any(URL.class), any(EventHandler.class), anyString()); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[4]; eventHandler.handleEvent(new CompleteEvent(TEST_COLLECTION, null)); @@ -181,7 +180,7 @@ public void testFailedGetFile() throws Exception { when(model.getFileInfos(eq(TEST_FILE_1), eq(TEST_COLLECTION))) .thenReturn(createMockFileInfo(TEST_FILE_1, DEFAULT_CHECKSUM, PILLAR_1)); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[3]; eventHandler.handleEvent(new OperationFailedEvent(TEST_COLLECTION, "failure", null)); @@ -222,7 +221,7 @@ public void testFailedPutFile() throws Exception { .thenReturn(createMockFileInfo(TEST_FILE_1, DEFAULT_CHECKSUM, PILLAR_1)); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[3]; eventHandler.handleEvent(new CompleteEvent(TEST_COLLECTION, null)); @@ -231,7 +230,7 @@ public Void answer(InvocationOnMock invocation) { }).when(collector).getFile( anyString(), anyString(), any(URL.class), any(EventHandler.class), anyString()); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[4]; eventHandler.handleEvent(new OperationFailedEvent(TEST_COLLECTION, "failure", null)); @@ -281,7 +280,7 @@ public String getNextIntegrityIssue() { }; } - private List createMockFileInfo(String fileId, String checksum, String ... pillars) { + private List createMockFileInfo(String fileId, String checksum, String... pillars) { List res = new ArrayList<>(); for(String pillar : pillars) { res.add(new FileInfo(fileId, null, checksum, 0L, null, pillar)); diff --git a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/SaltedChecksumWorkflowTest.java b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/SaltedChecksumWorkflowTest.java index 4e8520777..41906c8dc 100644 --- a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/SaltedChecksumWorkflowTest.java +++ b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/SaltedChecksumWorkflowTest.java @@ -28,7 +28,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import static org.mockito.Mockito.times; @@ -60,7 +60,6 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; -@SuppressWarnings("rawtypes") public class SaltedChecksumWorkflowTest extends ExtendedTestCase { private static final String PILLAR_1 = "pillar1"; @@ -76,7 +75,7 @@ public class SaltedChecksumWorkflowTest extends ExtendedTestCase { protected IntegrityModel model; protected AuditTrailManager auditManager; - @BeforeMethod (alwaysRun = true) + @BeforeMethod(alwaysRun = true) public void setup() throws Exception { settings = TestSettingsProvider.reloadSettings("IntegrityWorkflowTest"); @@ -98,7 +97,7 @@ public void setup() throws Exception { public void testNoFilesInCollection() throws Exception { addDescription("Test that the workflow does nothing, when it has no files in the collection."); addStep("Prepare for calls to mocks", ""); - when(model.getNumberOfFilesInCollection(anyString())).thenReturn(new Long(0)); + when(model.getNumberOfFilesInCollection(anyString())).thenReturn(Long.valueOf(0)); addStep("Run workflow for checking salted checksum.", "Should send alarm about failure"); @@ -110,8 +109,8 @@ public void testNoFilesInCollection() throws Exception { verify(alerter).integrityFailed(anyString(), eq(TEST_COLLECTION)); verifyNoMoreInteractions(alerter); - verifyZeroInteractions(collector); - verifyZeroInteractions(auditManager); + verifyNoInteractions(collector); + verifyNoInteractions(auditManager); verify(model).getNumberOfFilesInCollection(eq(TEST_COLLECTION)); verifyNoMoreInteractions(model); @@ -121,10 +120,10 @@ public void testNoFilesInCollection() throws Exception { public void testSuccess() throws Exception { addDescription("Test that the workflow works when both pillars deliver the same checksum."); addStep("Prepare for calls to mocks", ""); - when(model.getNumberOfFilesInCollection(anyString())).thenReturn(new Long(1)); + when(model.getNumberOfFilesInCollection(anyString())).thenReturn(Long.valueOf(1)); when(model.getFileIDAtPosition(eq(TEST_COLLECTION), eq(0L))).thenReturn(TEST_FILE_1); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; ResultingChecksums res = createResultingChecksums((String) invocation.getArguments()[3], "checksum"); @@ -142,7 +141,7 @@ public Void answer(InvocationOnMock invocation) { workflow.initialise(context, TEST_COLLECTION); workflow.start(); - verifyZeroInteractions(alerter); + verifyNoInteractions(alerter); verify(collector).getChecksums(eq(TEST_COLLECTION), any(), any(), anyString(), anyString(), any(), any(EventHandler.class)); verifyNoMoreInteractions(collector); @@ -159,10 +158,10 @@ public Void answer(InvocationOnMock invocation) { public void testOneComponentFailureAndTwoOtherAgreeOnChecksum() throws Exception { addDescription("Test that the workflow works when both pillars deliver the same checksum."); addStep("Prepare for calls to mocks", ""); - when(model.getNumberOfFilesInCollection(anyString())).thenReturn(new Long(1)); + when(model.getNumberOfFilesInCollection(anyString())).thenReturn(Long.valueOf(1)); when(model.getFileIDAtPosition(eq(TEST_COLLECTION), eq(0L))).thenReturn(TEST_FILE_1); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; ResultingChecksums res = createResultingChecksums((String) invocation.getArguments()[3], "checksum"); @@ -202,10 +201,10 @@ public Void answer(InvocationOnMock invocation) { public void testOneComponentFailureAndTwoOtherDisagreeOnChecksum() throws Exception { addDescription("Test that the workflow works when both pillars deliver the same checksum."); addStep("Prepare for calls to mocks", ""); - when(model.getNumberOfFilesInCollection(anyString())).thenReturn(new Long(1)); + when(model.getNumberOfFilesInCollection(anyString())).thenReturn(Long.valueOf(1)); when(model.getFileIDAtPosition(eq(TEST_COLLECTION), eq(0L))).thenReturn(TEST_FILE_1); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; ResultingChecksums res1 = createResultingChecksums((String) invocation.getArguments()[3], "checksum"); @@ -246,10 +245,10 @@ public Void answer(InvocationOnMock invocation) { public void testInconsistentChecksums() throws Exception { addDescription("Test that the workflow discovers and handles inconsistent checksums"); addStep("Prepare for calls to mocks", ""); - when(model.getNumberOfFilesInCollection(anyString())).thenReturn(new Long(1)); + when(model.getNumberOfFilesInCollection(anyString())).thenReturn(Long.valueOf(1)); when(model.getFileIDAtPosition(eq(TEST_COLLECTION), eq(0L))).thenReturn(TEST_FILE_1); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; ResultingChecksums res1 = createResultingChecksums((String) invocation.getArguments()[3], "checksum"); @@ -287,10 +286,10 @@ public Void answer(InvocationOnMock invocation) { public void testNoReceivedChecksums() throws Exception { addDescription("Test that the workflow handles the case, when no checksums are received"); addStep("Prepare for calls to mocks", ""); - when(model.getNumberOfFilesInCollection(anyString())).thenReturn(new Long(1)); + when(model.getNumberOfFilesInCollection(anyString())).thenReturn(Long.valueOf(1)); when(model.getFileIDAtPosition(eq(TEST_COLLECTION), eq(0L))).thenReturn(TEST_FILE_1); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; eventHandler.handleEvent(new OperationFailedEvent(TEST_COLLECTION, "", null)); diff --git a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/step/GetChecksumForFileStepTest.java b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/step/GetChecksumForFileStepTest.java index 3419e3918..765a26883 100644 --- a/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/step/GetChecksumForFileStepTest.java +++ b/bitrepository-integrity-service/src/test/java/org/bitrepository/integrityservice/workflow/step/GetChecksumForFileStepTest.java @@ -81,7 +81,7 @@ public void testNoResults() throws Exception { ChecksumSpecTYPE checksumType = ChecksumUtils.getDefault(settings); addStep("Setup mock answers", ""); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; eventHandler.handleEvent(new CompleteEvent(TEST_COLLECTION, null)); @@ -108,7 +108,7 @@ public void testFullData() throws Exception { ChecksumSpecTYPE checksumType = ChecksumUtils.getDefault(settings); addStep("Setup mock answers", ""); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; @@ -145,7 +145,7 @@ public void testComponentFailure() throws Exception { ChecksumSpecTYPE checksumType = ChecksumUtils.getDefault(settings); addStep("Setup mock answers", ""); - doAnswer(new Answer() { + doAnswer(new Answer() { public Void answer(InvocationOnMock invocation) { EventHandler eventHandler = (EventHandler) invocation.getArguments()[6]; diff --git a/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/PillarComponentFactory.java b/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/PillarComponentFactory.java index 87ffda1b6..50a8f5e7b 100644 --- a/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/PillarComponentFactory.java +++ b/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/PillarComponentFactory.java @@ -44,11 +44,11 @@ import org.bitrepository.protocol.messagebus.MessageBus; import org.bitrepository.protocol.security.BasicMessageAuthenticator; import org.bitrepository.protocol.security.BasicMessageSigner; -import org.bitrepository.protocol.security.BasicOperationAuthorizor; +import org.bitrepository.protocol.security.BasicOperationAuthorizer; import org.bitrepository.protocol.security.BasicSecurityManager; import org.bitrepository.protocol.security.MessageAuthenticator; import org.bitrepository.protocol.security.MessageSigner; -import org.bitrepository.protocol.security.OperationAuthorizor; +import org.bitrepository.protocol.security.OperationAuthorizer; import org.bitrepository.protocol.security.PermissionStore; import org.bitrepository.protocol.security.SecurityManager; import org.bitrepository.service.AlarmDispatcher; @@ -231,7 +231,7 @@ private static BasicSecurityManager loadSecurityManager(String pathToPrivateKeyF PermissionStore permissionStore = new PermissionStore(); MessageAuthenticator authenticator = new BasicMessageAuthenticator(permissionStore); MessageSigner signer = new BasicMessageSigner(); - OperationAuthorizor authorizer = new BasicOperationAuthorizor(permissionStore); + OperationAuthorizer authorizer = new BasicOperationAuthorizer(permissionStore); return new BasicSecurityManager(settings.getRepositorySettings(), privateKeyFile, authenticator, signer, authorizer, permissionStore, settings.getComponentID()); diff --git a/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/store/checksumdatabase/ChecksumExtractor.java b/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/store/checksumdatabase/ChecksumExtractor.java index 214be2ed3..8b60f470a 100644 --- a/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/store/checksumdatabase/ChecksumExtractor.java +++ b/bitrepository-reference-pillar/src/main/java/org/bitrepository/pillar/store/checksumdatabase/ChecksumExtractor.java @@ -231,10 +231,7 @@ public ExtractedFileIDsResultSet getFileIDs(XMLGregorianCalendar minTimeStamp, X results.reportMoreEntriesFound(); } } finally { - if(conn != null) { - conn.setAutoCommit(true); - conn.close(); - } + conn.setAutoCommit(true); } } catch (SQLException e) { throw new IllegalStateException("Cannot extract the file ids with the arguments, minTimestamp = '" @@ -299,10 +296,7 @@ public ExtractedChecksumResultSet extractEntries(XMLGregorianCalendar minTimeSta results.reportMoreEntriesFound(); } } finally { - if(conn != null) { - conn.setAutoCommit(true); - conn.close(); - } + conn.setAutoCommit(true); } } catch (SQLException e) { throw new IllegalStateException("Cannot extract the checksum entries with the arguments, minTimestamp = '" @@ -324,15 +318,14 @@ public List extractFileIDsWithMaxChecksumDate(Long maxTimeStamp, String ArgumentValidator.checkNotNullOrEmpty(collectionID, "String collectionID"); ArgumentValidator.checkNotNull(maxTimeStamp, "Long maxTimeStamp"); List args = new ArrayList<>(); - StringBuilder sql = new StringBuilder(); - sql.append("SELECT " + CS_FILE_ID + " FROM " + CHECKSUM_TABLE + " WHERE " + CS_COLLECTION_ID + " = ? AND " - + CS_DATE + " <= ? " + " ORDER BY " + CS_DATE + " ASC "); args.add(collectionID); args.add(maxTimeStamp); List results = new ArrayList<>(); + String sql = "SELECT " + CS_FILE_ID + " FROM " + CHECKSUM_TABLE + " WHERE " + CS_COLLECTION_ID + " = ? AND " + + CS_DATE + " <= ? " + " ORDER BY " + CS_DATE + " ASC "; try (Connection conn = connector.getConnection(); - PreparedStatement ps = DatabaseUtils.createPreparedStatement(conn, sql.toString(), args.toArray())) { + PreparedStatement ps = DatabaseUtils.createPreparedStatement(conn, sql, args.toArray())) { conn.setAutoCommit(false); ps.setFetchSize(DEFAULT_FETCH_SIZE); try (ResultSet res = ps.executeQuery()) { @@ -342,10 +335,7 @@ public List extractFileIDsWithMaxChecksumDate(Long maxTimeStamp, String } } } finally { - if(conn != null) { - conn.setAutoCommit(true); - conn.close(); - } + conn.setAutoCommit(true); } } catch (SQLException e) { throw new IllegalStateException("Cannot extract the checksum entries with the arguments, maxTimestamp = '" diff --git a/bitrepository-reference-pillar/src/test/java/org/bitrepository/pillar/integration/PillarIntegrationTest.java b/bitrepository-reference-pillar/src/test/java/org/bitrepository/pillar/integration/PillarIntegrationTest.java index 77ffa6599..709ca63cd 100644 --- a/bitrepository-reference-pillar/src/test/java/org/bitrepository/pillar/integration/PillarIntegrationTest.java +++ b/bitrepository-reference-pillar/src/test/java/org/bitrepository/pillar/integration/PillarIntegrationTest.java @@ -40,11 +40,11 @@ import org.bitrepository.protocol.messagebus.MessageBusManager; import org.bitrepository.protocol.security.BasicMessageAuthenticator; import org.bitrepository.protocol.security.BasicMessageSigner; -import org.bitrepository.protocol.security.BasicOperationAuthorizor; +import org.bitrepository.protocol.security.BasicOperationAuthorizer; import org.bitrepository.protocol.security.BasicSecurityManager; import org.bitrepository.protocol.security.MessageAuthenticator; import org.bitrepository.protocol.security.MessageSigner; -import org.bitrepository.protocol.security.OperationAuthorizor; +import org.bitrepository.protocol.security.OperationAuthorizer; import org.bitrepository.protocol.security.PermissionStore; import org.bitrepository.protocol.security.SecurityManager; import org.jaccept.TestEventManager; @@ -219,7 +219,7 @@ protected SecurityManager createSecurityManager() { PermissionStore permissionStore = new PermissionStore(); MessageAuthenticator authenticator = new BasicMessageAuthenticator(permissionStore); MessageSigner signer = new BasicMessageSigner(); - OperationAuthorizor authorizer = new BasicOperationAuthorizor(permissionStore); + OperationAuthorizer authorizer = new BasicOperationAuthorizer(permissionStore); org.bitrepository.protocol.security.SecurityManager securityManager = new BasicSecurityManager(settingsForTestClient.getRepositorySettings(), testConfiguration.getPrivateKeyFileLocation(), diff --git a/bitrepository-reference-settings/pom.xml b/bitrepository-reference-settings/pom.xml index aeffed57a..953db3e08 100644 --- a/bitrepository-reference-settings/pom.xml +++ b/bitrepository-reference-settings/pom.xml @@ -10,11 +10,12 @@ Bitrepository Reference Settings Settings functionality for the reference code. + @@ -55,7 +56,45 @@ - org.jvnet.jaxb2.maven2 + org.codehaus.mojo + jaxb2-maven-plugin + 2.5.0 + + + generate-classes-from-xsds + + xjc + + + + + + ${project.build.directory}/xsd/ReferenceSettings.xsd + + + ${project.build.directory}/xsd/bindings-reference-settings.xjb + + true + + -XtoString + -Xequals + -XhashCode + -Xannotate + + + + org.jvnet.jaxb2_commons + jaxb2-basics + 0.12.0 + + + org.jvnet.jaxb2_commons + jaxb2-basics-annotate + 1.1.0 + + + + diff --git a/bitrepository-service/src/main/java/org/bitrepository/service/audit/AuditTrailContributerDAO.java b/bitrepository-service/src/main/java/org/bitrepository/service/audit/AuditTrailContributerDAO.java index e6a93c840..f422fb6a9 100644 --- a/bitrepository-service/src/main/java/org/bitrepository/service/audit/AuditTrailContributerDAO.java +++ b/bitrepository-service/src/main/java/org/bitrepository/service/audit/AuditTrailContributerDAO.java @@ -173,7 +173,7 @@ public Long extractLargestSequenceNumber() { + AUDITTRAIL_SEQUENCE_NUMBER + " DESC"; try (Connection conn = getConnection(); - PreparedStatement ps = DatabaseUtils.createPreparedStatement(conn, sql, new Object[0])) { + PreparedStatement ps = DatabaseUtils.createPreparedStatement(conn, sql)) { try (ResultSet res = ps.executeQuery()) { if(!res.next()) { return 0L; @@ -253,10 +253,7 @@ private AuditTrailDatabaseResults extractEvents(AuditTrailExtractor extractor) { auditResults.reportMoreResultsFound(); } } finally { - if(conn != null) { - conn.setAutoCommit(true); - conn.close(); - } + conn.setAutoCommit(true); } } catch (Exception e) { throw new IllegalStateException("Could not extract the audit trails events.", e); diff --git a/bitrepository-service/src/main/java/org/bitrepository/service/workflow/WorkflowManager.java b/bitrepository-service/src/main/java/org/bitrepository/service/workflow/WorkflowManager.java index 9275ff23b..00a361716 100644 --- a/bitrepository-service/src/main/java/org/bitrepository/service/workflow/WorkflowManager.java +++ b/bitrepository-service/src/main/java/org/bitrepository/service/workflow/WorkflowManager.java @@ -127,7 +127,7 @@ private void loadWorkFlows(WorkflowSettings configuration) { } for (String collectionID:collectionsToScheduleWorkflowFor) { Workflow workflow = - (Workflow)lookupClass(workflowConf.getWorkflowClass()).newInstance(); + (Workflow)lookupClass(workflowConf.getWorkflowClass()).getDeclaredConstructor().newInstance(); workflow.initialise(context, collectionID); scheduler.schedule(workflow, schedule.getWorkflowInterval()); addWorkflow(collectionID, workflow); @@ -138,7 +138,7 @@ private void loadWorkFlows(WorkflowSettings configuration) { // Create a instance of all workflows not explicitly scheduled. for (String collectionID:unscheduledCollections) { Workflow workflow = - (Workflow)Class.forName(workflowConf.getWorkflowClass()).newInstance(); + (Workflow)Class.forName(workflowConf.getWorkflowClass()).getDeclaredConstructor().newInstance(); workflow.initialise(context, collectionID); addWorkflow(collectionID, workflow); } diff --git a/pom.xml b/pom.xml index 0c3c40208..ddacad64e 100644 --- a/pom.xml +++ b/pom.xml @@ -124,10 +124,34 @@ logback-classic 1.2.3 - + + + + javax.xml.bind + jaxb-api + 2.3.1 + + + com.sun.xml.bind + jaxb-impl + 2.3.1 + + + org.glassfish.jaxb + jaxb-runtime + 3.0.1 + runtime + + + com.sun.activation + jakarta.activation + 2.0.1 org.testng @@ -347,10 +371,15 @@ maven-dependency-plugin 3.1.2 - + + + org.codehaus.mojo + jaxb2-maven-plugin + 2.5.0 org.apache.tomcat.maven @@ -450,8 +479,8 @@ - 1.8 - 1.8 + 11 + 11 process-classes 31-SNAPSHOT From 259a8c0c6c9cd2e57b5acd921eba6f5c2f85c5ab Mon Sep 17 00:00:00 2001 From: bohlski Date: Fri, 6 Aug 2021 13:13:43 +0200 Subject: [PATCH 2/7] Swapped old jaxb maven plugin for Mojohaus' and fixed a couple of missed warnings --- .../GetChecksumsClientComponentTest.java | 4 +- .../GetFileIDsClientComponentTest.java | 4 +- bitrepository-reference-settings/pom.xml | 81 +++++-------------- pom.xml | 17 ++-- 4 files changed, 29 insertions(+), 77 deletions(-) diff --git a/bitrepository-client/src/test/java/org/bitrepository/access/getchecksums/GetChecksumsClientComponentTest.java b/bitrepository-client/src/test/java/org/bitrepository/access/getchecksums/GetChecksumsClientComponentTest.java index ba781383a..f40c95f39 100644 --- a/bitrepository-client/src/test/java/org/bitrepository/access/getchecksums/GetChecksumsClientComponentTest.java +++ b/bitrepository-client/src/test/java/org/bitrepository/access/getchecksums/GetChecksumsClientComponentTest.java @@ -280,8 +280,8 @@ public void testPaging() throws Exception { Date timestamp3 = new Date(); Date timestamp2 = new Date(timestamp3.getTime() - 100); Date timestamp1 = new Date(timestamp3.getTime() - 1000); - ContributorQuery query1 = new ContributorQuery(PILLAR1_ID, timestamp1, timestamp2, new Integer(1)); - ContributorQuery query2 = new ContributorQuery(PILLAR2_ID, timestamp2, timestamp3, new Integer(2)); + ContributorQuery query1 = new ContributorQuery(PILLAR1_ID, timestamp1, timestamp2, 1); + ContributorQuery query2 = new ContributorQuery(PILLAR2_ID, timestamp2, timestamp3, 2); getChecksumsClient.getChecksums(collectionID, new ContributorQuery[]{query1, query2}, null, null, null, testEventHandler, null); diff --git a/bitrepository-client/src/test/java/org/bitrepository/access/getfileids/GetFileIDsClientComponentTest.java b/bitrepository-client/src/test/java/org/bitrepository/access/getfileids/GetFileIDsClientComponentTest.java index 210ad0d4d..07e523c54 100644 --- a/bitrepository-client/src/test/java/org/bitrepository/access/getfileids/GetFileIDsClientComponentTest.java +++ b/bitrepository-client/src/test/java/org/bitrepository/access/getfileids/GetFileIDsClientComponentTest.java @@ -308,8 +308,8 @@ public void testPaging() throws Exception { Date timestamp3 = new Date(); Date timestamp2 = new Date(timestamp3.getTime() - 100); Date timestamp1 = new Date(timestamp3.getTime() - 1000); - ContributorQuery query1 = new ContributorQuery(PILLAR1_ID, timestamp1, timestamp2, new Integer(1)); - ContributorQuery query2 = new ContributorQuery(PILLAR2_ID, timestamp2, timestamp3, new Integer(2)); + ContributorQuery query1 = new ContributorQuery(PILLAR1_ID, timestamp1, timestamp2, 1); + ContributorQuery query2 = new ContributorQuery(PILLAR2_ID, timestamp2, timestamp3, 2); client.getFileIDs(collectionID, new ContributorQuery[]{query1, query2}, null, null, testEventHandler); IdentifyPillarsForGetFileIDsRequest receivedIdentifyRequestMessage = collectionReceiver.waitForMessage( diff --git a/bitrepository-reference-settings/pom.xml b/bitrepository-reference-settings/pom.xml index 953db3e08..228add8e0 100644 --- a/bitrepository-reference-settings/pom.xml +++ b/bitrepository-reference-settings/pom.xml @@ -9,14 +9,6 @@ bitrepository-reference-settings Bitrepository Reference Settings Settings functionality for the reference code. - - - target/generated-sources/jaxb @@ -75,62 +67,25 @@ ${project.build.directory}/xsd/bindings-reference-settings.xjb true - - -XtoString - -Xequals - -XhashCode - -Xannotate - - - - org.jvnet.jaxb2_commons - jaxb2-basics - 0.12.0 - - - org.jvnet.jaxb2_commons - jaxb2-basics-annotate - 1.1.0 - - + + -XtoString + -Xequals + -XhashCode + -Xannotate + - + + + org.jvnet.jaxb2_commons + jaxb2-basics + 0.11.1 + + + org.jvnet.jaxb2_commons + jaxb2-basics-annotate + 1.1.0 + + diff --git a/pom.xml b/pom.xml index ddacad64e..357bd1967 100644 --- a/pom.xml +++ b/pom.xml @@ -124,14 +124,16 @@ logback-classic 1.2.3 - + org.jvnet.jaxb2_commons jaxb2-basics-runtime 0.11.1 - --> - + + javax.xml.bind jaxb-api @@ -148,11 +150,6 @@ 3.0.1 runtime - - com.sun.activation - jakarta.activation - 2.0.1 - org.testng testng From 9e476a8bf7cb468db4b84d823d99b210f6505e40 Mon Sep 17 00:00:00 2001 From: bohlski Date: Fri, 6 Aug 2021 15:58:07 +0200 Subject: [PATCH 3/7] Gave xjc-generated classes an explicit serialVersionUID to squash warnings --- .../src/main/resources/xsd/bindings-reference-settings.xjb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bitrepository-reference-settings/src/main/resources/xsd/bindings-reference-settings.xjb b/bitrepository-reference-settings/src/main/resources/xsd/bindings-reference-settings.xjb index f2fffc8c9..558fd1450 100644 --- a/bitrepository-reference-settings/src/main/resources/xsd/bindings-reference-settings.xjb +++ b/bitrepository-reference-settings/src/main/resources/xsd/bindings-reference-settings.xjb @@ -1,7 +1,7 @@ - + From d5bd3d0eccf14185a34fd86139ac29cac6093584 Mon Sep 17 00:00:00 2001 From: bohlski Date: Wed, 11 Aug 2021 10:11:48 +0200 Subject: [PATCH 4/7] Removed outcommented plugin and added small comment on updating new plugin --- bitrepository-reference-settings/pom.xml | 2 ++ pom.xml | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/bitrepository-reference-settings/pom.xml b/bitrepository-reference-settings/pom.xml index 228add8e0..a80d44788 100644 --- a/bitrepository-reference-settings/pom.xml +++ b/bitrepository-reference-settings/pom.xml @@ -48,6 +48,8 @@ + org.codehaus.mojo jaxb2-maven-plugin 2.5.0 diff --git a/pom.xml b/pom.xml index 357bd1967..82c48e02c 100644 --- a/pom.xml +++ b/pom.xml @@ -368,11 +368,6 @@ maven-dependency-plugin 3.1.2 - org.codehaus.mojo jaxb2-maven-plugin From b2e17d90297761d1d133f63cd77ebd2d3ce6b01a Mon Sep 17 00:00:00 2001 From: Kim Christensen Date: Wed, 16 Feb 2022 13:52:51 +0100 Subject: [PATCH 5/7] Add Jenkinsfile for build description --- Jenkinsfile | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..27933cfd8 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,59 @@ +#!/usr/bin/env groovy + +openshift.withCluster() { + + podTemplate( + inheritFrom: 'maven', + cloud: 'openshift', //cloud must be openshift + envVars: [ //This fixes the error with en_US.utf8 not being found + envVar(key:"LC_ALL", value:"C.utf8") + ], + volumes: [ //mount the settings.xml + secretVolume(mountPath: '/etc/m2', secretName: 'maven-settings') + ]) { + + try { + //GO to a node with maven and settings.xml + node(POD_LABEL) { + //Do not use concurrent builds + properties([disableConcurrentBuilds()]) + + def mvnCmd = "mvn -s /etc/m2/settings.xml --batch-mode" + + stage('checkout') { + checkout scm + } + + stage('Mvn clean package') { + sh "${mvnCmd} -PallTests clean package" + } + + stage('Analyze build results') { + recordIssues aggregatingResults: true, + tools: [java(), + javaDoc(), + mavenConsole(), + taskScanner(highTags:'FIXME', normalTags:'TODO', includePattern: '**/*.java', excludePattern: 'target/**/*')] + } + + stage('Push to Nexus (if Master)') { + echo "Branch name ${env.BRANCH_NAME}" + if (env.BRANCH_NAME == 'master') { + sh "${mvnCmd} clean deploy -DskipTests=true" + } else { + echo "Branch ${env.BRANCH_NAME} is not master, so no mvn deploy" + } + } + } + } catch (e) { + currentBuild.result = 'FAILURE' + throw e + } finally { + configFileProvider([configFile(fileId: "notifier", variable: 'notifier')]) { + def notifier = load notifier + notifier.notifyInCaseOfFailureOrImprovement(true, "#playground") + } + } + } +} + From 764082b110b38760af04d21ea3f1506dfa3bed47 Mon Sep 17 00:00:00 2001 From: Kim Christensen Date: Wed, 16 Feb 2022 14:38:37 +0100 Subject: [PATCH 6/7] Correct TimeUtilsTest.shortDateTest to take into account that the output will vary depending on system timezone --- .../org/bitrepository/common/utils/TimeUtilsTest.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bitrepository-core/src/test/java/org/bitrepository/common/utils/TimeUtilsTest.java b/bitrepository-core/src/test/java/org/bitrepository/common/utils/TimeUtilsTest.java index 2bf593fae..cc09e6ae8 100644 --- a/bitrepository-core/src/test/java/org/bitrepository/common/utils/TimeUtilsTest.java +++ b/bitrepository-core/src/test/java/org/bitrepository/common/utils/TimeUtilsTest.java @@ -26,7 +26,10 @@ import org.testng.Assert; import org.testng.annotations.Test; +import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; @@ -83,10 +86,16 @@ public void zeroIntervalTest() throws Exception { } + /* + * The test only ensures that the output format is fixed. Which timezone the the date is + * formatted to depends on the default/system timezone. At some time the use of the old java Date + * api should be discontinued and the new Java Time api used instead. + */ @Test(groups = {"regressiontest"}) public void shortDateTest() { + DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm", Locale.ROOT); Date date = new Date(1360069129256L); String shortDateString = TimeUtils.shortDate(date); - Assert.assertEquals(shortDateString, "2013/02/05 13:58"); + Assert.assertEquals(shortDateString, formatter.format(date)); } } From 51b87997fede5a1552177c3a224115f3a168dbc5 Mon Sep 17 00:00:00 2001 From: Kim Christensen Date: Wed, 16 Feb 2022 14:52:12 +0100 Subject: [PATCH 7/7] Use posix in assembly plugin configuration to allow build on OpenShift --- bitrepository-alarm-service/pom.xml | 1 + bitrepository-audit-trail-service/pom.xml | 1 + bitrepository-client/pom.xml | 1 + bitrepository-integration/pom.xml | 1 + bitrepository-integrity-service/pom.xml | 1 + bitrepository-monitoring-service/pom.xml | 1 + bitrepository-reference-pillar/pom.xml | 1 + bitrepository-webclient/pom.xml | 1 + 8 files changed, 8 insertions(+) diff --git a/bitrepository-alarm-service/pom.xml b/bitrepository-alarm-service/pom.xml index 4223bc871..ece1198d3 100644 --- a/bitrepository-alarm-service/pom.xml +++ b/bitrepository-alarm-service/pom.xml @@ -94,6 +94,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml diff --git a/bitrepository-audit-trail-service/pom.xml b/bitrepository-audit-trail-service/pom.xml index 2f5d5ba4e..18d60875f 100644 --- a/bitrepository-audit-trail-service/pom.xml +++ b/bitrepository-audit-trail-service/pom.xml @@ -92,6 +92,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml diff --git a/bitrepository-client/pom.xml b/bitrepository-client/pom.xml index 869e58ea3..590dc46e9 100644 --- a/bitrepository-client/pom.xml +++ b/bitrepository-client/pom.xml @@ -42,6 +42,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml diff --git a/bitrepository-integration/pom.xml b/bitrepository-integration/pom.xml index b7d475ff5..e91bc1da4 100644 --- a/bitrepository-integration/pom.xml +++ b/bitrepository-integration/pom.xml @@ -87,6 +87,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml src/main/assembly/tools-assembly.xml diff --git a/bitrepository-integrity-service/pom.xml b/bitrepository-integrity-service/pom.xml index d1f92e167..009469141 100644 --- a/bitrepository-integrity-service/pom.xml +++ b/bitrepository-integrity-service/pom.xml @@ -102,6 +102,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml diff --git a/bitrepository-monitoring-service/pom.xml b/bitrepository-monitoring-service/pom.xml index e685a006c..a18d7f3c7 100644 --- a/bitrepository-monitoring-service/pom.xml +++ b/bitrepository-monitoring-service/pom.xml @@ -91,6 +91,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml diff --git a/bitrepository-reference-pillar/pom.xml b/bitrepository-reference-pillar/pom.xml index 4fdba71c3..0e7675b61 100644 --- a/bitrepository-reference-pillar/pom.xml +++ b/bitrepository-reference-pillar/pom.xml @@ -91,6 +91,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml src/test/assembly/assembly.xml diff --git a/bitrepository-webclient/pom.xml b/bitrepository-webclient/pom.xml index a20dfc0bc..e9d4674df 100644 --- a/bitrepository-webclient/pom.xml +++ b/bitrepository-webclient/pom.xml @@ -72,6 +72,7 @@ maven-assembly-plugin + posix src/main/assembly/assembly.xml