From 2fc8f0323ff4f8f77c6fab18c4f55f3044c449b2 Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Wed, 2 Oct 2024 14:25:26 +0200 Subject: [PATCH] Switch from Maven to Gradle --- .editorconfig | 17 + .gitattributes | 9 + .github/pull_request_template.md | 23 ++ .github/workflows/build.yml | 76 ++++ .github/workflows/checkstyle.yml | 43 +++ .github/workflows/dependency-submission.yml | 27 ++ .github/workflows/spotbugs.yml | 43 +++ .github/workflows/wrapper-validation.yml | 17 + .gitignore | 39 +- .gitmodules | 3 + .mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 0 bytes .mvn/wrapper/maven-wrapper.properties | 18 - CODE_OF_CONDUCT.md | 46 +++ CONTRIBUTING.md | 65 ++++ DCO.txt | 38 ++ Jenkinsfile | 18 - LICENSE => LICENSE.txt | 0 README.md | 126 +------ .../platform-layout.xml | 0 pom.xml => TO-DELETE/pom.xml.disabled | 0 azure-pipelines.yml | 65 ---- build-logic/build.gradle | 85 +++++ build-logic/settings.gradle | 1 + .../build/conventions/AngelaConvention.java | 60 +++ .../build/conventions/BaseConvention.java | 253 +++++++++++++ .../conventions/BlacklistConvention.java | 28 ++ .../conventions/CheckstyleConvention.java | 38 ++ .../build/conventions/ConventionPlugin.java | 17 + .../conventions/DistributionConvention.java | 41 ++ .../build/conventions/GalvanConvention.java | 51 +++ .../build/conventions/JavaBaseConvention.java | 89 +++++ .../build/conventions/JavaConvention.java | 33 ++ .../conventions/JavaLibraryConvention.java | 23 ++ .../build/conventions/PackageConvention.java | 69 ++++ .../build/conventions/SpotBugsConvention.java | 79 ++++ .../build/conventions/VoltronConvention.java | 38 ++ .../build/conventions/XjcConvention.java | 53 +++ .../terracotta/build/plugins/ToolPlugin.java | 357 ++++++++++++++++++ ...cottata.build.conventions.ConventionPlugin | 12 + .../main/resources/tool/start.bat.template | 30 ++ .../src/main/resources/tool/start.sh.template | 21 ++ .../build/conventions/BaseConventionTest.java | 141 +++++++ build-logic/terracotta-gradle-plugins | 1 + build.gradle | 37 ++ client-message-tracker/build.gradle | 11 + client-message-tracker/pom.xml | 82 ---- .../message/tracker/OOOMessageHandler.java | 27 +- .../client/message/tracker/Tracker.java | 15 +- .../client/message/tracker/TrackerImpl.java | 13 +- .../tracker/ClientTrackerImplTest.java | 13 +- common/inet-support/pom.xml | 41 -- common/inet/build.gradle | 15 + .../terracotta/inet/HostAndIpValidator.java | 0 .../java/org/terracotta/inet/HostPort.java | 0 .../inet/InetSocketAddressConverter.java | 0 .../java/org/terracotta/inet/UriUtils.java | 0 .../inet/HostAndIpValidatorTest.java | 0 .../org/terracotta/inet/HostPortTest.java | 0 .../org/terracotta/inet/UriUtilsTest.java | 0 common/json-support/pom.xml | 44 --- common/json/build.gradle | 27 ++ .../terracotta/json/DefaultJsonFactory.java | 0 .../org/terracotta/json/JdkJsonModule.java | 0 .../main/java/org/terracotta/json/Json.java | 0 .../org/terracotta/json/Jsr310JsonModule.java | 0 .../terracotta/json/TerracottaJsonModule.java | 0 .../org/terracotta/json/gson/Adapters.java | 0 .../json/gson/DelegateTypeAdapterFactory.java | 0 .../org/terracotta/json/gson/GsonConfig.java | 0 .../org/terracotta/json/gson/GsonFactory.java | 0 .../org/terracotta/json/gson/GsonModule.java | 0 .../json/gson/JsonObjectDeserializer.java | 0 .../json/gson/RuntimeTypeAdapterFactory.java | 0 .../gson/UnsafeObjectTypeAdapterFactory.java | 0 .../internal/AllowedClassTypeAdapter.java | 0 .../gson/internal/ExclusionStrategies.java | 0 .../internal/FloatingPointTypeAdapter.java | 0 .../internal/HierarchyTypeAdapterFactory.java | 0 .../internal/MixinTypeAdapterFactory.java | 64 ++-- .../gson/internal/NullSafeTypeAdapter.java | 0 .../json/gson/internal/NullTypeAdapter.java | 0 .../gson/internal/NullTypeJsonTreeWriter.java | 0 .../internal/ObjectToLongTypeAdapter.java | 0 .../internal/ObjectToStringTypeAdapter.java | 0 .../gson/internal/OptionalTypeAdapter.java | 0 .../json/gson/internal/PathTypeAdapter.java | 0 .../gson/internal/RuntimeTypeAdapter.java | 0 .../gson/internal/SortKeysTypeAdapter.java | 0 .../gson/internal/UnsafeClassSupport.java | 0 .../terracotta/json/gson/internal/Utils.java | 0 .../terracotta/json/util/DirectedGraph.java | 0 .../java/org/terracotta/json/ClassTest.java | 0 .../java/org/terracotta/json/EnumTest.java | 0 .../java/org/terracotta/json/Jsr310Test.java | 0 .../java/org/terracotta/json/MixinTest.java | 0 .../java/org/terracotta/json/ModuleTest.java | 0 .../java/org/terracotta/json/NullTest.java | 0 .../java/org/terracotta/json/NumberTest.java | 0 .../org/terracotta/json/OptionalTest.java | 0 .../java/org/terracotta/json/PathTest.java | 0 .../json/PlainDoubleSerializerTest.java | 0 .../json/PlainFloatSerializerTest.java | 0 .../org/terracotta/json/PolymorphismTest.java | 0 .../terracotta/json/SerializationTest.java | 0 .../java/org/terracotta/json/UnsafeTest.java | 0 .../test/resources/simplelogger.properties | 0 common/nomad/build.gradle | 15 + common/nomad/pom.xml | 42 --- common/output-service/build.gradle | 11 + common/output-service/pom.xml | 33 -- common/pom.xml | 73 ---- common/runnel/build.gradle | 11 + .../runnel}/src/main/asciidoc/common.adoc | 0 .../runnel}/src/main/asciidoc/format.adoc | 0 .../runnel}/src/main/asciidoc/simple.adoc | 0 .../org/terracotta/runnel/EnumMapping.java | 0 .../terracotta/runnel/EnumMappingBuilder.java | 0 .../java/org/terracotta/runnel/Struct.java | 0 .../org/terracotta/runnel/StructBuilder.java | 0 .../runnel/decoding/ArrayDecoder.java | 0 .../org/terracotta/runnel/decoding/Enm.java | 0 .../decoding/PrimitiveDecodingSupport.java | 0 .../runnel/decoding/StructArrayDecoder.java | 0 .../runnel/decoding/StructDecoder.java | 0 .../runnel/decoding/fields/AbstractField.java | 0 .../decoding/fields/AbstractValueField.java | 0 .../runnel/decoding/fields/ArrayField.java | 0 .../runnel/decoding/fields/BoolField.java | 0 .../decoding/fields/ByteBufferField.java | 0 .../runnel/decoding/fields/CharField.java | 0 .../runnel/decoding/fields/EnumField.java | 0 .../runnel/decoding/fields/Field.java | 0 .../decoding/fields/FloatingPoint64Field.java | 0 .../runnel/decoding/fields/Int32Field.java | 0 .../runnel/decoding/fields/Int64Field.java | 0 .../runnel/decoding/fields/StringField.java | 0 .../runnel/decoding/fields/StructField.java | 0 .../runnel/decoding/fields/ValueField.java | 0 .../runnel/encoding/ArrayEncoder.java | 0 .../encoding/PrimitiveEncodingSupport.java | 0 .../runnel/encoding/StructArrayEncoder.java | 0 .../runnel/encoding/StructEncoder.java | 0 .../encoding/StructEncoderFunction.java | 0 .../dataholders/AbstractDataHolder.java | 0 .../encoding/dataholders/ArrayDataHolder.java | 0 .../encoding/dataholders/BoolDataHolder.java | 0 .../dataholders/ByteBufferDataHolder.java | 0 .../encoding/dataholders/CharDataHolder.java | 0 .../encoding/dataholders/DataHolder.java | 0 .../encoding/dataholders/EnumDataHolder.java | 0 .../FloatingPoint64DataHolder.java | 0 .../encoding/dataholders/Int32DataHolder.java | 0 .../encoding/dataholders/Int64DataHolder.java | 0 .../dataholders/StringDataHolder.java | 0 .../dataholders/StructDataHolder.java | 0 .../runnel/metadata/FieldDecoder.java | 0 .../runnel/metadata/FieldSearcher.java | 0 .../terracotta/runnel/metadata/Metadata.java | 0 .../runnel/utils/CorruptDataException.java | 0 .../runnel/utils/LimitReachedException.java | 0 .../terracotta/runnel/utils/ReadBuffer.java | 0 .../terracotta/runnel/utils/StringTool.java | 0 .../java/org/terracotta/runnel/utils/VLQ.java | 0 .../terracotta/runnel/utils/WriteBuffer.java | 0 .../java/org/terracotta/runnel/BoolTest.java | 0 .../org/terracotta/runnel/ByteBufferTest.java | 0 .../java/org/terracotta/runnel/CharTest.java | 0 .../runnel/EnumMappingBuilderTest.java | 0 .../terracotta/runnel/EnumMappingTest.java | 0 .../java/org/terracotta/runnel/Fp64Test.java | 0 .../java/org/terracotta/runnel/Int32Test.java | 0 .../java/org/terracotta/runnel/Int64Test.java | 0 .../PrimitiveArrayStructBuilderTest.java | 0 .../runnel/PrimitiveStructBuilderTest.java | 0 .../org/terracotta/runnel/StringTest.java | 0 .../runnel/StructArrayStructBuilderTest.java | 0 .../terracotta/runnel/StructBuilderTest.java | 0 .../runnel/StructStructBuilderTest.java | 0 .../runnel/VersionCompatibilityTest.java | 0 .../runnel/docs/GettingStarted.java | 0 .../runnel/encoding/EncodingPerfTest.java | 0 .../encoding/dataholders/ArrayTest.java | 0 .../runnel/encoding/dataholders/BoolTest.java | 0 .../encoding/dataholders/ByteBufferTest.java | 0 .../runnel/encoding/dataholders/CharTest.java | 0 .../encoding/dataholders/EnumMappingTest.java | 0 .../dataholders/FloatingPoint64Test.java | 0 .../encoding/dataholders/Int32Test.java | 0 .../encoding/dataholders/Int64Test.java | 0 .../encoding/dataholders/StringTest.java | 0 .../encoding/dataholders/StructTest.java | 0 .../runnel/metadata/MetadataTest.java | 0 .../runnel/utils/ReadBufferTest.java | 0 .../org/terracotta/runnel/utils/VLQTest.java | 0 common/sanskrit/build.gradle | 18 + .../config/checkstyle/suppressions.xml | 7 + common/sanskrit/pom.xml | 51 --- .../persistence/sanskrit/SanskritIT.java | 7 +- common/structures/build.gradle | 15 + common/structures/pom.xml | 41 -- common/test-utilities/build.gradle | 16 + common/test-utilities/pom.xml | 51 --- .../org/terracotta/testing/JavaToolTest.java | 9 +- .../communicator-support-client/pom.xml | 46 --- .../communicator-support-common/pom.xml | 40 -- .../communicator-support-server/pom.xml | 67 ---- communicator-support/pom.xml | 48 --- communicator/client/build.gradle | 16 + .../ClientCommunicatorClientManager.java | 0 .../ClientCommunicatorClientManagerImpl.java | 0 .../ClientCommunicatorMessageHandler.java | 0 communicator/common/build.gradle | 14 + .../ClientCommunicatorMessageFactory.java | 0 .../support/ClientCommunicatorRequest.java | 0 .../ClientCommunicatorRequestCodec.java | 0 .../ClientCommunicatorRequestType.java | 0 .../ClientCommunicatorRequestCodecTest.java | 0 communicator/server/build.gradle | 16 + .../ClientCommunicatorServerManager.java | 0 .../ClientCommunicatorServerManagerImpl.java | 0 config/checkstyle/checkstyle.xml | 38 ++ config/checkstyle/copyright.header | 7 + config/checkstyle/copyright.xml | 18 + config/owasp-suppressions.xml | 44 +++ data-root-resource/pom.xml | 163 -------- diagnostic/client/build.gradle | 19 + diagnostic/client/pom.xml | 73 ---- diagnostic/common/build.gradle | 16 + diagnostic/common/pom.xml | 55 --- diagnostic/model/build.gradle | 15 + diagnostic/model/pom.xml | 40 -- diagnostic/pom.xml | 60 --- diagnostic/server/api/build.gradle | 17 + .../server/api/DiagnosticServices.java | 0 .../server/api/DiagnosticServicesHolder.java | 0 .../api/DiagnosticServicesRegistration.java | 0 .../diagnostic/server/api/Expose.java | 0 .../api/extension/DiagnosticExtensions.java | 0 diagnostic/server/services/build.gradle | 17 + .../server/DefaultDiagnosticServices.java | 0 .../server/DiagnosticRequestHandler.java | 0 .../server/DiagnosticRequestHandlerMBean.java | 0 .../server/DiagnosticServiceDescriptor.java | 0 .../server/DiagnosticServiceProvider.java | 0 .../DiagnosticExtensionsMBeanImpl.java | 0 .../DiagnosticExtensionsServiceProvider.java | 0 .../org.terracotta.entity.ServiceProvider | 0 ...ultDiagnosticServicesRegistrationTest.java | 0 .../server/DefaultDiagnosticServicesTest.java | 0 .../server/DiagnosticRequestHandlerTest.java | 0 .../DiagnosticServiceDescriptorTest.java | 0 .../extensions/LogicalServerStateTest.java | 0 diagnostic/service-api/pom.xml | 46 --- diagnostic/service/pom.xml | 87 ----- docs/build.gradle | 22 ++ docs/pom.xml | 65 ---- .../asciidoc/dynamic-config/Config-Tool.adoc | 0 .../dynamic-config/ConfigRepository.adoc | 0 .../dynamic-config/Consistent-OSS-EE-UX.adoc | 0 .../DistributedTransactionProtocol.adoc | 0 .../DistributedTransactionProtocol.tla | 0 .../NomadCommandStringStructure.adoc | 4 +- .../StoringClusterInformation.adoc | 0 .../dynamic-config/SyncAndRepair.adoc | 0 dynamic-config/api/build.gradle | 21 ++ dynamic-config/api/pom.xml | 50 --- .../api/server}/ConfigChangeHandler.java | 2 +- .../server}/ConfigChangeHandlerManager.java | 2 +- .../DelegatingDynamicConfigNomadServer.java | 2 +- .../api/server}/DynamicConfigEventFiring.java | 2 +- .../server}/DynamicConfigEventService.java | 2 +- .../api/server}/DynamicConfigListener.java | 2 +- .../api/server}/DynamicConfigNomadServer.java | 2 +- .../EmptyDynamicConfigNomadServer.java | 2 +- .../api/server}/EventRegistration.java | 2 +- .../api/server}/GroupPortMapper.java | 2 +- .../server}/InvalidConfigChangeException.java | 2 +- .../api/server}/InvalidLicenseException.java | 2 +- .../api/server}/LicenseParserDiscovery.java | 2 +- .../api/server}/LicenseService.java | 2 +- .../api/server}/NomadChangeProcessor.java | 2 +- .../NomadPermissionChangeProcessor.java | 2 +- .../server}/NomadRoutingChangeProcessor.java | 2 +- .../api/server}/PathResolver.java | 15 +- .../server}/SelectingConfigChangeHandler.java | 2 +- dynamic-config/cli/api/build.gradle | 20 + .../checkstyle/copyright-suppressions.xml | 7 + .../cli/api/command/ActivateAction.java | 0 .../cli/api/command/AttachAction.java | 0 .../cli/api/command/Configuration.java | 0 .../cli/api/command/ConfigurationAction.java | 0 .../cli/api/command/ConfigurationInput.java | 0 .../command/ConfigurationMutationAction.java | 0 .../cli/api/command/DetachAction.java | 0 .../cli/api/command/DiagnosticAction.java | 0 .../cli/api/command/ExportAction.java | 0 .../cli/api/command/GetAction.java | 0 .../cli/api/command/ImportAction.java | 0 .../cli/api/command/Injector.java | 0 .../cli/api/command/LockConfigAction.java | 0 .../cli/api/command/LogAction.java | 0 .../cli/api/command/OssServiceProvider.java | 0 .../cli/api/command/RemoteAction.java | 0 .../cli/api/command/RepairAction.java | 0 .../cli/api/command/ServiceProvider.java | 0 .../cli/api/command/SetAction.java | 0 .../cli/api/command/TopologyAction.java | 0 .../cli/api/command/UnlockConfigAction.java | 0 .../cli/api/command/UnsetAction.java | 0 .../cli/api/converter/OperationType.java | 0 .../cli/api/converter/RepairMethod.java | 0 .../cli/api/json/CliJsonModule.java | 0 .../cli/api/nomad/DefaultNomadManager.java | 0 .../cli/api/nomad/LockAwareNomadManager.java | 0 .../cli/api/nomad/NomadManager.java | 0 .../cli/api/restart/RestartProgress.java | 0 .../cli/api/restart/RestartService.java | 0 .../cli/api/stop/StopProgress.java | 0 .../cli/api/stop/StopService.java | 0 ...mic_config.cli.api.command.ServiceProvider | 0 .../dynamic_config/cli/api/BaseTest.java | 0 .../cli/api/NomadTestHelper.java | 0 .../cli/api/SimpleNomadChange.java | 0 .../cli/api/command/ActivateActionTest.java | 0 .../cli/api/command/AttachActionTest.java | 0 .../cli/api/command/DetachActionTest.java | 0 .../cli/api/command/ImportActionTest.java | 0 .../cli/api/command/TopologyActionTest.java | 0 .../cli/api/json/TestModule.java | 0 .../cli/api/restart/RestartServiceTest.java | 0 .../src/test/resources/cluster1.json | 0 .../src/test/resources/cluster2.json | 0 .../src/test/resources/cluster3.json | 0 .../src/test/resources/cluster4.json | 0 .../src/test/resources/my-cluster.cfg | 1 + .../src/test/resources/my-cluster.properties | 0 dynamic-config/cli/cli-support/pom.xml | 55 --- dynamic-config/cli/config-tool/build.gradle | 24 ++ dynamic-config/cli/config-tool/pom.xml | 50 --- .../src/main/resources/logback.xml | 4 +- .../cli/dynamic-config-cli-api/pom.xml | 72 ---- dynamic-config/cli/jcommander/build.gradle | 19 + .../dynamic_config/cli/command/Command.java | 0 .../cli/command/CustomJCommander.java | 0 .../cli/command/LocalMainCommand.java | 0 .../cli/command/RestartCommand.java | 0 .../dynamic_config/cli/command/Usage.java | 0 .../cli/converter/ConfigFormatConverter.java | 0 .../ConfigurationInputConverter.java | 0 .../cli/converter/HostPortConverter.java | 0 .../cli/converter/IdentifierConverter.java | 0 .../converter/MultiConfigCommaSplitter.java | 0 .../cli/converter/RepairActionConverter.java | 0 .../cli/converter/ShapeConverter.java | 0 .../cli/converter/TimeUnitConverter.java | 0 .../cli/converter/TypeConverter.java | 0 .../converter/ConfigFormatConverterTest.java | 0 .../MultiConfigCommaSplitterTest.java | 0 .../cli/converter/ShapeConverterTest.java | 0 dynamic-config/cli/pom.xml | 43 --- .../cli/upgrade-tool-oss/build.gradle | 20 + .../xml/oss/OssTcConfigMapper.java | 0 ..._tools.config_converter.xml.TcConfigMapper | 0 dynamic-config/cli/upgrade-tool/build.gradle | 29 ++ .../config_converter/ConfigConverter.java | 0 .../config_converter/ConfigConverterTool.java | 0 .../ConfigPropertiesProcessor.java | 0 .../config_converter/ConfigRepoProcessor.java | 2 +- .../config_converter/ConversionFormat.java | 0 .../command/ConvertAction.java | 0 .../conversion/AbstractTcConfigMapper.java | 0 .../exception/ConfigConversionException.java | 0 .../config_converter/exception/ErrorCode.java | 0 .../exception/ErrorCodeMapper.java | 0 .../exception/ErrorParamKey.java | 0 ...lidInputConfigurationContentException.java | 0 .../exception/InvalidInputException.java | 0 .../parsing/ConvertCommand.java | 0 .../deprecated/DeprecatedConvertCommand.java | 0 .../validators/ValidationWrapper.java | 0 .../config_converter/xml/CommonMapper.java | 0 .../NonSubstitutingTCConfigurationParser.java | 0 .../config_converter/xml/TcConfigMapper.java | 0 .../xml/TcConfigMapperDiscovery.java | 0 .../config_converter/xml/XmlUtility.java | 0 .../src/main/resources/logback.xml | 0 .../config_converter/ConfigConverterTest.java | 0 .../exception/ErrorCodeMapperTest.java | 0 .../validators/ValidationWrapperTest.java | 0 .../src/test/resources/tc-config.xml | 0 dynamic-config/cli/upgrade-tools-oss/pom.xml | 40 -- dynamic-config/cli/upgrade-tools/pom.xml | 85 ----- .../entities/management-entity/server/pom.xml | 80 ---- .../entities/management/server/build.gradle | 16 + .../server/ManagementActiveEntity.java | 2 +- .../server/ManagementCommonEntity.java | 6 +- .../server/ManagementEntityServerService.java | 2 +- .../server/ManagementPassiveEntity.java | 2 +- .../org.terracotta.entity.EntityServerService | 0 .../entities/nomad-entity/client/pom.xml | 48 --- .../entities/nomad-entity/common/pom.xml | 54 --- .../entities/nomad-entity/server/pom.xml | 81 ---- .../entities/nomad/client/build.gradle | 16 + .../nomad/entity/client/NomadEntity.java | 0 .../client/NomadEntityClientService.java | 0 .../entity/client/NomadEntityFactory.java | 0 .../nomad/entity/client/NomadEntityImpl.java | 0 .../entity/client/NomadEntityProvider.java | 0 .../org.terracotta.entity.EntityClientService | 0 .../entities/nomad/common/build.gradle | 16 + .../entity/common/NomadEntityConstants.java | 0 .../entity/common/NomadEntityMessage.java | 0 .../entity/common/NomadEntityResponse.java | 0 .../entity/common/NomadMessageCodec.java | 0 .../entities/nomad/server/build.gradle | 16 + .../nomad/entity/server/NoConcurrency.java | 0 .../server/NomadActiveServerEntity.java | 0 .../server/NomadCommonServerEntity.java | 0 .../server/NomadPassiveServerEntity.java | 0 .../server/NomadServerEntityService.java | 2 +- .../org.terracotta.entity.EntityServerService | 0 dynamic-config/entities/pom.xml | 45 --- .../entities/topology-entity/client/pom.xml | 48 --- .../entities/topology-entity/common/pom.xml | 52 --- .../entities/topology-entity/server/pom.xml | 80 ---- .../entities/topology/client/build.gradle | 16 + .../client/DynamicTopologyEntity.java | 0 .../DynamicTopologyEntityClientService.java | 0 .../client/DynamicTopologyEntityFactory.java | 0 .../client/DynamicTopologyEntityImpl.java | 0 .../client/DynamicTopologyEntityProvider.java | 0 .../org.terracotta.entity.EntityClientService | 0 .../entities/topology/common/build.gradle | 16 + .../entity/topology/common/Codec.java | 0 .../DynamicTopologyEntityConstants.java | 0 .../entity/topology/common/Message.java | 0 .../entity/topology/common/Response.java | 0 .../entity/topology/common/Type.java | 0 .../entity/topology/common/CodecTest.java | 0 .../entities/topology/server/build.gradle | 16 + .../DynamicTopologyActiveServerEntity.java | 6 +- .../DynamicTopologyPassiveServerEntity.java | 0 .../DynamicTopologyServerEntityService.java | 2 +- .../topology/server/UltimateConcurrency.java | 0 .../org.terracotta.entity.EntityServerService | 0 dynamic-config/json/build.gradle | 16 + dynamic-config/json/pom.xml | 45 --- dynamic-config/model/build.gradle | 22 ++ dynamic-config/model/pom.xml | 45 --- .../api/service/NameGenerator.java | 2 +- dynamic-config/pom.xml | 79 ---- dynamic-config/repository/build.gradle | 22 ++ .../checkstyle/copyright-suppressions.xml | 7 + .../nomad/DynamicConfigNomadServerImpl.java | 2 +- .../nomad/NomadServerFactory.java | 4 +- .../nomad/SingleThreadedNomadServer.java | 2 +- .../persistence/ClusterConfigFilename.java | 0 .../nomad/persistence/Config.java | 0 .../nomad/persistence/ConfigStorage.java | 0 .../persistence/ConfigStorageAdapter.java | 0 .../persistence/ConfigStorageException.java | 0 .../persistence/DefaultHashComputer.java | 0 .../nomad/persistence/FileConfigStorage.java | 0 .../nomad/persistence/HashComputer.java | 0 .../persistence/InitialConfigStorage.java | 0 .../NomadConfigurationManager.java | 0 .../nomad/persistence/NomadSanskritKeys.java | 0 .../persistence/json/SanskritJsonModule.java | 0 .../sanskrit/SanskritJsonMapper.java | 0 .../sanskrit/SanskritMapVisitor.java | 0 .../sanskrit/SanskritNomadServerState.java | 0 .../sanskrit/SanskritNomadStateChange.java | 0 .../BackwardCompatibilityTest.java | 31 +- .../ClusterConfigFilenameTest.java | 0 .../persistence/DefaultHashComputerTest.java | 0 .../persistence/FileConfigStorageTest.java | 15 +- .../persistence/InitialConfigStorageTest.java | 0 .../NomadConfigurationManagerTest.java | 13 +- .../SanskritNomadServerStateTest.java | 0 .../nomad/persistence/TestData.java | 0 .../nomad/persistence/json/TestModule.java | 0 .../resources/config-v1/changes/append.log | 0 .../test/resources/config-v1/changes/hash0 | 0 .../cluster/default-node1.1.properties | 0 .../changes/append.log | 0 .../changes/hash0 | 0 .../changes/lock | 0 .../cluster/node1.1.properties | 0 .../cluster/node1.2.properties | 0 .../changes/append.log | 0 .../changes/hash0 | 0 .../changes/lock | 0 .../cluster/node1.1.properties | 0 .../cluster/node1.2.properties | 0 .../config-v1_with_setting/changes/append.log | 0 .../config-v1_with_setting/changes/hash0 | 0 .../config-v1_with_setting}/changes/lock | 0 .../cluster/node-1.1.properties | 0 .../cluster/node-1.2.properties | 0 .../changes/append.log | 0 .../config-v2-10.7.0.0.315}/changes/hash0 | 0 .../cluster/node1.1.properties | 0 .../cluster/node1.2.properties | 0 .../src/test/resources/config.properties | 0 .../test/resources/simplelogger.properties | 0 .../src/test/resources/topology.json | 0 .../test/resources/topology_with_setting.json | 0 dynamic-config/server/api/build.gradle | 16 + .../server/api/DynamicConfigExtension.java | 6 +- .../server/config-provider/build.gradle | 26 ++ .../checkstyle/copyright-suppressions.xml | 7 + .../config/checkstyle/suppressions.xml | 7 + .../DynamicConfigConfigurationProvider.java | 18 +- .../configuration/service/AuditListener.java | 2 +- .../configuration/service/AuditService.java | 0 .../service/ConfigChangeApplicator.java | 2 +- .../ConfigChangeHandlerManagerImpl.java | 4 +- .../DynamicConfigEventServiceImpl.java | 8 +- .../service/DynamicConfigServiceImpl.java | 8 +- .../configuration/service/Licensing.java | 6 +- .../configuration/service/NomadMode.java | 0 .../service/NomadServerManager.java | 16 +- .../service/ParameterSubstitutor.java | 0 .../configuration/service/Topologies.java | 0 .../ApplicabilityNomadChangeProcessor.java | 2 +- ...ClusterActivationNomadChangeProcessor.java | 2 +- .../DefaultNomadRoutingChangeProcessor.java | 4 +- .../FormatUpgradeNomadChangeProcessor.java | 2 +- .../LockAwareNomadChangeProcessor.java | 2 +- .../LockConfigNomadChangeProcessor.java | 2 +- .../MultiSettingNomadChangeProcessor.java | 2 +- .../NodeAdditionNomadChangeProcessor.java | 4 +- .../NodeRemovalNomadChangeProcessor.java | 4 +- .../NomadPermissionChangeProcessorImpl.java | 4 +- .../SettingNomadChangeProcessor.java | 10 +- .../StripeAdditionNomadChangeProcessor.java | 6 +- .../StripeRemovalNomadChangeProcessor.java | 4 +- .../UnlockConfigNomadChangeProcessor.java | 2 +- .../startup/CommandLineProcessor.java | 0 .../ConfigFileCommandLineProcessor.java | 0 .../ConfigRepoCommandLineProcessor.java | 0 .../ConfigurationGeneratorVisitor.java | 2 +- .../startup/ConsoleCommandLineProcessor.java | 0 .../startup/ConsoleParamsUtils.java | 0 .../startup/CustomJCommander.java | 0 .../startup/DefaultGroupPortMapperImpl.java | 2 +- .../DynamicConfigServerConfiguration.java | 4 +- .../startup/MainCommandLineProcessor.java | 0 .../server/configuration/startup/Options.java | 0 .../startup/StartupConfiguration.java | 8 +- .../startup/parsing/OptionsParsing.java | 0 .../startup/parsing/OptionsParsingImpl.java | 0 .../DeprecatedOptionsParsingImpl.java | 2 +- .../server/configuration/sync/Check.java | 0 .../sync/DynamicConfigNomadSynchronizer.java | 2 +- .../sync/DynamicConfigSyncData.java | 0 .../sync/DynamicConfigurationPassiveSync.java | 2 +- .../server/configuration/sync/Require.java | 0 ...acotta.configuration.ConfigurationProvider | 0 ....dynamic_config.server.api.GroupPortMapper | 0 .../DesynchronizedNomadConfigTest.java | 115 +++--- ...terActivationNomadChangeProcessorTest.java | 0 .../CommandLineProcessorChainTest.java | 0 .../ConfigurationGeneratorVisitorTest.java | 4 +- .../DynamicConfigServerConfigurationTest.java | 4 +- .../DynamicConfigurationPassiveSyncTest.java | 2 +- .../test/resources/simplelogger.properties | 0 .../node1/config/changes/append.log | 0 .../node1/config/changes/hash0 | 0 .../node1}/config/changes/lock | 0 .../node1/config/cluster/node1.1.properties | 0 .../node1/config/cluster/node1.2.properties | 0 .../node2/config/changes/append.log | 0 .../node2/config/changes/hash0 | 0 .../node2}/config/changes/lock | 0 .../node2/config/cluster/node2.1.properties | 0 .../node2/config/cluster/node2.2.properties | 0 .../v1-config/node1/config/changes/append.log | 0 .../v1-config/node1/config/changes/hash0 | 0 .../v1-config/node1}/config/changes/lock | 0 .../node1/config/cluster/node1.1.properties | 0 .../v1-config/node2/config/changes/append.log | 0 .../v1-config/node2/config/changes/hash0 | 0 .../v1-config/node2}/config/changes/lock | 0 .../node2/config/cluster/node2.1.properties | 0 .../node1/config/changes/append.log | 0 .../node1/config/changes/hash0 | 0 .../node1}/config/changes/lock | 0 .../config/cluster/node-1-1.1.properties | 0 .../config/cluster/node-1-1.2.properties | 0 .../node2/config/changes/append.log | 0 .../node2/config/changes/hash0 | 0 .../node2/config}/changes/lock | 0 .../config/cluster/node-2-1.1.properties | 0 .../config/cluster/node-2-1.2.properties | 0 .../node1/config}/changes/append.log | 0 .../node1/config}/changes/hash0 | 0 .../node1/config}/cluster/node1.1.properties | 0 .../node1/config}/cluster/node1.2.properties | 0 .../node2/config/changes/append.log | 0 .../node2/config/changes/hash0 | 0 .../node2/config/cluster/node2.1.properties | 0 .../node2/config/cluster/node2.2.properties | 0 .../v2-config/node1/config/changes/append.log | 0 .../v2-config/node1/config/changes/hash0 | 0 .../v2-config/node1/config}/changes/lock | 0 .../config/cluster/node-1-1.1.properties | 0 .../v2-config/node2/config/changes/append.log | 0 .../v2-config/node2/config/changes/hash0 | 0 .../v2-config/node2/config}/changes/lock | 0 .../config/cluster/node-1-2.1.properties | 0 .../server/configuration-provider/pom.xml | 116 ------ .../server/configuration-repository/pom.xml | 65 ---- dynamic-config/server/pom.xml | 42 --- dynamic-config/server/server-api/pom.xml | 51 --- dynamic-config/server/services/build.gradle | 18 + dynamic-config/server/services/pom.xml | 97 ----- .../service/DisallowSettingChanges.java | 2 +- .../service/DynamicConfigServiceProvider.java | 22 +- .../server/service/ServerStateCheck.java | 2 +- ...entReconnectWindowConfigChangeHandler.java | 4 +- .../LoggerOverrideConfigChangeHandler.java | 4 +- .../handler/NodeLogDirChangeHandler.java | 6 +- dynamic-config/testing/entity/build.gradle | 16 + dynamic-config/testing/entity/pom.xml | 94 ----- .../entity/TestEntityServerService.java | 12 +- .../handler/GroupPortSimulateHandler.java | 4 +- .../handler/SimulationHandler.java | 4 +- .../mapper/TestGroupPortMapper.java | 2 +- .../MyDummyNomadAdditionChangeProcessor.java | 4 +- .../MyDummyNomadRemovalChangeProcessor.java | 6 +- dynamic-config/testing/galvan/build.gradle | 21 ++ .../api/BasicTestClusterConfiguration.java | 2 +- .../config/AbstractStartupCommandBuilder.java | 0 .../config/ConfigFileStartupBuilder.java | 0 .../config/ConfigRepoStartupBuilder.java | 0 .../testing/config/DefaultPortAllocator.java | 0 .../testing/config/PortAllocator.java | 0 .../galvan}/src/main/resources/tc-logback.xml | 0 dynamic-config/testing/pom.xml | 41 -- dynamic-config/testing/support/build.gradle | 23 ++ dynamic-config/testing/support/pom.xml | 78 ---- galvan-platform-support/pom.xml | 95 ----- gradle.properties | 38 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59536 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 249 ++++++++++++ gradlew.bat | 92 +++++ healthchecker-entity/api/pom.xml | 72 ---- healthchecker-entity/client-impl/pom.xml | 59 --- healthchecker-entity/common/pom.xml | 51 --- healthchecker-entity/pom.xml | 50 --- healthchecker-entity/server-impl/pom.xml | 65 ---- healthchecker/client/build.gradle | 17 + .../terracotta/healthchecker/HealthCheck.java | 8 +- .../HealthCheckClientService.java | 2 +- .../healthchecker/HealthCheckerClient.java | 4 +- .../healthchecker/HealthCheckerFactory.java | 30 +- .../healthchecker/TimeoutListener.java | 2 +- .../healthchecker/TimeoutManager.java | 4 +- .../org.terracotta.entity.EntityClientService | 0 .../HealthCheckerFactoryTest.java | 12 +- healthchecker/common/build.gradle | 14 + .../healthchecker/HealthCheckReq.java | 4 +- .../healthchecker/HealthCheckRsp.java | 4 +- .../healthchecker/HealthCheckerCodec.java | 2 +- healthchecker/server/build.gradle | 15 + .../HealthCheckServerEntityService.java | 6 +- .../healthchecker/HealthCheckerServer.java | 6 +- .../org.terracotta.entity.EntityServerService | 0 kit/pom.xml | 141 ------- kit/src/main/assembly/platform-kit.xml | 45 --- layout/pom.xml | 198 ---------- layout/src/main/kit/tools/bin/config-tool.bat | 44 --- layout/src/main/kit/tools/bin/config-tool.sh | 36 -- .../kit/tools/voter/bin/start-tc-voter.bat | 44 --- .../kit/tools/voter/bin/start-tc-voter.sh | 33 -- lease/api/pom.xml | 81 ---- lease/client/build.gradle | 19 + .../lease/CleaningLeaseMaintainer.java | 0 .../main/java/org/terracotta/lease/Lease.java | 0 .../org/terracotta/lease/LeaseAcquirer.java | 0 .../lease/LeaseAcquirerClientService.java | 0 .../terracotta/lease/LeaseAcquirerImpl.java | 0 .../lease/LeaseEndpointDelegate.java | 0 .../org/terracotta/lease/LeaseException.java | 0 .../LeaseExpiryConnectionKillingThread.java | 0 .../java/org/terracotta/lease/LeaseImpl.java | 0 .../org/terracotta/lease/LeaseInternal.java | 0 .../org/terracotta/lease/LeaseMaintainer.java | 0 .../lease/LeaseMaintainerFactory.java | 0 .../terracotta/lease/LeaseMaintainerImpl.java | 0 .../lease/LeaseMaintenanceThread.java | 0 .../lease/LeaseReconnectDataSupplier.java | 0 .../lease/LeaseReconnectListener.java | 0 .../lease/LeaseReconnectingException.java | 0 .../java/org/terracotta/lease/NullLease.java | 0 .../lease/ProxyLeaseReconnectListener.java | 0 .../connection/BasicLeasedConnection.java | 2 +- .../lease/connection/LeasedConnection.java | 0 .../connection/LeasedConnectionFactory.java | 0 .../connection/LeasedConnectionService.java | 0 .../LeasedConnectionServiceImpl.java | 0 .../org.terracotta.entity.EntityClientService | 0 ...a.lease.connection.LeasedConnectionService | 0 .../lease/CleaningLeaseMaintainerTest.java | 0 .../lease/LeaseAcquirerClientServiceTest.java | 0 .../lease/LeaseAcquirerImplTest.java | 0 .../lease/LeaseEndpointDelegateTest.java | 0 ...easeExpiryConnectionKillingThreadTest.java | 15 +- .../org/terracotta/lease/LeaseImplTest.java | 0 .../lease/LeaseMaintainerFactoryTest.java | 13 +- .../lease/LeaseMaintainerImplTest.java | 0 .../lease/LeaseMaintenanceThreadTest.java | 0 .../org/terracotta/lease/NullLeaseTest.java | 0 .../ProxyLeaseReconnectListenerTest.java | 0 .../LeasedConnectionFactoryTest.java | 0 .../TestLeasedConnectionService.java | 0 ...a.lease.connection.LeasedConnectionService | 0 lease/common/build.gradle | 16 + lease/common/pom.xml | 40 -- .../lease/IgnoredLeaseResponse.java | 0 .../lease/LeaseAcquirerAvailable.java | 0 .../terracotta/lease/LeaseAcquirerCodec.java | 0 .../org/terracotta/lease/LeaseMessage.java | 0 .../terracotta/lease/LeaseMessageDecoder.java | 0 .../terracotta/lease/LeaseMessageType.java | 0 .../terracotta/lease/LeaseReconnectData.java | 0 .../lease/LeaseReconnectFinished.java | 0 .../org/terracotta/lease/LeaseRequest.java | 0 .../terracotta/lease/LeaseRequestResult.java | 0 .../org/terracotta/lease/LeaseResponse.java | 0 .../lease/LeaseResponseDecoder.java | 0 .../terracotta/lease/LeaseResponseType.java | 0 .../lease/LeaseAcquirerCodecTest.java | 0 .../lease/LeaseReconnectDataTest.java | 0 .../lease/LeaseRequestResultTest.java | 0 lease/entity-api/pom.xml | 40 -- lease/entity-client/pom.xml | 70 ---- lease/entity-common/pom.xml | 55 --- lease/entity-server/pom.xml | 118 ------ .../passthrough-leased-connection-api/pom.xml | 73 ---- lease/passthrough/build.gradle | 16 + .../PassthroughLeasedConnectionService.java | 0 ...a.lease.connection.LeasedConnectionService | 0 .../PassthroughLeaseConnectionTest.java | 0 ...rg.terracotta.connection.ConnectionService | 0 lease/pom.xml | 44 --- lease/server/build.gradle | 30 ++ .../server/config/checkstyle/suppressions.xml | 7 + .../terracotta/lease/ActiveLeaseAcquirer.java | 0 .../lease/LeaseAcquirerServerService.java | 0 .../lease/PassiveLeaseAcquirer.java | 0 .../service/LeaseConfigChangeHandler.java | 4 +- .../lease/service/LeaseConstants.java | 0 .../service/LeaseDynamicConfigExtension.java | 2 +- .../terracotta/lease/service/LeaseResult.java | 0 .../lease/service/LeaseService.java | 0 .../service/LeaseServiceConfiguration.java | 0 .../lease/service/LeaseServiceImpl.java | 0 .../lease/service/LeaseServiceProvider.java | 0 .../closer/ClientConnectionCloser.java | 0 .../closer/ClientConnectionCloserImpl.java | 0 .../closer/ProxyClientConnectionCloser.java | 0 .../service/config/LeaseConfiguration.java | 0 .../lease/service/config/LeaseElement.java | 0 .../service/config/ValidationFailureId.java | 0 .../lease/service/monitor/ExpiredLease.java | 0 .../lease/service/monitor/Lease.java | 0 .../service/monitor/LeaseMonitorThread.java | 0 .../lease/service/monitor/LeaseState.java | 0 .../service/monitor/ReconnectionLease.java | 0 .../lease/service/monitor/ValidLease.java | 0 ...c_config.server.api.DynamicConfigExtension | 0 .../org.terracotta.entity.EntityServerService | 0 .../org.terracotta.entity.ServiceProvider | 0 .../lease/ActiveLeaseAcquirerTest.java | 24 +- .../lease/LeaseAcquirerServerServiceTest.java | 6 +- .../lease/MockStateDumpCollector.java | 0 .../service/LeaseConfigChangeHandlerTest.java | 2 +- .../lease/service/LeaseResultTest.java | 0 .../LeaseServiceConfigurationTest.java | 0 .../lease/service/LeaseServiceImplTest.java | 0 .../service/LeaseServiceProviderTest.java | 27 +- .../lease/service/LeaseServiceTest.java | 0 .../closer/ClientConnectionCloseImplTest.java | 0 .../closer/ClientConnectionCloserTest.java | 0 .../ProxyClientConnectionCloserTest.java | 0 .../config/LeaseConfigValidatorTest.java | 0 .../config/LeaseConfigurationParserTest.java | 0 .../config/LeaseConfigurationTest.java | 0 .../service/monitor/ExpiredLeaseTest.java | 0 .../monitor/LeaseMonitorThreadTest.java | 0 .../lease/service/monitor/LeaseStateTest.java | 0 .../monitor/ReconnectionLeaseTest.java | 0 .../lease/service/monitor/ValidLeaseTest.java | 0 .../lease}/config/LeaseConfigValidator.java | 0 .../config/LeaseConfigurationParser.java | 0 ...racotta.config.service.ServiceConfigParser | 0 lease/server/src/xml/schema/catalog.cat | 6 + .../src/xml/schema}/lease-service.xsd | 0 lease/system-test/pom.xml | 68 ---- lease/system-tests/build.gradle | 18 + .../org/terracotta/lease/LeaseSystemTest.java | 24 +- .../org/terracotta/lease/LeaseTestUtil.java | 0 .../lease/NoLeaseConfigurationTest.java | 0 ...rg.terracotta.connection.ConnectionService | 0 management/README.adoc | 2 +- management/cluster-topology/README.adoc | 1 - management/cluster-topology/pom.xml | 53 --- .../nms-agent}/README.adoc | 0 .../entities/nms-agent/client/build.gradle | 18 + .../agent/client/DefaultNmsAgentService.java | 0 .../nms/agent/client/NmsAgentEntity.java | 0 .../client/NmsAgentEntityClientService.java | 0 .../agent/client/NmsAgentEntityFactory.java | 0 .../nms/agent/client/NmsAgentService.java | 0 .../agent/client/diag/DiagnosticProvider.java | 0 .../agent/client/diag/DiagnosticUtility.java | 0 .../org.terracotta.entity.EntityClientService | 0 .../entities/nms-agent/common/build.gradle | 15 + .../management/entity/nms/agent/NmsAgent.java | 0 .../entity/nms/agent/ReconnectData.java | 0 .../entities/nms-agent/server/build.gradle | 18 + .../server/ActiveNmsAgentServerEntity.java | 0 .../server/NmsAgentEntityServerService.java | 0 .../server/PassiveNmsAgentServerEntity.java | 0 .../org.terracotta.entity.EntityServerService | 0 management/entities/nms/client/build.gradle | 17 + .../entity/nms/client/DefaultNmsService.java | 2 +- .../IllegalManagementCallException.java | 0 .../entity/nms/client/ManagementCall.java | 0 .../entity/nms/client/NmsEntity.java | 0 .../nms/client/NmsEntityClientService.java | 0 .../entity/nms/client/NmsEntityFactory.java | 0 .../entity/nms/client/NmsService.java | 0 .../nms/client/VoltronManagementCall.java | 0 .../org.terracotta.entity.EntityClientService | 0 management/entities/nms/common/build.gradle | 15 + .../terracotta/management/entity/nms/Nms.java | 0 .../management/entity/nms/NmsConfig.java | 0 .../management/entity/nms/NmsVersion.java | 0 management/entities/nms/server/build.gradle | 19 + .../nms/server/ActiveNmsServerEntity.java | 2 +- .../entity/nms/server/NmsCallback.java | 0 .../nms/server/NmsEntityServerService.java | 0 .../nms/server/PassiveNmsServerEntity.java | 6 +- .../org.terracotta.entity.EntityServerService | 0 management/management-model/pom.xml | 53 --- management/management-registry/README.adoc | 1 - management/management-registry/pom.xml | 60 --- .../{management-model => model}/README.adoc | 0 management/model/build.gradle | 18 + .../management/model/call/ContextualCall.java | 0 .../model/call/ContextualReturn.java | 0 .../management/model/call/Parameter.java | 0 .../model/capabilities/Capability.java | 0 .../model/capabilities/DefaultCapability.java | 0 .../context/CapabilityContext.java | 0 .../descriptors/CallDescriptor.java | 0 .../capabilities/descriptors/Descriptor.java | 0 .../capabilities/descriptors/Settings.java | 0 .../descriptors/StatisticDescriptor.java | 0 .../model/cluster/AbstractManageableNode.java | 0 .../model/cluster/AbstractNode.java | 0 .../management/model/cluster/Client.java | 4 +- .../model/cluster/ClientIdentifier.java | 0 .../management/model/cluster/Cluster.java | 2 +- .../management/model/cluster/Connection.java | 0 .../management/model/cluster/Endpoint.java | 0 .../model/cluster/ManagementRegistry.java | 0 .../management/model/cluster/Node.java | 0 .../management/model/cluster/Server.java | 2 +- .../model/cluster/ServerEntity.java | 0 .../model/cluster/ServerEntityIdentifier.java | 0 .../management/model/cluster/Stripe.java | 0 .../management/model/context/Context.java | 0 .../model/context/ContextContainer.java | 0 .../management/model/context/Contextual.java | 0 .../message/DefaultManagementCallMessage.java | 0 .../model/message/DefaultMessage.java | 0 .../model/message/ManagementCallMessage.java | 0 .../management/model/message/Message.java | 0 .../notification/ContextualNotification.java | 0 .../model/stats/ContextualStatistics.java | 0 .../model/stats/DelegatingSample.java | 0 .../model/stats/DelegatingStatistic.java | 0 .../management/model/stats/Sample.java | 0 .../management/model/stats/Statistic.java | 0 .../model/stats/StatisticRegistry.java | 0 .../management/model/stats/StatisticType.java | 0 .../model/cluster/AbstractTest.java | 0 .../model/cluster/ClientIdentifierTest.java | 0 .../management/model/cluster/ClusterTest.java | 0 .../model/cluster/SerializationTest.java | 0 .../model/cluster/SettingsTest.java | 0 .../src/test/resources/cluster.json | 0 management/monitoring-service-api/pom.xml | 81 ---- management/monitoring-service/pom.xml | 116 ------ .../nms-agent-entity-client/pom.xml | 63 ---- .../nms-agent-entity-common/pom.xml | 54 --- .../nms-agent-entity-server/pom.xml | 93 ----- management/nms-agent-entity/pom.xml | 41 -- .../nms-entity/nms-entity-client/pom.xml | 53 --- .../nms-entity/nms-entity-common/pom.xml | 64 ---- .../nms-entity/nms-entity-server/pom.xml | 99 ----- management/nms-entity/pom.xml | 41 -- management/pom.xml | 51 --- management/registry/build.gradle | 17 + .../registry/AbstractManagementProvider.java | 0 .../management/registry/CallQuery.java | 0 .../registry/CapabilityManagement.java | 0 .../registry/CapabilityManagementSupport.java | 0 .../CombiningCapabilityManagementSupport.java | 0 .../management/registry/DefaultCallQuery.java | 0 .../registry/DefaultCallQueryBuilder.java | 0 .../registry/DefaultCapabilityManagement.java | 0 .../registry/DefaultExposedObject.java | 2 +- .../registry/DefaultManagementRegistry.java | 0 .../management/registry/DefaultResultSet.java | 0 .../registry/DefaultStatisticQuery.java | 0 .../DefaultStatisticQueryBuilder.java | 0 .../DefaultStatisticsExposedObject.java | 2 +- .../DefaultStatisticsManagementProvider.java | 0 .../management/registry/ExposedObject.java | 0 .../registry/ManagementProvider.java | 0 .../registry/ManagementProviderAdapter.java | 0 .../registry/ManagementRegistry.java | 0 .../terracotta/management/registry/Named.java | 0 .../terracotta/management/registry/Query.java | 0 .../management/registry/QueryBuilder.java | 0 .../management/registry/RequiredContext.java | 0 .../management/registry/ResultSet.java | 0 .../management/registry/StatisticQuery.java | 0 .../AbstractActionManagementProvider.java | 0 .../management/registry/action/Exposed.java | 0 .../collect/DefaultStatisticCollector.java | 0 .../registry/collect/StatisticCollector.java | 0 .../collect/StatisticCollectorProvider.java | 2 +- .../registry/collect/StatisticProvider.java | 0 .../registry/DefaultCallQueryTest.java | 0 .../registry/ManagementRegistryTest.java | 0 .../registry/action/ActionProviderTest.java | 0 .../registry/action/MyManagementProvider.java | 0 .../management/registry/action/MyObject.java | 0 .../management/registry/json/TestModule.java | 0 .../src/test/resources/capabilities.json | 0 management/sequence-generator/build.gradle | 20 + management/sequence-generator/pom.xml | 69 ---- .../api}/README.adoc | 0 management/server/api/build.gradle | 17 + ...stractManagementRegistryConfiguration.java | 0 .../monitoring/ClientMonitoringService.java | 0 .../ClientMonitoringServiceConfiguration.java | 6 +- .../monitoring/EntityManagementRegistry.java | 0 ...EntityManagementRegistryConfiguration.java | 0 .../monitoring/EntityMonitoringService.java | 0 .../monitoring/ManageableServerComponent.java | 0 .../monitoring/ManagementExecutor.java | 0 .../service/monitoring/ManagementService.java | 6 +- .../ManagementServiceConfiguration.java | 0 ...ServerManagementRegistryConfiguration.java | 0 .../SharedEntityManagementRegistry.java | 0 .../AbstractEntityManagementProvider.java | 0 .../provider/AbstractExposedStatistics.java | 0 .../AbstractStatisticsManagementProvider.java | 0 .../registry/provider/AliasBinding.java | 0 .../AliasBindingManagementProvider.java | 0 .../registry/provider/ClientBinding.java | 6 +- .../ClientBindingManagementProvider.java | 0 .../provider/MonitoringServiceAware.java | 0 .../StatisticCollectorManagementProvider.java | 0 .../services}/README.adoc | 0 management/server/services/build.gradle | 18 + .../DefaultClientMonitoringService.java | 0 .../DefaultEntityManagementRegistry.java | 0 .../DefaultEntityMonitoringService.java | 0 .../monitoring/DefaultFiringService.java | 0 .../DefaultManagementDataListener.java | 6 +- .../monitoring/DefaultManagementService.java | 2 +- ...DefaultSharedEntityManagementRegistry.java | 0 .../monitoring/DefaultStatisticService.java | 0 .../service/monitoring/ExecutionChain.java | 0 .../service/monitoring/ExecutorUtil.java | 0 .../service/monitoring/FiringService.java | 0 .../IStripeMonitoringDataListenerAdapter.java | 0 ...ripeMonitoringPlatformListenerAdapter.java | 2 +- .../monitoring/ManagementDataListener.java | 0 .../service/monitoring/ManagementMessage.java | 0 .../service/monitoring/MessageSource.java | 4 +- .../monitoring/MonitoringServiceProvider.java | 2 +- .../service/monitoring/Notification.java | 2 +- .../service/monitoring/PlatformListener.java | 2 +- .../service/monitoring/StatisticService.java | 0 .../monitoring/TopologyEventListener.java | 0 .../service/monitoring/TopologyService.java | 0 .../management/service/monitoring/Utils.java | 0 .../org.terracotta.entity.ServiceProvider | 0 .../monitoring/ManagementExecutorAdapter.java | 3 - .../ManagementRegistryServiceTest.java | 0 .../monitoring/MyManagementProvider.java | 0 .../service/monitoring/MyObject.java | 0 .../monitoring/MyPlatformConfiguration.java | 0 .../service/monitoring/UtilsTest.java | 0 .../VoltronMonitoringServiceTest.java | 0 .../src/test/resources/cluster-1.json | 0 .../src/test/resources/cluster-10.json | 0 .../src/test/resources/cluster-2.json | 0 .../src/test/resources/cluster-3.json | 0 .../src/test/resources/cluster-4.json | 0 .../src/test/resources/cluster-5.json | 0 .../src/test/resources/cluster-6.json | 0 .../src/test/resources/cluster-7.json | 0 .../src/test/resources/cluster-8.json | 0 .../src/test/resources/cluster-9.json | 0 .../services}/src/test/resources/logback.xml | 0 management/testing/doc/pom.xml | 68 ---- management/testing/entity/build.gradle | 32 ++ .../management/entity/sample/Cache.java | 0 .../entity/sample/CacheOperationOutcomes.java | 0 .../entity/sample/client/CacheEntity.java | 0 .../client/CacheEntityClientService.java | 0 .../sample/client/CacheEntityFactory.java | 0 .../entity/sample/client/CacheFactory.java | 0 .../entity/sample/client/ClientCache.java | 0 .../CacheCallManagementProvider.java | 0 .../CacheSettingsManagementProvider.java | 0 ...eStatisticCollectorManagementProvider.java | 0 .../CacheStatisticsManagementProvider.java | 0 .../sample/client/management/Management.java | 0 .../server/ActiveCacheServerEntity.java | 0 .../server/CacheEntityServerService.java | 0 .../entity/sample/server/CacheSync.java | 0 .../sample/server/MapConfiguration.java | 0 .../entity/sample/server/MapProvider.java | 4 +- .../entity/sample/server/MapRelease.java | 0 .../server/PassiveCacheServerEntity.java | 4 +- .../entity/sample/server/ServerCache.java | 0 .../server/management/ClientStateBinding.java | 0 ...ClientStateSettingsManagementProvider.java | 0 .../sample/server/management/Management.java | 0 .../server/management/ServerCacheBinding.java | 0 .../ServerCacheCallManagementProvider.java | 0 ...ServerCacheSettingsManagementProvider.java | 0 ...rverCacheStatisticsManagementProvider.java | 0 .../org.terracotta.entity.EntityClientService | 0 .../org.terracotta.entity.EntityServerService | 0 .../org.terracotta.entity.ServiceProvider | 0 .../entity/sample/AbstractTest.java | 14 +- .../sample/CacheEntityFeaturesTest.java | 0 .../ClientCacheLocalManagementTest.java | 0 .../entity/sample/json/TestModule.java | 0 ...rg.terracotta.connection.ConnectionService | 0 .../test/resources/client-descriptors.json | 0 .../src/test/resources/logback.xml | 0 .../{doc/README.adoc => examples/README.md} | 0 management/testing/examples/build.gradle | 19 + .../management/doc/DoManagementCall.java | 0 .../management/doc/ReadNotifications.java | 0 .../management/doc/ReadStatistics.java | 0 .../management/doc/ReadTopology.java | 0 .../management/doc/StartSampleEntity.java | 14 +- .../org/terracotta/management/doc/Utils.java | 0 .../src/main/resources/logback.xml | 0 .../src/main/resources/tc-config.xml | 0 management/testing/sample-entity/.gitignore | 1 - management/testing/sample-entity/pom.xml | 180 --------- mvnw | 242 ------------ mvnw.cmd | 143 ------- offheap-resource/pom.xml | 162 -------- platform-base/build.gradle | 11 + platform-base/pom.xml | 71 ---- platform-layout/build.gradle.kts | 281 ++++++++++++++ .../src/main/dist}/server/conf/tc-cluster.cfg | 0 resources/data-root/build.gradle | 35 ++ .../config/checkstyle/suppressions.xml | 8 + .../DataDirConfigChangeHandler.java | 6 +- .../config/data_roots/DataDirs.java | 0 .../config/data_roots/DataDirsConfig.java | 0 .../config/data_roots/DataDirsConfigImpl.java | 30 +- .../DataDirsConfigurationException.java | 0 .../data_roots/DataDirsWithServerName.java | 0 .../DataRootsDynamicConfigExtension.java | 4 +- .../MetaDataDirConfigChangeHandler.java | 6 +- .../config/data_roots/MoveOperation.java | 0 .../terracotta/config/data_roots/Utils.java | 2 +- .../data_roots/ValidationFailureId.java | 0 .../management/DataRootBinding.java | 0 .../DataRootSettingsManagementProvider.java | 0 .../DataRootStatisticsManagementProvider.java | 0 ...c_config.server.api.DynamicConfigExtension | 0 .../DataDirConfigChangeHandlerTest.java | 2 +- .../data_roots/DataDirsConfigImplTest.java | 25 +- .../data_roots/DataRootValidatorTest.java | 0 .../PassthroughIntegrationTest.java | 2 +- .../data_roots/TcConfigWithDataDirsTest.java | 0 .../test/resources/configs/tc-config-data.xml | 0 .../data_roots/DataRootConfigParser.java | 55 ++- .../config/data_roots/DataRootValidator.java | 0 ...acotta.config.service.ExtendedConfigParser | 0 .../data-root/src/xml/schema/catalog.cat | 6 + .../src/xml/schema}/data-roots-config.xsd | 0 resources/offheap/build.gradle | 34 ++ .../config/checkstyle/suppressions.xml | 8 + .../CapacityChangeHandler.java | 0 .../OffHeapDynamicConfigExtension.java | 2 +- .../offheapresource/OffHeapResource.java | 0 .../OffHeapResourceIdentifier.java | 0 .../offheapresource/OffHeapResourceImpl.java | 2 +- .../offheapresource/OffHeapResources.java | 0 .../OffHeapResourcesProvider.java | 39 +- .../offheapresource/OffHeapUsageEvent.java | 0 .../OffHeapUsageEventImpl.java | 0 .../OffHeapUsageEventType.java | 0 .../offheapresource/OffHeapUsageListener.java | 0 .../OffheapResourceConfigChangeHandler.java | 4 +- .../offheapresource/PhysicalMemory.java | 0 .../offheapresource/ValidationFailureId.java | 0 .../management/OffHeapResourceBinding.java | 0 ...eapResourceSettingsManagementProvider.java | 0 ...pResourceStatisticsManagementProvider.java | 0 ...c_config.server.api.DynamicConfigExtension | 0 .../OffHeapConfigValidatorTest.java | 0 ...ffHeapResourceConfigurationParserTest.java | 20 +- .../OffHeapResourceIdentifierTest.java | 0 .../offheapresource/OffHeapResourceTest.java | 0 .../OffHeapResourcesProviderTest.java | 41 +- .../offheapresource/PhysicalMemoryTest.java | 10 +- .../TcConfigWithOffheapTest.java | 0 .../test/resources/configs/no-resources.xml | 0 .../resources/configs/tc-config-offheap.xml | 0 .../src/test/resources/configs/valid.xml | 0 .../OffHeapConfigValidator.java | 9 +- .../OffHeapResourceConfigurationParser.java | 46 ++- ...acotta.config.service.ExtendedConfigParser | 0 resources/offheap/src/xml/schema/catalog.cat | 6 + .../src/xml/schema}/offheap-resource.xsd | 0 runnel/pom.xml | 44 --- settings.gradle | 122 ++++++ .../dynamic-config}/pom.xml | 0 .../system_tests/ConfigConversionIT.java | 2 +- .../activated/AttachCommand1x2IT.java | 0 .../activated/AttachCommand1x3IT.java | 0 .../activated/AttachCommand2x1IT.java | 0 .../activated/AttachCommand2x2IT.java | 0 .../activated/AttachCommandFail1x1IT.java | 0 .../AttachCommandWithMultipleVoter1x3IT.java | 0 .../AttachCommandWithVoter1x3IT.java | 0 .../activated/AttachInConsistency1x2IT.java | 0 .../activated/AttachInConsistency1x3IT.java | 0 .../activated/AttachInConsistency1x4IT.java | 0 .../activated/AttachStripeIT.java | 0 .../system_tests/activated/ConfigRepoIT.java | 0 .../system_tests/activated/ConfigSyncIT.java | 0 .../activated/DetachCommand1x2IT.java | 0 .../activated/DetachCommand2x1IT.java | 0 .../DetachCommandWithVoter1x2IT.java | 0 .../activated/DetachInConsistency1x2IT.java | 0 .../activated/DetachInConsistency1x3IT.java | 0 .../activated/DetachStripeIT.java | 0 .../activated/DiagnosticCommand1x2IT.java | 0 .../activated/DiagnosticMode1x2IT.java | 0 .../system_tests/activated/DiagnosticsIT.java | 0 .../activated/DynamicTopologyEntityIT.java | 0 .../activated/GetCommand1x1IT.java | 0 .../system_tests/activated/LockConfigIT.java | 0 .../activated/PassiveRedirection1x2IT.java | 0 .../activated/RepairCommand1x1IT.java | 0 .../activated/RepairCommand1x2IT.java | 0 .../system_tests/activated/Scaling2x1IT.java | 0 .../activated/SetCommand1x1IT.java | 0 .../activated/SetCommand1x2IT.java | 0 .../activated/SetCommand2x3IT.java | 0 .../activated/SimulationHandlerIT.java | 0 .../activated/UnsetCommand1x2IT.java | 0 .../system_tests/activated/Voter1x2IT.java | 0 .../activation/ActivateCommand1x2IT.java | 0 .../activation/ActivateCommand2x2IT.java | 0 .../AutoActivateNewPassive1x2IT.java | 0 .../activation/Ipv6CliActivationIT.java | 0 .../activation/Ipv6ConfigActivationIT.java | 0 .../PreActivatedNodeStartup1x2IT.java | 0 .../diagnostic/AttachCommand1x2IT.java | 0 .../diagnostic/AttachCommand2x1IT.java | 0 .../diagnostic/AttachCommand2x2IT.java | 0 .../diagnostic/AttachDetachCommand2x2IT.java | 0 .../diagnostic/DetachCommand1x2IT.java | 0 .../diagnostic/DetachCommand2x2IT.java | 0 .../system_tests/diagnostic/DiagnosticIT.java | 0 .../diagnostic/GetCommand1x1IT.java | 0 .../diagnostic/GetCommand1x2IT.java | 0 .../diagnostic/ImportCommand2x1IT.java | 0 .../system_tests/diagnostic/Ipv6ConfigIT.java | 0 .../diagnostic/NodeStartupIT.java | 0 .../diagnostic/SetCommand1x1IT.java | 0 .../diagnostic/SetCommand1x2IT.java | 0 .../diagnostic/SetCommand2x2IT.java | 0 .../diagnostic/TopologyServiceIT.java | 0 .../diagnostic/UnsetCommand1x2IT.java | 0 .../AttachInConsistency1x3IT.java | 0 .../AttachInConsistency1x4IT.java | 0 .../DetachInConsistency1x2IT.java | 0 .../DetachInConsistency1x3IT.java | 0 .../new_options/AttachCommand1x2IT.java | 0 .../new_options/DetachCommand1x2IT.java | 0 .../new_options/DiagnosticCommand1x1IT.java | 0 .../new_options/GetCommand1x1IT.java | 0 .../new_options/RepairCommand1x1IT.java | 0 .../new_options/SetCommand1x1IT.java | 0 .../permission/SetUnsetSettingsIT.java | 0 .../single-stripe.cfg | 0 .../single-stripe_invalid1.cfg | 0 .../single-stripe_invalid2.cfg | 0 .../1x1-no-fo.properties | 0 .../config-property-files/1x1.properties | 0 .../config-property-files/1x2-diff.properties | 0 .../1x2-no-fo.properties | 0 .../config-property-files/1x2.properties | 0 .../1x2_default_stripe_name.properties | 0 .../import2x1.properties | 0 .../single-stripe-no-fo.properties | 0 .../single-stripe.properties | 0 .../single-stripe_invalid1.properties | 0 .../single-stripe_invalid2.properties | 0 .../single-stripe_multi-node-no-fo.properties | 0 .../single-stripe_multi-node.properties | 0 .../single-stripe_multi-node_ipv6.properties | 0 .../resources/conversion/cluster-1.properties | 0 .../test/resources/conversion/tc-config-1.xml | 0 ...lt_lease_failover_and_reconnect_window.xml | 0 ...-1_lease_failover_and_reconnect_window.xml | 0 .../tc-config-1_no_server_element.xml | 0 .../test/resources/conversion/tc-config-2.xml | 0 .../test/resources/conversion/tc-config-3.xml | 0 .../test/resources/conversion/tc-config-4.xml | 0 .../test/resources/conversion/tc-config-5.xml | 0 .../test/resources/conversion/tc-config-6.xml | 0 .../test/resources/conversion/tc-config-7.xml | 0 .../test/resources/conversion/tc-config-8.xml | 0 .../test/resources/conversion/tc-config.xml | 0 .../diagnostic-when-locked.txt | 0 .../diagnostic-output/diagnostic1.txt | 0 .../diagnostic-output/diagnostic2.txt | 0 .../diagnostic-output/diagnostic3.txt | 0 .../diagnostic-output/diagnostic4.txt | 0 .../diagnostic-output/diagnostic5.txt | 0 .../diagnostic-output/diagnostic6-1.txt | 0 .../diagnostic-output/diagnostic6-2.txt | 0 .../diagnostic-output/diagnostic7.txt | 0 .../src/test/resources/dummy.txt | 0 .../src/test/resources/logback-ext-test.xml | 0 .../src/test/resources/logback-test.xml | 0 .../tc-configs/stripe1-1-minimal.xml | 0 .../resources/tc-configs/stripe1-1-node.xml | 0 .../tc-configs/stripe1-1-node_ipv6.xml | 0 .../resources/tc-configs/stripe1-2-nodes.xml | 0 .../resources/tc-configs/stripe2-2-nodes.xml | 0 .../management}/pom.xml | 0 .../integration/tests/AbstractHATest.java | 0 .../integration/tests/AbstractSingleTest.java | 0 .../integration/tests/AbstractTest.java | 0 .../integration/tests/BadClientsIT.java | 0 .../tests/ClientCacheRemoteManagementIT.java | 0 .../tests/ConcurrentNmsEntitiesIT.java | 0 .../integration/tests/DiagnosticIT.java | 0 .../integration/tests/FailoverIT.java | 0 .../integration/tests/HAStatisticsIT.java | 0 .../integration/tests/NmsAgentServiceIT.java | 0 .../tests/OffHeapLimitReachedIT.java | 0 .../integration/tests/PassiveLeaveIT.java | 0 .../integration/tests/PassiveStartupIT.java | 0 .../integration/tests/PassiveTopologyIT.java | 0 .../tests/ReconfigureEntityIT.java | 0 .../tests/ServerCacheManagementIT.java | 0 .../integration/tests/SimpleGalvanIT.java | 0 .../tests/StatisticCollectorIT.java | 0 .../integration/tests/TopologyIT.java | 0 .../integration/tests/UserErrorsIT.java | 0 .../integration/tests/json/TestModule.java | 0 .../test/resources/client-descriptors.json | 0 .../src/test/resources/logback-ext.xml | 0 .../src/test/resources/logback.xml | 0 .../notifications-after-reconfigure.json | 0 .../src/test/resources/notifications.json | 0 .../src/test/resources/passive.json | 0 .../test/resources/server-descriptors.json | 0 .../src/test/resources/state-dump-partial.txt | 4 +- .../management}/src/test/resources/stats.json | 0 .../resources/topology-after-failover.json | 0 .../topology-before-reconfigure.json | 0 .../test/resources/topology-reconfigured.json | 0 .../src/test/resources/topology.json | 0 system-tests/test-kit/build.gradle.kts | 192 ++++++++++ voltron-proxy/client/build.gradle | 16 + .../proxy/client/ClientProxyFactory.java | 0 .../proxy/client/EndpointListener.java | 0 .../proxy/client/EndpointListenerAware.java | 0 .../client/ProxyEntityClientService.java | 0 .../proxy/client/ServerMessageAware.java | 0 .../client/VoltronProxyInvocationHandler.java | 0 .../proxy/client/ClientProxyFactoryTest.java | 14 +- .../VoltronProxyInvocationHandlerTest.java | 0 voltron-proxy/common/build.gradle | 15 + .../org/terracotta/voltron/proxy/Async.java | 0 .../terracotta/voltron/proxy/ClientId.java | 0 .../org/terracotta/voltron/proxy/Codec.java | 0 .../voltron/proxy/CommonProxyFactory.java | 0 .../voltron/proxy/ConcurrencyStrategy.java | 0 .../voltron/proxy/ExecutionStrategy.java | 0 .../voltron/proxy/MessageListener.java | 0 .../voltron/proxy/MessageListenerAdapter.java | 1 - .../terracotta/voltron/proxy/MessageType.java | 0 .../voltron/proxy/MethodDescriptor.java | 2 +- .../voltron/proxy/ProxyEntityMessage.java | 0 .../voltron/proxy/ProxyEntityResponse.java | 0 .../voltron/proxy/ProxyMessageCodec.java | 0 .../voltron/proxy/SerializationCodec.java | 0 .../java/org/terracotta/AvailableClass.java | 0 .../voltron/proxy/CommonProxyFactoryTest.java | 0 .../voltron/proxy/SerializationCodecTest.java | 0 .../org/terracotta/AvailableShadedClass.java | 0 voltron-proxy/pom.xml | 52 --- voltron-proxy/server/build.gradle | 19 + .../server/ActiveProxiedServerEntity.java | 0 .../server/DelegatingSyncMessageCodec.java | 0 .../voltron/proxy/server/MessageFiring.java | 0 .../proxy/server/MessageFiringSupport.java | 0 .../voltron/proxy/server/Messenger.java | 0 .../proxy/server/MessengerProxyFactory.java | 0 .../server/PassiveProxiedServerEntity.java | 0 .../voltron/proxy/server/ProxyInvoker.java | 0 .../server/ProxyServerEntityService.java | 0 .../proxy/server/SyncProxyFactory.java | 0 .../voltron/proxy/server/EndToEndTest.java | 1 - voltron-proxy/voltron-proxy-client/pom.xml | 56 --- voltron-proxy/voltron-proxy-common/pom.xml | 61 --- voltron-proxy/voltron-proxy-server/pom.xml | 89 ----- voter/build.gradle | 28 ++ voter/pom.xml | 85 ----- .../terracotta/voter/ClientVoterManager.java | 14 +- .../voter/ClientVoterManagerImpl.java | 30 +- .../terracotta/voter/ClientVoterThread.java | 6 +- .../org/terracotta/voter/VotingGroup.java | 32 +- .../org/terracotta/voter/VotingGroupTest.java | 26 +- 1344 files changed, 5090 insertions(+), 7602 deletions(-) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/checkstyle.yml create mode 100644 .github/workflows/dependency-submission.yml create mode 100644 .github/workflows/spotbugs.yml create mode 100644 .github/workflows/wrapper-validation.yml create mode 100644 .gitmodules delete mode 100644 .mvn/wrapper/maven-wrapper.jar delete mode 100644 .mvn/wrapper/maven-wrapper.properties create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 DCO.txt delete mode 100644 Jenkinsfile rename LICENSE => LICENSE.txt (100%) rename {layout/src/main/assembly => TO-DELETE}/platform-layout.xml (100%) rename pom.xml => TO-DELETE/pom.xml.disabled (100%) delete mode 100644 azure-pipelines.yml create mode 100644 build-logic/build.gradle create mode 100644 build-logic/settings.gradle create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/AngelaConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/BaseConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/BlacklistConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/CheckstyleConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/ConventionPlugin.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/DistributionConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/GalvanConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/JavaBaseConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/JavaConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/JavaLibraryConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/PackageConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/SpotBugsConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/VoltronConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/conventions/XjcConvention.java create mode 100644 build-logic/src/main/java/org/terracotta/build/plugins/ToolPlugin.java create mode 100644 build-logic/src/main/resources/META-INF/services/org.terracottata.build.conventions.ConventionPlugin create mode 100644 build-logic/src/main/resources/tool/start.bat.template create mode 100644 build-logic/src/main/resources/tool/start.sh.template create mode 100644 build-logic/src/test/java/org/terracotta/build/conventions/BaseConventionTest.java create mode 160000 build-logic/terracotta-gradle-plugins create mode 100644 build.gradle create mode 100644 client-message-tracker/build.gradle delete mode 100644 client-message-tracker/pom.xml delete mode 100755 common/inet-support/pom.xml create mode 100644 common/inet/build.gradle rename common/{inet-support => inet}/src/main/java/org/terracotta/inet/HostAndIpValidator.java (100%) rename common/{inet-support => inet}/src/main/java/org/terracotta/inet/HostPort.java (100%) rename common/{inet-support => inet}/src/main/java/org/terracotta/inet/InetSocketAddressConverter.java (100%) rename common/{inet-support => inet}/src/main/java/org/terracotta/inet/UriUtils.java (100%) rename common/{inet-support => inet}/src/test/java/org/terracotta/inet/HostAndIpValidatorTest.java (100%) rename common/{inet-support => inet}/src/test/java/org/terracotta/inet/HostPortTest.java (100%) rename common/{inet-support => inet}/src/test/java/org/terracotta/inet/UriUtilsTest.java (100%) delete mode 100755 common/json-support/pom.xml create mode 100644 common/json/build.gradle rename common/{json-support => json}/src/main/java/org/terracotta/json/DefaultJsonFactory.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/JdkJsonModule.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/Json.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/Jsr310JsonModule.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/TerracottaJsonModule.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/Adapters.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/DelegateTypeAdapterFactory.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/GsonConfig.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/GsonFactory.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/GsonModule.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/JsonObjectDeserializer.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/RuntimeTypeAdapterFactory.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/UnsafeObjectTypeAdapterFactory.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/AllowedClassTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/ExclusionStrategies.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/FloatingPointTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/HierarchyTypeAdapterFactory.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java (91%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/NullSafeTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/NullTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/NullTypeJsonTreeWriter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/ObjectToLongTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/ObjectToStringTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/OptionalTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/PathTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/RuntimeTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/SortKeysTypeAdapter.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/UnsafeClassSupport.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/gson/internal/Utils.java (100%) rename common/{json-support => json}/src/main/java/org/terracotta/json/util/DirectedGraph.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/ClassTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/EnumTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/Jsr310Test.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/MixinTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/ModuleTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/NullTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/NumberTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/OptionalTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/PathTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/PlainDoubleSerializerTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/PlainFloatSerializerTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/PolymorphismTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/SerializationTest.java (100%) rename common/{json-support => json}/src/test/java/org/terracotta/json/UnsafeTest.java (100%) rename common/{json-support => json}/src/test/resources/simplelogger.properties (100%) create mode 100644 common/nomad/build.gradle delete mode 100755 common/nomad/pom.xml create mode 100644 common/output-service/build.gradle delete mode 100755 common/output-service/pom.xml delete mode 100755 common/pom.xml create mode 100644 common/runnel/build.gradle rename {runnel => common/runnel}/src/main/asciidoc/common.adoc (100%) rename {runnel => common/runnel}/src/main/asciidoc/format.adoc (100%) rename {runnel => common/runnel}/src/main/asciidoc/simple.adoc (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/EnumMapping.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/EnumMappingBuilder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/Struct.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/StructBuilder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/ArrayDecoder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/Enm.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/PrimitiveDecodingSupport.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/StructArrayDecoder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/StructDecoder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/AbstractField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/AbstractValueField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/ArrayField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/BoolField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/ByteBufferField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/CharField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/EnumField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/Field.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/FloatingPoint64Field.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/Int32Field.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/Int64Field.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/StringField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/StructField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/decoding/fields/ValueField.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/ArrayEncoder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/PrimitiveEncodingSupport.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/StructArrayEncoder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/StructEncoder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/StructEncoderFunction.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/AbstractDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/ArrayDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/BoolDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/ByteBufferDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/CharDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/DataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/EnumDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64DataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/Int32DataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/Int64DataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/StringDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/encoding/dataholders/StructDataHolder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/metadata/FieldDecoder.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/metadata/FieldSearcher.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/metadata/Metadata.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/utils/CorruptDataException.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/utils/LimitReachedException.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/utils/ReadBuffer.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/utils/StringTool.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/utils/VLQ.java (100%) rename {runnel => common/runnel}/src/main/java/org/terracotta/runnel/utils/WriteBuffer.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/BoolTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/ByteBufferTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/CharTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/EnumMappingBuilderTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/EnumMappingTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/Fp64Test.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/Int32Test.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/Int64Test.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/PrimitiveArrayStructBuilderTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/PrimitiveStructBuilderTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/StringTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/StructArrayStructBuilderTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/StructBuilderTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/StructStructBuilderTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/VersionCompatibilityTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/docs/GettingStarted.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/EncodingPerfTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/ArrayTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/BoolTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/ByteBufferTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/CharTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/EnumMappingTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64Test.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/Int32Test.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/Int64Test.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/StringTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/encoding/dataholders/StructTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/metadata/MetadataTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/utils/ReadBufferTest.java (100%) rename {runnel => common/runnel}/src/test/java/org/terracotta/runnel/utils/VLQTest.java (100%) create mode 100644 common/sanskrit/build.gradle create mode 100644 common/sanskrit/config/checkstyle/suppressions.xml delete mode 100755 common/sanskrit/pom.xml create mode 100644 common/structures/build.gradle delete mode 100755 common/structures/pom.xml create mode 100644 common/test-utilities/build.gradle delete mode 100755 common/test-utilities/pom.xml delete mode 100755 communicator-support/communicator-support-client/pom.xml delete mode 100755 communicator-support/communicator-support-common/pom.xml delete mode 100755 communicator-support/communicator-support-server/pom.xml delete mode 100755 communicator-support/pom.xml create mode 100644 communicator/client/build.gradle rename {communicator-support/communicator-support-client => communicator/client}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManager.java (100%) rename {communicator-support/communicator-support-client => communicator/client}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManagerImpl.java (100%) rename {communicator-support/communicator-support-client => communicator/client}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageHandler.java (100%) create mode 100644 communicator/common/build.gradle rename {communicator-support/communicator-support-common => communicator/common}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageFactory.java (100%) rename {communicator-support/communicator-support-common => communicator/common}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequest.java (100%) rename {communicator-support/communicator-support-common => communicator/common}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodec.java (100%) rename {communicator-support/communicator-support-common => communicator/common}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestType.java (100%) rename {communicator-support/communicator-support-common => communicator/common}/src/test/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodecTest.java (100%) create mode 100644 communicator/server/build.gradle rename {communicator-support/communicator-support-server => communicator/server}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManager.java (100%) rename {communicator-support/communicator-support-server => communicator/server}/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManagerImpl.java (100%) create mode 100644 config/checkstyle/checkstyle.xml create mode 100644 config/checkstyle/copyright.header create mode 100644 config/checkstyle/copyright.xml create mode 100644 config/owasp-suppressions.xml delete mode 100755 data-root-resource/pom.xml create mode 100644 diagnostic/client/build.gradle delete mode 100755 diagnostic/client/pom.xml create mode 100644 diagnostic/common/build.gradle delete mode 100755 diagnostic/common/pom.xml create mode 100644 diagnostic/model/build.gradle delete mode 100755 diagnostic/model/pom.xml delete mode 100755 diagnostic/pom.xml create mode 100644 diagnostic/server/api/build.gradle rename diagnostic/{service-api => server/api}/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServices.java (100%) rename diagnostic/{service-api => server/api}/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesHolder.java (100%) rename diagnostic/{service-api => server/api}/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesRegistration.java (100%) rename diagnostic/{service-api => server/api}/src/main/java/org/terracotta/diagnostic/server/api/Expose.java (100%) rename diagnostic/{service-api => server/api}/src/main/java/org/terracotta/diagnostic/server/api/extension/DiagnosticExtensions.java (100%) create mode 100644 diagnostic/server/services/build.gradle rename diagnostic/{service => server/services}/src/main/java/org/terracotta/diagnostic/server/DefaultDiagnosticServices.java (100%) rename diagnostic/{service => server/services}/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandler.java (100%) rename diagnostic/{service => server/services}/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerMBean.java (100%) rename diagnostic/{service => server/services}/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptor.java (100%) rename diagnostic/{service => server/services}/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceProvider.java (100%) rename diagnostic/{service => server/services}/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsMBeanImpl.java (100%) rename diagnostic/{service => server/services}/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsServiceProvider.java (100%) rename diagnostic/{service => server/services}/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider (100%) rename diagnostic/{service => server/services}/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesRegistrationTest.java (100%) rename diagnostic/{service => server/services}/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesTest.java (100%) rename diagnostic/{service => server/services}/src/test/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerTest.java (100%) rename diagnostic/{service => server/services}/src/test/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptorTest.java (100%) rename diagnostic/{service => server/services}/src/test/java/org/terracotta/diagnostic/server/extensions/LogicalServerStateTest.java (100%) delete mode 100755 diagnostic/service-api/pom.xml delete mode 100755 diagnostic/service/pom.xml create mode 100644 docs/build.gradle delete mode 100644 docs/pom.xml rename docs/src/{main => docs}/asciidoc/dynamic-config/Config-Tool.adoc (100%) rename docs/src/{main => docs}/asciidoc/dynamic-config/ConfigRepository.adoc (100%) rename docs/src/{main => docs}/asciidoc/dynamic-config/Consistent-OSS-EE-UX.adoc (100%) rename docs/src/{main => docs}/asciidoc/dynamic-config/DistributedTransactionProtocol.adoc (100%) rename docs/src/{main => docs}/asciidoc/dynamic-config/DistributedTransactionProtocol.tla (100%) rename docs/src/{main => docs}/asciidoc/dynamic-config/NomadCommandStringStructure.adoc (98%) rename docs/src/{main => docs}/asciidoc/dynamic-config/StoringClusterInformation.adoc (100%) rename docs/src/{main => docs}/asciidoc/dynamic-config/SyncAndRepair.adoc (100%) create mode 100644 dynamic-config/api/build.gradle delete mode 100755 dynamic-config/api/pom.xml rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/ConfigChangeHandler.java (97%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/ConfigChangeHandlerManager.java (97%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/DelegatingDynamicConfigNomadServer.java (98%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/DynamicConfigEventFiring.java (97%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/DynamicConfigEventService.java (94%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/DynamicConfigListener.java (98%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/DynamicConfigNomadServer.java (97%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/EmptyDynamicConfigNomadServer.java (98%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/EventRegistration.java (94%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/GroupPortMapper.java (94%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/InvalidConfigChangeException.java (95%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/InvalidLicenseException.java (95%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/LicenseParserDiscovery.java (96%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/LicenseService.java (97%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/NomadChangeProcessor.java (95%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/NomadPermissionChangeProcessor.java (96%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/NomadRoutingChangeProcessor.java (95%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/PathResolver.java (82%) rename dynamic-config/{server/server-api/src/main/java/org/terracotta/dynamic_config/server/api => api/src/main/java/org/terracotta/dynamic_config/api/server}/SelectingConfigChangeHandler.java (98%) create mode 100644 dynamic-config/cli/api/build.gradle create mode 100644 dynamic-config/cli/api/config/checkstyle/copyright-suppressions.xml rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/ActivateAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/AttachAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/Configuration.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationInput.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationMutationAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/DetachAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/DiagnosticAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/ExportAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/GetAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/ImportAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/Injector.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/LockConfigAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/LogAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/OssServiceProvider.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/RemoteAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/RepairAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/ServiceProvider.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/SetAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/TopologyAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnlockConfigAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnsetAction.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/converter/OperationType.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/converter/RepairMethod.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/json/CliJsonModule.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/DefaultNomadManager.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/LockAwareNomadManager.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/NomadManager.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartProgress.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartService.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopProgress.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopService.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.api.command.ServiceProvider (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/BaseTest.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/NomadTestHelper.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/SimpleNomadChange.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/command/ActivateActionTest.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/command/AttachActionTest.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/command/DetachActionTest.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/command/ImportActionTest.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/command/TopologyActionTest.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/json/TestModule.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/java/org/terracotta/dynamic_config/cli/api/restart/RestartServiceTest.java (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/resources/cluster1.json (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/resources/cluster2.json (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/resources/cluster3.json (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/resources/cluster4.json (100%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/resources/my-cluster.cfg (97%) rename dynamic-config/cli/{dynamic-config-cli-api => api}/src/test/resources/my-cluster.properties (100%) delete mode 100755 dynamic-config/cli/cli-support/pom.xml create mode 100644 dynamic-config/cli/config-tool/build.gradle delete mode 100755 dynamic-config/cli/config-tool/pom.xml delete mode 100644 dynamic-config/cli/dynamic-config-cli-api/pom.xml create mode 100644 dynamic-config/cli/jcommander/build.gradle rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/command/Command.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/command/CustomJCommander.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/command/LocalMainCommand.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/command/RestartCommand.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/command/Usage.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigurationInputConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/HostPortConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/IdentifierConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/RepairActionConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/ShapeConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/TimeUnitConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/main/java/org/terracotta/dynamic_config/cli/converter/TypeConverter.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/test/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverterTest.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/test/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitterTest.java (100%) rename dynamic-config/cli/{cli-support => jcommander}/src/test/java/org/terracotta/dynamic_config/cli/converter/ShapeConverterTest.java (100%) delete mode 100755 dynamic-config/cli/pom.xml create mode 100644 dynamic-config/cli/upgrade-tool-oss/build.gradle rename dynamic-config/cli/{upgrade-tools-oss => upgrade-tool-oss}/src/main/java/org/terracotta/dynamic_config/xml/oss/OssTcConfigMapper.java (100%) rename dynamic-config/cli/{upgrade-tools-oss => upgrade-tool-oss}/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.upgrade_tools.config_converter.xml.TcConfigMapper (100%) create mode 100644 dynamic-config/cli/upgrade-tool/build.gradle rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverter.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTool.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigPropertiesProcessor.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigRepoProcessor.java (98%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConversionFormat.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/command/ConvertAction.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/conversion/AbstractTcConfigMapper.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ConfigConversionException.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCode.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapper.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorParamKey.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputConfigurationContentException.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputException.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/ConvertCommand.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/deprecated/DeprecatedConvertCommand.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapper.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/CommonMapper.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/NonSubstitutingTCConfigurationParser.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapper.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapperDiscovery.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/XmlUtility.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/main/resources/logback.xml (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTest.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapperTest.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapperTest.java (100%) rename dynamic-config/cli/{upgrade-tools => upgrade-tool}/src/test/resources/tc-config.xml (100%) delete mode 100755 dynamic-config/cli/upgrade-tools-oss/pom.xml delete mode 100755 dynamic-config/cli/upgrade-tools/pom.xml delete mode 100755 dynamic-config/entities/management-entity/server/pom.xml create mode 100644 dynamic-config/entities/management/server/build.gradle rename dynamic-config/entities/{management-entity => management}/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementActiveEntity.java (97%) rename dynamic-config/entities/{management-entity => management}/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementCommonEntity.java (98%) rename dynamic-config/entities/{management-entity => management}/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementEntityServerService.java (98%) rename dynamic-config/entities/{management-entity => management}/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementPassiveEntity.java (96%) rename dynamic-config/entities/{management-entity => management}/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) delete mode 100755 dynamic-config/entities/nomad-entity/client/pom.xml delete mode 100755 dynamic-config/entities/nomad-entity/common/pom.xml delete mode 100755 dynamic-config/entities/nomad-entity/server/pom.xml create mode 100644 dynamic-config/entities/nomad/client/build.gradle rename dynamic-config/entities/{nomad-entity => nomad}/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntity.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityClientService.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityFactory.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityImpl.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityProvider.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService (100%) create mode 100644 dynamic-config/entities/nomad/common/build.gradle rename dynamic-config/entities/{nomad-entity => nomad}/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityConstants.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityMessage.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityResponse.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/common/src/main/java/org/terracotta/nomad/entity/common/NomadMessageCodec.java (100%) create mode 100644 dynamic-config/entities/nomad/server/build.gradle rename dynamic-config/entities/{nomad-entity => nomad}/server/src/main/java/org/terracotta/nomad/entity/server/NoConcurrency.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/server/src/main/java/org/terracotta/nomad/entity/server/NomadActiveServerEntity.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/server/src/main/java/org/terracotta/nomad/entity/server/NomadCommonServerEntity.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/server/src/main/java/org/terracotta/nomad/entity/server/NomadPassiveServerEntity.java (100%) rename dynamic-config/entities/{nomad-entity => nomad}/server/src/main/java/org/terracotta/nomad/entity/server/NomadServerEntityService.java (98%) rename dynamic-config/entities/{nomad-entity => nomad}/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) delete mode 100755 dynamic-config/entities/pom.xml delete mode 100755 dynamic-config/entities/topology-entity/client/pom.xml delete mode 100755 dynamic-config/entities/topology-entity/common/pom.xml delete mode 100755 dynamic-config/entities/topology-entity/server/pom.xml create mode 100644 dynamic-config/entities/topology/client/build.gradle rename dynamic-config/entities/{topology-entity => topology}/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntity.java (100%) rename dynamic-config/entities/{topology-entity => topology}/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityClientService.java (100%) rename dynamic-config/entities/{topology-entity => topology}/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityFactory.java (100%) rename dynamic-config/entities/{topology-entity => topology}/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityImpl.java (100%) rename dynamic-config/entities/{topology-entity => topology}/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityProvider.java (100%) rename dynamic-config/entities/{topology-entity => topology}/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService (100%) create mode 100644 dynamic-config/entities/topology/common/build.gradle rename dynamic-config/entities/{topology-entity => topology}/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Codec.java (100%) rename dynamic-config/entities/{topology-entity => topology}/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/DynamicTopologyEntityConstants.java (100%) rename dynamic-config/entities/{topology-entity => topology}/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Message.java (100%) rename dynamic-config/entities/{topology-entity => topology}/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Response.java (100%) rename dynamic-config/entities/{topology-entity => topology}/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Type.java (100%) rename dynamic-config/entities/{topology-entity => topology}/common/src/test/java/org/terracotta/dynamic_config/entity/topology/common/CodecTest.java (100%) create mode 100644 dynamic-config/entities/topology/server/build.gradle rename dynamic-config/entities/{topology-entity => topology}/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyActiveServerEntity.java (97%) rename dynamic-config/entities/{topology-entity => topology}/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyPassiveServerEntity.java (100%) rename dynamic-config/entities/{topology-entity => topology}/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyServerEntityService.java (98%) rename dynamic-config/entities/{topology-entity => topology}/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/UltimateConcurrency.java (100%) rename dynamic-config/entities/{topology-entity => topology}/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) create mode 100644 dynamic-config/json/build.gradle delete mode 100755 dynamic-config/json/pom.xml create mode 100644 dynamic-config/model/build.gradle delete mode 100755 dynamic-config/model/pom.xml delete mode 100755 dynamic-config/pom.xml create mode 100644 dynamic-config/repository/build.gradle create mode 100644 dynamic-config/repository/config/checkstyle/copyright-suppressions.xml rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/DynamicConfigNomadServerImpl.java (98%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/NomadServerFactory.java (98%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/SingleThreadedNomadServer.java (98%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilename.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/Config.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorage.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageAdapter.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageException.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputer.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorage.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/HashComputer.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorage.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManager.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadSanskritKeys.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/SanskritJsonModule.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritJsonMapper.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritMapVisitor.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadServerState.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadStateChange.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/BackwardCompatibilityTest.java (98%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilenameTest.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputerTest.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorageTest.java (98%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorageTest.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManagerTest.java (98%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/SanskritNomadServerStateTest.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/TestData.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/TestModule.java (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1/changes/append.log (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1/changes/hash0 (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1/cluster/default-node1.1.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_addition_change/changes/append.log (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_addition_change/changes/hash0 (100%) rename dynamic-config/{server/configuration-provider/src/test/resources/v1-config-migrated/node1/config => repository/src/test/resources/config-v1_with_addition_change}/changes/lock (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_addition_change/cluster/node1.1.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_addition_change/cluster/node1.2.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_deletion_change/changes/append.log (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_deletion_change/changes/hash0 (100%) rename dynamic-config/{server/configuration-provider/src/test/resources/v1-config-migrated/node2/config => repository/src/test/resources/config-v1_with_deletion_change}/changes/lock (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_deletion_change/cluster/node1.1.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_deletion_change/cluster/node1.2.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_setting/changes/append.log (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_setting/changes/hash0 (100%) rename dynamic-config/{server/configuration-provider/src/test/resources/v1-config/node1/config => repository/src/test/resources/config-v1_with_setting}/changes/lock (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_setting/cluster/node-1.1.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config-v1_with_setting/cluster/node-1.2.properties (100%) rename dynamic-config/{server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config => repository/src/test/resources/config-v2-10.7.0.0.315}/changes/append.log (100%) rename dynamic-config/{server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config => repository/src/test/resources/config-v2-10.7.0.0.315}/changes/hash0 (100%) rename dynamic-config/{server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config => repository/src/test/resources/config-v2-10.7.0.0.315}/cluster/node1.1.properties (100%) rename dynamic-config/{server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config => repository/src/test/resources/config-v2-10.7.0.0.315}/cluster/node1.2.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/config.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/simplelogger.properties (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/topology.json (100%) rename dynamic-config/{server/configuration-repository => repository}/src/test/resources/topology_with_setting.json (100%) create mode 100644 dynamic-config/server/api/build.gradle rename dynamic-config/server/{server-api => api}/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigExtension.java (100%) create mode 100644 dynamic-config/server/config-provider/build.gradle create mode 100644 dynamic-config/server/config-provider/config/checkstyle/copyright-suppressions.xml create mode 100644 dynamic-config/server/config-provider/config/checkstyle/suppressions.xml rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/DynamicConfigConfigurationProvider.java (96%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditListener.java (97%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditService.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeApplicator.java (98%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeHandlerManagerImpl.java (95%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigEventServiceImpl.java (92%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigServiceImpl.java (98%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Licensing.java (97%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadMode.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadServerManager.java (96%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ParameterSubstitutor.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Topologies.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ApplicabilityNomadChangeProcessor.java (97%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessor.java (96%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/DefaultNomadRoutingChangeProcessor.java (95%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/FormatUpgradeNomadChangeProcessor.java (95%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockAwareNomadChangeProcessor.java (98%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockConfigNomadChangeProcessor.java (95%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/MultiSettingNomadChangeProcessor.java (97%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeAdditionNomadChangeProcessor.java (95%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeRemovalNomadChangeProcessor.java (95%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NomadPermissionChangeProcessorImpl.java (94%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/SettingNomadChangeProcessor.java (93%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeAdditionNomadChangeProcessor.java (94%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeRemovalNomadChangeProcessor.java (96%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/UnlockConfigNomadChangeProcessor.java (95%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessor.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigFileCommandLineProcessor.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigRepoCommandLineProcessor.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitor.java (99%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleCommandLineProcessor.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleParamsUtils.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CustomJCommander.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DefaultGroupPortMapperImpl.java (93%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfiguration.java (97%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/MainCommandLineProcessor.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/Options.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/StartupConfiguration.java (98%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsing.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsingImpl.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/deprecated/DeprecatedOptionsParsingImpl.java (99%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Check.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigNomadSynchronizer.java (99%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigSyncData.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSync.java (98%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Require.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/resources/META-INF/services/org.terracotta.configuration.ConfigurationProvider (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.GroupPortMapper (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/java/org/terracotta/dynamic_config/server/configuration/service/DesynchronizedNomadConfigTest.java (97%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessorTest.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessorChainTest.java (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitorTest.java (98%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfigurationTest.java (99%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSyncTest.java (99%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/simplelogger.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node1/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node1/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-provider/src/test/resources/v1-config/node2 => config-provider/src/test/resources/v1-config-migrated/node1}/config/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node1/config/cluster/node1.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node1/config/cluster/node1.2.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node2/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node2/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1 => config-provider/src/test/resources/v1-config-migrated/node2}/config/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node2/config/cluster/node2.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config-migrated/node2/config/cluster/node2.2.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config/node1/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config/node1/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2 => config-provider/src/test/resources/v1-config/node1}/config/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config/node1/config/cluster/node1.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config/node2/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config/node2/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-provider/src/test/resources/v2-config/node1 => config-provider/src/test/resources/v1-config/node2}/config/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v1-config/node2/config/cluster/node2.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-provider/src/test/resources/v2-config/node2 => config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1}/config/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.2.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-repository/src/test/resources/config-v1_with_addition_change => config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config}/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.2.properties (100%) rename dynamic-config/server/{configuration-repository/src/test/resources/config-v2-10.7.0.0.315 => config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config}/changes/append.log (100%) rename dynamic-config/server/{configuration-repository/src/test/resources/config-v2-10.7.0.0.315 => config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config}/changes/hash0 (100%) rename dynamic-config/server/{configuration-repository/src/test/resources/config-v2-10.7.0.0.315 => config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config}/cluster/node1.1.properties (100%) rename dynamic-config/server/{configuration-repository/src/test/resources/config-v2-10.7.0.0.315 => config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config}/cluster/node1.2.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.2.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config/node1/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config/node1/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-repository/src/test/resources/config-v1_with_deletion_change => config-provider/src/test/resources/v2-config/node1/config}/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config/node1/config/cluster/node-1-1.1.properties (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config/node2/config/changes/append.log (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config/node2/config/changes/hash0 (100%) rename dynamic-config/server/{configuration-repository/src/test/resources/config-v1_with_setting => config-provider/src/test/resources/v2-config/node2/config}/changes/lock (100%) rename dynamic-config/server/{configuration-provider => config-provider}/src/test/resources/v2-config/node2/config/cluster/node-1-2.1.properties (100%) delete mode 100755 dynamic-config/server/configuration-provider/pom.xml delete mode 100755 dynamic-config/server/configuration-repository/pom.xml delete mode 100755 dynamic-config/server/pom.xml delete mode 100755 dynamic-config/server/server-api/pom.xml create mode 100644 dynamic-config/server/services/build.gradle delete mode 100755 dynamic-config/server/services/pom.xml create mode 100644 dynamic-config/testing/entity/build.gradle delete mode 100755 dynamic-config/testing/entity/pom.xml create mode 100644 dynamic-config/testing/galvan/build.gradle rename {galvan-platform-support => dynamic-config/testing/galvan}/src/main/java/org/terracotta/testing/api/BasicTestClusterConfiguration.java (99%) rename {galvan-platform-support => dynamic-config/testing/galvan}/src/main/java/org/terracotta/testing/config/AbstractStartupCommandBuilder.java (100%) rename {galvan-platform-support => dynamic-config/testing/galvan}/src/main/java/org/terracotta/testing/config/ConfigFileStartupBuilder.java (100%) rename {galvan-platform-support => dynamic-config/testing/galvan}/src/main/java/org/terracotta/testing/config/ConfigRepoStartupBuilder.java (100%) rename {galvan-platform-support => dynamic-config/testing/galvan}/src/main/java/org/terracotta/testing/config/DefaultPortAllocator.java (100%) rename {galvan-platform-support => dynamic-config/testing/galvan}/src/main/java/org/terracotta/testing/config/PortAllocator.java (100%) rename {galvan-platform-support => dynamic-config/testing/galvan}/src/main/resources/tc-logback.xml (100%) delete mode 100755 dynamic-config/testing/pom.xml create mode 100644 dynamic-config/testing/support/build.gradle delete mode 100755 dynamic-config/testing/support/pom.xml delete mode 100644 galvan-platform-support/pom.xml create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat delete mode 100755 healthchecker-entity/api/pom.xml delete mode 100755 healthchecker-entity/client-impl/pom.xml delete mode 100755 healthchecker-entity/common/pom.xml delete mode 100755 healthchecker-entity/pom.xml delete mode 100755 healthchecker-entity/server-impl/pom.xml create mode 100644 healthchecker/client/build.gradle rename {healthchecker-entity/api => healthchecker/client}/src/main/java/org/terracotta/healthchecker/HealthCheck.java (99%) rename {healthchecker-entity/client-impl => healthchecker/client}/src/main/java/org/terracotta/healthchecker/HealthCheckClientService.java (99%) rename {healthchecker-entity/client-impl => healthchecker/client}/src/main/java/org/terracotta/healthchecker/HealthCheckerClient.java (99%) rename {healthchecker-entity/api => healthchecker/client}/src/main/java/org/terracotta/healthchecker/HealthCheckerFactory.java (98%) rename {healthchecker-entity/api => healthchecker/client}/src/main/java/org/terracotta/healthchecker/TimeoutListener.java (98%) rename {healthchecker-entity/api => healthchecker/client}/src/main/java/org/terracotta/healthchecker/TimeoutManager.java (95%) rename {healthchecker-entity/client-impl => healthchecker/client}/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService (100%) rename {healthchecker-entity/api => healthchecker/client}/src/test/java/org/terracotta/healthchecker/HealthCheckerFactoryTest.java (99%) create mode 100644 healthchecker/common/build.gradle rename {healthchecker-entity => healthchecker}/common/src/main/java/org/terracotta/healthchecker/HealthCheckReq.java (99%) rename {healthchecker-entity => healthchecker}/common/src/main/java/org/terracotta/healthchecker/HealthCheckRsp.java (99%) rename {healthchecker-entity => healthchecker}/common/src/main/java/org/terracotta/healthchecker/HealthCheckerCodec.java (99%) create mode 100644 healthchecker/server/build.gradle rename {healthchecker-entity/server-impl => healthchecker/server}/src/main/java/org/terracotta/healthchecker/HealthCheckServerEntityService.java (99%) rename {healthchecker-entity/server-impl => healthchecker/server}/src/main/java/org/terracotta/healthchecker/HealthCheckerServer.java (99%) rename {healthchecker-entity/server-impl => healthchecker/server}/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) delete mode 100755 kit/pom.xml delete mode 100644 kit/src/main/assembly/platform-kit.xml delete mode 100755 layout/pom.xml delete mode 100644 layout/src/main/kit/tools/bin/config-tool.bat delete mode 100644 layout/src/main/kit/tools/bin/config-tool.sh delete mode 100644 layout/src/main/kit/tools/voter/bin/start-tc-voter.bat delete mode 100644 layout/src/main/kit/tools/voter/bin/start-tc-voter.sh delete mode 100755 lease/api/pom.xml create mode 100644 lease/client/build.gradle rename lease/{api => client}/src/main/java/org/terracotta/lease/CleaningLeaseMaintainer.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/Lease.java (100%) rename lease/{entity-api => client}/src/main/java/org/terracotta/lease/LeaseAcquirer.java (100%) rename lease/{entity-client => client}/src/main/java/org/terracotta/lease/LeaseAcquirerClientService.java (100%) rename lease/{entity-client => client}/src/main/java/org/terracotta/lease/LeaseAcquirerImpl.java (100%) rename lease/{entity-client => client}/src/main/java/org/terracotta/lease/LeaseEndpointDelegate.java (100%) rename lease/{entity-api => client}/src/main/java/org/terracotta/lease/LeaseException.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/LeaseExpiryConnectionKillingThread.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/LeaseImpl.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/LeaseInternal.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/LeaseMaintainer.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/LeaseMaintainerFactory.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/LeaseMaintainerImpl.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/LeaseMaintenanceThread.java (100%) rename lease/{entity-client => client}/src/main/java/org/terracotta/lease/LeaseReconnectDataSupplier.java (100%) rename lease/{entity-client => client}/src/main/java/org/terracotta/lease/LeaseReconnectListener.java (100%) rename lease/{entity-api => client}/src/main/java/org/terracotta/lease/LeaseReconnectingException.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/NullLease.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/ProxyLeaseReconnectListener.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/connection/BasicLeasedConnection.java (99%) rename lease/{api => client}/src/main/java/org/terracotta/lease/connection/LeasedConnection.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/connection/LeasedConnectionFactory.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/connection/LeasedConnectionService.java (100%) rename lease/{api => client}/src/main/java/org/terracotta/lease/connection/LeasedConnectionServiceImpl.java (100%) rename lease/{entity-client => client}/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService (100%) rename lease/{api => client}/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/CleaningLeaseMaintainerTest.java (100%) rename lease/{entity-client => client}/src/test/java/org/terracotta/lease/LeaseAcquirerClientServiceTest.java (100%) rename lease/{entity-client => client}/src/test/java/org/terracotta/lease/LeaseAcquirerImplTest.java (100%) rename lease/{entity-client => client}/src/test/java/org/terracotta/lease/LeaseEndpointDelegateTest.java (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/LeaseExpiryConnectionKillingThreadTest.java (94%) rename lease/{api => client}/src/test/java/org/terracotta/lease/LeaseImplTest.java (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/LeaseMaintainerFactoryTest.java (96%) rename lease/{api => client}/src/test/java/org/terracotta/lease/LeaseMaintainerImplTest.java (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/LeaseMaintenanceThreadTest.java (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/NullLeaseTest.java (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/ProxyLeaseReconnectListenerTest.java (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/connection/LeasedConnectionFactoryTest.java (100%) rename lease/{api => client}/src/test/java/org/terracotta/lease/connection/TestLeasedConnectionService.java (100%) rename lease/{api => client}/src/test/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService (100%) create mode 100644 lease/common/build.gradle delete mode 100755 lease/common/pom.xml rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/IgnoredLeaseResponse.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseAcquirerAvailable.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseAcquirerCodec.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseMessage.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseMessageDecoder.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseMessageType.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseReconnectData.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseReconnectFinished.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseRequest.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseRequestResult.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseResponse.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseResponseDecoder.java (100%) rename lease/{entity-common => common}/src/main/java/org/terracotta/lease/LeaseResponseType.java (100%) rename lease/{entity-common => common}/src/test/java/org/terracotta/lease/LeaseAcquirerCodecTest.java (100%) rename lease/{entity-common => common}/src/test/java/org/terracotta/lease/LeaseReconnectDataTest.java (100%) rename lease/{entity-common => common}/src/test/java/org/terracotta/lease/LeaseRequestResultTest.java (100%) delete mode 100755 lease/entity-api/pom.xml delete mode 100755 lease/entity-client/pom.xml delete mode 100755 lease/entity-common/pom.xml delete mode 100755 lease/entity-server/pom.xml delete mode 100644 lease/passthrough-leased-connection-api/pom.xml create mode 100644 lease/passthrough/build.gradle rename lease/{passthrough-leased-connection-api => passthrough}/src/main/java/org/terracotta/passthrough/connection/PassthroughLeasedConnectionService.java (100%) rename lease/{passthrough-leased-connection-api => passthrough}/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService (100%) rename lease/{passthrough-leased-connection-api => passthrough}/src/test/java/org/terracotta/passthrough/connection/PassthroughLeaseConnectionTest.java (100%) rename lease/{passthrough-leased-connection-api => passthrough}/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService (100%) delete mode 100755 lease/pom.xml create mode 100644 lease/server/build.gradle create mode 100644 lease/server/config/checkstyle/suppressions.xml rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/ActiveLeaseAcquirer.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/LeaseAcquirerServerService.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/PassiveLeaseAcquirer.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseConfigChangeHandler.java (94%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseConstants.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseDynamicConfigExtension.java (96%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseResult.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseService.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseServiceConfiguration.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseServiceImpl.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/LeaseServiceProvider.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloser.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloserImpl.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloser.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/config/LeaseConfiguration.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/config/LeaseElement.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/config/ValidationFailureId.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/monitor/ExpiredLease.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/monitor/Lease.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/monitor/LeaseMonitorThread.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/monitor/LeaseState.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/monitor/ReconnectionLease.java (100%) rename lease/{entity-server => server}/src/main/java/org/terracotta/lease/service/monitor/ValidLease.java (100%) rename lease/{entity-server => server}/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension (100%) rename lease/{entity-server => server}/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) rename lease/{entity-server => server}/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/ActiveLeaseAcquirerTest.java (99%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/LeaseAcquirerServerServiceTest.java (95%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/MockStateDumpCollector.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/LeaseConfigChangeHandlerTest.java (97%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/LeaseResultTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/LeaseServiceConfigurationTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/LeaseServiceImplTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/LeaseServiceProviderTest.java (95%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/LeaseServiceTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloseImplTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloserTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloserTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/config/LeaseConfigValidatorTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationParserTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/monitor/ExpiredLeaseTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/monitor/LeaseMonitorThreadTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/monitor/LeaseStateTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/monitor/ReconnectionLeaseTest.java (100%) rename lease/{entity-server => server}/src/test/java/org/terracotta/lease/service/monitor/ValidLeaseTest.java (100%) rename lease/{entity-server/src/main/java/org/terracotta/lease/service => server/src/xml/java/org/terracotta/lease}/config/LeaseConfigValidator.java (100%) rename lease/{entity-server/src/main/java/org/terracotta/lease/service => server/src/xml/java/org/terracotta/lease}/config/LeaseConfigurationParser.java (100%) rename lease/{entity-server/src/main => server/src/xml}/resources/META-INF/services/org.terracotta.config.service.ServiceConfigParser (100%) create mode 100644 lease/server/src/xml/schema/catalog.cat rename lease/{entity-server/src/main/resources => server/src/xml/schema}/lease-service.xsd (100%) delete mode 100755 lease/system-test/pom.xml create mode 100644 lease/system-tests/build.gradle rename lease/{system-test => system-tests}/src/test/java/org/terracotta/lease/LeaseSystemTest.java (97%) rename lease/{system-test => system-tests}/src/test/java/org/terracotta/lease/LeaseTestUtil.java (100%) rename lease/{system-test => system-tests}/src/test/java/org/terracotta/lease/NoLeaseConfigurationTest.java (100%) rename lease/{system-test => system-tests}/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService (100%) delete mode 100644 management/cluster-topology/README.adoc delete mode 100755 management/cluster-topology/pom.xml rename management/{nms-agent-entity => entities/nms-agent}/README.adoc (100%) create mode 100644 management/entities/nms-agent/client/build.gradle rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/java/org/terracotta/management/entity/nms/agent/client/DefaultNmsAgentService.java (100%) rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntity.java (100%) rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityClientService.java (100%) rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityFactory.java (100%) rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentService.java (100%) rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticProvider.java (100%) rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticUtility.java (100%) rename management/{nms-agent-entity/nms-agent-entity-client => entities/nms-agent/client}/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService (100%) create mode 100644 management/entities/nms-agent/common/build.gradle rename management/{nms-agent-entity/nms-agent-entity-common => entities/nms-agent/common}/src/main/java/org/terracotta/management/entity/nms/agent/NmsAgent.java (100%) rename management/{nms-agent-entity/nms-agent-entity-common => entities/nms-agent/common}/src/main/java/org/terracotta/management/entity/nms/agent/ReconnectData.java (100%) create mode 100644 management/entities/nms-agent/server/build.gradle rename management/{nms-agent-entity/nms-agent-entity-server => entities/nms-agent/server}/src/main/java/org/terracotta/management/entity/nms/agent/server/ActiveNmsAgentServerEntity.java (100%) rename management/{nms-agent-entity/nms-agent-entity-server => entities/nms-agent/server}/src/main/java/org/terracotta/management/entity/nms/agent/server/NmsAgentEntityServerService.java (100%) rename management/{nms-agent-entity/nms-agent-entity-server => entities/nms-agent/server}/src/main/java/org/terracotta/management/entity/nms/agent/server/PassiveNmsAgentServerEntity.java (100%) rename management/{nms-agent-entity/nms-agent-entity-server => entities/nms-agent/server}/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) create mode 100644 management/entities/nms/client/build.gradle rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/DefaultNmsService.java (99%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/IllegalManagementCallException.java (100%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/ManagementCall.java (100%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/NmsEntity.java (100%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityClientService.java (100%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityFactory.java (100%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/NmsService.java (100%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/java/org/terracotta/management/entity/nms/client/VoltronManagementCall.java (100%) rename management/{nms-entity/nms-entity-client => entities/nms/client}/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService (100%) create mode 100644 management/entities/nms/common/build.gradle rename management/{nms-entity/nms-entity-common => entities/nms/common}/src/main/java/org/terracotta/management/entity/nms/Nms.java (100%) rename management/{nms-entity/nms-entity-common => entities/nms/common}/src/main/java/org/terracotta/management/entity/nms/NmsConfig.java (100%) rename management/{nms-entity/nms-entity-common => entities/nms/common}/src/main/java/org/terracotta/management/entity/nms/NmsVersion.java (100%) create mode 100644 management/entities/nms/server/build.gradle rename management/{nms-entity/nms-entity-server => entities/nms/server}/src/main/java/org/terracotta/management/entity/nms/server/ActiveNmsServerEntity.java (99%) rename management/{nms-entity/nms-entity-server => entities/nms/server}/src/main/java/org/terracotta/management/entity/nms/server/NmsCallback.java (100%) rename management/{nms-entity/nms-entity-server => entities/nms/server}/src/main/java/org/terracotta/management/entity/nms/server/NmsEntityServerService.java (100%) rename management/{nms-entity/nms-entity-server => entities/nms/server}/src/main/java/org/terracotta/management/entity/nms/server/PassiveNmsServerEntity.java (98%) rename management/{nms-entity/nms-entity-server => entities/nms/server}/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) delete mode 100755 management/management-model/pom.xml delete mode 100644 management/management-registry/README.adoc delete mode 100755 management/management-registry/pom.xml rename management/{management-model => model}/README.adoc (100%) create mode 100644 management/model/build.gradle rename management/{management-model => model}/src/main/java/org/terracotta/management/model/call/ContextualCall.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/call/ContextualReturn.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/call/Parameter.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/capabilities/Capability.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/capabilities/DefaultCapability.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/capabilities/context/CapabilityContext.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/capabilities/descriptors/CallDescriptor.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/capabilities/descriptors/Descriptor.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/capabilities/descriptors/Settings.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/capabilities/descriptors/StatisticDescriptor.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/AbstractManageableNode.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/AbstractNode.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/Client.java (99%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/cluster/ClientIdentifier.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/Cluster.java (99%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/Connection.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/Endpoint.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/ManagementRegistry.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/Node.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/Server.java (99%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/ServerEntity.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/ServerEntityIdentifier.java (100%) rename management/{cluster-topology => model}/src/main/java/org/terracotta/management/model/cluster/Stripe.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/context/Context.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/context/ContextContainer.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/context/Contextual.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/message/DefaultManagementCallMessage.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/message/DefaultMessage.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/message/ManagementCallMessage.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/message/Message.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/notification/ContextualNotification.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/stats/ContextualStatistics.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/stats/DelegatingSample.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/stats/DelegatingStatistic.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/stats/Sample.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/stats/Statistic.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/stats/StatisticRegistry.java (100%) rename management/{management-model => model}/src/main/java/org/terracotta/management/model/stats/StatisticType.java (100%) rename management/{cluster-topology => model}/src/test/java/org/terracotta/management/model/cluster/AbstractTest.java (100%) rename management/{management-model => model}/src/test/java/org/terracotta/management/model/cluster/ClientIdentifierTest.java (100%) rename management/{cluster-topology => model}/src/test/java/org/terracotta/management/model/cluster/ClusterTest.java (100%) rename management/{management-model => model}/src/test/java/org/terracotta/management/model/cluster/SerializationTest.java (100%) rename management/{management-model => model}/src/test/java/org/terracotta/management/model/cluster/SettingsTest.java (100%) rename management/{cluster-topology => model}/src/test/resources/cluster.json (100%) delete mode 100755 management/monitoring-service-api/pom.xml delete mode 100755 management/monitoring-service/pom.xml delete mode 100755 management/nms-agent-entity/nms-agent-entity-client/pom.xml delete mode 100755 management/nms-agent-entity/nms-agent-entity-common/pom.xml delete mode 100755 management/nms-agent-entity/nms-agent-entity-server/pom.xml delete mode 100755 management/nms-agent-entity/pom.xml delete mode 100755 management/nms-entity/nms-entity-client/pom.xml delete mode 100755 management/nms-entity/nms-entity-common/pom.xml delete mode 100755 management/nms-entity/nms-entity-server/pom.xml delete mode 100755 management/nms-entity/pom.xml delete mode 100755 management/pom.xml create mode 100644 management/registry/build.gradle rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/AbstractManagementProvider.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/CallQuery.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/CapabilityManagement.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/CapabilityManagementSupport.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/CombiningCapabilityManagementSupport.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultCallQuery.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultCallQueryBuilder.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultCapabilityManagement.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultExposedObject.java (99%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultManagementRegistry.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultResultSet.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultStatisticQuery.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultStatisticQueryBuilder.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultStatisticsExposedObject.java (99%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/DefaultStatisticsManagementProvider.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/ExposedObject.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/ManagementProvider.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/ManagementProviderAdapter.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/ManagementRegistry.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/Named.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/Query.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/QueryBuilder.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/RequiredContext.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/ResultSet.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/StatisticQuery.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/action/AbstractActionManagementProvider.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/action/Exposed.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/collect/DefaultStatisticCollector.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/collect/StatisticCollector.java (100%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/collect/StatisticCollectorProvider.java (99%) rename management/{management-registry => registry}/src/main/java/org/terracotta/management/registry/collect/StatisticProvider.java (100%) rename management/{management-registry => registry}/src/test/java/org/terracotta/management/registry/DefaultCallQueryTest.java (100%) rename management/{management-registry => registry}/src/test/java/org/terracotta/management/registry/ManagementRegistryTest.java (100%) rename management/{management-registry => registry}/src/test/java/org/terracotta/management/registry/action/ActionProviderTest.java (100%) rename management/{management-registry => registry}/src/test/java/org/terracotta/management/registry/action/MyManagementProvider.java (100%) rename management/{management-registry => registry}/src/test/java/org/terracotta/management/registry/action/MyObject.java (100%) rename management/{management-registry => registry}/src/test/java/org/terracotta/management/registry/json/TestModule.java (100%) rename management/{management-registry => registry}/src/test/resources/capabilities.json (100%) create mode 100644 management/sequence-generator/build.gradle delete mode 100755 management/sequence-generator/pom.xml rename management/{monitoring-service-api => server/api}/README.adoc (100%) create mode 100644 management/server/api/build.gradle rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/AbstractManagementRegistryConfiguration.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringService.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringServiceConfiguration.java (99%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistry.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistryConfiguration.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/EntityMonitoringService.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/ManageableServerComponent.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/ManagementExecutor.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/ManagementService.java (99%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/ManagementServiceConfiguration.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/ServerManagementRegistryConfiguration.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/SharedEntityManagementRegistry.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractEntityManagementProvider.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractExposedStatistics.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractStatisticsManagementProvider.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBinding.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBindingManagementProvider.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBinding.java (99%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBindingManagementProvider.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/MonitoringServiceAware.java (100%) rename management/{monitoring-service-api => server/api}/src/main/java/org/terracotta/management/service/monitoring/registry/provider/StatisticCollectorManagementProvider.java (100%) rename management/{monitoring-service => server/services}/README.adoc (100%) create mode 100644 management/server/services/build.gradle rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultClientMonitoringService.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityManagementRegistry.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityMonitoringService.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultFiringService.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementDataListener.java (98%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementService.java (99%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultSharedEntityManagementRegistry.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/DefaultStatisticService.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/ExecutionChain.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/ExecutorUtil.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/FiringService.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringDataListenerAdapter.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringPlatformListenerAdapter.java (99%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/ManagementDataListener.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/ManagementMessage.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/MessageSource.java (97%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/MonitoringServiceProvider.java (99%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/Notification.java (99%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/PlatformListener.java (99%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/StatisticService.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/TopologyEventListener.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/TopologyService.java (100%) rename management/{monitoring-service => server/services}/src/main/java/org/terracotta/management/service/monitoring/Utils.java (100%) rename management/{monitoring-service => server/services}/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider (100%) rename management/{monitoring-service => server/services}/src/test/java/org/terracotta/management/service/monitoring/ManagementExecutorAdapter.java (99%) rename management/{monitoring-service => server/services}/src/test/java/org/terracotta/management/service/monitoring/ManagementRegistryServiceTest.java (100%) rename management/{monitoring-service => server/services}/src/test/java/org/terracotta/management/service/monitoring/MyManagementProvider.java (100%) rename management/{monitoring-service => server/services}/src/test/java/org/terracotta/management/service/monitoring/MyObject.java (100%) rename management/{monitoring-service => server/services}/src/test/java/org/terracotta/management/service/monitoring/MyPlatformConfiguration.java (100%) rename management/{monitoring-service => server/services}/src/test/java/org/terracotta/management/service/monitoring/UtilsTest.java (100%) rename management/{monitoring-service => server/services}/src/test/java/org/terracotta/management/service/monitoring/VoltronMonitoringServiceTest.java (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-1.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-10.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-2.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-3.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-4.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-5.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-6.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-7.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-8.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/cluster-9.json (100%) rename management/{monitoring-service => server/services}/src/test/resources/logback.xml (100%) delete mode 100755 management/testing/doc/pom.xml create mode 100644 management/testing/entity/build.gradle rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/Cache.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/CacheOperationOutcomes.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/CacheEntity.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityClientService.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityFactory.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/CacheFactory.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/ClientCache.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/management/CacheCallManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/management/CacheSettingsManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticCollectorManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticsManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/client/management/Management.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/ActiveCacheServerEntity.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/CacheEntityServerService.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/CacheSync.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/MapConfiguration.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/MapProvider.java (99%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/MapRelease.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/PassiveCacheServerEntity.java (99%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/ServerCache.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateBinding.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateSettingsManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/management/Management.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheBinding.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheCallManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheSettingsManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheStatisticsManagementProvider.java (100%) rename management/testing/{sample-entity => entity}/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService (100%) rename management/testing/{sample-entity => entity}/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService (100%) rename management/testing/{sample-entity => entity}/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider (100%) rename management/testing/{sample-entity => entity}/src/test/java/org/terracotta/management/entity/sample/AbstractTest.java (94%) rename management/testing/{sample-entity => entity}/src/test/java/org/terracotta/management/entity/sample/CacheEntityFeaturesTest.java (100%) rename management/testing/{sample-entity => entity}/src/test/java/org/terracotta/management/entity/sample/ClientCacheLocalManagementTest.java (100%) rename management/testing/{sample-entity => entity}/src/test/java/org/terracotta/management/entity/sample/json/TestModule.java (100%) rename management/testing/{sample-entity => entity}/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService (100%) rename management/testing/{sample-entity => entity}/src/test/resources/client-descriptors.json (100%) rename management/testing/{integration-tests => entity}/src/test/resources/logback.xml (100%) rename management/testing/{doc/README.adoc => examples/README.md} (100%) create mode 100644 management/testing/examples/build.gradle rename management/testing/{doc => examples}/src/main/java/org/terracotta/management/doc/DoManagementCall.java (100%) rename management/testing/{doc => examples}/src/main/java/org/terracotta/management/doc/ReadNotifications.java (100%) rename management/testing/{doc => examples}/src/main/java/org/terracotta/management/doc/ReadStatistics.java (100%) rename management/testing/{doc => examples}/src/main/java/org/terracotta/management/doc/ReadTopology.java (100%) rename management/testing/{doc => examples}/src/main/java/org/terracotta/management/doc/StartSampleEntity.java (92%) rename management/testing/{doc => examples}/src/main/java/org/terracotta/management/doc/Utils.java (100%) rename management/testing/{doc => examples}/src/main/resources/logback.xml (100%) rename management/testing/{doc => examples}/src/main/resources/tc-config.xml (100%) delete mode 100644 management/testing/sample-entity/.gitignore delete mode 100755 management/testing/sample-entity/pom.xml delete mode 100755 mvnw delete mode 100755 mvnw.cmd delete mode 100755 offheap-resource/pom.xml create mode 100644 platform-base/build.gradle delete mode 100755 platform-base/pom.xml create mode 100644 platform-layout/build.gradle.kts rename {layout/src/main/kit => platform-layout/src/main/dist}/server/conf/tc-cluster.cfg (100%) create mode 100644 resources/data-root/build.gradle create mode 100644 resources/data-root/config/checkstyle/suppressions.xml rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/DataDirConfigChangeHandler.java (96%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/DataDirs.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/DataDirsConfig.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/DataDirsConfigImpl.java (89%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/DataDirsConfigurationException.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/DataDirsWithServerName.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/DataRootsDynamicConfigExtension.java (95%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/MetaDataDirConfigChangeHandler.java (95%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/MoveOperation.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/Utils.java (95%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/ValidationFailureId.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/management/DataRootBinding.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/management/DataRootSettingsManagementProvider.java (100%) rename {data-root-resource => resources/data-root}/src/main/java/org/terracotta/config/data_roots/management/DataRootStatisticsManagementProvider.java (100%) rename {data-root-resource => resources/data-root}/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension (100%) rename {data-root-resource => resources/data-root}/src/test/java/org/terracotta/config/data_roots/DataDirConfigChangeHandlerTest.java (98%) rename {data-root-resource => resources/data-root}/src/test/java/org/terracotta/config/data_roots/DataDirsConfigImplTest.java (97%) rename {data-root-resource => resources/data-root}/src/test/java/org/terracotta/config/data_roots/DataRootValidatorTest.java (100%) rename {data-root-resource => resources/data-root}/src/test/java/org/terracotta/config/data_roots/PassthroughIntegrationTest.java (96%) rename {data-root-resource => resources/data-root}/src/test/java/org/terracotta/config/data_roots/TcConfigWithDataDirsTest.java (100%) rename {data-root-resource => resources/data-root}/src/test/resources/configs/tc-config-data.xml (100%) rename {data-root-resource/src/main => resources/data-root/src/xml}/java/org/terracotta/config/data_roots/DataRootConfigParser.java (76%) rename {data-root-resource/src/main => resources/data-root/src/xml}/java/org/terracotta/config/data_roots/DataRootValidator.java (100%) rename {data-root-resource/src/main => resources/data-root/src/xml}/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser (100%) create mode 100644 resources/data-root/src/xml/schema/catalog.cat rename {data-root-resource/src/main/resources => resources/data-root/src/xml/schema}/data-roots-config.xsd (100%) create mode 100644 resources/offheap/build.gradle create mode 100644 resources/offheap/config/checkstyle/suppressions.xml rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/CapacityChangeHandler.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapDynamicConfigExtension.java (96%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapResource.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapResourceIdentifier.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapResourceImpl.java (99%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapResources.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapResourcesProvider.java (85%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapUsageEvent.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventImpl.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventType.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffHeapUsageListener.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/OffheapResourceConfigChangeHandler.java (96%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/PhysicalMemory.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/ValidationFailureId.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceBinding.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceSettingsManagementProvider.java (100%) rename {offheap-resource => resources/offheap}/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceStatisticsManagementProvider.java (100%) rename {offheap-resource => resources/offheap}/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension (100%) rename {offheap-resource => resources/offheap}/src/test/java/org/terracotta/offheapresource/OffHeapConfigValidatorTest.java (100%) rename {offheap-resource => resources/offheap}/src/test/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParserTest.java (94%) rename {offheap-resource => resources/offheap}/src/test/java/org/terracotta/offheapresource/OffHeapResourceIdentifierTest.java (100%) rename {offheap-resource => resources/offheap}/src/test/java/org/terracotta/offheapresource/OffHeapResourceTest.java (100%) rename {offheap-resource => resources/offheap}/src/test/java/org/terracotta/offheapresource/OffHeapResourcesProviderTest.java (89%) rename {offheap-resource => resources/offheap}/src/test/java/org/terracotta/offheapresource/PhysicalMemoryTest.java (92%) rename {offheap-resource => resources/offheap}/src/test/java/org/terracotta/offheapresource/TcConfigWithOffheapTest.java (100%) rename {offheap-resource => resources/offheap}/src/test/resources/configs/no-resources.xml (100%) rename {offheap-resource => resources/offheap}/src/test/resources/configs/tc-config-offheap.xml (100%) rename {offheap-resource => resources/offheap}/src/test/resources/configs/valid.xml (100%) rename {offheap-resource/src/main => resources/offheap/src/xml}/java/org/terracotta/offheapresource/OffHeapConfigValidator.java (93%) rename {offheap-resource/src/main => resources/offheap/src/xml}/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParser.java (67%) rename {offheap-resource/src/main => resources/offheap/src/xml}/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser (100%) create mode 100644 resources/offheap/src/xml/schema/catalog.cat rename {offheap-resource/src/main/resources => resources/offheap/src/xml/schema}/offheap-resource.xsd (100%) delete mode 100755 runnel/pom.xml create mode 100644 settings.gradle rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/pom.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/ConfigConversionIT.java (99%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandFail1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithMultipleVoter1x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithVoter1x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x4IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachStripeIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigRepoIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigSyncIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand2x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommandWithVoter1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachStripeIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticMode1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticsIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DynamicTopologyEntityIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/GetCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/LockConfigIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/PassiveRedirection1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Scaling2x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand2x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SimulationHandlerIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/UnsetCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Voter1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand2x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activation/AutoActivateNewPassive1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6CliActivationIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6ConfigActivationIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/activation/PreActivatedNodeStartup1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachDetachCommand2x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand2x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DiagnosticIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/ImportCommand2x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/Ipv6ConfigIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/NodeStartupIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand2x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/TopologyServiceIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/UnsetCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x4IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x3IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/AttachCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DetachCommand1x2IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DiagnosticCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/GetCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/RepairCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/SetCommand1x1IT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/java/org/terracotta/dynamic_config/system_tests/permission/SetUnsetSettingsIT.java (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files-new-format/single-stripe.cfg (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files-new-format/single-stripe_invalid1.cfg (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files-new-format/single-stripe_invalid2.cfg (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/1x1-no-fo.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/1x1.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/1x2-diff.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/1x2-no-fo.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/1x2.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/1x2_default_stripe_name.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/import2x1.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/single-stripe-no-fo.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/single-stripe.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/single-stripe_invalid1.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/single-stripe_invalid2.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/single-stripe_multi-node-no-fo.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/single-stripe_multi-node.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/config-property-files/single-stripe_multi-node_ipv6.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/cluster-1.properties (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-1.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-1_default_lease_failover_and_reconnect_window.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-1_lease_failover_and_reconnect_window.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-1_no_server_element.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-2.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-3.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-4.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-5.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-6.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-7.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config-8.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/conversion/tc-config.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic-when-locked.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic1.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic2.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic3.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic4.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic5.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic6-1.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic6-2.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/diagnostic-output/diagnostic7.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/dummy.txt (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/logback-ext-test.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/logback-test.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/tc-configs/stripe1-1-minimal.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/tc-configs/stripe1-1-node.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/tc-configs/stripe1-1-node_ipv6.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/tc-configs/stripe1-2-nodes.xml (100%) rename {dynamic-config/testing/system-tests => system-tests/dynamic-config}/src/test/resources/tc-configs/stripe2-2-nodes.xml (100%) rename {management/testing/integration-tests => system-tests/management}/pom.xml (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/AbstractHATest.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/AbstractSingleTest.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/AbstractTest.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/BadClientsIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/ClientCacheRemoteManagementIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/ConcurrentNmsEntitiesIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/DiagnosticIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/FailoverIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/HAStatisticsIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/NmsAgentServiceIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/OffHeapLimitReachedIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/PassiveLeaveIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/PassiveStartupIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/PassiveTopologyIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/ReconfigureEntityIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/ServerCacheManagementIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/SimpleGalvanIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/StatisticCollectorIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/TopologyIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/UserErrorsIT.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/java/org/terracotta/management/integration/tests/json/TestModule.java (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/client-descriptors.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/logback-ext.xml (100%) rename {management/testing/sample-entity => system-tests/management}/src/test/resources/logback.xml (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/notifications-after-reconfigure.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/notifications.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/passive.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/server-descriptors.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/state-dump-partial.txt (97%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/stats.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/topology-after-failover.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/topology-before-reconfigure.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/topology-reconfigured.json (100%) rename {management/testing/integration-tests => system-tests/management}/src/test/resources/topology.json (100%) create mode 100644 system-tests/test-kit/build.gradle.kts create mode 100644 voltron-proxy/client/build.gradle rename voltron-proxy/{voltron-proxy-client => client}/src/main/java/org/terracotta/voltron/proxy/client/ClientProxyFactory.java (100%) rename voltron-proxy/{voltron-proxy-client => client}/src/main/java/org/terracotta/voltron/proxy/client/EndpointListener.java (100%) rename voltron-proxy/{voltron-proxy-client => client}/src/main/java/org/terracotta/voltron/proxy/client/EndpointListenerAware.java (100%) rename voltron-proxy/{voltron-proxy-client => client}/src/main/java/org/terracotta/voltron/proxy/client/ProxyEntityClientService.java (100%) rename voltron-proxy/{voltron-proxy-client => client}/src/main/java/org/terracotta/voltron/proxy/client/ServerMessageAware.java (100%) rename voltron-proxy/{voltron-proxy-client => client}/src/main/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandler.java (100%) rename voltron-proxy/{voltron-proxy-client => client}/src/test/java/org/terracotta/voltron/proxy/client/ClientProxyFactoryTest.java (99%) rename voltron-proxy/{voltron-proxy-client => client}/src/test/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandlerTest.java (100%) create mode 100644 voltron-proxy/common/build.gradle rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/Async.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/ClientId.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/Codec.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/CommonProxyFactory.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/ConcurrencyStrategy.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/ExecutionStrategy.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/MessageListener.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/MessageListenerAdapter.java (99%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/MessageType.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/MethodDescriptor.java (99%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/ProxyEntityMessage.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/ProxyEntityResponse.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/ProxyMessageCodec.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/main/java/org/terracotta/voltron/proxy/SerializationCodec.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/test/java/org/terracotta/AvailableClass.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/test/java/org/terracotta/voltron/proxy/CommonProxyFactoryTest.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/test/java/org/terracotta/voltron/proxy/SerializationCodecTest.java (100%) rename voltron-proxy/{voltron-proxy-common => common}/src/test/java/org/terracotta/voltron/proxy/shaded/org/terracotta/AvailableShadedClass.java (100%) delete mode 100755 voltron-proxy/pom.xml create mode 100644 voltron-proxy/server/build.gradle rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/ActiveProxiedServerEntity.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/DelegatingSyncMessageCodec.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/MessageFiring.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/MessageFiringSupport.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/Messenger.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/MessengerProxyFactory.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/PassiveProxiedServerEntity.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/ProxyInvoker.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/ProxyServerEntityService.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/main/java/org/terracotta/voltron/proxy/server/SyncProxyFactory.java (100%) rename voltron-proxy/{voltron-proxy-server => server}/src/test/java/org/terracotta/voltron/proxy/server/EndToEndTest.java (99%) delete mode 100755 voltron-proxy/voltron-proxy-client/pom.xml delete mode 100755 voltron-proxy/voltron-proxy-common/pom.xml delete mode 100755 voltron-proxy/voltron-proxy-server/pom.xml create mode 100644 voter/build.gradle delete mode 100644 voter/pom.xml diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..40dc10f2f8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] + +# Change these settings to your own preference +indent_style = space +indent_size = 2 + +# We recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..37fb180ef6 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,9 @@ +# Set the default behavior to LF, because checkstyle enforces it +* text eol=lf + +*.bat eol=crlf + +*.jar binary +*.jpg binary +*.png binary +*.ttf binary diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000000..f3be5ca30e --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,23 @@ + + + + +This PR... + +Fixes issue # + +## Changes +- + +----------------- +## Checklist +- [ ] tested locally +- [ ] updated the docs +- [ ] added appropriate test +- [ ] signed-off on the DCO referenced in the CONTRIBUTING link below via `git commit -s` on my commits, and submit this code under terms of the Apache 2.0 license and assign copyright to this project owners + (If you're not using command-line, you can use a [browser extension](https://github.com/scottrigby/dco-gh-ui) ) +----------------- +In submitting this contribution, I agree to the terms of contributing as referred to here: +https://github.com/Terracotta-OSS/terracotta-platform/blob/master/CONTRIBUTING.md diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..05d9aa4bca --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,76 @@ +name: Build + +on: + workflow_dispatch: + push: + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + + build: + name: "${{ matrix.os }}:jdk-${{ matrix.jdk }}:jvm-${{ matrix.jvm }}" + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + jdk: [8] + jvm: [8, 11, 17, 21] + + runs-on: ${{ matrix.os }} + + env: + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 10 + + steps: + - name: Checkout sources + uses: actions/checkout@v4 + with: + submodules: recursive + + - uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: ${{ runner.os }}-gradle + + - name: "Setup JDK ${{ matrix.jdk }}" + uses: actions/setup-java@v4 + with: + distribution: "temurin" + java-version: ${{ matrix.jdk }} + + - name: "Setup JVM ${{ matrix.jvm }}" + uses: actions/setup-java@v4 + with: + distribution: "temurin" + java-version: ${{ matrix.jvm }} + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Build with Gradle + run: ./gradlew build check -x dependencyCheckAggregate -x spotbugsMain -x spotbugsTest -x checkstyleMain -x checkstyleTest --no-daemon -PcompileVM=${{ matrix.jdk }} -PtestVM=${{ matrix.jvm }} + + - name: Upload Test Results + if: failure() + uses: actions/upload-artifact@v4 + with: + name: junit-test-results + retention-days: 5 + path: | + **/build/reports/ + **/build/test-results/ + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v4 + env: + NODE_OPTIONS: "--max_old_space_size=4096" + with: + report_paths: "**/build/test-results/test/TEST-*.xml" diff --git a/.github/workflows/checkstyle.yml b/.github/workflows/checkstyle.yml new file mode 100644 index 0000000000..da9d69ff4b --- /dev/null +++ b/.github/workflows/checkstyle.yml @@ -0,0 +1,43 @@ +name: Checkstyle + +on: + workflow_dispatch: + push: + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + checkstyle: + name: "Checkstyle" + runs-on: ubuntu-latest + env: + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 10 + + steps: + - name: Checkout sources + uses: actions/checkout@v4 + with: + submodules: recursive + + - uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: ${{ runner.os }}-gradle + + - name: "Setup JDK 8" + uses: actions/setup-java@v4 + with: + distribution: "temurin" + java-version: 8 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Checkstyle + run: ./gradlew checkstyleMain checkstyleTest diff --git a/.github/workflows/dependency-submission.yml b/.github/workflows/dependency-submission.yml new file mode 100644 index 0000000000..3255673da5 --- /dev/null +++ b/.github/workflows/dependency-submission.yml @@ -0,0 +1,27 @@ +name: Dependency Submission + +on: + workflow_dispatch: + push: + branches: ["main", "master"] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: write + +jobs: + dependency-submission: + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: "temurin" + java-version: 17 + - name: Generate and submit dependency graph + uses: gradle/actions/dependency-submission@v4 diff --git a/.github/workflows/spotbugs.yml b/.github/workflows/spotbugs.yml new file mode 100644 index 0000000000..e0fa2e30ca --- /dev/null +++ b/.github/workflows/spotbugs.yml @@ -0,0 +1,43 @@ +name: SpotBugs + +on: + workflow_dispatch: + push: + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + spotBugs: + name: "SpotBugs" + runs-on: ubuntu-latest + env: + SEGMENT_DOWNLOAD_TIMEOUT_MINS: 10 + + steps: + - name: Checkout sources + uses: actions/checkout@v4 + with: + submodules: recursive + + - uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: ${{ runner.os }}-gradle + + - name: "Setup JDK 8" + uses: actions/setup-java@v4 + with: + distribution: "temurin" + java-version: 8 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: SpotBugs + run: ./gradlew spotbugsMain spotbugsTest --no-daemon diff --git a/.github/workflows/wrapper-validation.yml b/.github/workflows/wrapper-validation.yml new file mode 100644 index 0000000000..e6bda628a6 --- /dev/null +++ b/.github/workflows/wrapper-validation.yml @@ -0,0 +1,17 @@ +name: "Validate Gradle Wrapper" + +on: + workflow_dispatch: + push: + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + validation: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: gradle/actions/wrapper-validation@v4 diff --git a/.gitignore b/.gitignore index c09bdd4e1d..fac95318bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,35 +1,4 @@ -# IntelliJ exclusions -.idea/ -*.iml -out/ - -# Eclipse exclusions -.project -.classpath/ -.classpath -.settings/ -*.prefs - -# Netbeans exclusions -nb-configuration.xml -nbactions.xml -.nb-gradle/ -.nb-gradle-properties - -# MacOS exclusions -.DS_Store - -# Maven exclusions -target/ -dependency-reduced-pom.xml -.fbExcludeFilterFile - -.checkstyle -*~ - -/.gradletasknamecache -/classes -/healthchecker-entity/api/nbproject/ - -# vim -*.swp +# Gradle +.gradle/ +**/build/ +!**/src/**/build/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..ca75be80db --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "build-logic/terracotta-gradle-plugins"] + path = build-logic/terracotta-gradle-plugins + url = https://github.com/Terracotta-OSS/terracotta-gradle-plugins.git diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47610 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 diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 515e0852a1..0000000000 --- a/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright Terracotta, Inc. -# Copyright Super iPaaS Integration LLC, an IBM Company 2024 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..54584bc3bf --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at tc-oss@wwpdl.vnet.ibm.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..fdb76e69ba --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,65 @@ + +# Contributing to the project + +_We're happy to have you participate in our community with your contributions!_ + +## Legal + +All original contributions to this project are licensed under the Apache License, version 2.0 or later. + +The Apache License 2.0 text is included verbatim in the [LICENSE.txt](https://github.com/Terracotta-OSS/terracotta-platform/blob/master/LICENSE.txt) file in the root directory of the repository. + +All contributions are subject to the Developer Certificate of Origin (DCO). + +The DCO text is available verbatim in the [DCO.txt](DCO.txt) file in the root directory of the 'contributing' repository. + +## Process + +This project is owned by IBM. Please follow the simple contribution process documented here. + +In brief, the process is as simple as: + +* Fork the code repository +* Commit your changes with the _-s_ option to agree to the DCO, and "sign over" copyright ownership to IBM +* If you introduce new files, include license (APL 2.0) and copyright (IBM) headers in the files +* Create a Pull Request (PR) from your fork to the original project, on the appropriate branch - please note the template questions/agreements on the PR. +* Await feedback on your contribution (which will typically come in the form of comments on your PR) + +Please also review the following sections that have additional important information. + +## Community Guidelines + +### Code of Conduct + +Before participating in our community with our code, doc, or forum contributions, please review our Community [Code of Conduct](CODE_OF_CONDUCT.md). + +### Coding Standards + +* Rule #1: do not gratuitously reformat all the the code in existing files. If you're changing an existing file, make your code changes match the formatting that is already in that file. +* Use spaces, not Tabs, follow common Java formatting rules, your contribution may be initially rejected if it's a mess. +* Explanatory comments are friendly to other developers, and to your future self! + +--- + +# Acting As a Project Publisher aka Maintainer aka Committer + +Some members of the project have a role beyond that of a contributor. These members are known as _Publishers_, and their role is similar to that of people with the role "Committer" or "Maintainer" on other projects. + +Publishers review PRs from other contributors, and have the rights to merge those PRs into the project. + +Publishers rights, duties, and responsibilities include: +* Reviewing and Merging Pull Requests + - Ensure that the PR has a signed-off (DCO) on all of its commits, and agreements on PR template questions/agreements + - Ensure coding guidelines and community conduct guidelines are not violated + - Review for functional correctness and possible performance impact + - Review for possible security vulnerabilities or malicious intent + - Check for any introduction of new third-pary library dependencies (see below) + - Ensure all automated checks (build/test, etc.) have passed + - Give kind and detailed feedback to the contributor + - Addional pre-merge rules: + - Contributions that introduce new features require discussion and vote from at least two additional project Admins/Publishers + - Contributions that affect backward compatibility require discussion and vote from at least two additional project Admins/Publishers + - Contributions that introduce 3rd party libraries require discussion and vote from at least two additional project Admins/Publishers + - Contributions that otherwise necessitate a Major or Minor version bump require discussion and vote from at least two additional project Admins/Publishers +* Actively seek input and opinions from other project Publishers and contributors when reviewing contributions that have significant impact +* Fostering and protecting a healthy project community culture diff --git a/DCO.txt b/DCO.txt new file mode 100644 index 0000000000..62237deca4 --- /dev/null +++ b/DCO.txt @@ -0,0 +1,38 @@ +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +1 Letterman Drive +Suite D4700 +San Francisco, CA, 94129 + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 5730f72fbf..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,18 +0,0 @@ -/* - * All content copyright Terracotta, Inc., unless otherwise indicated. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -//See Jenkins wiki pages for info -mavenBuildOSS() diff --git a/LICENSE b/LICENSE.txt similarity index 100% rename from LICENSE rename to LICENSE.txt diff --git a/README.md b/README.md index 662f92b781..ed49f6ce2c 100644 --- a/README.md +++ b/README.md @@ -1,127 +1,3 @@ # terracotta-platform -## For Developers - -### License Headers - -Check for missing licenses: - -```bash -./mvnw license:check -``` - -Format files: - -```bash -./mvnw license:format -``` - -### Fast build - -This project is big and development and testing times are impacted by Maven build time since there is no gradle cache. -So we need to be able several times per day to build the project *fast*. - -```bash -./mvnw clean install -DskipTests -Dfast -Djava.build.vendor=openjdk -``` - -The command should only do the minimal required steps: - -- compilation steps -- felix -- packaging (jars and source jars - to use snapshots in downstream projects) - -*No toolchain, verification, license check, findbugs, etc.* - -The command needs to be fast: *less than 30 seconds.* - -### Unit tests vs IT tests - -We are able to run the unit tests only and all tests: - -Skip all the tests: - -```bash -./mvnw clean verify -DskipTests -Dfast -``` - -Skip Galvan and Angela IT tests but run unit tests (*last ~2-3min*) - -```bash -./mvnw clean verify -DskipITs -Dfast -``` - -Run everything, like on Azure. *Lasts ~1h20min* - -```bash -./mvnw clean verify -Dtest.parallel.forks=1C -Djava.test.vendor=openjdk -Djava.build.vendor=openjdk -``` - -### Concurrent Maven executions - -It is possible to further speed the execution of the build by using `-TxC`. - -Example, running the unit tests with `-T4C` leads to a build lasting only 1 min 20 sec. - -```bash -./mvnw clean install -DskipTests -Dfast -T4C -``` - -### Plugin config - -- Use `false` - -### Choose the JVM used for testing - -We can run the tests with one of the JVM on the toolchain but compilation is done in 1.8. - -*Examples* - -Run a test with Java 11 (will look at your toolchains.xml file to fine the JVM): - -```bash -./mvnw verify -f management/testing/integration-tests/pom.xml -Dit.test=DiagnosticIT -Djava.test.version=1.11 -Dtest.parallel.forks=1C -Djava.test.vendor=openjdk -Djava.build.vendor=openjdk -``` - -Run a test with Java 8 (will look at your toolchains.xml file to fine the JVM): - -```bash -./mvnw verify -f management/testing/integration-tests/pom.xml -Dit.test=DiagnosticIT -Djava.test.version=1.8 -Dtest.parallel.forks=1C -Djava.test.vendor=openjdk -Djava.build.vendor=openjdk -``` - -Run a test with Java 8 (will look at your toolchains.xml file to fine the JVM): - -```bash -./mvnw verify -f management/testing/integration-tests/pom.xml -Dit.test=DiagnosticIT -``` - -Run a test by using the default JAVA_HOME found from your shell. -Dfast has no enforcement at all and does not use toolchain. -Dfast goal is to compile and package fast. - -```bash -./mvnw verify -f management/testing/integration-tests/pom.xml -Dit.test=DiagnosticIT -Dfast -``` - -The same applies for Angela tests in dynamic-config/testing/system-tests. - -*Verification* - -Look inside the servers logs of the nodes started by Angela and Galvan. -The server logs contain the list of system properties and JVM details used to start the servers. -The version should match the one requested. - -- For Angela tests: `target/angela/work/XYZ/logs/stripe1/node-1-1/terracotta.server.log` -- For Galvan tests: `target/galvan/XYZ/stripe1/testServer0/logs/terracotta.server.log` - -Look for something like that in the logs: - -``` -java.runtime.name : OpenJDK Runtime Environment -java.runtime.version : 11.0.6+10 -java.specification.name : Java Platform API Specification -java.specification.vendor : Oracle Corporation -java.specification.version : 11 -``` - -### IDE support - -After having done a `./mvnw clean verify -DskipTests -Dfast` to build the project and kit, you should be able to go in your IDE and right-click run the test DiagnosticIT for example. +Collections of libraries and plugins around Terracotta Server diff --git a/layout/src/main/assembly/platform-layout.xml b/TO-DELETE/platform-layout.xml similarity index 100% rename from layout/src/main/assembly/platform-layout.xml rename to TO-DELETE/platform-layout.xml diff --git a/pom.xml b/TO-DELETE/pom.xml.disabled similarity index 100% rename from pom.xml rename to TO-DELETE/pom.xml.disabled diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index b58f921cb6..0000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright Terracotta, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# See shared code location for steps and parameters: -# https://dev.azure.com/TerracottaCI/_git/terracotta - -resources: - repositories: - - repository: templates - type: git - name: terracotta/terracotta - -jobs: - - template: build-templates/maven-common.yml@templates - parameters: - jobName: Linux_Java_8 - timeoutInMinutes: 180 - options: -B -Djava.test.version=1.8 -Dtest.parallel.forks=3 - mavenGoals: 'clean verify' - - template: build-templates/maven-common.yml@templates - parameters: - jobName: Linux_Java_11 - timeoutInMinutes: 180 - options: -B -Djava.test.version=1.11 -Dtest.parallel.forks=3 - mavenGoals: 'clean verify' - - template: build-templates/maven-common.yml@templates - parameters: - jobName: Linux_Java_17 - timeoutInMinutes: 180 - options: -B -Djava.test.version=1.17 -Dtest.parallel.forks=3 - mavenGoals: 'clean verify' - - template: build-templates/maven-common.yml@templates - parameters: - jobName: Windows_Java_8 - timeoutInMinutes: 180 - vmImage: 'windows-latest' - options: -B -Djava.test.version=1.8 -Dtest.parallel.forks=3 - mavenGoals: 'clean verify' - - template: build-templates/maven-common.yml@templates - parameters: - jobName: Windows_Java_11 - timeoutInMinutes: 180 - vmImage: 'windows-latest' - options: -B -Djava.test.version=1.11 -Dtest.parallel.forks=3 - mavenGoals: 'clean verify' - - template: build-templates/maven-common.yml@templates - parameters: - jobName: Windows_Java_17 - timeoutInMinutes: 180 - vmImage: 'windows-latest' - options: -B -Djava.test.version=1.17 -Dtest.parallel.forks=3 - mavenGoals: 'clean verify' diff --git a/build-logic/build.gradle b/build-logic/build.gradle new file mode 100644 index 0000000000..a657f29266 --- /dev/null +++ b/build-logic/build.gradle @@ -0,0 +1,85 @@ +plugins { + id 'java-gradle-plugin' +} + +repositories { + gradlePluginPortal() + mavenCentral() +} + +dependencies { + api 'org.terracotta.build:terracotta-gradle-plugins' + api 'com.github.spotbugs.snom:spotbugs-gradle-plugin:5.2.1' + api 'org.unbroken-dome.gradle-plugins:gradle-xjc-plugin:2.0.0' + api 'org.owasp:dependency-check-gradle:8.4.3' + + implementation 'org.terracotta:terracotta-utilities-tools:0.0.16' + + testImplementation platform('org.junit:junit-bom:5.10.0') + testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation 'org.junit.jupiter:junit-jupiter-params' + testImplementation 'org.hamcrest:hamcrest:2.2' + testImplementation 'org.mockito:mockito-inline:5.2.0' + + // On Java 9+ we must provide our own JAF implementation + if (JavaVersion.current().isJava9Compatible()) { + runtimeOnly 'com.sun.activation:javax.activation:1.2.0' + } +} + +gradlePlugin { + plugins { + angelaConvention { + id = 'org.terracotta.build.convention.angela' + implementationClass = 'org.terracotta.build.conventions.AngelaConvention' + } + galvanConvention { + id = 'org.terracotta.build.convention.galvan' + implementationClass = 'org.terracotta.build.conventions.GalvanConvention' + } + baseConvention { + id = 'org.terracotta.build.convention.base' + implementationClass = 'org.terracotta.build.conventions.BaseConvention' + } + distributionConvention { + id = 'org.terracotta.build.convention.distribution' + implementationClass = 'org.terracotta.build.conventions.DistributionConvention' + } + javaLibraryConvention { + id = 'org.terracotta.build.convention.java-library' + implementationClass = 'org.terracotta.build.conventions.JavaLibraryConvention' + } + javaConvention { + id = 'org.terracotta.build.convention.java' + implementationClass = 'org.terracotta.build.conventions.JavaConvention' + } + javaBaseConvention { + id = 'org.terracotta.build.convention.java-base' + implementationClass = 'org.terracotta.build.conventions.JavaBaseConvention' + } + xjcConvention { + id = 'org.terracotta.build.convention.xjc' + implementationClass = 'org.terracotta.build.conventions.XjcConvention' + } + packageConvention { + id = 'org.terracotta.build.convention.package' + implementationClass = 'org.terracotta.build.conventions.PackageConvention' + } + voltronConvention { + id = 'org.terracotta.build.convention.voltron' + implementationClass = 'org.terracotta.build.conventions.VoltronConvention' + } + tool { + id = 'org.terracotta.build.tool' + implementationClass = 'org.terracotta.build.plugins.ToolPlugin' + } + } +} + +test { + useJUnitPlatform() + filter { + failOnNoMatchingTests = false + } + systemProperty("gradle-user-home", gradle.gradleUserHomeDir) +} diff --git a/build-logic/settings.gradle b/build-logic/settings.gradle new file mode 100644 index 0000000000..0db346be6b --- /dev/null +++ b/build-logic/settings.gradle @@ -0,0 +1 @@ +includeBuild 'terracotta-gradle-plugins' \ No newline at end of file diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/AngelaConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/AngelaConvention.java new file mode 100644 index 0000000000..73c7da54c3 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/AngelaConvention.java @@ -0,0 +1,60 @@ +package org.terracotta.build.conventions; + +import org.terracotta.build.plugins.AngelaPlugin; +import org.gradle.api.Project; +import org.gradle.api.artifacts.ModuleDependency; +import org.gradle.api.artifacts.ProjectDependency; +import org.gradle.api.artifacts.dsl.DependencyFactory; +import org.gradle.api.tasks.testing.Test; + +import static org.terracotta.build.Utils.group; +import static org.terracotta.build.plugins.AngelaPlugin.FRAMEWORK_CONFIGURATION_NAME; + +/** + * Convention plugin for projects that run Angela based tests. + * This convention: + *
    + *
  • picks the version of Angela defined by the {@code angelaVersion} Gradle property
  • + *
  • adds the local `angela-test-kit-resolver` to the classpath and configured the use of the locally built kit
  • + *
  • caps us at a maximum of 3 concurrent tests, and tweaks the test JVM arguments
  • + *
+ */ +@SuppressWarnings("UnstableApiUsage") +public class AngelaConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return AngelaPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(AngelaPlugin.class); + + DependencyFactory dependencyFactory = project.getDependencyFactory(); + + ModuleDependency angela = dependencyFactory.create("org.terracotta", "angela", project.property("angelaVersion").toString()) + .exclude(group("org.slf4j")).exclude(group("javax.cache")); + ModuleDependency angelaResolver = dependencyFactory.create(project.project(":common:angela-test-kit-resolver")) + .exclude(group("org.slf4j")).exclude(group("javax.cache")); + + project.getConfigurations().named(FRAMEWORK_CONFIGURATION_NAME, config -> { + config.getDependencies().add(angela); + config.getDependencies().add(angelaResolver); + }); + + project.getConfigurations().named("angelaKit", config -> { + ProjectDependency projectDependency = dependencyFactory.create(project.project(":terracotta")); + projectDependency.setTargetConfiguration("kit"); + config.getDependencies().add(projectDependency); + }); + + project.getTasks().withType(Test.class).configureEach(task -> { + task.setMaxParallelForks(3); + task.jvmArgs("-XX:MaxDirectMemorySize=1536m"); + task.jvmArgs("-XX:SoftRefLRUPolicyMSPerMB=0"); + task.systemProperty("angela.skipUninstall", "false"); + task.systemProperty("org.terracotta.disablePortReleaseCheck", "true"); + }); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/BaseConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/BaseConvention.java new file mode 100644 index 0000000000..25fdf43f3e --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/BaseConvention.java @@ -0,0 +1,253 @@ +package org.terracotta.build.conventions; + +import com.github.spotbugs.snom.SpotBugsPlugin; +import groovy.lang.Closure; +import org.gradle.api.Action; +import org.gradle.api.Plugin; +import org.gradle.api.Project; +import org.gradle.api.artifacts.ConfigurationContainer; +import org.gradle.api.artifacts.Dependency; +import org.gradle.api.artifacts.ModuleDependency; +import org.gradle.api.artifacts.dsl.DependencyHandler; +import org.gradle.api.artifacts.dsl.RepositoryHandler; +import org.gradle.api.credentials.PasswordCredentials; +import org.gradle.api.plugins.BasePlugin; +import org.gradle.api.plugins.BasePluginExtension; +import org.gradle.api.plugins.PluginContainer; +import org.gradle.api.plugins.quality.CheckstyleExtension; +import org.gradle.api.plugins.quality.CheckstylePlugin; +import org.gradle.api.tasks.TaskContainer; +import org.gradle.api.tasks.bundling.Jar; +import org.gradle.api.tasks.compile.JavaCompile; +import org.gradle.api.tasks.javadoc.Javadoc; +import org.terracotta.build.Utils; +import org.terracotta.build.plugins.CopyrightPlugin; +import org.terracotta.build.plugins.VoltronPlugin; +import org.terracotta.build.plugins.buildinfo.BuildInfoPlugin; +import org.terracotta.build.plugins.buildinfo.StructuredVersion; + +import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Map; +import java.util.ServiceLoader; +import java.util.concurrent.ConcurrentHashMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import static java.lang.Integer.parseInt; +import static java.util.Arrays.asList; +import static java.util.regex.Pattern.CASE_INSENSITIVE; +import static org.gradle.util.internal.ConfigureUtil.configureUsing; + +/** + * Convention plugin for the {@code base} plugin. + * This convention must be applied to every non-empty project, this is enforced + * by the root project {@code build.gradle}. + * This convention: + *
    + *
  • applies the copyright plugin
  • + *
  • applies the blacklist convention
  • + *
  • installs and propagates a structured version object to facilitate + * programmatic version querying
  • + *
  • requires transitive dependency convergence for all configurations
  • + *
  • constrains terracotta-utilities-tools and terracotta-utilities-test-tools + * to their locally requested versions
  • + *
  • adds and configures the Maven Central, Terracotta, Terracotta Nexus and + * BAS Artifactory repositories
  • + *
  • modify transitive slf4j dependencies to conform to the slf4j known + * project compatibility rules
  • + *
  • adopt the less collision prone artifact naming convention of + * {@code "${project.group}.${project.name}"}
  • + *
  • mark all Java sources as UTF-8, and enable all javac linter warnings, + * along with warnings as errors
  • + *
  • configures jar manifests with default attributes
  • + *
  • adds license to the root of all jars
  • + *
  • registers an {@code xmlConfig} closure as {@code DependencyHandler} + * extension
  • + *
+ */ +public class BaseConvention implements ConventionPlugin { + + private static final Map, Collection>> KNOWN_CONVENTIONS = new ConcurrentHashMap<>(); + + static { + for (ConventionPlugin conventionPlugin : ServiceLoader.load(ConventionPlugin.class, + BaseConvention.class.getClassLoader())) { + KNOWN_CONVENTIONS.computeIfAbsent(conventionPlugin.isConventionFor(), k -> new ArrayList<>()) + .add(conventionPlugin.getClass().asSubclass(Plugin.class)); + } + + /* + * The CopyrightPlugin is implemented using the CheckstylePlugin. + * This means we must treat the CopyrightPlugin as a convention for the + * CheckstylePlugin and all of its super types. + */ + KNOWN_CONVENTIONS.entrySet().stream().filter(e -> e.getKey().isAssignableFrom(CheckstylePlugin.class)) + .forEach(e -> e.getValue().add(CopyrightPlugin.class)); + } + + @Override + public Class isConventionFor() { + return BasePlugin.class; + } + + @Override + public void apply(Project project) { + PluginContainer plugins = project.getPlugins(); + plugins.apply(BasePlugin.class); + plugins.apply(CopyrightPlugin.class); + + plugins.apply(BlacklistConvention.class); + plugins.apply(BuildInfoPlugin.class); + + setupResolutionStrategy(project); + setupRepositories(project.getRepositories()); + correctDependencyMetadata(project.getDependencies()); + setupArtifactNamingConvention(project); + enforceJavaSourceRules(project.getTasks()); + setupJavaArchiveDefaults(project); + setupDefaultExtensions(project); + + project.getExtensions().configure(CheckstyleExtension.class, checkstyle -> + checkstyle.getConfigProperties().put("project_config", project.file("config/checkstyle").getAbsolutePath())); + } + + private static void setupDefaultExtensions(Project project) { + DependencyHandler dependencies = project.getDependencies(); + dependencies.getExtensions().add("xmlConfig", new Closure(dependencies, dependencies) { + + ModuleDependency doCall(Object notation) { + Dependency xmlConfigDependency = ((DependencyHandler) getOwner()).create(notation); + if (xmlConfigDependency instanceof ModuleDependency) { + return ((ModuleDependency) xmlConfigDependency).capabilities(capabilities -> capabilities + .requireCapability(VoltronPlugin.xmlConfigFeatureCapability((ModuleDependency) xmlConfigDependency))); + } else { + throw new IllegalArgumentException("Unsupported dependency type: " + xmlConfigDependency); + } + } + + ModuleDependency doCall(Object notation, Action configureAction) { + ModuleDependency xmlConfigDependency = doCall(notation); + configureAction.execute(xmlConfigDependency); + return xmlConfigDependency; + } + + ModuleDependency doCall(Object notation, Closure configureClosure) { + return doCall(notation, configureUsing(configureClosure)); + } + }); + } + + private static void setupJavaArchiveDefaults(Project project) { + project.getTasks().withType(Jar.class).configureEach(jar -> { + jar.manifest(manifest -> manifest.attributes(Utils.mapOf( + "provider", "gradle", + "Implementation-Title", project.getName(), + "Implementation-Version", project.getVersion(), + "Implementation-Vendor-Id", project.getGroup(), + "Built-By", System.getProperty("user.name"), + "Built-JDK", System.getProperty("java.version")))); + // Add license to all jars + jar.from(project.getRootProject().file("LICENSE")); + }); + } + + private static void setupArtifactNamingConvention(Project project) { + project.getPlugins().withType(BasePlugin.class).configureEach(base -> { + /* + * Gradle's default convention here is too prone to collisions. + * I think this approach is immune since it's leaning on a + * combination that Gradle itself needs to be unique. + */ + project.getExtensions().configure(BasePluginExtension.class, basePluginExtension -> { + basePluginExtension.getArchivesName() + .convention(project.provider(() -> project.getGroup() + "." + project.getName())); + }); + }); + } + + private static void enforceJavaSourceRules(TaskContainer tasks) { + tasks.withType(JavaCompile.class).configureEach(compile -> { + compile.getOptions().setEncoding(StandardCharsets.UTF_8.name()); + compile.getOptions().getCompilerArgs().addAll(asList("-Xlint:all", "-Werror")); + }); + tasks.withType(Javadoc.class) + .configureEach(javadoc -> javadoc.getOptions().setEncoding(StandardCharsets.UTF_8.name())); + } + + private static void setupResolutionStrategy(Project project) { + ConfigurationContainer configurations = project.getConfigurations(); + + /* + * Spotbugs has a version conflict in its own transitive dependency set. + * It's easier to just not configure this for SpotBugs than it is to jump + * through the necessary hoops to exclude things. That and the exact issue + * changes with every new SpotBugs version. + */ + configurations.matching(config -> !SpotBugsPlugin.CONFIG_NAME.equals(config.getName())) + .configureEach(config -> config.getResolutionStrategy().failOnVersionConflict()); + } + + private static void setupRepositories(RepositoryHandler repositories) { + repositories.mavenCentral(); + repositories.maven(terracotta -> { + terracotta.setUrl(URI.create("https://repo.terracotta.org/maven2")); + terracotta.content(c -> { + c.includeGroupByRegex("org\\.terracotta(?:\\..+)?"); + }); + }); + } + + private static void correctDependencyMetadata(DependencyHandler dependencies) { + dependencies.components(components -> { + components.all(details -> { + /* + * Adjust transitive dependencies on SLF4J to use a range based on the + * declared version of SLF4J extending + * to the "end" of that major.minor series. + */ + details.allVariants(variantMetadata -> { + variantMetadata.withDependencies(directDependencyMetadata -> { + directDependencyMetadata.forEach(dependency -> { + if (dependency.getGroup().equals("org.slf4j") && dependency.getName().equals("slf4j-api")) { + dependency.version(versionConstraint -> { + /* + * Parse a "normal form" required version number (major.minor[.patch]) retaining + * only the + * major.minor portion and form a Gradle bounded range + * [required,major.minor.9999). + * Failure to parse results in the version being left as-is. + */ + String requiredVersion = versionConstraint.getRequiredVersion(); + Matcher matcher = MAJOR_MINOR_PATTERN.matcher(requiredVersion); + if (matcher.matches()) { + versionConstraint.require( + String.format("[%s, %s.%s.9999)", requiredVersion, matcher.group(1), matcher.group(2))); + } + }); + } + }); + }); + }); + }); + }); + } + + /** Matches major.minor[.patch]. */ + private static final Pattern MAJOR_MINOR_PATTERN = Pattern.compile("(\\d+)\\.(\\d+)(?:\\.\\d+)?"); + + public static String toSagVersion(StructuredVersion v) { + // convert 1.2.3.4.5 to 1.2.3.0004-0005, snapshot versions are unchanged. + // this is needed for iBit (and preserves format from maven days) + try { + return String.format("%s.%s.%s.%04d-%04d", + v.getAt(0), v.getAt(1), v.getAt(2), + parseInt(v.getAt(3)), parseInt(v.getAt(4))); + } catch (NumberFormatException ignored) { + return v.toString(); + } + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/BlacklistConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/BlacklistConvention.java new file mode 100644 index 0000000000..29557f01f1 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/BlacklistConvention.java @@ -0,0 +1,28 @@ +package org.terracotta.build.conventions; + +import org.terracotta.build.plugins.BlacklistPlugin; +import org.gradle.api.Project; + +/** + * Convention plugin for dependency blacklisting. + * This convention: + *
    + *
  • blacklists {@code com.github.stefanbirkner:system-rules}
  • + *
+ */ +public class BlacklistConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return BlacklistPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(BlacklistPlugin.class); + project.getExtensions().configure(BlacklistPlugin.BlacklistExtension.class, blacklist -> { + //disallow these rules which create unexpected shared state between tests + blacklist.test("com.github.stefanbirkner:system-rules"); + }); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/CheckstyleConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/CheckstyleConvention.java new file mode 100644 index 0000000000..4a11e38522 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/CheckstyleConvention.java @@ -0,0 +1,38 @@ +package org.terracotta.build.conventions; + +import org.gradle.api.Project; +import org.gradle.api.plugins.quality.Checkstyle; +import org.gradle.api.plugins.quality.CheckstyleExtension; +import org.gradle.api.plugins.quality.CheckstylePlugin; + +import static org.gradle.language.base.plugins.LifecycleBasePlugin.VERIFICATION_GROUP; + +/** + * Convention plugin for the Checkstyle analysis tool. + * This convention: + *
    + *
  • establishes the variable substitution used for the project specific supressions file location. + * You can see this variable substitution in {@code /config/checkstyle/checkstyle.xml}.
  • + *
  • registers the {@code checkstyle} uber-task that depends on all the checkstyle analysis tasks
  • + *
+ */ +public class CheckstyleConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return CheckstylePlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(CheckstylePlugin.class); + project.getExtensions().configure(CheckstyleExtension.class, checkstyle -> + checkstyle.getConfigProperties().put("project_config", project.file("config/checkstyle").getAbsolutePath())); + + project.getTasks().register("checkstyle", task -> { + task.setDescription("Run Checkstyle analysis"); + task.setGroup(VERIFICATION_GROUP); + task.dependsOn(project.getTasks().withType(Checkstyle.class)); + }); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/ConventionPlugin.java b/build-logic/src/main/java/org/terracotta/build/conventions/ConventionPlugin.java new file mode 100644 index 0000000000..c36b133227 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/ConventionPlugin.java @@ -0,0 +1,17 @@ +package org.terracotta.build.conventions; + +import org.gradle.api.Plugin; + +/** + * Marks a plugin as a 'convention plugin' for another plugin. + *

+ * The {@link BaseConvention} will then prevent the use of plugin {@code P} unless this plugin is also applied. + + * @param type of the targeted object + * @param

plugin type this is a convention for + */ +public interface ConventionPlugin> extends Plugin { + + Class

isConventionFor(); + +} \ No newline at end of file diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/DistributionConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/DistributionConvention.java new file mode 100644 index 0000000000..d07561f5d9 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/DistributionConvention.java @@ -0,0 +1,41 @@ +package org.terracotta.build.conventions; + +import org.gradle.api.Project; +import org.gradle.api.distribution.DistributionContainer; +import org.gradle.api.distribution.plugins.DistributionPlugin; +import org.owasp.dependencycheck.gradle.DependencyCheckPlugin; +import org.owasp.dependencycheck.gradle.extension.DependencyCheckExtension; + +/** + * Convention plugin for the distribution plugin. + * This convention: + *

    + *
  • adds this project to the list of projects the OWASP dependency checker will look at
  • + *
  • adds the {@code /LICENSE} file to the root of all distributions
  • + *
+ */ +public class DistributionConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return DistributionPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(BaseConvention.class); + project.getPlugins().apply(DistributionPlugin.class); + + Project rootProject = project.getRootProject(); + rootProject.getPlugins().withType(DependencyCheckPlugin.class).configureEach(depCheckPlugin -> { + rootProject.getExtensions().configure(DependencyCheckExtension.class, dependencyCheck -> { + dependencyCheck.getScanProjects().add(project.getPath()); + }); + }); + + // Add license to all distributions + project.getExtensions().configure(DistributionContainer.class, distributions -> distributions.configureEach( + distribution -> distribution.getContents().from(project.getRootProject().file("LICENSE"))) + ); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/GalvanConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/GalvanConvention.java new file mode 100644 index 0000000000..83e20ff5ee --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/GalvanConvention.java @@ -0,0 +1,51 @@ +package org.terracotta.build.conventions; + +import org.gradle.api.Project; +import org.gradle.api.artifacts.ProjectDependency; +import org.gradle.api.artifacts.dsl.DependencyFactory; +import org.gradle.api.tasks.testing.Test; +import org.terracotta.build.plugins.GalvanPlugin; + +import static org.terracotta.build.plugins.GalvanPlugin.FRAMEWORK_CONFIGURATION_NAME; + +/** + * Convention plugin for projects that run Galvan based tests. + * This convention: + *
    + *
  • picks the local enterprise galvan libraries over the open source ones the plugin configures
  • + *
  • configures the use of the locally built kit
  • + *
  • caps us at a maximum of 3 concurrent tests, and tweaks the test JVM arguments
  • + *
+ */ +@SuppressWarnings("UnstableApiUsage") +public class GalvanConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return GalvanPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(GalvanPlugin.class); + + DependencyFactory dependencyFactory = project.getDependencyFactory(); + + project.getConfigurations().named(FRAMEWORK_CONFIGURATION_NAME, config -> { + config.getDependencies().add(dependencyFactory.create(project.project(":galvan-platform-support"))); + }); + + project.getConfigurations().named("galvanKit", config -> { + ProjectDependency projectDependency = dependencyFactory.create(project.project(":kit")); + projectDependency.setTargetConfiguration("kit"); + config.getDependencies().add(projectDependency); + }); + + project.getTasks().withType(Test.class).configureEach(task -> { + task.setMaxParallelForks(3); + task.jvmArgs("-XX:MaxDirectMemorySize=1536m"); + task.jvmArgs("-XX:SoftRefLRUPolicyMSPerMB=0"); + task.systemProperty("org.terracotta.disablePortReleaseCheck", "true"); + }); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/JavaBaseConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/JavaBaseConvention.java new file mode 100644 index 0000000000..440335ba8c --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/JavaBaseConvention.java @@ -0,0 +1,89 @@ +package org.terracotta.build.conventions; + +import org.terracotta.build.plugins.JavaVersionPlugin; +import org.terracotta.build.plugins.PackagePlugin; +import org.gradle.api.Project; +import org.gradle.api.artifacts.dsl.DependencyAdder; +import org.gradle.api.plugins.JavaBasePlugin; +import org.gradle.api.plugins.JavaPluginExtension; +import org.gradle.api.plugins.JvmTestSuitePlugin; +import org.gradle.api.plugins.PluginContainer; +import org.gradle.api.plugins.jvm.JvmTestSuite; +import org.gradle.jvm.toolchain.JavaToolchainService; +import org.gradle.testing.base.TestingExtension; + +/** + * Convention plugin for the {@code java-base} plugin (a dependency of the {@code java} and {@code java-library} plugins). + * This convention: + *
    + *
  • applies the base convention
  • + *
  • applies the checkstyle convention
  • + *
  • applies the spotbugs convention
  • + *
  • augments dependency attribute schema to understand the 'unpackaged runtime' concept
  • + *
  • wires compile tasks to the {@code compileVersion} Gradle property
  • + *
  • configures the junit version used (by default) for test suites
  • + *
  • adds a set of baseline dependencies for test suites
  • + *
  • sets a default maximum heap sizde for test suites
  • + *
+ */ +@SuppressWarnings("UnstableApiUsage") +public class JavaBaseConvention implements ConventionPlugin { + + @Override + public void apply(Project project) { + PluginContainer plugins = project.getPlugins(); + plugins.apply(JavaBasePlugin.class); + plugins.apply(BaseConvention.class); + plugins.apply(JavaVersionPlugin.class); + plugins.apply(CheckstyleConvention.class); + plugins.apply(SpotBugsConvention.class); + + JavaVersionPlugin.JavaVersions javaVersions = project.getExtensions().getByType(JavaVersionPlugin.JavaVersions.class); + + PackagePlugin.augmentAttributeSchema(project.getDependencies().getAttributesSchema()); + + project.getExtensions().configure(JavaPluginExtension.class, java -> { + java.toolchain(toolchain -> toolchain.getLanguageVersion().convention(javaVersions.getCompileVersion())); + }); + + project.getPlugins().withType(JvmTestSuitePlugin.class).configureEach(plugin -> { + project.getConfigurations().configureEach(config -> + config.getResolutionStrategy().dependencySubstitution(subs -> { + subs.substitute(subs.module("org.hamcrest:hamcrest-core:1.3")) + .using(subs.module("org.hamcrest:hamcrest-core:" + project.property("hamcrestVersion"))); + subs.substitute(subs.module("junit:junit:4.12")) + .using(subs.module("junit:junit:" + project.property("junitVersion"))); + }) + ); + + project.getExtensions().configure(TestingExtension.class, testing -> { + testing.getSuites().withType(JvmTestSuite.class).configureEach(testSuite -> { + testSuite.useJUnit(project.property("junitVersion").toString()); + + DependencyAdder implementation = testSuite.getDependencies().getImplementation(); + implementation.add("org.hamcrest:hamcrest:" + project.property("hamcrestVersion")); + implementation.add("org.hamcrest:hamcrest-core:" + project.property("hamcrestVersion")); + implementation.add("org.hamcrest:hamcrest-library:" + project.property("hamcrestVersion")); + implementation.add("org.mockito:mockito-core:" + project.property("mockitoVersion")); + + testSuite.getTargets().configureEach(target -> { + target.getTestTask().configure(test -> { + test.setMaxHeapSize("256m"); + + // Override default toolchain for tests + // acquire a provider that returns the launcher for the toolchain + test.getJavaLauncher().set(project.getExtensions().getByType(JavaToolchainService.class) + .launcherFor(spec -> spec.getLanguageVersion().convention(javaVersions.getTestVersion()))); + test.environment("JAVA_HOME", test.getJavaLauncher().get().getMetadata().getInstallationPath()); + }); + }); + }); + }); + }); + } + + @Override + public Class isConventionFor() { + return JavaBasePlugin.class; + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/JavaConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/JavaConvention.java new file mode 100644 index 0000000000..6426551676 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/JavaConvention.java @@ -0,0 +1,33 @@ +package org.terracotta.build.conventions; + +import org.gradle.api.Project; +import org.gradle.api.plugins.JavaPlugin; +import org.gradle.api.plugins.JavaPluginExtension; +import org.gradle.api.plugins.PluginContainer; + +/** + * Convention plugin for the {@code java} plugin. + * This convention: + *
    + *
  • enables source jar generation
  • + *
  • adds {@code org.slf4j:slf4j-api} to the implementation scope
  • + *
+ */ +public class JavaConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return JavaPlugin.class; + } + + @Override + public void apply(Project project) { + PluginContainer plugins = project.getPlugins(); + plugins.apply(JavaPlugin.class); + plugins.apply(JavaBaseConvention.class); + + project.getExtensions().configure(JavaPluginExtension.class, JavaPluginExtension::withSourcesJar); + + project.getDependencies().add(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, "org.slf4j:slf4j-api:" + project.property("slf4jVersion")); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/JavaLibraryConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/JavaLibraryConvention.java new file mode 100644 index 0000000000..374874a359 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/JavaLibraryConvention.java @@ -0,0 +1,23 @@ +package org.terracotta.build.conventions; + +import org.gradle.api.Project; +import org.gradle.api.plugins.JavaLibraryPlugin; + +/** + * Convention plugin for the {@code java-library} plugin. + * This convention exists to allow for natural use of the {@link JavaConvention} plugin when desiring the + * {@code java-library} plugin which indirectly applies the {@code java} plugin. + */ +public class JavaLibraryConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return JavaLibraryPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(JavaLibraryPlugin.class); + project.getPlugins().apply(JavaConvention.class); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/PackageConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/PackageConvention.java new file mode 100644 index 0000000000..a5e4e83825 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/PackageConvention.java @@ -0,0 +1,69 @@ +package org.terracotta.build.conventions; + +import aQute.bnd.osgi.Constants; +import aQute.bnd.version.MavenVersion; +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar; +import org.gradle.api.Project; +import org.gradle.api.tasks.Sync; +import org.terracotta.build.plugins.PackagePlugin; +import org.terracotta.build.plugins.buildinfo.StructuredVersion; +import org.terracotta.build.plugins.packaging.OsgiManifestJarExtension; + +import static org.terracotta.build.PluginUtils.capitalize; +import static org.terracotta.build.Utils.mapOf; +import static org.terracotta.build.plugins.packaging.PackageInternal.SOURCES_TASK_NAME; +import static org.terracotta.build.plugins.packaging.PackageInternal.UNPACKAGED_API_ELEMENTS_CONFIGURATION_NAME; + +/** + * Convention plugin for our custom packaging plugin. + * This convention: + *
    + *
  • enforces our standard relocation rules on packages shared between 4.x and 10.x
  • + *
  • sets the OSGi bundle version to the iBit {@code 1.2.3.0004-0005} convention
  • + *
  • excludes the relocated modules from all the unpackaged API elements configurations - + * this prevents conflict between API and runtime classpaths
  • + *
  • excludes license related files from package inputs and includes the local NOTICE file
  • + *
+ */ +public class PackageConvention implements ConventionPlugin { + @Override + public Class isConventionFor() { + return PackagePlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(JavaBaseConvention.class); + project.getPlugins().apply(PackagePlugin.class); + + project.getTasks().withType(ShadowJar.class).configureEach(shadow -> { + shadow.exclude("LICENSE", "NOTICE"); + shadow.from(project.getRootProject().file("NOTICE")); + + shadow.relocate("org.terracotta.statistics.", "org.terracotta.shadow.org.terracotta.statistics."); + shadow.relocate("org.terracotta.context.", "org.terracotta.shadow.org.terracotta.context."); + shadow.relocate("org.terracotta.offheapstore.", "org.terracotta.shadow.org.terracotta.offheapstore."); + shadow.relocate("org.terracotta.offheapstore.", "org.terracotta.shadow.org.terracotta.offheapstore."); + shadow.relocate("org.terracotta.frs.", "org.terracotta.shadow.org.terracotta.frs."); + + shadow.getExtensions().configure(OsgiManifestJarExtension.class, manifest -> { + String sagVersion = BaseConvention.toSagVersion((StructuredVersion) project.getVersion()); + manifest.instruction(Constants.BUNDLE_VERSION, new MavenVersion(sagVersion).getOSGiVersion().toString()); + }); + }); + + //exclude shaded packages from the unpackaged api elements + project.getConfigurations().matching(s -> s.getName().equals(UNPACKAGED_API_ELEMENTS_CONFIGURATION_NAME) + || s.getName().endsWith(capitalize(UNPACKAGED_API_ELEMENTS_CONFIGURATION_NAME))).configureEach(config -> { + config.exclude(mapOf(String.class, String.class, "group", "org.terracotta", "module", "statistics")); + config.exclude(mapOf(String.class, String.class, "group", "org.terracotta", "module", "offheap-store")); + config.exclude(mapOf(String.class, String.class, "group", "org.terracotta", "module", "fast-restartable-store")); + }); + + project.getTasks().withType(Sync.class).matching(s -> s.getName().equals(SOURCES_TASK_NAME) + || s.getName().endsWith(capitalize(SOURCES_TASK_NAME))).configureEach(sources -> { + sources.exclude("LICENSE", "NOTICE"); + }); + + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/SpotBugsConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/SpotBugsConvention.java new file mode 100644 index 0000000000..76c9a4755d --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/SpotBugsConvention.java @@ -0,0 +1,79 @@ +package org.terracotta.build.conventions; + +import com.github.spotbugs.snom.SpotBugsExtension; +import com.github.spotbugs.snom.SpotBugsPlugin; +import com.github.spotbugs.snom.SpotBugsTask; +import org.terracotta.build.plugins.JavaVersionPlugin; +import org.gradle.api.Project; +import org.gradle.api.plugins.JvmEcosystemPlugin; +import org.gradle.api.provider.Provider; +import org.gradle.api.tasks.SourceSetContainer; +import org.gradle.jvm.toolchain.JavaLauncher; +import org.gradle.jvm.toolchain.JavaToolchainService; + +import java.util.Locale; + +import static org.gradle.language.base.plugins.LifecycleBasePlugin.VERIFICATION_GROUP; + +/** + * Convention plugin for the SpotBugs (aka FindBugs) static analysis tool. + * This convention: + *
    + *
  • forces the underlying SpotBugs library to 4.2.0 due to dumb heuristics in later versions
  • + *
  • adds the SpotBugs annotations to every source sets compile-only scope
  • + *
  • registers XML & HTML reports, but only enable the html (XML is used in CI)
  • + *
  • registers the {@code spotbugs} uber-task that depends on all the spotbugs analysis tasks
  • + *
+ */ +public class SpotBugsConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return SpotBugsPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(SpotBugsPlugin.class); + + SpotBugsExtension spotbugs = project.getExtensions().getByType(SpotBugsExtension.class); + + spotbugs.getToolVersion().value("4.7.3"); + /* + * Spotbugs 4.3.0 introduced a new "explicit immutable list" approach to identifying mutable types. This results in + * an explosion of EI_EXPOSE_REP warnings (and it's derivatives). Some of these are correct some are not, but it's + * all compounded by SpotBugs not understanding simple idioms like `unmodifiableList(...)` as fixes. We're just going + * to suppress that detector until someone in SpotBugs wises up. + */ + spotbugs.getOmitVisitors().add("FindReturnRef"); + + project.getPlugins().withType(JvmEcosystemPlugin.class).configureEach(plugin -> + project.getExtensions().configure(SourceSetContainer.class, sourceSets -> sourceSets.configureEach(sourceSet -> { + project.getDependencies().addProvider(sourceSet.getCompileOnlyConfigurationName(), spotbugs.getToolVersion().map(version -> "com.github.spotbugs:spotbugs-annotations:" + version)); + + if (sourceSet.getName().toLowerCase(Locale.ROOT).contains("test")) { + project.getTasks().named(sourceSet.getTaskName("spotbugs", null), SpotBugsTask.class).configure(task -> task.setEnabled(false)); + } + })) + ); + + project.getPlugins().withType(JavaVersionPlugin.class).configureEach(plugin -> { + project.getExtensions().configure(JavaVersionPlugin.JavaVersions.class, javaVersions -> { + Provider compileJavaLauncher = project.getExtensions().getByType(JavaToolchainService.class) + .launcherFor(spec -> spec.getLanguageVersion().convention(javaVersions.getCompileVersion())); + project.getTasks().withType(SpotBugsTask.class).configureEach(task -> task.getLauncher().set(compileJavaLauncher)); + }); + }); + + project.getTasks().withType(SpotBugsTask.class).configureEach(task -> task.reports(reports -> { + reports.register("xml", xml -> xml.getRequired().set(false)); + reports.register("html", html -> html.getRequired().set(true)); + })); + + project.getTasks().register("spotbugs", task -> { + task.setDescription("Run SpotBugs analysis"); + task.setGroup(VERIFICATION_GROUP); + task.dependsOn(project.getTasks().withType(SpotBugsTask.class)); + }); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/VoltronConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/VoltronConvention.java new file mode 100644 index 0000000000..62cd772707 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/VoltronConvention.java @@ -0,0 +1,38 @@ +package org.terracotta.build.conventions; + +import org.terracotta.build.plugins.VoltronPlugin; +import org.gradle.api.Project; +import org.gradle.api.artifacts.dsl.DependencyFactory; + +import static java.util.Arrays.asList; + +/** + * Convention plugin for Voltron resident libraries. + * This convention adds the standard set of Voltron provided libraries to the 'voltron' dependency scope. + */ +@SuppressWarnings("UnstableApiUsage") +public class VoltronConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return VoltronPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(VoltronPlugin.class); + + DependencyFactory dependencyFactory = project.getDependencyFactory(); + + project.getConfigurations().named(VoltronPlugin.VOLTRON_CONFIGURATION_NAME, config -> { + String terracottaApisVersion = project.property("terracottaApisVersion").toString(); + String slf4jVersion = project.property("slf4jVersion").toString(); + config.getDependencies().addAll(asList( + dependencyFactory.create("org.terracotta", "entity-server-api", terracottaApisVersion), + dependencyFactory.create("org.terracotta", "standard-cluster-services", terracottaApisVersion), + dependencyFactory.create("org.terracotta", "packaging-support", terracottaApisVersion), + dependencyFactory.create("org.slf4j", "slf4j-api", slf4jVersion) + )); + }); + } +} diff --git a/build-logic/src/main/java/org/terracotta/build/conventions/XjcConvention.java b/build-logic/src/main/java/org/terracotta/build/conventions/XjcConvention.java new file mode 100644 index 0000000000..d30ba7046d --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/conventions/XjcConvention.java @@ -0,0 +1,53 @@ +package org.terracotta.build.conventions; + +import org.gradle.api.Project; +import org.gradle.api.internal.HasConvention; +import org.gradle.api.provider.Provider; +import org.gradle.api.services.BuildService; +import org.gradle.api.services.BuildServiceParameters; +import org.gradle.api.tasks.SourceSetContainer; +import org.gradle.api.tasks.Sync; +import org.gradle.api.tasks.TaskProvider; +import org.unbrokendome.gradle.plugins.xjc.XjcGenerate; +import org.unbrokendome.gradle.plugins.xjc.XjcPlugin; +import org.unbrokendome.gradle.plugins.xjc.XjcSourceSetConvention; + +/** + * Convention plugin for projects that use the XJC binding tool (via the 'org.unbroken-dome.xjc' plugin). + * This convention: + *
    + *
  • adds the XJC schema input to the source-set output so that it is available as a classpath resource
  • + *
  • constrains the XJC tasks to run one-at-a-time to avoid + * gradle-xjc-plugin/issues/33
  • + *
+ */ +@SuppressWarnings("deprecation") // Xjc plugin still uses convention objects +public class XjcConvention implements ConventionPlugin { + + @Override + public Class isConventionFor() { + return XjcPlugin.class; + } + + @Override + public void apply(Project project) { + project.getPlugins().apply(XjcPlugin.class); + + project.getExtensions().configure(SourceSetContainer.class, sourceSets -> sourceSets.configureEach(sourceSet -> { + XjcSourceSetConvention xjc = ((HasConvention) sourceSet).getConvention().getPlugin(XjcSourceSetConvention.class); + TaskProvider xjcSchemaSync = project.getTasks().register(sourceSet.getTaskName("xjcSchemaSync", null), Sync.class, sync -> { + sync.from(xjc.getXjcSchema()); + sync.into(project.getLayout().getBuildDirectory().dir("generated/resources/xjc/schema/" + sourceSet.getName())); + }); + sourceSet.getOutput().dir(xjcSchemaSync); + })); + + Provider xjcTaskMutex = project.getGradle().getSharedServices() + .registerIfAbsent("org.terracotta.xjc-task-mutex", XjcRunPermit.class, xjc -> xjc.getMaxParallelUsages().set(1)); + + project.getTasks().withType(XjcGenerate.class).configureEach(task -> task.usesService(xjcTaskMutex)); + } + + public static abstract class XjcRunPermit implements BuildService { } + +} diff --git a/build-logic/src/main/java/org/terracotta/build/plugins/ToolPlugin.java b/build-logic/src/main/java/org/terracotta/build/plugins/ToolPlugin.java new file mode 100644 index 0000000000..bfc44517c8 --- /dev/null +++ b/build-logic/src/main/java/org/terracotta/build/plugins/ToolPlugin.java @@ -0,0 +1,357 @@ +package org.terracotta.build.plugins; + +import groovy.text.SimpleTemplateEngine; +import groovy.text.Template; +import org.gradle.api.Action; +import org.gradle.api.DomainObjectSet; +import org.gradle.api.Plugin; +import org.gradle.api.Project; +import org.gradle.api.UncheckedIOException; +import org.gradle.api.attributes.Category; +import org.gradle.api.attributes.Usage; +import org.gradle.api.file.CopySpec; +import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.file.FileCollection; +import org.gradle.api.file.RegularFile; +import org.gradle.api.internal.ConventionTask; +import org.gradle.api.plugins.ExtensionAware; +import org.gradle.api.plugins.JavaPlugin; +import org.gradle.api.provider.ListProperty; +import org.gradle.api.provider.Property; +import org.gradle.api.provider.Provider; +import org.gradle.api.resources.TextResource; +import org.gradle.api.tasks.Input; +import org.gradle.api.tasks.Internal; +import org.gradle.api.tasks.Nested; +import org.gradle.api.tasks.OutputFile; +import org.gradle.api.tasks.SourceSetContainer; +import org.gradle.api.tasks.Sync; +import org.gradle.api.tasks.TaskAction; +import org.gradle.api.tasks.bundling.AbstractArchiveTask; +import org.gradle.api.tasks.bundling.Jar; +import org.gradle.internal.os.OperatingSystem; +import org.gradle.language.base.plugins.LifecycleBasePlugin; +import org.owasp.dependencycheck.gradle.DependencyCheckPlugin; +import org.owasp.dependencycheck.gradle.extension.DependencyCheckExtension; +import org.terracotta.build.plugins.CopyrightPlugin; + +import java.io.File; +import java.io.IOException; +import java.io.Serializable; +import java.io.Writer; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.attribute.PosixFileAttributeView; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.stream.Stream; + +import static java.nio.file.Files.getFileAttributeView; +import static java.nio.file.Files.newBufferedWriter; +import static java.nio.file.attribute.PosixFilePermissions.fromString; +import static java.util.Collections.nCopies; +import static java.util.Objects.requireNonNull; +import static java.util.stream.Collectors.joining; +import static java.util.stream.Collectors.toList; +import static java.util.stream.StreamSupport.stream; +import static org.terracotta.build.Utils.mapOf; +import static org.terracotta.build.plugins.packaging.PackageInternal.UNPACKAGED_JAVA_RUNTIME; + +/** + * Plugin to support generating Java-based tools with Windows and *nix launch scripts. + *

+ * Minimal Example: + *

+ * tool {
+ *   name = 'config-tool'
+ *   mainClass = 'org.terracotta.dynamic_config.cli.config_tool.ConfigTool'
+ * }
+ * 
+ * This tool will generate a complete directory structure for the tool in question including start scripts and all + * necessary Java libraries in the configured locations. + * Maximal Example: + *
+ * tool {
+ *   name = 'management-server'
+ *   jar = bootJar
+ *   classpath = files([])
+ *   unixTemplate = resources.text.fromFile('src/tool/start.sh.template', 'UTF-8')
+ *   windowsTemplate = resources.text.fromFile('src/tool/start.bat.template', 'UTF-8')
+ *   extraContents {
+ *     into('bin') {
+ *       from project.files('src/tool/legacy/bin')
+ *       eachFile {
+ *         mode 0775
+ *       }
+ *     }
+ *   }
+ * }
+ * 
+ */ +public class ToolPlugin implements Plugin { + + public static final String TOOL_CATEGORY = "tool"; + + private static final String DEFAULT_LIBRARY_PATH = "lib"; + private static final String DEFAULT_SCRIPT_PATH = "bin"; + + private static final URL DEFAULT_UNIX_TEMPLATE = requireNonNull(ToolPlugin.class.getResource("/tool/start.sh.template")); + private static final URL DEFAULT_WINDOWS_TEMPLATE = requireNonNull(ToolPlugin.class.getResource("/tool/start.bat.template")); + + @Override + public void apply(Project project) { + ToolExtension toolExtension = project.getExtensions().create(ToolExtension.class, "tool", ToolExtension.class); + toolExtension.getBinDirectory().convention(DEFAULT_SCRIPT_PATH); + toolExtension.getLibDirectory().convention(DEFAULT_LIBRARY_PATH); + toolExtension.getUnixTemplate().convention(project.getResources().getText().fromUri(DEFAULT_UNIX_TEMPLATE)); + toolExtension.getWindowsTemplate().convention(project.getResources().getText().fromUri(DEFAULT_WINDOWS_TEMPLATE)); + + Project rootProject = project.getRootProject(); + rootProject.getPlugins().withType(DependencyCheckPlugin.class).configureEach(depCheckPlugin -> { + rootProject.getExtensions().configure(DependencyCheckExtension.class, dependencyCheck -> { + dependencyCheck.getScanProjects().add(project.getPath()); + }); + }); + + project.getPlugins().withType(JavaPlugin.class).configureEach(javaPlugin -> { + project.getExtensions().configure(SourceSetContainer.class, sourceSets -> { + sourceSets.configureEach(sourceSet -> { + project.getConfigurations().named(sourceSet.getRuntimeClasspathConfigurationName()).configure(config -> { + config.attributes(attributes -> { + attributes.attribute(Usage.USAGE_ATTRIBUTE, project.getObjects().named(Usage.class, UNPACKAGED_JAVA_RUNTIME)); + }); + }); + }); + }); + + toolExtension.getClasspath().convention(project.getConfigurations().named(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME)); + toolExtension.getJar().convention(project.getTasks().named(JavaPlugin.JAR_TASK_NAME, Jar.class, t -> { + Property classpath = toolExtension.getClasspath(); + t.dependsOn(classpath); + t.manifest(manifest -> manifest.attributes(mapOf( + "Main-Class", toolExtension.getMainClass(), + "Class-Path", classpath.flatMap(conf -> conf.getElements().map(e -> e.stream().map(element -> element.getAsFile().getName()).collect(joining(" ")))) + ))); + })); + }); + + Provider scriptsTask = project.getTasks().register("generateToolScripts", CreateToolScripts.class, t -> { + t.getToolName().convention(toolExtension.getName()); + t.getOutputDir().convention(project.getLayout().getBuildDirectory().dir("scripts")); + + t.getUnixTemplate().convention(toolExtension.getUnixTemplate()); + t.getWindowsTemplate().convention(toolExtension.getWindowsTemplate()); + t.getJavaOptions().convention(toolExtension.getJavaOptions()); + t.getJavaArguments().convention(toolExtension.getJavaArguments()); + + Provider jarName = toolExtension.getJar().flatMap(jar -> jar.getArchiveFile().map(f -> f.getAsFile().getName())); + Provider fromRootJarPath = toolExtension.getLibDirectory().zip(jarName, (path, name) -> Paths.get(path).resolve(name)); + t.getJarPath().convention(toolExtension.getBinDirectory().zip(fromRootJarPath, (bin, jar) -> stream(Paths.get(bin).relativize(jar).spliterator(), false).map(Path::toString).collect(toList()))); + }); + + Provider assembleTool = project.getTasks().register("assembleTool", Sync.class, sync -> { + sync.setGroup(LifecycleBasePlugin.BUILD_GROUP); + sync.into(project.getLayout().getBuildDirectory().dir("tool")); + + sync.into(toolExtension.getLibDirectory(), spec -> { + spec.from(toolExtension.getJar()); + spec.from(toolExtension.getClasspath()); + }); + + sync.into(toolExtension.getBinDirectory(), spec -> spec.from(scriptsTask)); + + toolExtension.getExtras().configureEach(action -> sync.with(project.copySpec(action))); + }); + + project.getPlugins().withType(CopyrightPlugin.class).configureEach(plugin -> + ((ExtensionAware) toolExtension).getExtensions().add("copyright", plugin.createCopyrightSet(project, "tool", + copyright -> copyright.check(project.getTasks().withType(CreateToolScripts.class)))) + ); + + project.getConfigurations().register("tool", c -> { + c.setCanBeConsumed(true); + c.attributes(a -> a.attribute(Category.CATEGORY_ATTRIBUTE, project.getObjects().named(Category.class, TOOL_CATEGORY))); + }); + project.getArtifacts().add("tool", assembleTool.map(Sync::getDestinationDir)); + } + + public abstract static class ToolExtension { + + public abstract Property getName(); + + public abstract Property getMainClass(); + + public abstract Property getBinDirectory(); + + public abstract Property getLibDirectory(); + + public abstract Property getUnixTemplate(); + + public abstract Property getWindowsTemplate(); + + public abstract Property getJar(); + + public abstract Property getClasspath(); + + public abstract DomainObjectSet> getExtras(); + + public void extraContents(Action action) { + getExtras().add(action); + } + + public abstract ListProperty getJavaOptions(); + public abstract ListProperty getJavaArguments(); + + public static PlatformSensitiveString env(String variable) { + return os -> os.isWindows() ? "%" + variable + "%" : "${" + variable + "}"; + } + + public static PlatformSensitiveString path(Object ... elements) { + return os -> Stream.of(elements).map(o -> stringForPlatform(o, os)).collect(joining(os.isWindows() ? "\\" : "/")); + } + + public static PlatformSensitiveString argument(Object ... elements) { + return os -> { + String argument = Stream.of(elements).map(o -> stringForPlatform(o, os)).collect(joining()); + if (os.isWindows()) { + return "\"" + argument + "\""; + } else { + return argument; + } + }; + } + } + + public abstract static class CreateToolScripts extends ConventionTask { + + @Input + abstract public Property getToolName(); + + @Input + abstract public ListProperty getJarPath(); + + @Input + public abstract ListProperty getJavaOptions(); + + @Input + public abstract ListProperty getJavaArguments(); + + @Internal + abstract public DirectoryProperty getOutputDir(); + + @Nested + abstract public Property getUnixTemplate(); + + @Nested + abstract public Property getWindowsTemplate(); + + @OutputFile + public Provider getUnixScript() { + return getOutputDir().file(getToolName().map(name -> name + ".sh")); + } + + @OutputFile + public Provider getWindowsScript() { + return getOutputDir().file(getToolName().map( name -> name + ".bat")); + } + + @Internal + Template getUnixTemplateInstance() { + return createTemplate(getUnixTemplate().get()); + } + + @Internal + Template getWindowsTemplateInstance() { + return createTemplate(getWindowsTemplate().get()); + } + + private final SimpleTemplateEngine engine = new SimpleTemplateEngine(); + + private Template createTemplate(TextResource template) { + try { + return engine.createTemplate(template.asReader()); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + @TaskAction + void generate() throws IOException { + File unixScript = getUnixScript().get().getAsFile(); + try (Writer writer = newBufferedWriter(unixScript.toPath(), StandardCharsets.UTF_8)) { + getUnixTemplateInstance().make(variablesFor(OperatingSystem.UNIX)).writeTo(writer); + } + + /* + * Windows batch scripts are interpreted in the OEM code page of the executing machine. + * In order to minimize our chances of seeing issues here we constrain ourselves to US-ASCII only. + */ + File windowsScript = getWindowsScript().get().getAsFile(); + try (Writer writer = newBufferedWriter(windowsScript.toPath(), StandardCharsets.US_ASCII)) { + getWindowsTemplateInstance().make(variablesFor(OperatingSystem.WINDOWS)).writeTo(writer); + } + + PosixFileAttributeView unixScriptAttrs = getFileAttributeView(unixScript.toPath(), PosixFileAttributeView.class); + if (unixScriptAttrs != null) { + unixScriptAttrs.setPermissions(fromString("rwxrwxr-x")); + } + } + + Map variablesFor(OperatingSystem os) { + List libDirFromBin = getJarPath().get(); + + int backTraversals = countLeading("..", libDirFromBin); + + List libFromTop = libDirFromBin.subList(backTraversals, libDirFromBin.size()); + + if (libFromTop.contains("..")) { + throw new IllegalArgumentException("Unexpected back traversal in path: " + libDirFromBin); + } + + return mapOf(String.class, String.class, + "jar", ToolExtension.path(libFromTop.toArray()).toString(os), + "tooldir_evaluation", backTraversals("TOOL_DIR", backTraversals, os), + "java_opts", getJavaOptions().get().stream().map(o -> stringForPlatform(o, os)).collect(joining(" ")), + "java_args", getJavaArguments().get().stream().map(o -> stringForPlatform(o, os)).collect(joining(" ")) + ); + } + + private static String backTraversals(String variable, int count, OperatingSystem os) { + String backTraversal = ToolExtension.path(nCopies(count, "..").toArray()).toString(os); + String variableSet; + if (os.isWindows()) { + variableSet = "pushd \"%%~dp0%2$s\"\r\n" + "set \"%1$s=%%CD%%\"\r\n" + "popd\r\n"; + } else { + variableSet = "%1$s=\"$(cd \"$(dirname \"$0\")/%2$s\"; pwd)\"\n"; + } + return String.format(Locale.ROOT, variableSet, variable, backTraversal); + } + + private static int countLeading(T lead, Iterable elements) { + int count = 0; + for (T element : elements) { + if (lead.equals(element)) { + count++; + } else { + break; + } + } + return count; + } + } + + private static String stringForPlatform(Object o, OperatingSystem os) { + if (o instanceof PlatformSensitiveString) { + return ((PlatformSensitiveString) o).toString(os); + } else { + return o.toString(); + } + } + + interface PlatformSensitiveString extends Serializable { + String toString(OperatingSystem os); + } +} diff --git a/build-logic/src/main/resources/META-INF/services/org.terracottata.build.conventions.ConventionPlugin b/build-logic/src/main/resources/META-INF/services/org.terracottata.build.conventions.ConventionPlugin new file mode 100644 index 0000000000..9156380afb --- /dev/null +++ b/build-logic/src/main/resources/META-INF/services/org.terracottata.build.conventions.ConventionPlugin @@ -0,0 +1,12 @@ +org.terracotta.build.conventions.AngelaConvention +org.terracotta.build.conventions.BaseConvention +org.terracotta.build.conventions.BlacklistConvention +org.terracotta.build.conventions.CheckstyleConvention +org.terracotta.build.conventions.DistributionConvention +org.terracotta.build.conventions.GalvanConvention +org.terracotta.build.conventions.JavaBaseConvention +org.terracotta.build.conventions.JavaConvention +org.terracotta.build.conventions.JavaLibraryConvention +org.terracotta.build.conventions.SpotBugsConvention +org.terracotta.build.conventions.VoltronConvention +org.terracotta.build.conventions.XjcConvention diff --git a/build-logic/src/main/resources/tool/start.bat.template b/build-logic/src/main/resources/tool/start.bat.template new file mode 100644 index 0000000000..e7911f789a --- /dev/null +++ b/build-logic/src/main/resources/tool/start.bat.template @@ -0,0 +1,30 @@ +:: Copyright Terracotta, Inc. +:: Copyright Super iPaaS Integration LLC, an IBM Company 2017, 2024 + +@echo off +setlocal EnableExtensions EnableDelayedExpansion + +pushd "%~dp0" +set "BIN_DIR=%CD%" +popd + +${tooldir_evaluation} + +if exist "%BIN_DIR%\\setenv.bat" ( + pushd "%BIN_DIR%" && ( + call .\\setenv.bat + popd + ) +) + +if not defined JAVA_HOME ( + echo Environment variable JAVA_HOME needs to be set + exit /b 1 +) + +set JAVA="%JAVA_HOME%\\bin\\java.exe" + +%JAVA% ${java_opts} %JAVA_OPTS% -jar "%TOOL_DIR%\\${jar}" ${java_args} %* + +exit /b %ERRORLEVEL% +endlocal diff --git a/build-logic/src/main/resources/tool/start.sh.template b/build-logic/src/main/resources/tool/start.sh.template new file mode 100644 index 0000000000..8d85cc739c --- /dev/null +++ b/build-logic/src/main/resources/tool/start.sh.template @@ -0,0 +1,21 @@ +#!/bin/sh +# Copyright Terracotta, Inc. +# Copyright Super iPaaS Integration LLC, an IBM Company 2017, 2024 + +BIN_DIR="\$(cd "\$(dirname "\$0")" || exit; pwd)" || exit +${tooldir_evaluation} + +# this will only happen if using sag installer +if [ -r "\${BIN_DIR}/setenv.sh" ] ; then + . "\${BIN_DIR}/setenv.sh" +fi + +if [ ! -d "\${JAVA_HOME}" ]; then + echo "ERROR: JAVA_HOME must point to Java installation." + echo " \${JAVA_HOME}" + exit 2 +fi + +JAVA="\${JAVA_HOME}/bin/java" + +exec "\${JAVA}" ${java_opts} \${JAVA_OPTS} -jar "\${TOOL_DIR}/${jar}" ${java_args} "\$@" \ No newline at end of file diff --git a/build-logic/src/test/java/org/terracotta/build/conventions/BaseConventionTest.java b/build-logic/src/test/java/org/terracotta/build/conventions/BaseConventionTest.java new file mode 100644 index 0000000000..709cb0fdd9 --- /dev/null +++ b/build-logic/src/test/java/org/terracotta/build/conventions/BaseConventionTest.java @@ -0,0 +1,141 @@ +package org.terracotta.build.conventions; + +import org.gradle.testkit.runner.BuildResult; +import org.gradle.testkit.runner.GradleRunner; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; + +import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; + +import static java.lang.System.getProperty; +import static java.nio.file.Files.write; +import static java.util.Arrays.asList; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Stream.concat; +import static java.util.stream.Stream.of; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.stringContainsInOrder; +import static org.hamcrest.io.FileMatchers.anExistingFile; + +public class BaseConventionTest { + + private static GradleRunner gradleRunnerWithLocalSetup(Path projectDir, String... arguments) { + return GradleRunner.create().withProjectDir(projectDir.toFile()).withPluginClasspath().withArguments(concat( + of("--gradle-user-home", getProperty("gradle-user-home")), + of(arguments)).collect(toList())); + } + + private static GradleRunner gradleRunner(Path projectDir, String... arguments) { + return GradleRunner.create().withProjectDir(projectDir.toFile()).withPluginClasspath() + .withArguments(arguments); + } + + @Test + public void testDefaultVersionBehavior(@TempDir Path projectDir) throws IOException { + write(projectDir.resolve("gradle.properties"), asList("defaultVersion = 1.0.0")); + + write(projectDir.resolve("build.gradle"), asList( + "plugins {", + " id 'org.terracotta.build.convention.base'", + "}", + "tasks.create('test').doFirst {", + " println \"version=${version}\"", + "}")); + + GradleRunner gradle = gradleRunnerWithLocalSetup(projectDir, "test"); + + BuildResult buildResult = gradle.build(); + + assertThat(buildResult.getOutput(), containsString( + "version=1.0.0")); + } + + @Test + public void testOverrideVersionBehavior(@TempDir Path projectDir) throws IOException { + write(projectDir.resolve("gradle.properties"), asList("defaultVersion = 1.0.0")); + + write(projectDir.resolve("build.gradle"), asList( + "plugins {", + " id 'org.terracotta.build.convention.base'", + "}", + "tasks.create('test').doFirst {", + " println \"version=${version}\"", + "}")); + + GradleRunner gradle = gradleRunnerWithLocalSetup(projectDir, "-PoverrideVersion=2.0.0", "test"); + + BuildResult buildResult = gradle.build(); + + assertThat(buildResult.getOutput(), containsString( + "version=2.0.0")); + } + + @Test + public void testConflictingDependencyVersionsFail(@TempDir Path projectDir) throws IOException { + write(projectDir.resolve("build.gradle"), asList( + "plugins {", + " id 'org.terracotta.build.convention.base'", + "}", + "configurations {", + " test", + "}", + "dependencies {", + " test 'ch.qos.logback:logback-core:1.2.3'", + " test 'ch.qos.logback:logback-classic:1.2.11'", + "}")); + + GradleRunner gradle = gradleRunnerWithLocalSetup(projectDir, "dependencies", "--configuration", "test"); + + BuildResult buildResult = gradle.buildAndFail(); + + assertThat(buildResult.getOutput(), stringContainsInOrder( + "Conflict", " found for the following module", + " - ch.qos.logback:logback-core between versions 1.2.11 and 1.2.3")); + } + + @Test + public void testRegistersAllRepositoriesInTheCorrectOrder(@TempDir Path projectDir) throws IOException { + write(projectDir.resolve("build.gradle"), asList( + "plugins {", + " id 'org.terracotta.build.convention.base'", + "}", + "tasks.create('test').doFirst {", + " repositories.each {", + " println it.url", + " }", + "}")); + + GradleRunner gradle = gradleRunner(projectDir, "test"); + + BuildResult buildResult = gradle.build(); + + assertThat(buildResult.getOutput(), stringContainsInOrder( + "https://repo.maven.apache.org/maven2", + "https://repo.terracotta.org/maven2")); + } + + @Test + public void testArtifactNamingIsLongForm(@TempDir Path projectDir) throws IOException { + write(projectDir.resolve("file.txt"), asList("Hello World")); + write(projectDir.resolve("settings.gradle"), asList( + "rootProject.name = 'bar'")); + write(projectDir.resolve("build.gradle"), asList( + "plugins {", + " id 'org.terracotta.build.convention.base'", + "}", + "group = 'foo'", + "tasks.register('test', Zip) {", + " from project.file('file.txt')", + "}")); + + GradleRunner gradle = gradleRunnerWithLocalSetup(projectDir, "test"); + + gradle.build(); + + assertThat(projectDir.resolve(Paths.get("build", "distributions", "foo.bar.zip")).toFile(), is(anExistingFile())); + } +} diff --git a/build-logic/terracotta-gradle-plugins b/build-logic/terracotta-gradle-plugins new file mode 160000 index 0000000000..117d61365c --- /dev/null +++ b/build-logic/terracotta-gradle-plugins @@ -0,0 +1 @@ +Subproject commit 117d61365c1cbae65ed0db64bb0667448ce2c7a5 diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000000..e1fd7ecfd1 --- /dev/null +++ b/build.gradle @@ -0,0 +1,37 @@ +import org.terracotta.build.conventions.BaseConvention + +plugins { + id 'org.owasp.dependencycheck' + id 'org.terracotta.build.convention.base' +} + +gradle.includedBuilds.forEach { includedBuild -> + project.tasks.named('check') { parentBuildCheckTask -> + parentBuildCheckTask.dependsOn(includedBuild.task(':check')) + } +} + +wrapper { + distributionType = Wrapper.DistributionType.ALL +} + +assert JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_1_8) : 'Terracotta Platform requires Java 8 or later to build' + +// Attention: these defaults may change in CI, see TcCi plugin +dependencyCheck { + cveValidForHours=24 + failBuildOnCVSS = 0 // Fail on all when not in CI (0-10) + suppressionFile = 'config/owasp-suppressions.xml' + skipConfigurations += ['checkstyle', 'spotbugs', 'asciidoctor'] + analyzers { + assemblyEnabled = false // no .NET here, prevent warnings + } +} + +allprojects { + afterEvaluate { Project p -> + if (p.getPlugins().hasPlugin(BasePlugin)) { + assert p.getPlugins().hasPlugin(BaseConvention) + } + } +} diff --git a/client-message-tracker/build.gradle b/client-message-tracker/build.gradle new file mode 100644 index 0000000000..8c228d25ae --- /dev/null +++ b/client-message-tracker/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'client-message-tracker' + name = 'Client Message Tracker Server Plugin' +} diff --git a/client-message-tracker/pom.xml b/client-message-tracker/pom.xml deleted file mode 100644 index e30f55a36f..0000000000 --- a/client-message-tracker/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - platform-root - org.terracotta - 5.10-SNAPSHOT - - 4.0.0 - - client-message-tracker - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - packaging-support - provided - - - org.slf4j - slf4j-api - provided - - - - junit - junit - test - - - org.hamcrest - hamcrest-all - test - - - org.mockito - mockito-core - test - - - - \ No newline at end of file diff --git a/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/OOOMessageHandler.java b/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/OOOMessageHandler.java index 1732695566..e961105a3b 100644 --- a/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/OOOMessageHandler.java +++ b/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/OOOMessageHandler.java @@ -29,25 +29,30 @@ import java.util.stream.Stream; /** - * Entities that want once and only once message invocation guarantees can delegate their invokes to this service. + * Entities that want once and only once message invocation guarantees can + * delegate their invokes to this service. */ @CommonComponent public interface OOOMessageHandler extends StateDumpable { /** - * Will return a cached response from a previous invocation of the same {@code message} with the given {@code context} - * if one existed. Else will apply {@code invokeFunction} and return the response after caching it. + * Will return a cached response from a previous invocation of the same + * {@code message} with the given {@code context} + * if one existed. Else will apply {@code invokeFunction} and return the + * response after caching it. * - * @param context invocation context - * @param message a message + * @param context invocation context + * @param message a message * @param invokeFunction the entity invocation logic - * @return a cached response if one is available, else the result of the {@code invokeFunction} + * @return a cached response if one is available, else the result of the + * {@code invokeFunction} * @throws EntityUserException */ R invoke(InvokeContext context, M message, BiFunction invokeFunction) throws EntityUserException; /** - * Notify that a client has disconnected from the cluster and all knowledge about that client can be cleared. + * Notify that a client has disconnected from the cluster and all knowledge + * about that client can be cleared. * * @param clientSourceId the client descriptor of the disconnected client */ @@ -59,10 +64,12 @@ public interface OOOMessageHandler getTrackedClients(); + /** * lookup of duplicates has closed and will no longer occur */ void closeDuplicatesWindow(); + /** * Lookup a response for a transaction for a client on a particular segment. * @@ -73,7 +80,8 @@ public interface OOOMessageHandler> recorded); + /** * Destroys the {@code OOOMessageHandler} */ diff --git a/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/Tracker.java b/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/Tracker.java index f655ad2772..69a6016f3b 100644 --- a/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/Tracker.java +++ b/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/Tracker.java @@ -21,8 +21,10 @@ import java.util.function.Predicate; /** - * Keeps track of an entity's objects with their ids and their corresponding values. - * The decision on whether or not to track an object is taken using the tracker policy of the implementation + * Keeps track of an entity's objects with their ids and their corresponding + * values. + * The decision on whether or not to track an object is taken using the tracker + * policy of the implementation * * @param type of the value */ @@ -43,9 +45,9 @@ interface Tracker extends StateDumpable { * The value is tracked if and only if the provided {@code object} is trackable, * which is determined using the tracker policy of the implementation. * - * @param id Incoming entity object ID + * @param id Incoming entity object ID * @param object Incoming entity object - * @param value Outgoing entity value + * @param value Outgoing entity value */ void track(long track, long id, M object, R value); @@ -58,7 +60,7 @@ interface Tracker extends StateDumpable { R getTrackedValue(long id); /** - * + * * @param id Tracked entity ID * @return Tracked entity request */ @@ -70,12 +72,13 @@ interface Tracker extends StateDumpable { * @param id Incoming entity ID */ void reconcile(long id); + /** * determines if the transaction id is old enough that it was cleared from * the cached message stream * * @param id transactionid of the message in question - * @return true if the message has been removed from the cached stream + * @return true if the message has been removed from the cached stream */ boolean wasReconciled(long id); } diff --git a/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/TrackerImpl.java b/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/TrackerImpl.java index 10ff5740a3..a83a2a032a 100644 --- a/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/TrackerImpl.java +++ b/client-message-tracker/src/main/java/org/terracotta/client/message/tracker/TrackerImpl.java @@ -16,22 +16,22 @@ */ package org.terracotta.client.message.tracker; -import org.terracotta.entity.StateDumpCollector; - import java.util.ArrayList; import java.util.Collection; import java.util.Optional; import java.util.SortedMap; import java.util.TreeMap; +import org.terracotta.entity.StateDumpCollector; + class TrackerImpl implements Tracker { private final SortedMap> trackedValues; private volatile long reconciledMarker = 0L; /** - * Constructor taking a predicate to define the tracking policy. If the predicate returns true, the source will - * be tracked. + * Constructor taking a predicate to define the tracking policy. If the + * predicate returns true, the source will be tracked. * * @param trackerPolicy defines if a source is tracked or not */ @@ -45,7 +45,7 @@ public void track(long track, long id, M source, R value) { placeTrackedValue(track, id, source, value); } } - + private synchronized void placeTrackedValue(long insert, long id, M req, R value) { trackedValues.put(id, new RequestResponse<>(insert, id, req, value)); } @@ -54,7 +54,7 @@ private synchronized void placeTrackedValue(long insert, long id, M req, R value public synchronized R getTrackedValue(long id) { return Optional.ofNullable(trackedValues.get(id)).map(RequestResponse::getResponse).orElse(null); } - + @Override public synchronized M getTrackedRequest(long id) { return Optional.ofNullable(trackedValues.get(id)).map(RequestResponse::getRequest).orElse(null); @@ -81,6 +81,7 @@ public synchronized void addStateTo(StateDumpCollector stateDumper) { } static class RequestResponse { + private final long insert; private final long transaction; private final M request; diff --git a/client-message-tracker/src/test/java/org/terracotta/client/message/tracker/ClientTrackerImplTest.java b/client-message-tracker/src/test/java/org/terracotta/client/message/tracker/ClientTrackerImplTest.java index a21c3a6f97..18a16c33e8 100644 --- a/client-message-tracker/src/test/java/org/terracotta/client/message/tracker/ClientTrackerImplTest.java +++ b/client-message-tracker/src/test/java/org/terracotta/client/message/tracker/ClientTrackerImplTest.java @@ -16,14 +16,13 @@ */ package org.terracotta.client.message.tracker; -import org.junit.Test; -import org.terracotta.entity.ClientDescriptor; -import org.terracotta.entity.ClientSourceId; - import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.sameInstance; +import org.junit.Test; +import org.terracotta.entity.ClientDescriptor; +import org.terracotta.entity.ClientSourceId; public class ClientTrackerImplTest { @@ -62,11 +61,11 @@ public boolean isValidClient() { public boolean matches(ClientDescriptor cd) { return cd.getSourceId().toLong() == id; } - + @Override public int hashCode() { int hash = 7; - hash = 67 * hash + (int)((id >> 32) & 0xffff) + (int)(id & 0xffff); + hash = 67 * hash + (int) ((id >> 32) & 0xffff) + (int) (id & 0xffff); return hash; } @@ -81,7 +80,7 @@ public boolean equals(Object obj) { if (getClass() != obj.getClass()) { return false; } - return ((ClientSourceId)obj).toLong() == id; + return ((ClientSourceId) obj).toLong() == id; } }; } diff --git a/common/inet-support/pom.xml b/common/inet-support/pom.xml deleted file mode 100755 index 0e58684eda..0000000000 --- a/common/inet-support/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.common - common - 5.10-SNAPSHOT - ../pom.xml - - - common-inet-support - Common :: Inet Support - - - - org.terracotta.common - common-test-utilities - ${project.version} - test - - - diff --git a/common/inet/build.gradle b/common/inet/build.gradle new file mode 100644 index 0000000000..b3f2509ad8 --- /dev/null +++ b/common/inet/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.common' + artifactId = 'common-inet-support' + name = 'Inet Utilities' +} diff --git a/common/inet-support/src/main/java/org/terracotta/inet/HostAndIpValidator.java b/common/inet/src/main/java/org/terracotta/inet/HostAndIpValidator.java similarity index 100% rename from common/inet-support/src/main/java/org/terracotta/inet/HostAndIpValidator.java rename to common/inet/src/main/java/org/terracotta/inet/HostAndIpValidator.java diff --git a/common/inet-support/src/main/java/org/terracotta/inet/HostPort.java b/common/inet/src/main/java/org/terracotta/inet/HostPort.java similarity index 100% rename from common/inet-support/src/main/java/org/terracotta/inet/HostPort.java rename to common/inet/src/main/java/org/terracotta/inet/HostPort.java diff --git a/common/inet-support/src/main/java/org/terracotta/inet/InetSocketAddressConverter.java b/common/inet/src/main/java/org/terracotta/inet/InetSocketAddressConverter.java similarity index 100% rename from common/inet-support/src/main/java/org/terracotta/inet/InetSocketAddressConverter.java rename to common/inet/src/main/java/org/terracotta/inet/InetSocketAddressConverter.java diff --git a/common/inet-support/src/main/java/org/terracotta/inet/UriUtils.java b/common/inet/src/main/java/org/terracotta/inet/UriUtils.java similarity index 100% rename from common/inet-support/src/main/java/org/terracotta/inet/UriUtils.java rename to common/inet/src/main/java/org/terracotta/inet/UriUtils.java diff --git a/common/inet-support/src/test/java/org/terracotta/inet/HostAndIpValidatorTest.java b/common/inet/src/test/java/org/terracotta/inet/HostAndIpValidatorTest.java similarity index 100% rename from common/inet-support/src/test/java/org/terracotta/inet/HostAndIpValidatorTest.java rename to common/inet/src/test/java/org/terracotta/inet/HostAndIpValidatorTest.java diff --git a/common/inet-support/src/test/java/org/terracotta/inet/HostPortTest.java b/common/inet/src/test/java/org/terracotta/inet/HostPortTest.java similarity index 100% rename from common/inet-support/src/test/java/org/terracotta/inet/HostPortTest.java rename to common/inet/src/test/java/org/terracotta/inet/HostPortTest.java diff --git a/common/inet-support/src/test/java/org/terracotta/inet/UriUtilsTest.java b/common/inet/src/test/java/org/terracotta/inet/UriUtilsTest.java similarity index 100% rename from common/inet-support/src/test/java/org/terracotta/inet/UriUtilsTest.java rename to common/inet/src/test/java/org/terracotta/inet/UriUtilsTest.java diff --git a/common/json-support/pom.xml b/common/json-support/pom.xml deleted file mode 100755 index cfb111f606..0000000000 --- a/common/json-support/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.common - common - 5.10-SNAPSHOT - ../pom.xml - - - common-json-support - Common :: Json Support - - - - com.google.code.gson - gson - - - org.slf4j - slf4j-simple - test - - - diff --git a/common/json/build.gradle b/common/json/build.gradle new file mode 100644 index 0000000000..07dfb56951 --- /dev/null +++ b/common/json/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api "com.google.code.gson:gson:$gsonVersion" + testImplementation "org.slf4j:slf4j-simple:$slf4jVersion" +} + +deploy { + groupId = 'org.terracotta.common' + artifactId = 'common-json-support' + name = 'JSON Support' +} + +sourceSets { + main { + copyright { + exclude 'org/terracotta/json/gson/internal/HierarchyTypeAdapterFactory.java' + exclude 'org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java' + exclude 'org/terracotta/json/gson/internal/RuntimeTypeAdapter.java' + exclude 'org/terracotta/json/gson/internal/RuntimeTypeAdapterFactory.java' + } + } +} diff --git a/common/json-support/src/main/java/org/terracotta/json/DefaultJsonFactory.java b/common/json/src/main/java/org/terracotta/json/DefaultJsonFactory.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/DefaultJsonFactory.java rename to common/json/src/main/java/org/terracotta/json/DefaultJsonFactory.java diff --git a/common/json-support/src/main/java/org/terracotta/json/JdkJsonModule.java b/common/json/src/main/java/org/terracotta/json/JdkJsonModule.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/JdkJsonModule.java rename to common/json/src/main/java/org/terracotta/json/JdkJsonModule.java diff --git a/common/json-support/src/main/java/org/terracotta/json/Json.java b/common/json/src/main/java/org/terracotta/json/Json.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/Json.java rename to common/json/src/main/java/org/terracotta/json/Json.java diff --git a/common/json-support/src/main/java/org/terracotta/json/Jsr310JsonModule.java b/common/json/src/main/java/org/terracotta/json/Jsr310JsonModule.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/Jsr310JsonModule.java rename to common/json/src/main/java/org/terracotta/json/Jsr310JsonModule.java diff --git a/common/json-support/src/main/java/org/terracotta/json/TerracottaJsonModule.java b/common/json/src/main/java/org/terracotta/json/TerracottaJsonModule.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/TerracottaJsonModule.java rename to common/json/src/main/java/org/terracotta/json/TerracottaJsonModule.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/Adapters.java b/common/json/src/main/java/org/terracotta/json/gson/Adapters.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/Adapters.java rename to common/json/src/main/java/org/terracotta/json/gson/Adapters.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/DelegateTypeAdapterFactory.java b/common/json/src/main/java/org/terracotta/json/gson/DelegateTypeAdapterFactory.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/DelegateTypeAdapterFactory.java rename to common/json/src/main/java/org/terracotta/json/gson/DelegateTypeAdapterFactory.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/GsonConfig.java b/common/json/src/main/java/org/terracotta/json/gson/GsonConfig.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/GsonConfig.java rename to common/json/src/main/java/org/terracotta/json/gson/GsonConfig.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/GsonFactory.java b/common/json/src/main/java/org/terracotta/json/gson/GsonFactory.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/GsonFactory.java rename to common/json/src/main/java/org/terracotta/json/gson/GsonFactory.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/GsonModule.java b/common/json/src/main/java/org/terracotta/json/gson/GsonModule.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/GsonModule.java rename to common/json/src/main/java/org/terracotta/json/gson/GsonModule.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/JsonObjectDeserializer.java b/common/json/src/main/java/org/terracotta/json/gson/JsonObjectDeserializer.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/JsonObjectDeserializer.java rename to common/json/src/main/java/org/terracotta/json/gson/JsonObjectDeserializer.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/RuntimeTypeAdapterFactory.java b/common/json/src/main/java/org/terracotta/json/gson/RuntimeTypeAdapterFactory.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/RuntimeTypeAdapterFactory.java rename to common/json/src/main/java/org/terracotta/json/gson/RuntimeTypeAdapterFactory.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/UnsafeObjectTypeAdapterFactory.java b/common/json/src/main/java/org/terracotta/json/gson/UnsafeObjectTypeAdapterFactory.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/UnsafeObjectTypeAdapterFactory.java rename to common/json/src/main/java/org/terracotta/json/gson/UnsafeObjectTypeAdapterFactory.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/AllowedClassTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/AllowedClassTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/AllowedClassTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/AllowedClassTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/ExclusionStrategies.java b/common/json/src/main/java/org/terracotta/json/gson/internal/ExclusionStrategies.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/ExclusionStrategies.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/ExclusionStrategies.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/FloatingPointTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/FloatingPointTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/FloatingPointTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/FloatingPointTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/HierarchyTypeAdapterFactory.java b/common/json/src/main/java/org/terracotta/json/gson/internal/HierarchyTypeAdapterFactory.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/HierarchyTypeAdapterFactory.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/HierarchyTypeAdapterFactory.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java b/common/json/src/main/java/org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java similarity index 91% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java index 2b3e8a66fe..a8d7eff74c 100644 --- a/common/json-support/src/main/java/org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java +++ b/common/json/src/main/java/org/terracotta/json/gson/internal/MixinTypeAdapterFactory.java @@ -66,7 +66,8 @@ * {@link com.google.gson.internal.bind.ReflectiveTypeAdapterFactory} * and adapted to add Mixin support *

- * A mixin can override some fields from its superclass to define another adapter with {@link com.google.gson.annotations.JsonAdapter} + * A mixin can override some fields from its superclass to define another + * adapter with {@link com.google.gson.annotations.JsonAdapter} */ public final class MixinTypeAdapterFactory implements TypeAdapterFactory { @@ -88,10 +89,10 @@ public MixinTypeAdapterFactory(Class type, Class mixin) { } private MixinTypeAdapterFactory(Class type, Class mixin, - boolean sortKeys, - Map> instanceCreators, - FieldNamingStrategy fieldNamingPolicy, - Excluder excluder) { + boolean sortKeys, + Map> instanceCreators, + FieldNamingStrategy fieldNamingPolicy, + Excluder excluder) { requireNonNull(type); requireNonNull(mixin); requireNonNull(instanceCreators); @@ -152,8 +153,7 @@ public TypeAdapter create(Gson gson, final TypeToken type) { return null; } - FilterResult filterResult = - ReflectionAccessFilterHelper.getFilterResult(reflectionFilters, raw); + FilterResult filterResult = ReflectionAccessFilterHelper.getFilterResult(reflectionFilters, raw); if (filterResult == FilterResult.BLOCK_ALL) { throw new JsonIOException( "ReflectionAccessFilter does not permit using reflection for " + raw @@ -191,11 +191,13 @@ private BoundField createBoundField( } TypeAdapter mapped = null; if (annotation != null) { - // This is not safe; requires that user has specified correct adapter class for @JsonAdapter + // This is not safe; requires that user has specified correct adapter class for + // @JsonAdapter mapped = getTypeAdapter(constructorConstructor, context, fieldType, annotation); } final boolean jsonAdapterPresent = mapped != null; - if (mapped == null) mapped = context.getAdapter(fieldType); + if (mapped == null) + mapped = context.getAdapter(fieldType); final TypeAdapter typeAdapter = mapped; return new BoundField(name, field, serialize, deserialize) { @@ -203,7 +205,8 @@ private BoundField createBoundField( @Override void write(JsonWriter writer, Object source) throws IOException, IllegalAccessException { - if (!serialized) return; + if (!serialized) + return; if (blockInaccessible) { checkAccessible(source, field); } @@ -226,8 +229,10 @@ void readIntoField(JsonReader reader, Object target) if (blockInaccessible) { checkAccessible(target, field); } else if (isStaticFinalField) { - // Reflection does not permit setting value of `static final` field, even after calling `setAccessible` - // Handle this here to avoid causing IllegalAccessException when calling `Field.set` + // Reflection does not permit setting value of `static final` field, even after + // calling `setAccessible` + // Handle this here to avoid causing IllegalAccessException when calling + // `Field.set` String fieldDescription = ReflectionHelper.getAccessibleObjectDescription(field, false); throw new JsonIOException("Cannot set value of 'static final' " + fieldDescription); } @@ -238,7 +243,8 @@ void readIntoField(JsonReader reader, Object target) } @SuppressWarnings("unchecked") - private TypeAdapter getTypeAdapter(ConstructorConstructor constructorConstructor, Gson gson, TypeToken type, JsonAdapter annotation) { + private TypeAdapter getTypeAdapter(ConstructorConstructor constructorConstructor, Gson gson, TypeToken type, + JsonAdapter annotation) { Object instance = constructorConstructor.get(TypeToken.get(annotation.value())).construct(); TypeAdapter typeAdapter; @@ -255,7 +261,7 @@ private TypeAdapter getTypeAdapter(ConstructorConstructor constructorCons ? (JsonDeserializer) instance : null; - @SuppressWarnings({"unchecked", "rawtypes"}) + @SuppressWarnings({ "unchecked", "rawtypes" }) TypeAdapter tempAdapter = new TreeTypeAdapter(serializer, deserializer, gson, type, null, nullSafe); typeAdapter = tempAdapter; @@ -274,7 +280,8 @@ private TypeAdapter getTypeAdapter(ConstructorConstructor constructorCons return typeAdapter; } - private Map getBoundFields(Gson context, TypeToken type, Class raw, boolean blockInaccessible) { + private Map getBoundFields(Gson context, TypeToken type, Class raw, + boolean blockInaccessible) { Map result = sortKeys ? new TreeMap<>() : new LinkedHashMap<>(); if (raw.isInterface()) { return result; @@ -312,16 +319,19 @@ private Map getBoundFields(Gson context, TypeToken type, BoundField previous = null; for (int i = 0, size = fieldNames.size(); i < size; ++i) { String name = fieldNames.get(i); - if (i != 0) serialize = false; // only serialize the default name + if (i != 0) + serialize = false; // only serialize the default name BoundField boundField = createBoundField(context, field, name, TypeToken.get(fieldType), serialize, deserialize, blockInaccessible); BoundField replaced = result.put(name, boundField); - if (previous == null) previous = replaced; + if (previous == null) + previous = replaced; } if (previous != null) { throw new IllegalArgumentException("Class " + originalRaw.getName() + " declares multiple JSON fields named '" + previous.name + "'; conflict is caused" - + " by fields " + ReflectionHelper.fieldToString(previous.field) + " and " + ReflectionHelper.fieldToString(field)); + + " by fields " + ReflectionHelper.fieldToString(previous.field) + " and " + + ReflectionHelper.fieldToString(field)); } } type = TypeToken.get($Gson$Types.resolve(type.getType(), raw, raw.getGenericSuperclass())); @@ -349,18 +359,22 @@ protected BoundField(String name, Field field, boolean serialized, boolean deser } /** - * Read this field value from the source, and append its JSON value to the writer + * Read this field value from the source, and append its JSON value to the + * writer */ abstract void write(JsonWriter writer, Object source) throws IOException, IllegalAccessException; /** - * Read the value from the reader, and set it on the corresponding field on target via reflection + * Read the value from the reader, and set it on the corresponding field on + * target via reflection */ abstract void readIntoField(JsonReader reader, Object target) throws IOException, IllegalAccessException; } /** - * Copy of {@link com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.FieldAdapter} for the {@link @org.terracotta.json.gson.internal.MixinTypeAdapterFactory} + * Copy of + * {@link com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.FieldAdapter} + * for the {@link @org.terracotta.json.gson.internal.MixinTypeAdapterFactory} *

* Base class for Adapters produced by this factory. * @@ -432,7 +446,8 @@ public T read(JsonReader in) throws IOException { abstract A createAccumulator(); /** - * Read a single BoundField into the accumulator. The JsonReader will be pointed at the + * Read a single BoundField into the accumulator. The JsonReader will be pointed + * at the * start of the value for the BoundField to read from. */ abstract void readField(A accumulator, JsonReader in, BoundField field) throws IllegalAccessException, IOException; @@ -444,7 +459,10 @@ public T read(JsonReader in) throws IOException { } /** - * Copy of {@link com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.FieldReflectionAdapter} to use for the {@link @org.terracotta.json.gson.internal.MixinTypeAdapterFactory} + * Copy of + * {@link com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.FieldReflectionAdapter} + * to use for the + * {@link @org.terracotta.json.gson.internal.MixinTypeAdapterFactory} */ private static final class FieldReflectionTypeAdapter extends FieldTypeAdapter { private final ObjectConstructor constructor; diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/NullSafeTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/NullSafeTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/NullSafeTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/NullSafeTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/NullTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/NullTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/NullTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/NullTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/NullTypeJsonTreeWriter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/NullTypeJsonTreeWriter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/NullTypeJsonTreeWriter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/NullTypeJsonTreeWriter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/ObjectToLongTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/ObjectToLongTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/ObjectToLongTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/ObjectToLongTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/ObjectToStringTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/ObjectToStringTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/ObjectToStringTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/ObjectToStringTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/OptionalTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/OptionalTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/OptionalTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/OptionalTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/PathTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/PathTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/PathTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/PathTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/RuntimeTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/RuntimeTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/RuntimeTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/RuntimeTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/SortKeysTypeAdapter.java b/common/json/src/main/java/org/terracotta/json/gson/internal/SortKeysTypeAdapter.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/SortKeysTypeAdapter.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/SortKeysTypeAdapter.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/UnsafeClassSupport.java b/common/json/src/main/java/org/terracotta/json/gson/internal/UnsafeClassSupport.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/UnsafeClassSupport.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/UnsafeClassSupport.java diff --git a/common/json-support/src/main/java/org/terracotta/json/gson/internal/Utils.java b/common/json/src/main/java/org/terracotta/json/gson/internal/Utils.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/gson/internal/Utils.java rename to common/json/src/main/java/org/terracotta/json/gson/internal/Utils.java diff --git a/common/json-support/src/main/java/org/terracotta/json/util/DirectedGraph.java b/common/json/src/main/java/org/terracotta/json/util/DirectedGraph.java similarity index 100% rename from common/json-support/src/main/java/org/terracotta/json/util/DirectedGraph.java rename to common/json/src/main/java/org/terracotta/json/util/DirectedGraph.java diff --git a/common/json-support/src/test/java/org/terracotta/json/ClassTest.java b/common/json/src/test/java/org/terracotta/json/ClassTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/ClassTest.java rename to common/json/src/test/java/org/terracotta/json/ClassTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/EnumTest.java b/common/json/src/test/java/org/terracotta/json/EnumTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/EnumTest.java rename to common/json/src/test/java/org/terracotta/json/EnumTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/Jsr310Test.java b/common/json/src/test/java/org/terracotta/json/Jsr310Test.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/Jsr310Test.java rename to common/json/src/test/java/org/terracotta/json/Jsr310Test.java diff --git a/common/json-support/src/test/java/org/terracotta/json/MixinTest.java b/common/json/src/test/java/org/terracotta/json/MixinTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/MixinTest.java rename to common/json/src/test/java/org/terracotta/json/MixinTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/ModuleTest.java b/common/json/src/test/java/org/terracotta/json/ModuleTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/ModuleTest.java rename to common/json/src/test/java/org/terracotta/json/ModuleTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/NullTest.java b/common/json/src/test/java/org/terracotta/json/NullTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/NullTest.java rename to common/json/src/test/java/org/terracotta/json/NullTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/NumberTest.java b/common/json/src/test/java/org/terracotta/json/NumberTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/NumberTest.java rename to common/json/src/test/java/org/terracotta/json/NumberTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/OptionalTest.java b/common/json/src/test/java/org/terracotta/json/OptionalTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/OptionalTest.java rename to common/json/src/test/java/org/terracotta/json/OptionalTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/PathTest.java b/common/json/src/test/java/org/terracotta/json/PathTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/PathTest.java rename to common/json/src/test/java/org/terracotta/json/PathTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/PlainDoubleSerializerTest.java b/common/json/src/test/java/org/terracotta/json/PlainDoubleSerializerTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/PlainDoubleSerializerTest.java rename to common/json/src/test/java/org/terracotta/json/PlainDoubleSerializerTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/PlainFloatSerializerTest.java b/common/json/src/test/java/org/terracotta/json/PlainFloatSerializerTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/PlainFloatSerializerTest.java rename to common/json/src/test/java/org/terracotta/json/PlainFloatSerializerTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/PolymorphismTest.java b/common/json/src/test/java/org/terracotta/json/PolymorphismTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/PolymorphismTest.java rename to common/json/src/test/java/org/terracotta/json/PolymorphismTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/SerializationTest.java b/common/json/src/test/java/org/terracotta/json/SerializationTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/SerializationTest.java rename to common/json/src/test/java/org/terracotta/json/SerializationTest.java diff --git a/common/json-support/src/test/java/org/terracotta/json/UnsafeTest.java b/common/json/src/test/java/org/terracotta/json/UnsafeTest.java similarity index 100% rename from common/json-support/src/test/java/org/terracotta/json/UnsafeTest.java rename to common/json/src/test/java/org/terracotta/json/UnsafeTest.java diff --git a/common/json-support/src/test/resources/simplelogger.properties b/common/json/src/test/resources/simplelogger.properties similarity index 100% rename from common/json-support/src/test/resources/simplelogger.properties rename to common/json/src/test/resources/simplelogger.properties diff --git a/common/nomad/build.gradle b/common/nomad/build.gradle new file mode 100644 index 0000000000..4f26ca9555 --- /dev/null +++ b/common/nomad/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:inet') +} + +deploy { + groupId = 'org.terracotta.common' + artifactId = 'common-nomad' + name = 'Nomad' +} diff --git a/common/nomad/pom.xml b/common/nomad/pom.xml deleted file mode 100755 index c781164651..0000000000 --- a/common/nomad/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.common - common - 5.10-SNAPSHOT - ../pom.xml - - - common-nomad - Common :: Nomad - - - - - org.terracotta.common - common-inet-support - ${project.version} - - - - diff --git a/common/output-service/build.gradle b/common/output-service/build.gradle new file mode 100644 index 0000000000..6d63f844fe --- /dev/null +++ b/common/output-service/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +deploy { + groupId = 'org.terracotta.common' + artifactId = 'output-service' + name = 'Output Service' +} diff --git a/common/output-service/pom.xml b/common/output-service/pom.xml deleted file mode 100755 index ee18681c65..0000000000 --- a/common/output-service/pom.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.common - common - 5.10-SNAPSHOT - ../pom.xml - - - output-service - Common :: Output Service - - diff --git a/common/pom.xml b/common/pom.xml deleted file mode 100755 index 47af41f76b..0000000000 --- a/common/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - org.terracotta.common - common - pom - Common :: POM - - - Group of modules that are not related to platform: utilities, single libraries or stuff that could be easily moved out to another configuration directory or on its own. - - - - output-service - inet-support - json-support - test-utilities - structures - sanskrit - nomad - - - - - org.slf4j - slf4j-api - provided - - - - junit - junit - test - - - org.mockito - mockito-core - test - - - org.hamcrest - hamcrest-all - test - - - - diff --git a/common/runnel/build.gradle b/common/runnel/build.gradle new file mode 100644 index 0000000000..6b11a77eea --- /dev/null +++ b/common/runnel/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'runnel' + name = 'Runnel' +} diff --git a/runnel/src/main/asciidoc/common.adoc b/common/runnel/src/main/asciidoc/common.adoc similarity index 100% rename from runnel/src/main/asciidoc/common.adoc rename to common/runnel/src/main/asciidoc/common.adoc diff --git a/runnel/src/main/asciidoc/format.adoc b/common/runnel/src/main/asciidoc/format.adoc similarity index 100% rename from runnel/src/main/asciidoc/format.adoc rename to common/runnel/src/main/asciidoc/format.adoc diff --git a/runnel/src/main/asciidoc/simple.adoc b/common/runnel/src/main/asciidoc/simple.adoc similarity index 100% rename from runnel/src/main/asciidoc/simple.adoc rename to common/runnel/src/main/asciidoc/simple.adoc diff --git a/runnel/src/main/java/org/terracotta/runnel/EnumMapping.java b/common/runnel/src/main/java/org/terracotta/runnel/EnumMapping.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/EnumMapping.java rename to common/runnel/src/main/java/org/terracotta/runnel/EnumMapping.java diff --git a/runnel/src/main/java/org/terracotta/runnel/EnumMappingBuilder.java b/common/runnel/src/main/java/org/terracotta/runnel/EnumMappingBuilder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/EnumMappingBuilder.java rename to common/runnel/src/main/java/org/terracotta/runnel/EnumMappingBuilder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/Struct.java b/common/runnel/src/main/java/org/terracotta/runnel/Struct.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/Struct.java rename to common/runnel/src/main/java/org/terracotta/runnel/Struct.java diff --git a/runnel/src/main/java/org/terracotta/runnel/StructBuilder.java b/common/runnel/src/main/java/org/terracotta/runnel/StructBuilder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/StructBuilder.java rename to common/runnel/src/main/java/org/terracotta/runnel/StructBuilder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/ArrayDecoder.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/ArrayDecoder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/ArrayDecoder.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/ArrayDecoder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/Enm.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/Enm.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/Enm.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/Enm.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/PrimitiveDecodingSupport.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/PrimitiveDecodingSupport.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/PrimitiveDecodingSupport.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/PrimitiveDecodingSupport.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/StructArrayDecoder.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/StructArrayDecoder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/StructArrayDecoder.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/StructArrayDecoder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/StructDecoder.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/StructDecoder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/StructDecoder.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/StructDecoder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractValueField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractValueField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractValueField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/AbstractValueField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ArrayField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ArrayField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/ArrayField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ArrayField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/BoolField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/BoolField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/BoolField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/BoolField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ByteBufferField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ByteBufferField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/ByteBufferField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ByteBufferField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/CharField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/CharField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/CharField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/CharField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/EnumField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/EnumField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/EnumField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/EnumField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Field.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Field.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/Field.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Field.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/FloatingPoint64Field.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/FloatingPoint64Field.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/FloatingPoint64Field.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/FloatingPoint64Field.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int32Field.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int32Field.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int32Field.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int32Field.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int64Field.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int64Field.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int64Field.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/Int64Field.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/StringField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/StringField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/StringField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/StringField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/StructField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/StructField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/StructField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/StructField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ValueField.java b/common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ValueField.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/decoding/fields/ValueField.java rename to common/runnel/src/main/java/org/terracotta/runnel/decoding/fields/ValueField.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/ArrayEncoder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/ArrayEncoder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/ArrayEncoder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/ArrayEncoder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/PrimitiveEncodingSupport.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/PrimitiveEncodingSupport.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/PrimitiveEncodingSupport.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/PrimitiveEncodingSupport.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/StructArrayEncoder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/StructArrayEncoder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/StructArrayEncoder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/StructArrayEncoder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoderFunction.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoderFunction.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoderFunction.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/StructEncoderFunction.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/AbstractDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/AbstractDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/AbstractDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/AbstractDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ArrayDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ArrayDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ArrayDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ArrayDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/BoolDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/BoolDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/BoolDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/BoolDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ByteBufferDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ByteBufferDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ByteBufferDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/ByteBufferDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/CharDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/CharDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/CharDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/CharDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/DataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/DataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/DataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/DataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/EnumDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/EnumDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/EnumDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/EnumDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64DataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64DataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64DataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64DataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int32DataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int32DataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int32DataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int32DataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int64DataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int64DataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int64DataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/Int64DataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StringDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StringDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StringDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StringDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StructDataHolder.java b/common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StructDataHolder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StructDataHolder.java rename to common/runnel/src/main/java/org/terracotta/runnel/encoding/dataholders/StructDataHolder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/metadata/FieldDecoder.java b/common/runnel/src/main/java/org/terracotta/runnel/metadata/FieldDecoder.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/metadata/FieldDecoder.java rename to common/runnel/src/main/java/org/terracotta/runnel/metadata/FieldDecoder.java diff --git a/runnel/src/main/java/org/terracotta/runnel/metadata/FieldSearcher.java b/common/runnel/src/main/java/org/terracotta/runnel/metadata/FieldSearcher.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/metadata/FieldSearcher.java rename to common/runnel/src/main/java/org/terracotta/runnel/metadata/FieldSearcher.java diff --git a/runnel/src/main/java/org/terracotta/runnel/metadata/Metadata.java b/common/runnel/src/main/java/org/terracotta/runnel/metadata/Metadata.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/metadata/Metadata.java rename to common/runnel/src/main/java/org/terracotta/runnel/metadata/Metadata.java diff --git a/runnel/src/main/java/org/terracotta/runnel/utils/CorruptDataException.java b/common/runnel/src/main/java/org/terracotta/runnel/utils/CorruptDataException.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/utils/CorruptDataException.java rename to common/runnel/src/main/java/org/terracotta/runnel/utils/CorruptDataException.java diff --git a/runnel/src/main/java/org/terracotta/runnel/utils/LimitReachedException.java b/common/runnel/src/main/java/org/terracotta/runnel/utils/LimitReachedException.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/utils/LimitReachedException.java rename to common/runnel/src/main/java/org/terracotta/runnel/utils/LimitReachedException.java diff --git a/runnel/src/main/java/org/terracotta/runnel/utils/ReadBuffer.java b/common/runnel/src/main/java/org/terracotta/runnel/utils/ReadBuffer.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/utils/ReadBuffer.java rename to common/runnel/src/main/java/org/terracotta/runnel/utils/ReadBuffer.java diff --git a/runnel/src/main/java/org/terracotta/runnel/utils/StringTool.java b/common/runnel/src/main/java/org/terracotta/runnel/utils/StringTool.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/utils/StringTool.java rename to common/runnel/src/main/java/org/terracotta/runnel/utils/StringTool.java diff --git a/runnel/src/main/java/org/terracotta/runnel/utils/VLQ.java b/common/runnel/src/main/java/org/terracotta/runnel/utils/VLQ.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/utils/VLQ.java rename to common/runnel/src/main/java/org/terracotta/runnel/utils/VLQ.java diff --git a/runnel/src/main/java/org/terracotta/runnel/utils/WriteBuffer.java b/common/runnel/src/main/java/org/terracotta/runnel/utils/WriteBuffer.java similarity index 100% rename from runnel/src/main/java/org/terracotta/runnel/utils/WriteBuffer.java rename to common/runnel/src/main/java/org/terracotta/runnel/utils/WriteBuffer.java diff --git a/runnel/src/test/java/org/terracotta/runnel/BoolTest.java b/common/runnel/src/test/java/org/terracotta/runnel/BoolTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/BoolTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/BoolTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/ByteBufferTest.java b/common/runnel/src/test/java/org/terracotta/runnel/ByteBufferTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/ByteBufferTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/ByteBufferTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/CharTest.java b/common/runnel/src/test/java/org/terracotta/runnel/CharTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/CharTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/CharTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/EnumMappingBuilderTest.java b/common/runnel/src/test/java/org/terracotta/runnel/EnumMappingBuilderTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/EnumMappingBuilderTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/EnumMappingBuilderTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/EnumMappingTest.java b/common/runnel/src/test/java/org/terracotta/runnel/EnumMappingTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/EnumMappingTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/EnumMappingTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/Fp64Test.java b/common/runnel/src/test/java/org/terracotta/runnel/Fp64Test.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/Fp64Test.java rename to common/runnel/src/test/java/org/terracotta/runnel/Fp64Test.java diff --git a/runnel/src/test/java/org/terracotta/runnel/Int32Test.java b/common/runnel/src/test/java/org/terracotta/runnel/Int32Test.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/Int32Test.java rename to common/runnel/src/test/java/org/terracotta/runnel/Int32Test.java diff --git a/runnel/src/test/java/org/terracotta/runnel/Int64Test.java b/common/runnel/src/test/java/org/terracotta/runnel/Int64Test.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/Int64Test.java rename to common/runnel/src/test/java/org/terracotta/runnel/Int64Test.java diff --git a/runnel/src/test/java/org/terracotta/runnel/PrimitiveArrayStructBuilderTest.java b/common/runnel/src/test/java/org/terracotta/runnel/PrimitiveArrayStructBuilderTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/PrimitiveArrayStructBuilderTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/PrimitiveArrayStructBuilderTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/PrimitiveStructBuilderTest.java b/common/runnel/src/test/java/org/terracotta/runnel/PrimitiveStructBuilderTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/PrimitiveStructBuilderTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/PrimitiveStructBuilderTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/StringTest.java b/common/runnel/src/test/java/org/terracotta/runnel/StringTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/StringTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/StringTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/StructArrayStructBuilderTest.java b/common/runnel/src/test/java/org/terracotta/runnel/StructArrayStructBuilderTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/StructArrayStructBuilderTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/StructArrayStructBuilderTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/StructBuilderTest.java b/common/runnel/src/test/java/org/terracotta/runnel/StructBuilderTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/StructBuilderTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/StructBuilderTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/StructStructBuilderTest.java b/common/runnel/src/test/java/org/terracotta/runnel/StructStructBuilderTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/StructStructBuilderTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/StructStructBuilderTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/VersionCompatibilityTest.java b/common/runnel/src/test/java/org/terracotta/runnel/VersionCompatibilityTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/VersionCompatibilityTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/VersionCompatibilityTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/docs/GettingStarted.java b/common/runnel/src/test/java/org/terracotta/runnel/docs/GettingStarted.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/docs/GettingStarted.java rename to common/runnel/src/test/java/org/terracotta/runnel/docs/GettingStarted.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/EncodingPerfTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/EncodingPerfTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/EncodingPerfTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/EncodingPerfTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ArrayTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ArrayTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ArrayTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ArrayTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/BoolTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/BoolTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/BoolTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/BoolTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ByteBufferTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ByteBufferTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ByteBufferTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/ByteBufferTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/CharTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/CharTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/CharTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/CharTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/EnumMappingTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/EnumMappingTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/EnumMappingTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/EnumMappingTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64Test.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64Test.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64Test.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/FloatingPoint64Test.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int32Test.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int32Test.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int32Test.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int32Test.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int64Test.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int64Test.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int64Test.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/Int64Test.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StringTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StringTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StringTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StringTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StructTest.java b/common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StructTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StructTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/encoding/dataholders/StructTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/metadata/MetadataTest.java b/common/runnel/src/test/java/org/terracotta/runnel/metadata/MetadataTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/metadata/MetadataTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/metadata/MetadataTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/utils/ReadBufferTest.java b/common/runnel/src/test/java/org/terracotta/runnel/utils/ReadBufferTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/utils/ReadBufferTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/utils/ReadBufferTest.java diff --git a/runnel/src/test/java/org/terracotta/runnel/utils/VLQTest.java b/common/runnel/src/test/java/org/terracotta/runnel/utils/VLQTest.java similarity index 100% rename from runnel/src/test/java/org/terracotta/runnel/utils/VLQTest.java rename to common/runnel/src/test/java/org/terracotta/runnel/utils/VLQTest.java diff --git a/common/sanskrit/build.gradle b/common/sanskrit/build.gradle new file mode 100644 index 0000000000..f94c7e596e --- /dev/null +++ b/common/sanskrit/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" + + testImplementation project(':common:json') + testImplementation "org.slf4j:slf4j-simple:$slf4jVersion" +} + +deploy { + groupId = 'org.terracotta.common' + artifactId = 'common-sanskrit' + name = 'Sanskrit' +} diff --git a/common/sanskrit/config/checkstyle/suppressions.xml b/common/sanskrit/config/checkstyle/suppressions.xml new file mode 100644 index 0000000000..7fbaa88bb9 --- /dev/null +++ b/common/sanskrit/config/checkstyle/suppressions.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/common/sanskrit/pom.xml b/common/sanskrit/pom.xml deleted file mode 100755 index d1379c4c7c..0000000000 --- a/common/sanskrit/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.common - common - 5.10-SNAPSHOT - ../pom.xml - - - common-sanskrit - Common :: Sanskrit - - - - org.terracotta - terracotta-utilities-tools - - - - org.terracotta.common - common-json-support - ${project.version} - test - - - org.slf4j - slf4j-simple - test - - - diff --git a/common/sanskrit/src/test/java/org/terracotta/persistence/sanskrit/SanskritIT.java b/common/sanskrit/src/test/java/org/terracotta/persistence/sanskrit/SanskritIT.java index 037bbdf5e2..64e029a400 100644 --- a/common/sanskrit/src/test/java/org/terracotta/persistence/sanskrit/SanskritIT.java +++ b/common/sanskrit/src/test/java/org/terracotta/persistence/sanskrit/SanskritIT.java @@ -16,15 +16,14 @@ */ package org.terracotta.persistence.sanskrit; +import java.nio.file.Path; + +import static org.junit.Assert.assertEquals; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import org.terracotta.persistence.sanskrit.file.FileBasedFilesystemDirectory; -import java.nio.file.Path; - -import static org.junit.Assert.assertEquals; - public class SanskritIT { private final SanskritMapper mapper = new JsonSanskritMapper(); diff --git a/common/structures/build.gradle b/common/structures/build.gradle new file mode 100644 index 0000000000..49f1500273 --- /dev/null +++ b/common/structures/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.common' + artifactId = 'common-structures' + name = 'Structures' +} diff --git a/common/structures/pom.xml b/common/structures/pom.xml deleted file mode 100755 index 4d7cceeb48..0000000000 --- a/common/structures/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.common - common - 5.10-SNAPSHOT - ../pom.xml - - - common-structures - Common :: Structures - - - - org.terracotta.common - common-test-utilities - ${project.version} - test - - - diff --git a/common/test-utilities/build.gradle b/common/test-utilities/build.gradle new file mode 100644 index 0000000000..3fc50845ff --- /dev/null +++ b/common/test-utilities/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation "org.terracotta:terracotta-utilities-test-tools:$terracottaUtilitiesTestToolsVersion" + testImplementation "org.slf4j:slf4j-simple:$slf4jVersion" +} + +deploy { + groupId = 'org.terracotta.common' + artifactId = 'common-test-utilities' + name = 'Test Utilities' +} diff --git a/common/test-utilities/pom.xml b/common/test-utilities/pom.xml deleted file mode 100755 index 72fe3b5e6e..0000000000 --- a/common/test-utilities/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.common - common - 5.10-SNAPSHOT - ../pom.xml - - - common-test-utilities - Common :: Test Utilities - - - - org.terracotta - terracotta-utilities-test-tools - - - - junit - junit - provided - - - - org.slf4j - slf4j-simple - test - - - diff --git a/common/test-utilities/src/test/java/org/terracotta/testing/JavaToolTest.java b/common/test-utilities/src/test/java/org/terracotta/testing/JavaToolTest.java index 3604bde103..0f96a6013b 100644 --- a/common/test-utilities/src/test/java/org/terracotta/testing/JavaToolTest.java +++ b/common/test-utilities/src/test/java/org/terracotta/testing/JavaToolTest.java @@ -16,18 +16,17 @@ */ package org.terracotta.testing; -import org.junit.Rule; -import org.junit.Test; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; - import static java.util.stream.Collectors.toList; + import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.greaterThanOrEqualTo; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; +import org.junit.Rule; +import org.junit.Test; /** * @author Mathieu Carbou @@ -35,7 +34,7 @@ public class JavaToolTest { @Rule - public TmpDir tmpDir = new TmpDir(Paths.get(System.getProperty("user.dir"), "target"), false); + public TmpDir tmpDir = new TmpDir(Paths.get(System.getProperty("user.dir"), "build"), false); @Test public void threadDumpToMemory() { diff --git a/communicator-support/communicator-support-client/pom.xml b/communicator-support/communicator-support-client/pom.xml deleted file mode 100755 index dececcc7fb..0000000000 --- a/communicator-support/communicator-support-client/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - communicator-support - org.terracotta.voltron.communicator - 5.10-SNAPSHOT - - 4.0.0 - - communicator-support-client - - - - org.terracotta.voltron.communicator - communicator-support-common - ${project.version} - - - - org.terracotta - entity-client-api - provided - - - - \ No newline at end of file diff --git a/communicator-support/communicator-support-common/pom.xml b/communicator-support/communicator-support-common/pom.xml deleted file mode 100755 index 7250ff303e..0000000000 --- a/communicator-support/communicator-support-common/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - communicator-support - org.terracotta.voltron.communicator - 5.10-SNAPSHOT - - 4.0.0 - - communicator-support-common - - - - org.terracotta - entity-common-api - provided - - - - diff --git a/communicator-support/communicator-support-server/pom.xml b/communicator-support/communicator-support-server/pom.xml deleted file mode 100755 index ef95ef8684..0000000000 --- a/communicator-support/communicator-support-server/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - communicator-support - org.terracotta.voltron.communicator - 5.10-SNAPSHOT - - 4.0.0 - - communicator-support-server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.voltron.communicator - communicator-support-common - ${project.version} - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - - \ No newline at end of file diff --git a/communicator-support/pom.xml b/communicator-support/pom.xml deleted file mode 100755 index a0c78fe712..0000000000 --- a/communicator-support/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - platform-root - org.terracotta - 5.10-SNAPSHOT - - 4.0.0 - pom - - communicator-support-common - communicator-support-client - communicator-support-server - - - org.terracotta.voltron.communicator - communicator-support - - - - junit - junit - test - - - - - \ No newline at end of file diff --git a/communicator/client/build.gradle b/communicator/client/build.gradle new file mode 100644 index 0000000000..bd5665c323 --- /dev/null +++ b/communicator/client/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api "org.terracotta:entity-client-api:$terracottaApisVersion" + api project(':communicator:common') +} + +deploy { + groupId = 'org.terracotta.voltron.communicator' + artifactId = 'communicator-support-client' + name = 'Communicator Client API' +} diff --git a/communicator-support/communicator-support-client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManager.java b/communicator/client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManager.java similarity index 100% rename from communicator-support/communicator-support-client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManager.java rename to communicator/client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManager.java diff --git a/communicator-support/communicator-support-client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManagerImpl.java b/communicator/client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManagerImpl.java similarity index 100% rename from communicator-support/communicator-support-client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManagerImpl.java rename to communicator/client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorClientManagerImpl.java diff --git a/communicator-support/communicator-support-client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageHandler.java b/communicator/client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageHandler.java similarity index 100% rename from communicator-support/communicator-support-client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageHandler.java rename to communicator/client/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageHandler.java diff --git a/communicator/common/build.gradle b/communicator/common/build.gradle new file mode 100644 index 0000000000..a46e1be9b0 --- /dev/null +++ b/communicator/common/build.gradle @@ -0,0 +1,14 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api "org.terracotta:entity-common-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.voltron.communicator' + artifactId = 'communicator-support-common' +} diff --git a/communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageFactory.java b/communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageFactory.java similarity index 100% rename from communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageFactory.java rename to communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorMessageFactory.java diff --git a/communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequest.java b/communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequest.java similarity index 100% rename from communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequest.java rename to communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequest.java diff --git a/communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodec.java b/communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodec.java similarity index 100% rename from communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodec.java rename to communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodec.java diff --git a/communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestType.java b/communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestType.java similarity index 100% rename from communicator-support/communicator-support-common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestType.java rename to communicator/common/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestType.java diff --git a/communicator-support/communicator-support-common/src/test/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodecTest.java b/communicator/common/src/test/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodecTest.java similarity index 100% rename from communicator-support/communicator-support-common/src/test/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodecTest.java rename to communicator/common/src/test/java/org/terracotta/clientcommunicator/support/ClientCommunicatorRequestCodecTest.java diff --git a/communicator/server/build.gradle b/communicator/server/build.gradle new file mode 100644 index 0000000000..21f61a0b2f --- /dev/null +++ b/communicator/server/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':communicator:common') + api "org.terracotta:standard-cluster-services:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.voltron.communicator' + artifactId = 'communicator-support-server' + name = 'Communicator Server API' +} diff --git a/communicator-support/communicator-support-server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManager.java b/communicator/server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManager.java similarity index 100% rename from communicator-support/communicator-support-server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManager.java rename to communicator/server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManager.java diff --git a/communicator-support/communicator-support-server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManagerImpl.java b/communicator/server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManagerImpl.java similarity index 100% rename from communicator-support/communicator-support-server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManagerImpl.java rename to communicator/server/src/main/java/org/terracotta/clientcommunicator/support/ClientCommunicatorServerManagerImpl.java diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml new file mode 100644 index 0000000000..faf3a7d221 --- /dev/null +++ b/config/checkstyle/checkstyle.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/checkstyle/copyright.header b/config/checkstyle/copyright.header new file mode 100644 index 0000000000..8cd21158ff --- /dev/null +++ b/config/checkstyle/copyright.header @@ -0,0 +1,7 @@ +^#! +^<\?xml.*>$ +^$ +^\W*$ +^\W*Copyright Terracotta, Inc.$ +^\W*Copyright Super iPaaS Integration LLC, an IBM Company (?:\d{4}, )?(?:\d{4})\W*$ +^\W*$ diff --git a/config/checkstyle/copyright.xml b/config/checkstyle/copyright.xml new file mode 100644 index 0000000000..379563cd17 --- /dev/null +++ b/config/checkstyle/copyright.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + diff --git a/config/owasp-suppressions.xml b/config/owasp-suppressions.xml new file mode 100644 index 0000000000..44705069fd --- /dev/null +++ b/config/owasp-suppressions.xml @@ -0,0 +1,44 @@ + + + + TC Tripwire is unrelated to the other Tripwire + ^pkg:maven/org\.terracotta/tc\-tripwire\-.*$ + cpe:/a:tripwire:tripwire + + + https://github.com/spring-projects/spring-framework/issues/24434 + CVE-2016-1000027 + + + enterprise jars are mistaken for gradle enterprise + cpe:/a:gradle:enterprise + + + Only a vulnerability in .NET Avro libraries + ^pkg:maven/org\.apache\.avro/avro@.*$ + CVE-2021-43045 + + + + We are not calling the vulnerable method: + `org.springframework.security.crypto.encrypt.Encryptors.queryableText` + + CVE-2020-5408 + + + Apache 'parquet-avro' is not Hamba Avro + ^pkg:maven/org\.apache\.parquet/parquet\-avro@.*$ + cpe:/a:avro_project:avro + + + + Date: Thu Feb 29 16:04:04 2024 -0500 + + TDB-6039 : Disallow HTTP/0.9, HTTP/1.0, and HTTP/1.1 without a Host header + ]]> + ^pkg:maven/io\.undertow/undertow\-core@.*$ + CVE-2016-6311 + + \ No newline at end of file diff --git a/data-root-resource/pom.xml b/data-root-resource/pom.xml deleted file mode 100755 index 47bbf7564d..0000000000 --- a/data-root-resource/pom.xml +++ /dev/null @@ -1,163 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - data-root-resource - Plugin :: Data Roots - - - - org.slf4j - slf4j-api - provided - - - org.terracotta - statistics - provided - - - - - org.terracotta.management - monitoring-service-api - ${project.version} - provided - - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - - - org.terracotta.internal - tc-config-parser - provided - - - org.terracotta - packaging-support - provided - - - org.terracotta - entity-server-api - provided - - - - junit - junit - test - - - org.mockito - mockito-core - test - - - org.hamcrest - hamcrest-all - test - - - org.slf4j - slf4j-simple - test - - - org.terracotta - passthrough-server - test - - - org.terracotta.common - common-test-utilities - ${project.version} - test - - - - - - - org.jvnet.jaxb2.maven2 - maven-jaxb2-plugin - - - - generate - - - - - false - src/main/resources - - *.xsd - - org.terracotta.data.config - - - - org.terracotta - tcconfig-schema - ${terracotta-configuration.version} - catalog.cat - - - - - - org.terracotta - tcconfig-schema - ${terracotta-configuration.version} - - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - diff --git a/diagnostic/client/build.gradle b/diagnostic/client/build.gradle new file mode 100644 index 0000000000..5ba3ba4591 --- /dev/null +++ b/diagnostic/client/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api "org.terracotta:connection-api:$terracottaApisVersion" + api project(':diagnostic:model') + api project(':diagnostic:common') + + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.diagnostic' + artifactId = 'diagnostic-client' + name = 'Diagnostic Client' +} diff --git a/diagnostic/client/pom.xml b/diagnostic/client/pom.xml deleted file mode 100755 index 26a3cfc9b9..0000000000 --- a/diagnostic/client/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.diagnostic - diagnostic - 5.10-SNAPSHOT - ../pom.xml - - - diagnostic-client - Diagnostic :: Client - - - - org.terracotta.diagnostic - diagnostic-model - ${project.version} - - - org.terracotta.diagnostic - diagnostic-common - ${project.version} - - - org.terracotta.common - common-inet-support - ${project.version} - - - org.terracotta.common - common-structures - ${project.version} - - - - - org.terracotta - connection-api - provided - - - org.slf4j - slf4j-api - provided - - - org.terracotta.common - common-test-utilities - ${project.version} - test - - - diff --git a/diagnostic/common/build.gradle b/diagnostic/common/build.gradle new file mode 100644 index 0000000000..3d6fd646cb --- /dev/null +++ b/diagnostic/common/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:json') + + testImplementation project(':common:structures') +} + +deploy { + groupId = 'org.terracotta.diagnostic' + artifactId = 'diagnostic-common' +} diff --git a/diagnostic/common/pom.xml b/diagnostic/common/pom.xml deleted file mode 100755 index 4a6b239152..0000000000 --- a/diagnostic/common/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.diagnostic - diagnostic - 5.10-SNAPSHOT - ../pom.xml - - - diagnostic-common - Diagnostic :: Common - - - - - - org.terracotta.common - common-json-support - ${project.version} - - - - org.slf4j - slf4j-api - provided - - - - org.terracotta.common - common-structures - ${project.version} - test - - - diff --git a/diagnostic/model/build.gradle b/diagnostic/model/build.gradle new file mode 100644 index 0000000000..c39d1d9a1b --- /dev/null +++ b/diagnostic/model/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:structures') +} + +deploy { + groupId = 'org.terracotta.diagnostic' + artifactId = 'diagnostic-model' + name = 'Diagnostic Model' +} diff --git a/diagnostic/model/pom.xml b/diagnostic/model/pom.xml deleted file mode 100755 index 462fed86f1..0000000000 --- a/diagnostic/model/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.diagnostic - diagnostic - 5.10-SNAPSHOT - ../pom.xml - - - diagnostic-model - Diagnostic :: Model - - - - org.terracotta.common - common-structures - ${project.version} - - - diff --git a/diagnostic/pom.xml b/diagnostic/pom.xml deleted file mode 100755 index 1c9d8bc773..0000000000 --- a/diagnostic/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - org.terracotta.diagnostic - diagnostic - pom - Diagnostic :: POM - - - model - common - client - service-api - service - - - - - junit - junit - test - - - org.mockito - mockito-core - test - - - org.hamcrest - hamcrest-all - test - - - diff --git a/diagnostic/server/api/build.gradle b/diagnostic/server/api/build.gradle new file mode 100644 index 0000000000..ee014a8f71 --- /dev/null +++ b/diagnostic/server/api/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':diagnostic:model') + + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.diagnostic' + artifactId = 'diagnostic-service-api' + name = 'Diagnostic Server API' +} diff --git a/diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServices.java b/diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServices.java similarity index 100% rename from diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServices.java rename to diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServices.java diff --git a/diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesHolder.java b/diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesHolder.java similarity index 100% rename from diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesHolder.java rename to diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesHolder.java diff --git a/diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesRegistration.java b/diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesRegistration.java similarity index 100% rename from diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesRegistration.java rename to diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/DiagnosticServicesRegistration.java diff --git a/diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/Expose.java b/diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/Expose.java similarity index 100% rename from diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/Expose.java rename to diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/Expose.java diff --git a/diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/extension/DiagnosticExtensions.java b/diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/extension/DiagnosticExtensions.java similarity index 100% rename from diagnostic/service-api/src/main/java/org/terracotta/diagnostic/server/api/extension/DiagnosticExtensions.java rename to diagnostic/server/api/src/main/java/org/terracotta/diagnostic/server/api/extension/DiagnosticExtensions.java diff --git a/diagnostic/server/services/build.gradle b/diagnostic/server/services/build.gradle new file mode 100644 index 0000000000..4c64770d9e --- /dev/null +++ b/diagnostic/server/services/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':diagnostic:server:api') + implementation project(':diagnostic:common') + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.diagnostic' + artifactId = 'diagnostic-service' + name = 'Diagnostic Server Plugin' +} diff --git a/diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DefaultDiagnosticServices.java b/diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DefaultDiagnosticServices.java similarity index 100% rename from diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DefaultDiagnosticServices.java rename to diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DefaultDiagnosticServices.java diff --git a/diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandler.java b/diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandler.java similarity index 100% rename from diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandler.java rename to diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandler.java diff --git a/diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerMBean.java b/diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerMBean.java similarity index 100% rename from diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerMBean.java rename to diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerMBean.java diff --git a/diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptor.java b/diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptor.java similarity index 100% rename from diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptor.java rename to diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptor.java diff --git a/diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceProvider.java b/diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceProvider.java similarity index 100% rename from diagnostic/service/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceProvider.java rename to diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/DiagnosticServiceProvider.java diff --git a/diagnostic/service/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsMBeanImpl.java b/diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsMBeanImpl.java similarity index 100% rename from diagnostic/service/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsMBeanImpl.java rename to diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsMBeanImpl.java diff --git a/diagnostic/service/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsServiceProvider.java b/diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsServiceProvider.java similarity index 100% rename from diagnostic/service/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsServiceProvider.java rename to diagnostic/server/services/src/main/java/org/terracotta/diagnostic/server/extensions/DiagnosticExtensionsServiceProvider.java diff --git a/diagnostic/service/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider b/diagnostic/server/services/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider similarity index 100% rename from diagnostic/service/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider rename to diagnostic/server/services/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider diff --git a/diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesRegistrationTest.java b/diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesRegistrationTest.java similarity index 100% rename from diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesRegistrationTest.java rename to diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesRegistrationTest.java diff --git a/diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesTest.java b/diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesTest.java similarity index 100% rename from diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesTest.java rename to diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DefaultDiagnosticServicesTest.java diff --git a/diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerTest.java b/diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerTest.java similarity index 100% rename from diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerTest.java rename to diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DiagnosticRequestHandlerTest.java diff --git a/diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptorTest.java b/diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptorTest.java similarity index 100% rename from diagnostic/service/src/test/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptorTest.java rename to diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/DiagnosticServiceDescriptorTest.java diff --git a/diagnostic/service/src/test/java/org/terracotta/diagnostic/server/extensions/LogicalServerStateTest.java b/diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/extensions/LogicalServerStateTest.java similarity index 100% rename from diagnostic/service/src/test/java/org/terracotta/diagnostic/server/extensions/LogicalServerStateTest.java rename to diagnostic/server/services/src/test/java/org/terracotta/diagnostic/server/extensions/LogicalServerStateTest.java diff --git a/diagnostic/service-api/pom.xml b/diagnostic/service-api/pom.xml deleted file mode 100755 index 2920da4480..0000000000 --- a/diagnostic/service-api/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.diagnostic - diagnostic - 5.10-SNAPSHOT - ../pom.xml - - - diagnostic-service-api - Diagnostic :: Service API - - - - org.terracotta.diagnostic - diagnostic-model - ${project.version} - - - org.terracotta - standard-cluster-services - provided - - - - diff --git a/diagnostic/service/pom.xml b/diagnostic/service/pom.xml deleted file mode 100755 index 5f446dc7d7..0000000000 --- a/diagnostic/service/pom.xml +++ /dev/null @@ -1,87 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.diagnostic - diagnostic - 5.10-SNAPSHOT - ../pom.xml - - - diagnostic-service - Diagnostic :: Service - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.diagnostic - diagnostic-common - ${project.version} - - - - - org.slf4j - slf4j-api - provided - - - org.terracotta - standard-cluster-services - provided - - - org.terracotta - entity-server-api - provided - - - - org.terracotta.diagnostic - diagnostic-service-api - ${project.version} - provided - - - - org.terracotta.common - common-test-utilities - ${project.version} - test - - - diff --git a/docs/build.gradle b/docs/build.gradle new file mode 100644 index 0000000000..f41f8f82f6 --- /dev/null +++ b/docs/build.gradle @@ -0,0 +1,22 @@ +// import org.asciidoctor.gradle.base.process.ProcessMode +// import org.asciidoctor.gradle.jvm.AsciidoctorTask + +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.asciidoctor.jvm.convert' + id 'org.asciidoctor.jvm.gems' +} + +copyright.check('src/main/asciidoc') + +repositories { + ruby.gems() +} + +dependencies { + asciidoctorGems 'rubygems:coderay:1.1.2' +} + +asciidoctor { +} diff --git a/docs/pom.xml b/docs/pom.xml deleted file mode 100644 index ce6d2f8af1..0000000000 --- a/docs/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - docs - - - - - org.asciidoctor - asciidoctor-maven-plugin - 1.5.6 - - - output-html - generate-resources - - process-asciidoc - - - coderay - html - - - false - - - - - - src/main/asciidoc - true - - - - - diff --git a/docs/src/main/asciidoc/dynamic-config/Config-Tool.adoc b/docs/src/docs/asciidoc/dynamic-config/Config-Tool.adoc similarity index 100% rename from docs/src/main/asciidoc/dynamic-config/Config-Tool.adoc rename to docs/src/docs/asciidoc/dynamic-config/Config-Tool.adoc diff --git a/docs/src/main/asciidoc/dynamic-config/ConfigRepository.adoc b/docs/src/docs/asciidoc/dynamic-config/ConfigRepository.adoc similarity index 100% rename from docs/src/main/asciidoc/dynamic-config/ConfigRepository.adoc rename to docs/src/docs/asciidoc/dynamic-config/ConfigRepository.adoc diff --git a/docs/src/main/asciidoc/dynamic-config/Consistent-OSS-EE-UX.adoc b/docs/src/docs/asciidoc/dynamic-config/Consistent-OSS-EE-UX.adoc similarity index 100% rename from docs/src/main/asciidoc/dynamic-config/Consistent-OSS-EE-UX.adoc rename to docs/src/docs/asciidoc/dynamic-config/Consistent-OSS-EE-UX.adoc diff --git a/docs/src/main/asciidoc/dynamic-config/DistributedTransactionProtocol.adoc b/docs/src/docs/asciidoc/dynamic-config/DistributedTransactionProtocol.adoc similarity index 100% rename from docs/src/main/asciidoc/dynamic-config/DistributedTransactionProtocol.adoc rename to docs/src/docs/asciidoc/dynamic-config/DistributedTransactionProtocol.adoc diff --git a/docs/src/main/asciidoc/dynamic-config/DistributedTransactionProtocol.tla b/docs/src/docs/asciidoc/dynamic-config/DistributedTransactionProtocol.tla similarity index 100% rename from docs/src/main/asciidoc/dynamic-config/DistributedTransactionProtocol.tla rename to docs/src/docs/asciidoc/dynamic-config/DistributedTransactionProtocol.tla diff --git a/docs/src/main/asciidoc/dynamic-config/NomadCommandStringStructure.adoc b/docs/src/docs/asciidoc/dynamic-config/NomadCommandStringStructure.adoc similarity index 98% rename from docs/src/main/asciidoc/dynamic-config/NomadCommandStringStructure.adoc rename to docs/src/docs/asciidoc/dynamic-config/NomadCommandStringStructure.adoc index db152518a8..596b84676c 100644 --- a/docs/src/main/asciidoc/dynamic-config/NomadCommandStringStructure.adoc +++ b/docs/src/docs/asciidoc/dynamic-config/NomadCommandStringStructure.adoc @@ -53,7 +53,7 @@ usability and possibly more power. Some configuration may contain sensitive information such as private keys or passwords. At the moment all such configuration is placed in files and protected using filesystem permissions. However, if we allow commands to provide such information then the sanskrit repository becomes something that must be secured with filesystem permissions and -sharing the repository with Software AG support becomes more difficult. We will side-step this issue for now by not +sharing the repository with support becomes more difficult. We will side-step this issue for now by not allowing a file upload command. Users must place such files on the server themselves. The configuration commands will only specify the paths to those files (e.g. security root directory path). @@ -156,4 +156,4 @@ parameters that may be required for each individual command. This is work that s command. Specifically, the command names and parameter structures shown in the examples are not intended to form part of this -design, they are merely to show what such commands could look like. \ No newline at end of file +design, they are merely to show what such commands could look like. diff --git a/docs/src/main/asciidoc/dynamic-config/StoringClusterInformation.adoc b/docs/src/docs/asciidoc/dynamic-config/StoringClusterInformation.adoc similarity index 100% rename from docs/src/main/asciidoc/dynamic-config/StoringClusterInformation.adoc rename to docs/src/docs/asciidoc/dynamic-config/StoringClusterInformation.adoc diff --git a/docs/src/main/asciidoc/dynamic-config/SyncAndRepair.adoc b/docs/src/docs/asciidoc/dynamic-config/SyncAndRepair.adoc similarity index 100% rename from docs/src/main/asciidoc/dynamic-config/SyncAndRepair.adoc rename to docs/src/docs/asciidoc/dynamic-config/SyncAndRepair.adoc diff --git a/dynamic-config/api/build.gradle b/dynamic-config/api/build.gradle new file mode 100644 index 0000000000..5288e9cdca --- /dev/null +++ b/dynamic-config/api/build.gradle @@ -0,0 +1,21 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':dynamic-config:model') + api project(':diagnostic:model') + api project(':common:nomad') + + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" + + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.dynamic-config' + artifactId = 'dynamic-config-api' + name = 'Dynamic Config API' +} diff --git a/dynamic-config/api/pom.xml b/dynamic-config/api/pom.xml deleted file mode 100755 index 088adebcaa..0000000000 --- a/dynamic-config/api/pom.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config - dynamic-config - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-api - Dynamic Config :: API - - - - org.terracotta.dynamic-config - dynamic-config-model - ${project.version} - - - org.terracotta.diagnostic - diagnostic-model - ${project.version} - - - org.terracotta.common - common-nomad - ${project.version} - - - diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/ConfigChangeHandler.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/ConfigChangeHandler.java similarity index 97% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/ConfigChangeHandler.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/ConfigChangeHandler.java index 78a1ec0f1c..3055530d7f 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/ConfigChangeHandler.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/ConfigChangeHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.NodeContext; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/ConfigChangeHandlerManager.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/ConfigChangeHandlerManager.java similarity index 97% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/ConfigChangeHandlerManager.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/ConfigChangeHandlerManager.java index 8dbf47aa9c..0696aa6b70 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/ConfigChangeHandlerManager.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/ConfigChangeHandlerManager.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.Setting; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DelegatingDynamicConfigNomadServer.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DelegatingDynamicConfigNomadServer.java similarity index 98% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DelegatingDynamicConfigNomadServer.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DelegatingDynamicConfigNomadServer.java index 356dbc7cdd..a2050778c5 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DelegatingDynamicConfigNomadServer.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DelegatingDynamicConfigNomadServer.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.service.NomadChangeInfo; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigEventFiring.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigEventFiring.java similarity index 97% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigEventFiring.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigEventFiring.java index 26c1a7708a..bbffeb5b47 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigEventFiring.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigEventFiring.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.Cluster; import org.terracotta.dynamic_config.api.model.Node; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigEventService.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigEventService.java similarity index 94% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigEventService.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigEventService.java index f6e804f14e..91dc48844c 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigEventService.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigEventService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; /** * @author Mathieu Carbou diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigListener.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigListener.java similarity index 98% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigListener.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigListener.java index 48c2d677b4..3162c98c38 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigListener.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigListener.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.Cluster; import org.terracotta.dynamic_config.api.model.Node; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigNomadServer.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigNomadServer.java similarity index 97% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigNomadServer.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigNomadServer.java index f22da5bd92..cb06f77cf9 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigNomadServer.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/DynamicConfigNomadServer.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.service.NomadChangeInfo; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/EmptyDynamicConfigNomadServer.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/EmptyDynamicConfigNomadServer.java similarity index 98% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/EmptyDynamicConfigNomadServer.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/EmptyDynamicConfigNomadServer.java index 1595326154..eec8950fd4 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/EmptyDynamicConfigNomadServer.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/EmptyDynamicConfigNomadServer.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.service.NomadChangeInfo; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/EventRegistration.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/EventRegistration.java similarity index 94% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/EventRegistration.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/EventRegistration.java index 9b68764377..93c9a3cdd4 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/EventRegistration.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/EventRegistration.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; /** * @author Mathieu Carbou diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/GroupPortMapper.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/GroupPortMapper.java similarity index 94% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/GroupPortMapper.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/GroupPortMapper.java index dfd7775259..89fac48961 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/GroupPortMapper.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/GroupPortMapper.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.Node; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/InvalidConfigChangeException.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/InvalidConfigChangeException.java similarity index 95% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/InvalidConfigChangeException.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/InvalidConfigChangeException.java index f939659aa9..259acc73c4 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/InvalidConfigChangeException.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/InvalidConfigChangeException.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; public class InvalidConfigChangeException extends Exception { private static final long serialVersionUID = -3752283156707939955L; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/InvalidLicenseException.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/InvalidLicenseException.java similarity index 95% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/InvalidLicenseException.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/InvalidLicenseException.java index 83e8453c85..deb3bbbe10 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/InvalidLicenseException.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/InvalidLicenseException.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; public class InvalidLicenseException extends RuntimeException { private static final long serialVersionUID = 1L; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/LicenseParserDiscovery.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/LicenseParserDiscovery.java similarity index 96% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/LicenseParserDiscovery.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/LicenseParserDiscovery.java index 843db94a5f..febe724e71 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/LicenseParserDiscovery.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/LicenseParserDiscovery.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import java.util.List; import java.util.Optional; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/LicenseService.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/LicenseService.java similarity index 97% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/LicenseService.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/LicenseService.java index df1cc17fb9..23b29c75c5 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/LicenseService.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/LicenseService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.Cluster; import org.terracotta.dynamic_config.api.model.License; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadChangeProcessor.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadChangeProcessor.java similarity index 95% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadChangeProcessor.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadChangeProcessor.java index 5a512e173b..eade03b4c6 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadChangeProcessor.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadChangeProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadPermissionChangeProcessor.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadPermissionChangeProcessor.java similarity index 96% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadPermissionChangeProcessor.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadPermissionChangeProcessor.java index 04db08ce9f..3342f5fb57 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadPermissionChangeProcessor.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadPermissionChangeProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadRoutingChangeProcessor.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadRoutingChangeProcessor.java similarity index 95% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadRoutingChangeProcessor.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadRoutingChangeProcessor.java index 878099114f..0f73237806 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/NomadRoutingChangeProcessor.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/NomadRoutingChangeProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/PathResolver.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/PathResolver.java similarity index 82% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/PathResolver.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/PathResolver.java index 7de5b645b3..887145b7da 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/PathResolver.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/PathResolver.java @@ -14,22 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; - -import org.terracotta.entity.StateDumpCollector; -import org.terracotta.entity.StateDumpable; +package org.terracotta.dynamic_config.api.server; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.function.Function; - import static java.util.Objects.requireNonNull; +import java.util.function.Function; import static java.util.function.Function.identity; /** * @author Mathieu Carbou */ -public class PathResolver implements StateDumpable { +public class PathResolver { private final Path baseDir; private final Function transform; @@ -66,9 +62,4 @@ public Path resolve(Path path) { public String toString() { return baseDir.toAbsolutePath().toString(); } - - @Override - public void addStateTo(StateDumpCollector stateDumpCollector) { - stateDumpCollector.addState("baseDir", baseDir.toAbsolutePath().toString()); - } } diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/SelectingConfigChangeHandler.java b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/SelectingConfigChangeHandler.java similarity index 98% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/SelectingConfigChangeHandler.java rename to dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/SelectingConfigChangeHandler.java index ff56afe75e..054228f1d2 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/SelectingConfigChangeHandler.java +++ b/dynamic-config/api/src/main/java/org/terracotta/dynamic_config/api/server/SelectingConfigChangeHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.terracotta.dynamic_config.server.api; +package org.terracotta.dynamic_config.api.server; import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.NodeContext; diff --git a/dynamic-config/cli/api/build.gradle b/dynamic-config/cli/api/build.gradle new file mode 100644 index 0000000000..e72a118dab --- /dev/null +++ b/dynamic-config/cli/api/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:output-service') + api project(':diagnostic:client') + api project(':dynamic-config:json') + api project(':dynamic-config:entities:nomad:client') + implementation "org.terracotta.internal:common-spi:$terracottaCoreVersion" + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.dynamic-config.cli' + artifactId = 'dynamic-config-cli-api' + name = 'Dynamic Config CLI API' +} diff --git a/dynamic-config/cli/api/config/checkstyle/copyright-suppressions.xml b/dynamic-config/cli/api/config/checkstyle/copyright-suppressions.xml new file mode 100644 index 0000000000..2ab8a9b595 --- /dev/null +++ b/dynamic-config/cli/api/config/checkstyle/copyright-suppressions.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ActivateAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ActivateAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ActivateAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ActivateAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/AttachAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/AttachAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/AttachAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/AttachAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Configuration.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Configuration.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Configuration.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Configuration.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationInput.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationInput.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationInput.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationInput.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationMutationAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationMutationAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationMutationAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ConfigurationMutationAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DetachAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DetachAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DetachAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DetachAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DiagnosticAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DiagnosticAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DiagnosticAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/DiagnosticAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ExportAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ExportAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ExportAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ExportAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/GetAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/GetAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/GetAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/GetAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ImportAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ImportAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ImportAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ImportAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Injector.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Injector.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Injector.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/Injector.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LockConfigAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LockConfigAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LockConfigAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LockConfigAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LogAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LogAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LogAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/LogAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/OssServiceProvider.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/OssServiceProvider.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/OssServiceProvider.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/OssServiceProvider.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RemoteAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RemoteAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RemoteAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RemoteAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RepairAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RepairAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RepairAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/RepairAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ServiceProvider.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ServiceProvider.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ServiceProvider.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/ServiceProvider.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/SetAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/SetAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/SetAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/SetAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/TopologyAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/TopologyAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/TopologyAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/TopologyAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnlockConfigAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnlockConfigAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnlockConfigAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnlockConfigAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnsetAction.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnsetAction.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnsetAction.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/command/UnsetAction.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/OperationType.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/OperationType.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/OperationType.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/OperationType.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/RepairMethod.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/RepairMethod.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/RepairMethod.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/converter/RepairMethod.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/json/CliJsonModule.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/json/CliJsonModule.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/json/CliJsonModule.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/json/CliJsonModule.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/DefaultNomadManager.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/DefaultNomadManager.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/DefaultNomadManager.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/DefaultNomadManager.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/LockAwareNomadManager.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/LockAwareNomadManager.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/LockAwareNomadManager.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/LockAwareNomadManager.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/NomadManager.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/NomadManager.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/NomadManager.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/nomad/NomadManager.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartProgress.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartProgress.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartProgress.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartProgress.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartService.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartService.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartService.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/restart/RestartService.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopProgress.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopProgress.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopProgress.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopProgress.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopService.java b/dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopService.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopService.java rename to dynamic-config/cli/api/src/main/java/org/terracotta/dynamic_config/cli/api/stop/StopService.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.api.command.ServiceProvider b/dynamic-config/cli/api/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.api.command.ServiceProvider similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.api.command.ServiceProvider rename to dynamic-config/cli/api/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.api.command.ServiceProvider diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/BaseTest.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/BaseTest.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/BaseTest.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/BaseTest.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/NomadTestHelper.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/NomadTestHelper.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/NomadTestHelper.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/NomadTestHelper.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/SimpleNomadChange.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/SimpleNomadChange.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/SimpleNomadChange.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/SimpleNomadChange.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ActivateActionTest.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ActivateActionTest.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ActivateActionTest.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ActivateActionTest.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/AttachActionTest.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/AttachActionTest.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/AttachActionTest.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/AttachActionTest.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/DetachActionTest.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/DetachActionTest.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/DetachActionTest.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/DetachActionTest.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ImportActionTest.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ImportActionTest.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ImportActionTest.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/ImportActionTest.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/TopologyActionTest.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/TopologyActionTest.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/command/TopologyActionTest.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/command/TopologyActionTest.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/json/TestModule.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/json/TestModule.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/json/TestModule.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/json/TestModule.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/restart/RestartServiceTest.java b/dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/restart/RestartServiceTest.java similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/java/org/terracotta/dynamic_config/cli/api/restart/RestartServiceTest.java rename to dynamic-config/cli/api/src/test/java/org/terracotta/dynamic_config/cli/api/restart/RestartServiceTest.java diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster1.json b/dynamic-config/cli/api/src/test/resources/cluster1.json similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster1.json rename to dynamic-config/cli/api/src/test/resources/cluster1.json diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster2.json b/dynamic-config/cli/api/src/test/resources/cluster2.json similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster2.json rename to dynamic-config/cli/api/src/test/resources/cluster2.json diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster3.json b/dynamic-config/cli/api/src/test/resources/cluster3.json similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster3.json rename to dynamic-config/cli/api/src/test/resources/cluster3.json diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster4.json b/dynamic-config/cli/api/src/test/resources/cluster4.json similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/resources/cluster4.json rename to dynamic-config/cli/api/src/test/resources/cluster4.json diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/resources/my-cluster.cfg b/dynamic-config/cli/api/src/test/resources/my-cluster.cfg similarity index 97% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/resources/my-cluster.cfg rename to dynamic-config/cli/api/src/test/resources/my-cluster.cfg index 5531ac418f..5fff54e1bd 100644 --- a/dynamic-config/cli/dynamic-config-cli-api/src/test/resources/my-cluster.cfg +++ b/dynamic-config/cli/api/src/test/resources/my-cluster.cfg @@ -1,5 +1,6 @@ # # Copyright Terracotta, Inc. +# Copyright Super iPaaS Integration LLC, an IBM Company 2024 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/dynamic-config/cli/dynamic-config-cli-api/src/test/resources/my-cluster.properties b/dynamic-config/cli/api/src/test/resources/my-cluster.properties similarity index 100% rename from dynamic-config/cli/dynamic-config-cli-api/src/test/resources/my-cluster.properties rename to dynamic-config/cli/api/src/test/resources/my-cluster.properties diff --git a/dynamic-config/cli/cli-support/pom.xml b/dynamic-config/cli/cli-support/pom.xml deleted file mode 100755 index cf95b36870..0000000000 --- a/dynamic-config/cli/cli-support/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.cli - dynamic-config-cli - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-cli-support - Dynamic Config :: CLI :: Support - - - - org.terracotta.dynamic-config - dynamic-config-model - ${project.version} - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-api - ${project.version} - - - - com.beust - jcommander - - - ch.qos.logback - logback-classic - provided - - - diff --git a/dynamic-config/cli/config-tool/build.gradle b/dynamic-config/cli/config-tool/build.gradle new file mode 100644 index 0000000000..3a3a13dab3 --- /dev/null +++ b/dynamic-config/cli/config-tool/build.gradle @@ -0,0 +1,24 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.tool' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation project(':dynamic-config:cli:api') + implementation project(':dynamic-config:cli:jcommander') + implementation "org.terracotta.internal:common-spi:$terracottaCoreVersion" + runtimeOnly "ch.qos.logback:logback-classic:$logbackVersion" +} + +tool { + name = 'config-tool' + mainClass = 'org.terracotta.dynamic_config.cli.config_tool.ConfigTool' +} + +deploy { + groupId = 'org.terracotta.dynamic-config.cli' + artifactId = 'dynamic-config-cli-config-tool' + name = 'Dynamic Config config-tool CLI' +} diff --git a/dynamic-config/cli/config-tool/pom.xml b/dynamic-config/cli/config-tool/pom.xml deleted file mode 100755 index f970b9e5a3..0000000000 --- a/dynamic-config/cli/config-tool/pom.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.cli - dynamic-config-cli - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-cli-config-tool - Dynamic Config :: CLI :: Config Tool - - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-support - ${project.version} - - - org.terracotta.internal - common-spi - compile - - - org.terracotta.internal - client-runtime - provided - - - diff --git a/dynamic-config/cli/config-tool/src/main/resources/logback.xml b/dynamic-config/cli/config-tool/src/main/resources/logback.xml index 1e1a9ef343..eac1a8c0f8 100644 --- a/dynamic-config/cli/config-tool/src/main/resources/logback.xml +++ b/dynamic-config/cli/config-tool/src/main/resources/logback.xml @@ -31,11 +31,11 @@ - + - \ No newline at end of file + diff --git a/dynamic-config/cli/dynamic-config-cli-api/pom.xml b/dynamic-config/cli/dynamic-config-cli-api/pom.xml deleted file mode 100644 index ee32a7ea59..0000000000 --- a/dynamic-config/cli/dynamic-config-cli-api/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - dynamic-config-cli - org.terracotta.dynamic-config.cli - 5.10-SNAPSHOT - - 4.0.0 - - dynamic-config-cli-api - - - - org.terracotta.common - output-service - ${project.version} - - - org.terracotta.diagnostic - diagnostic-client - ${project.version} - - - org.terracotta.dynamic-config - dynamic-config-api-json - ${project.version} - - - org.terracotta.dynamic-config.entities - dynamic-config-nomad-entity-client - ${project.version} - - - - - org.terracotta.internal - common-spi - provided - - - org.terracotta - connection-api - provided - - - ch.qos.logback - logback-classic - provided - - - \ No newline at end of file diff --git a/dynamic-config/cli/jcommander/build.gradle b/dynamic-config/cli/jcommander/build.gradle new file mode 100644 index 0000000000..62bed1ebb0 --- /dev/null +++ b/dynamic-config/cli/jcommander/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':dynamic-config:model') + api project(':dynamic-config:cli:api') + api "com.beust:jcommander:$jcommanderVersion" + implementation "ch.qos.logback:logback-classic:$logbackVersion" + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.dynamic-config.cli' + artifactId = 'dynamic-config-cli-support' + name = 'Dynamic Config CLI JCommander Support' +} diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/Command.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/Command.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/Command.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/Command.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/CustomJCommander.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/CustomJCommander.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/CustomJCommander.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/CustomJCommander.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/LocalMainCommand.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/LocalMainCommand.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/LocalMainCommand.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/LocalMainCommand.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/RestartCommand.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/RestartCommand.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/RestartCommand.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/RestartCommand.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/Usage.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/Usage.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/command/Usage.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/command/Usage.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigurationInputConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigurationInputConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigurationInputConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/ConfigurationInputConverter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/HostPortConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/HostPortConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/HostPortConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/HostPortConverter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/IdentifierConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/IdentifierConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/IdentifierConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/IdentifierConverter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/RepairActionConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/RepairActionConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/RepairActionConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/RepairActionConverter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/ShapeConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/ShapeConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/ShapeConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/ShapeConverter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/TimeUnitConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/TimeUnitConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/TimeUnitConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/TimeUnitConverter.java diff --git a/dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/TypeConverter.java b/dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/TypeConverter.java similarity index 100% rename from dynamic-config/cli/cli-support/src/main/java/org/terracotta/dynamic_config/cli/converter/TypeConverter.java rename to dynamic-config/cli/jcommander/src/main/java/org/terracotta/dynamic_config/cli/converter/TypeConverter.java diff --git a/dynamic-config/cli/cli-support/src/test/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverterTest.java b/dynamic-config/cli/jcommander/src/test/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverterTest.java similarity index 100% rename from dynamic-config/cli/cli-support/src/test/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverterTest.java rename to dynamic-config/cli/jcommander/src/test/java/org/terracotta/dynamic_config/cli/converter/ConfigFormatConverterTest.java diff --git a/dynamic-config/cli/cli-support/src/test/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitterTest.java b/dynamic-config/cli/jcommander/src/test/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitterTest.java similarity index 100% rename from dynamic-config/cli/cli-support/src/test/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitterTest.java rename to dynamic-config/cli/jcommander/src/test/java/org/terracotta/dynamic_config/cli/converter/MultiConfigCommaSplitterTest.java diff --git a/dynamic-config/cli/cli-support/src/test/java/org/terracotta/dynamic_config/cli/converter/ShapeConverterTest.java b/dynamic-config/cli/jcommander/src/test/java/org/terracotta/dynamic_config/cli/converter/ShapeConverterTest.java similarity index 100% rename from dynamic-config/cli/cli-support/src/test/java/org/terracotta/dynamic_config/cli/converter/ShapeConverterTest.java rename to dynamic-config/cli/jcommander/src/test/java/org/terracotta/dynamic_config/cli/converter/ShapeConverterTest.java diff --git a/dynamic-config/cli/pom.xml b/dynamic-config/cli/pom.xml deleted file mode 100755 index af18eef465..0000000000 --- a/dynamic-config/cli/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config - dynamic-config - 5.10-SNAPSHOT - ../pom.xml - - - org.terracotta.dynamic-config.cli - dynamic-config-cli - pom - Dynamic Config :: CLI :: POM - - - cli-support - config-tool - upgrade-tools - upgrade-tools-oss - dynamic-config-cli-api - - - diff --git a/dynamic-config/cli/upgrade-tool-oss/build.gradle b/dynamic-config/cli/upgrade-tool-oss/build.gradle new file mode 100644 index 0000000000..97a5cb1b95 --- /dev/null +++ b/dynamic-config/cli/upgrade-tool-oss/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation project(':dynamic-config:model') + implementation project(':dynamic-config:cli:upgrade-tool') + + implementation xmlConfig(project(':resources:data-root')) + + implementation "org.terracotta.internal:tc-config-parser:$terracottaConfigVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.cli' + artifactId = 'upgrade-tools-oss' + name = 'Dynamic Config CLI upgrade-tool (OSS)' +} diff --git a/dynamic-config/cli/upgrade-tools-oss/src/main/java/org/terracotta/dynamic_config/xml/oss/OssTcConfigMapper.java b/dynamic-config/cli/upgrade-tool-oss/src/main/java/org/terracotta/dynamic_config/xml/oss/OssTcConfigMapper.java similarity index 100% rename from dynamic-config/cli/upgrade-tools-oss/src/main/java/org/terracotta/dynamic_config/xml/oss/OssTcConfigMapper.java rename to dynamic-config/cli/upgrade-tool-oss/src/main/java/org/terracotta/dynamic_config/xml/oss/OssTcConfigMapper.java diff --git a/dynamic-config/cli/upgrade-tools-oss/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.upgrade_tools.config_converter.xml.TcConfigMapper b/dynamic-config/cli/upgrade-tool-oss/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.upgrade_tools.config_converter.xml.TcConfigMapper similarity index 100% rename from dynamic-config/cli/upgrade-tools-oss/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.upgrade_tools.config_converter.xml.TcConfigMapper rename to dynamic-config/cli/upgrade-tool-oss/src/main/resources/META-INF/services/org.terracotta.dynamic_config.cli.upgrade_tools.config_converter.xml.TcConfigMapper diff --git a/dynamic-config/cli/upgrade-tool/build.gradle b/dynamic-config/cli/upgrade-tool/build.gradle new file mode 100644 index 0000000000..1a31eed73a --- /dev/null +++ b/dynamic-config/cli/upgrade-tool/build.gradle @@ -0,0 +1,29 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation project(':dynamic-config:cli:api') + implementation project(':dynamic-config:cli:jcommander') + implementation project(':dynamic-config:repository') + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" + + // server apis + implementation "org.terracotta:entity-server-api:$terracottaApisVersion" + + // xml plugins + implementation "org.terracotta.internal:tc-config-parser:$terracottaConfigVersion" + implementation xmlConfig(project(':resources:data-root')) + implementation xmlConfig(project(':resources:offheap')) + implementation xmlConfig(project(':lease:server')) + + testImplementation project(':common:test-utilities') + testImplementation "ch.qos.logback:logback-classic:$logbackVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.cli' + artifactId = 'dynamic-config-cli-upgrade-tools' +} diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverter.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverter.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverter.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverter.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTool.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTool.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTool.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTool.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigPropertiesProcessor.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigPropertiesProcessor.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigPropertiesProcessor.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigPropertiesProcessor.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigRepoProcessor.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigRepoProcessor.java similarity index 98% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigRepoProcessor.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigRepoProcessor.java index 732e39867c..fb51958001 100644 --- a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigRepoProcessor.java +++ b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigRepoProcessor.java @@ -25,7 +25,7 @@ import org.terracotta.dynamic_config.api.model.Stripe; import org.terracotta.dynamic_config.api.model.nomad.ClusterActivationNomadChange; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.dynamic_config.server.configuration.nomad.NomadServerFactory; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.ConfigStorageException; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager; diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConversionFormat.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConversionFormat.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConversionFormat.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConversionFormat.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/command/ConvertAction.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/command/ConvertAction.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/command/ConvertAction.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/command/ConvertAction.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/conversion/AbstractTcConfigMapper.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/conversion/AbstractTcConfigMapper.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/conversion/AbstractTcConfigMapper.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/conversion/AbstractTcConfigMapper.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ConfigConversionException.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ConfigConversionException.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ConfigConversionException.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ConfigConversionException.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCode.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCode.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCode.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCode.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapper.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapper.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapper.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapper.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorParamKey.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorParamKey.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorParamKey.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorParamKey.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputConfigurationContentException.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputConfigurationContentException.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputConfigurationContentException.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputConfigurationContentException.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputException.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputException.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputException.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/InvalidInputException.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/ConvertCommand.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/ConvertCommand.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/ConvertCommand.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/ConvertCommand.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/deprecated/DeprecatedConvertCommand.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/deprecated/DeprecatedConvertCommand.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/deprecated/DeprecatedConvertCommand.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/parsing/deprecated/DeprecatedConvertCommand.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapper.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapper.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapper.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapper.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/CommonMapper.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/CommonMapper.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/CommonMapper.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/CommonMapper.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/NonSubstitutingTCConfigurationParser.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/NonSubstitutingTCConfigurationParser.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/NonSubstitutingTCConfigurationParser.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/NonSubstitutingTCConfigurationParser.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapper.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapper.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapper.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapper.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapperDiscovery.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapperDiscovery.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapperDiscovery.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/TcConfigMapperDiscovery.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/XmlUtility.java b/dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/XmlUtility.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/XmlUtility.java rename to dynamic-config/cli/upgrade-tool/src/main/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/xml/XmlUtility.java diff --git a/dynamic-config/cli/upgrade-tools/src/main/resources/logback.xml b/dynamic-config/cli/upgrade-tool/src/main/resources/logback.xml similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/main/resources/logback.xml rename to dynamic-config/cli/upgrade-tool/src/main/resources/logback.xml diff --git a/dynamic-config/cli/upgrade-tools/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTest.java b/dynamic-config/cli/upgrade-tool/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTest.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTest.java rename to dynamic-config/cli/upgrade-tool/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/ConfigConverterTest.java diff --git a/dynamic-config/cli/upgrade-tools/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapperTest.java b/dynamic-config/cli/upgrade-tool/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapperTest.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapperTest.java rename to dynamic-config/cli/upgrade-tool/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/exception/ErrorCodeMapperTest.java diff --git a/dynamic-config/cli/upgrade-tools/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapperTest.java b/dynamic-config/cli/upgrade-tool/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapperTest.java similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapperTest.java rename to dynamic-config/cli/upgrade-tool/src/test/java/org/terracotta/dynamic_config/cli/upgrade_tools/config_converter/validators/ValidationWrapperTest.java diff --git a/dynamic-config/cli/upgrade-tools/src/test/resources/tc-config.xml b/dynamic-config/cli/upgrade-tool/src/test/resources/tc-config.xml similarity index 100% rename from dynamic-config/cli/upgrade-tools/src/test/resources/tc-config.xml rename to dynamic-config/cli/upgrade-tool/src/test/resources/tc-config.xml diff --git a/dynamic-config/cli/upgrade-tools-oss/pom.xml b/dynamic-config/cli/upgrade-tools-oss/pom.xml deleted file mode 100755 index 1e1fb2a75a..0000000000 --- a/dynamic-config/cli/upgrade-tools-oss/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.cli - dynamic-config-cli - 5.10-SNAPSHOT - ../pom.xml - - - upgrade-tools-oss - Dynamic Config :: CLI :: UpgradeTools (OSS) - - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-upgrade-tools - ${project.version} - - - diff --git a/dynamic-config/cli/upgrade-tools/pom.xml b/dynamic-config/cli/upgrade-tools/pom.xml deleted file mode 100755 index 7981cccf6c..0000000000 --- a/dynamic-config/cli/upgrade-tools/pom.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.cli - dynamic-config-cli - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-cli-upgrade-tools - Dynamic Config :: CLI :: UpgradeTools - - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-support - ${project.version} - - - org.terracotta.dynamic-config.server - dynamic-config-configuration-repository - ${project.version} - - - org.terracotta - terracotta-utilities-tools - - - ch.qos.logback - logback-classic - test - - - - org.terracotta.internal - tc-config-parser - - - org.terracotta - entity-server-api - - - - - org.terracotta.management - monitoring-service-api - ${project.version} - - - org.terracotta - data-root-resource - ${project.version} - - - org.terracotta - offheap-resource - ${project.version} - - - org.terracotta - lease-entity-server - ${project.version} - - - diff --git a/dynamic-config/entities/management-entity/server/pom.xml b/dynamic-config/entities/management-entity/server/pom.xml deleted file mode 100755 index 45563fb96f..0000000000 --- a/dynamic-config/entities/management-entity/server/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - 5.10-SNAPSHOT - ../../pom.xml - - - dynamic-config-management-entity-server - Dynamic Config :: Entities :: Management :: Server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - - - org.terracotta.management - monitoring-service-api - ${project.version} - provided - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - org.slf4j - slf4j-api - provided - - - diff --git a/dynamic-config/entities/management/server/build.gradle b/dynamic-config/entities/management/server/build.gradle new file mode 100644 index 0000000000..80a480cdf0 --- /dev/null +++ b/dynamic-config/entities/management/server/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':dynamic-config:api') + service project(':management:server:api') +} + +deploy { + groupId = 'org.terracotta.dynamic-config.entities' + artifactId = 'dynamic-config-management-entity-server' + name = 'Dynamic Config Management Entity' +} diff --git a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementActiveEntity.java b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementActiveEntity.java similarity index 97% rename from dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementActiveEntity.java rename to dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementActiveEntity.java index bd7ba245ad..9c24fe1d9c 100644 --- a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementActiveEntity.java +++ b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementActiveEntity.java @@ -17,7 +17,7 @@ package org.terracotta.dynamic_config.entity.management.server; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; import org.terracotta.entity.ActiveServerEntity; import org.terracotta.entity.ClientDescriptor; import org.terracotta.entity.EntityMessage; diff --git a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementCommonEntity.java b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementCommonEntity.java similarity index 98% rename from dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementCommonEntity.java rename to dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementCommonEntity.java index bdd62e2e5b..d7eb627c4b 100644 --- a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementCommonEntity.java +++ b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementCommonEntity.java @@ -26,9 +26,9 @@ import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; import org.terracotta.dynamic_config.api.service.Props; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; -import org.terracotta.dynamic_config.server.api.DynamicConfigListener; -import org.terracotta.dynamic_config.server.api.EventRegistration; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigListener; +import org.terracotta.dynamic_config.api.server.EventRegistration; import org.terracotta.entity.CommonServerEntity; import org.terracotta.entity.EntityMessage; import org.terracotta.entity.EntityResponse; diff --git a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementEntityServerService.java b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementEntityServerService.java similarity index 98% rename from dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementEntityServerService.java rename to dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementEntityServerService.java index 9e50436a32..db336fd1b8 100644 --- a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementEntityServerService.java +++ b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementEntityServerService.java @@ -18,7 +18,7 @@ import com.tc.classloader.PermanentEntity; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; import org.terracotta.entity.ActiveServerEntity; import org.terracotta.entity.BasicServiceConfiguration; import org.terracotta.entity.ConcurrencyStrategy; diff --git a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementPassiveEntity.java b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementPassiveEntity.java similarity index 96% rename from dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementPassiveEntity.java rename to dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementPassiveEntity.java index 1b9e23ab60..4508c651c2 100644 --- a/dynamic-config/entities/management-entity/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementPassiveEntity.java +++ b/dynamic-config/entities/management/server/src/main/java/org/terracotta/dynamic_config/entity/management/server/ManagementPassiveEntity.java @@ -17,7 +17,7 @@ package org.terracotta.dynamic_config.entity.management.server; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; import org.terracotta.entity.EntityMessage; import org.terracotta.entity.EntityResponse; import org.terracotta.entity.PassiveServerEntity; diff --git a/dynamic-config/entities/management-entity/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/dynamic-config/entities/management/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from dynamic-config/entities/management-entity/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to dynamic-config/entities/management/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/dynamic-config/entities/nomad-entity/client/pom.xml b/dynamic-config/entities/nomad-entity/client/pom.xml deleted file mode 100755 index 34e914bec5..0000000000 --- a/dynamic-config/entities/nomad-entity/client/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - 5.10-SNAPSHOT - ../../pom.xml - - - dynamic-config-nomad-entity-client - Dynamic Config :: Entities :: Nomad :: Client - - - - org.terracotta.dynamic-config.entities - dynamic-config-nomad-entity-common - ${project.version} - - - - - org.terracotta - entity-client-api - provided - - - - diff --git a/dynamic-config/entities/nomad-entity/common/pom.xml b/dynamic-config/entities/nomad-entity/common/pom.xml deleted file mode 100755 index ddb6ca3ad2..0000000000 --- a/dynamic-config/entities/nomad-entity/common/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - 5.10-SNAPSHOT - ../../pom.xml - - - dynamic-config-nomad-entity-common - Dynamic Config :: Entities :: Nomad :: Common - - - - org.terracotta.common - common-nomad - ${project.version} - - - - - org.terracotta.dynamic-config - dynamic-config-api-json - ${project.version} - - - - - org.terracotta - entity-common-api - provided - - - diff --git a/dynamic-config/entities/nomad-entity/server/pom.xml b/dynamic-config/entities/nomad-entity/server/pom.xml deleted file mode 100755 index c204f6dfc4..0000000000 --- a/dynamic-config/entities/nomad-entity/server/pom.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - 5.10-SNAPSHOT - ../../pom.xml - - - dynamic-config-nomad-entity-server - Dynamic Config :: Entities :: Nomad :: Server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.dynamic-config.entities - dynamic-config-nomad-entity-common - ${project.version} - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - org.slf4j - slf4j-api - provided - - - - diff --git a/dynamic-config/entities/nomad/client/build.gradle b/dynamic-config/entities/nomad/client/build.gradle new file mode 100644 index 0000000000..348ea59fb4 --- /dev/null +++ b/dynamic-config/entities/nomad/client/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':dynamic-config:entities:nomad:common') + api "org.terracotta:entity-client-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.entities' + artifactId = 'dynamic-config-nomad-entity-client' + name = 'Dynamic Config Nomad Entity Client' +} diff --git a/dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntity.java b/dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntity.java similarity index 100% rename from dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntity.java rename to dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntity.java diff --git a/dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityClientService.java b/dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityClientService.java similarity index 100% rename from dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityClientService.java rename to dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityClientService.java diff --git a/dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityFactory.java b/dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityFactory.java similarity index 100% rename from dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityFactory.java rename to dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityFactory.java diff --git a/dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityImpl.java b/dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityImpl.java similarity index 100% rename from dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityImpl.java rename to dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityImpl.java diff --git a/dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityProvider.java b/dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityProvider.java similarity index 100% rename from dynamic-config/entities/nomad-entity/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityProvider.java rename to dynamic-config/entities/nomad/client/src/main/java/org/terracotta/nomad/entity/client/NomadEntityProvider.java diff --git a/dynamic-config/entities/nomad-entity/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService b/dynamic-config/entities/nomad/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService similarity index 100% rename from dynamic-config/entities/nomad-entity/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService rename to dynamic-config/entities/nomad/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService diff --git a/dynamic-config/entities/nomad/common/build.gradle b/dynamic-config/entities/nomad/common/build.gradle new file mode 100644 index 0000000000..6ab7a9cd1c --- /dev/null +++ b/dynamic-config/entities/nomad/common/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:nomad') + api project(':dynamic-config:json') + api "org.terracotta:entity-common-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.entities' + artifactId = 'dynamic-config-nomad-entity-common' +} diff --git a/dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityConstants.java b/dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityConstants.java similarity index 100% rename from dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityConstants.java rename to dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityConstants.java diff --git a/dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityMessage.java b/dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityMessage.java similarity index 100% rename from dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityMessage.java rename to dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityMessage.java diff --git a/dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityResponse.java b/dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityResponse.java similarity index 100% rename from dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityResponse.java rename to dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadEntityResponse.java diff --git a/dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadMessageCodec.java b/dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadMessageCodec.java similarity index 100% rename from dynamic-config/entities/nomad-entity/common/src/main/java/org/terracotta/nomad/entity/common/NomadMessageCodec.java rename to dynamic-config/entities/nomad/common/src/main/java/org/terracotta/nomad/entity/common/NomadMessageCodec.java diff --git a/dynamic-config/entities/nomad/server/build.gradle b/dynamic-config/entities/nomad/server/build.gradle new file mode 100644 index 0000000000..91bebbeaa5 --- /dev/null +++ b/dynamic-config/entities/nomad/server/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':dynamic-config:api') + implementation project(':dynamic-config:entities:nomad:common') +} + +deploy { + groupId = 'org.terracotta.dynamic-config.entities' + artifactId = 'dynamic-config-nomad-entity-server' + name = 'Dynamic Config Nomad Entity' +} diff --git a/dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NoConcurrency.java b/dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NoConcurrency.java similarity index 100% rename from dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NoConcurrency.java rename to dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NoConcurrency.java diff --git a/dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadActiveServerEntity.java b/dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadActiveServerEntity.java similarity index 100% rename from dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadActiveServerEntity.java rename to dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadActiveServerEntity.java diff --git a/dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadCommonServerEntity.java b/dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadCommonServerEntity.java similarity index 100% rename from dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadCommonServerEntity.java rename to dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadCommonServerEntity.java diff --git a/dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadPassiveServerEntity.java b/dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadPassiveServerEntity.java similarity index 100% rename from dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadPassiveServerEntity.java rename to dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadPassiveServerEntity.java diff --git a/dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadServerEntityService.java b/dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadServerEntityService.java similarity index 98% rename from dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadServerEntityService.java rename to dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadServerEntityService.java index 02b8e0eae8..754560261a 100644 --- a/dynamic-config/entities/nomad-entity/server/src/main/java/org/terracotta/nomad/entity/server/NomadServerEntityService.java +++ b/dynamic-config/entities/nomad/server/src/main/java/org/terracotta/nomad/entity/server/NomadServerEntityService.java @@ -17,7 +17,7 @@ package org.terracotta.nomad.entity.server; import com.tc.classloader.PermanentEntity; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.entity.BasicServiceConfiguration; import org.terracotta.entity.ConcurrencyStrategy; import org.terracotta.entity.ConfigurationException; diff --git a/dynamic-config/entities/nomad-entity/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/dynamic-config/entities/nomad/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from dynamic-config/entities/nomad-entity/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to dynamic-config/entities/nomad/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/dynamic-config/entities/pom.xml b/dynamic-config/entities/pom.xml deleted file mode 100755 index a539caa9b5..0000000000 --- a/dynamic-config/entities/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config - dynamic-config - 5.10-SNAPSHOT - ../pom.xml - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - pom - Dynamic Config :: Entities :: POM - - - management-entity/server - nomad-entity/common - nomad-entity/client - nomad-entity/server - topology-entity/common - topology-entity/client - topology-entity/server - - - diff --git a/dynamic-config/entities/topology-entity/client/pom.xml b/dynamic-config/entities/topology-entity/client/pom.xml deleted file mode 100755 index 3579fc2f4c..0000000000 --- a/dynamic-config/entities/topology-entity/client/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - 5.10-SNAPSHOT - ../../pom.xml - - - dynamic-config-topology-entity-client - Dynamic Config :: Entities :: Topology :: Client - - - - org.terracotta.dynamic-config.entities - dynamic-config-topology-entity-common - ${project.version} - - - - - org.terracotta - entity-client-api - provided - - - - diff --git a/dynamic-config/entities/topology-entity/common/pom.xml b/dynamic-config/entities/topology-entity/common/pom.xml deleted file mode 100755 index 5f355704fd..0000000000 --- a/dynamic-config/entities/topology-entity/common/pom.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - 5.10-SNAPSHOT - ../../pom.xml - - - dynamic-config-topology-entity-common - Dynamic Config :: Entities :: Topology :: Common - - - - org.terracotta.dynamic-config - dynamic-config-model - ${project.version} - - - org.terracotta - runnel - ${project.version} - - - - - org.terracotta - entity-common-api - provided - - - diff --git a/dynamic-config/entities/topology-entity/server/pom.xml b/dynamic-config/entities/topology-entity/server/pom.xml deleted file mode 100755 index 07de8bc3df..0000000000 --- a/dynamic-config/entities/topology-entity/server/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.entities - dynamic-config-entities - 5.10-SNAPSHOT - ../../pom.xml - - - dynamic-config-topology-entity-server - Dynamic Config :: Entities :: Topology :: Server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.dynamic-config.entities - dynamic-config-topology-entity-common - ${project.version} - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - org.slf4j - slf4j-api - provided - - - - diff --git a/dynamic-config/entities/topology/client/build.gradle b/dynamic-config/entities/topology/client/build.gradle new file mode 100644 index 0000000000..87859520d3 --- /dev/null +++ b/dynamic-config/entities/topology/client/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':dynamic-config:entities:topology:common') + api "org.terracotta:entity-client-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.entities' + artifactId = 'dynamic-config-topology-entity-client' + name = 'Dynamic Config Topology Entity Client' +} diff --git a/dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntity.java b/dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntity.java similarity index 100% rename from dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntity.java rename to dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntity.java diff --git a/dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityClientService.java b/dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityClientService.java similarity index 100% rename from dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityClientService.java rename to dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityClientService.java diff --git a/dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityFactory.java b/dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityFactory.java similarity index 100% rename from dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityFactory.java rename to dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityFactory.java diff --git a/dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityImpl.java b/dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityImpl.java similarity index 100% rename from dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityImpl.java rename to dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityImpl.java diff --git a/dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityProvider.java b/dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityProvider.java similarity index 100% rename from dynamic-config/entities/topology-entity/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityProvider.java rename to dynamic-config/entities/topology/client/src/main/java/org/terracotta/dynamic_config/entity/topology/client/DynamicTopologyEntityProvider.java diff --git a/dynamic-config/entities/topology-entity/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService b/dynamic-config/entities/topology/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService similarity index 100% rename from dynamic-config/entities/topology-entity/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService rename to dynamic-config/entities/topology/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService diff --git a/dynamic-config/entities/topology/common/build.gradle b/dynamic-config/entities/topology/common/build.gradle new file mode 100644 index 0000000000..e9daffc444 --- /dev/null +++ b/dynamic-config/entities/topology/common/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:runnel') + api project(':dynamic-config:model') + api "org.terracotta:entity-common-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.entities' + artifactId = 'dynamic-config-topology-entity-common' +} diff --git a/dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Codec.java b/dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Codec.java similarity index 100% rename from dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Codec.java rename to dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Codec.java diff --git a/dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/DynamicTopologyEntityConstants.java b/dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/DynamicTopologyEntityConstants.java similarity index 100% rename from dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/DynamicTopologyEntityConstants.java rename to dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/DynamicTopologyEntityConstants.java diff --git a/dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Message.java b/dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Message.java similarity index 100% rename from dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Message.java rename to dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Message.java diff --git a/dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Response.java b/dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Response.java similarity index 100% rename from dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Response.java rename to dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Response.java diff --git a/dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Type.java b/dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Type.java similarity index 100% rename from dynamic-config/entities/topology-entity/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Type.java rename to dynamic-config/entities/topology/common/src/main/java/org/terracotta/dynamic_config/entity/topology/common/Type.java diff --git a/dynamic-config/entities/topology-entity/common/src/test/java/org/terracotta/dynamic_config/entity/topology/common/CodecTest.java b/dynamic-config/entities/topology/common/src/test/java/org/terracotta/dynamic_config/entity/topology/common/CodecTest.java similarity index 100% rename from dynamic-config/entities/topology-entity/common/src/test/java/org/terracotta/dynamic_config/entity/topology/common/CodecTest.java rename to dynamic-config/entities/topology/common/src/test/java/org/terracotta/dynamic_config/entity/topology/common/CodecTest.java diff --git a/dynamic-config/entities/topology/server/build.gradle b/dynamic-config/entities/topology/server/build.gradle new file mode 100644 index 0000000000..35808ef274 --- /dev/null +++ b/dynamic-config/entities/topology/server/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':dynamic-config:api') + implementation project(':dynamic-config:entities:topology:common') +} + +deploy { + groupId = 'org.terracotta.dynamic-config.entities' + artifactId = 'dynamic-config-topology-entity-server' + name = 'Dynamic Config Topology Entity' +} diff --git a/dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyActiveServerEntity.java b/dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyActiveServerEntity.java similarity index 97% rename from dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyActiveServerEntity.java rename to dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyActiveServerEntity.java index 1e3cfd1033..eeaeca31e5 100644 --- a/dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyActiveServerEntity.java +++ b/dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyActiveServerEntity.java @@ -27,9 +27,9 @@ import org.terracotta.dynamic_config.api.service.TopologyService; import org.terracotta.dynamic_config.entity.topology.common.Message; import org.terracotta.dynamic_config.entity.topology.common.Response; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; -import org.terracotta.dynamic_config.server.api.DynamicConfigListener; -import org.terracotta.dynamic_config.server.api.EventRegistration; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigListener; +import org.terracotta.dynamic_config.api.server.EventRegistration; import org.terracotta.entity.ActiveInvokeContext; import org.terracotta.entity.ActiveServerEntity; import org.terracotta.entity.ClientCommunicator; diff --git a/dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyPassiveServerEntity.java b/dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyPassiveServerEntity.java similarity index 100% rename from dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyPassiveServerEntity.java rename to dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyPassiveServerEntity.java diff --git a/dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyServerEntityService.java b/dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyServerEntityService.java similarity index 98% rename from dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyServerEntityService.java rename to dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyServerEntityService.java index bacb854b73..242d32daf7 100644 --- a/dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyServerEntityService.java +++ b/dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/DynamicTopologyServerEntityService.java @@ -22,7 +22,7 @@ import org.terracotta.dynamic_config.entity.topology.common.DynamicTopologyEntityConstants; import org.terracotta.dynamic_config.entity.topology.common.Message; import org.terracotta.dynamic_config.entity.topology.common.Response; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; import org.terracotta.entity.ActiveServerEntity; import org.terracotta.entity.BasicServiceConfiguration; import org.terracotta.entity.ClientCommunicator; diff --git a/dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/UltimateConcurrency.java b/dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/UltimateConcurrency.java similarity index 100% rename from dynamic-config/entities/topology-entity/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/UltimateConcurrency.java rename to dynamic-config/entities/topology/server/src/main/java/org/terracotta/dynamic_config/entity/topology/server/UltimateConcurrency.java diff --git a/dynamic-config/entities/topology-entity/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/dynamic-config/entities/topology/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from dynamic-config/entities/topology-entity/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to dynamic-config/entities/topology/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/dynamic-config/json/build.gradle b/dynamic-config/json/build.gradle new file mode 100644 index 0000000000..334b505b9c --- /dev/null +++ b/dynamic-config/json/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':dynamic-config:api') + api project(':common:json') +} + +deploy { + groupId = 'org.terracotta.dynamic-config' + artifactId = 'dynamic-config-json' + name = 'Dynamic Config Json Modules' +} diff --git a/dynamic-config/json/pom.xml b/dynamic-config/json/pom.xml deleted file mode 100755 index 4131195a33..0000000000 --- a/dynamic-config/json/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config - dynamic-config - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-api-json - Dynamic Config :: Json - - - - org.terracotta.dynamic-config - dynamic-config-api - ${project.version} - - - org.terracotta.common - common-json-support - ${project.version} - - - diff --git a/dynamic-config/model/build.gradle b/dynamic-config/model/build.gradle new file mode 100644 index 0000000000..ce67f50426 --- /dev/null +++ b/dynamic-config/model/build.gradle @@ -0,0 +1,22 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:structures') + api project(':common:inet') + + testImplementation project(':common:test-utilities') +} + +copyrightMainHeader { + exclude '**/dict/*.txt' +} + +deploy { + groupId = 'org.terracotta.dynamic-config' + artifactId = 'dynamic-config-model' + name = 'Dynamic Config Model' +} diff --git a/dynamic-config/model/pom.xml b/dynamic-config/model/pom.xml deleted file mode 100755 index 116200e076..0000000000 --- a/dynamic-config/model/pom.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config - dynamic-config - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-model - Dynamic Config :: Model - - - - org.terracotta.common - common-inet-support - ${project.version} - - - org.terracotta.common - common-structures - ${project.version} - - - diff --git a/dynamic-config/model/src/main/java/org/terracotta/dynamic_config/api/service/NameGenerator.java b/dynamic-config/model/src/main/java/org/terracotta/dynamic_config/api/service/NameGenerator.java index 944caef6f2..ab84849c0c 100644 --- a/dynamic-config/model/src/main/java/org/terracotta/dynamic_config/api/service/NameGenerator.java +++ b/dynamic-config/model/src/main/java/org/terracotta/dynamic_config/api/service/NameGenerator.java @@ -189,7 +189,7 @@ private static String pickRandomNodeName(List dict, List used, R private static String pickRandomStripeName(List dict, List used, Random random) { dict = new ArrayList<>(dict); dict.removeAll(used); - + if (dict.isEmpty()) { String name; do { diff --git a/dynamic-config/pom.xml b/dynamic-config/pom.xml deleted file mode 100755 index d65c1904b2..0000000000 --- a/dynamic-config/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - org.terracotta.dynamic-config - dynamic-config - pom - Dynamic Config :: POM - - - Core modules for dynamic configuration and startup of nodes - - - - model - api - json - server - entities - cli - testing - - - - - org.slf4j - slf4j-api - provided - - - - junit - junit - test - - - org.mockito - mockito-core - test - - - org.hamcrest - hamcrest-all - test - - - org.terracotta.common - common-test-utilities - ${project.version} - test - - - - diff --git a/dynamic-config/repository/build.gradle b/dynamic-config/repository/build.gradle new file mode 100644 index 0000000000..9723a49f43 --- /dev/null +++ b/dynamic-config/repository/build.gradle @@ -0,0 +1,22 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':dynamic-config:api') + api project(':common:sanskrit') + + implementation project(':dynamic-config:json') + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" + + testImplementation project(':common:test-utilities') + testImplementation "org.terracotta:terracotta-utilities-test-tools:$terracottaUtilitiesTestToolsVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.server' + artifactId = 'dynamic-config-configuration-repository' + name = 'Dynamic Config Repository' +} diff --git a/dynamic-config/repository/config/checkstyle/copyright-suppressions.xml b/dynamic-config/repository/config/checkstyle/copyright-suppressions.xml new file mode 100644 index 0000000000..2ab8a9b595 --- /dev/null +++ b/dynamic-config/repository/config/checkstyle/copyright-suppressions.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/DynamicConfigNomadServerImpl.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/DynamicConfigNomadServerImpl.java similarity index 98% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/DynamicConfigNomadServerImpl.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/DynamicConfigNomadServerImpl.java index 1195f2d007..350b4dcc65 100644 --- a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/DynamicConfigNomadServerImpl.java +++ b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/DynamicConfigNomadServerImpl.java @@ -19,7 +19,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.ClusterActivationNomadChange; import org.terracotta.dynamic_config.api.service.NomadChangeInfo; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.nomad.client.change.NomadChange; import org.terracotta.nomad.messages.AcceptRejectResponse; import org.terracotta.nomad.server.ChangeApplicator; diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/NomadServerFactory.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/NomadServerFactory.java similarity index 98% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/NomadServerFactory.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/NomadServerFactory.java index 3f45193a6a..30ac972437 100644 --- a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/NomadServerFactory.java +++ b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/NomadServerFactory.java @@ -25,8 +25,8 @@ import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; import org.terracotta.dynamic_config.api.model.nomad.FormatUpgradeNomadChange; import org.terracotta.dynamic_config.api.service.FormatUpgrade; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.ClusterConfigFilename; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.Config; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.ConfigStorageAdapter; diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/SingleThreadedNomadServer.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/SingleThreadedNomadServer.java similarity index 98% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/SingleThreadedNomadServer.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/SingleThreadedNomadServer.java index c9f09cd827..c119182c57 100644 --- a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/SingleThreadedNomadServer.java +++ b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/SingleThreadedNomadServer.java @@ -18,7 +18,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.service.NomadChangeInfo; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.nomad.client.change.NomadChange; import org.terracotta.nomad.messages.AcceptRejectResponse; import org.terracotta.nomad.messages.CommitMessage; diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilename.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilename.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilename.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilename.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/Config.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/Config.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/Config.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/Config.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorage.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorage.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorage.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorage.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageAdapter.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageAdapter.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageAdapter.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageAdapter.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageException.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageException.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageException.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ConfigStorageException.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputer.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputer.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputer.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputer.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorage.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorage.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorage.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorage.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/HashComputer.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/HashComputer.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/HashComputer.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/HashComputer.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorage.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorage.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorage.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorage.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManager.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManager.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManager.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManager.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadSanskritKeys.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadSanskritKeys.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadSanskritKeys.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadSanskritKeys.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/SanskritJsonModule.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/SanskritJsonModule.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/SanskritJsonModule.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/SanskritJsonModule.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritJsonMapper.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritJsonMapper.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritJsonMapper.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritJsonMapper.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritMapVisitor.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritMapVisitor.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritMapVisitor.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritMapVisitor.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadServerState.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadServerState.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadServerState.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadServerState.java diff --git a/dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadStateChange.java b/dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadStateChange.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadStateChange.java rename to dynamic-config/repository/src/main/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/sanskrit/SanskritNomadStateChange.java diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/BackwardCompatibilityTest.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/BackwardCompatibilityTest.java similarity index 98% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/BackwardCompatibilityTest.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/BackwardCompatibilityTest.java index e6ddea3086..55d4a255d9 100644 --- a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/BackwardCompatibilityTest.java +++ b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/BackwardCompatibilityTest.java @@ -16,21 +16,6 @@ */ package org.terracotta.dynamic_config.server.configuration.nomad.persistence; -import org.junit.Rule; -import org.junit.Test; -import org.terracotta.common.struct.Tuple2; -import org.terracotta.dynamic_config.api.json.DynamicConfigJsonModule; -import org.terracotta.dynamic_config.api.model.NodeContext; -import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; -import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.api.service.Props; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; -import org.terracotta.dynamic_config.server.configuration.nomad.NomadServerFactory; -import org.terracotta.json.DefaultJsonFactory; -import org.terracotta.json.Json; -import org.terracotta.nomad.server.ChangeApplicator; -import org.terracotta.testing.TmpDir; - import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; @@ -44,11 +29,25 @@ import static org.hamcrest.Matchers.hasItems; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; +import org.junit.Rule; +import org.junit.Test; +import org.terracotta.common.struct.Tuple2; +import org.terracotta.dynamic_config.api.json.DynamicConfigJsonModule; +import org.terracotta.dynamic_config.api.model.NodeContext; +import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; +import org.terracotta.dynamic_config.api.service.Props; +import org.terracotta.dynamic_config.server.configuration.nomad.NomadServerFactory; +import org.terracotta.json.DefaultJsonFactory; +import org.terracotta.json.Json; +import org.terracotta.nomad.server.ChangeApplicator; +import org.terracotta.testing.TmpDir; import static org.terracotta.utilities.io.Files.ExtendedOption.RECURSIVE; public class BackwardCompatibilityTest { @Rule - public TmpDir temporaryFolder = new TmpDir(Paths.get(System.getProperty("user.dir"), "target"), false); + public TmpDir temporaryFolder = new TmpDir(Paths.get(System.getProperty("user.dir"), "build"), false); private String[] newV2Props = new String[]{"stripe.1.stripe-name", "cluster-uid", "stripe.1.stripe-uid", "stripe.1.node.1.node-uid", "this.version", "this.node-uid"}; diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilenameTest.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilenameTest.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilenameTest.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/ClusterConfigFilenameTest.java diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputerTest.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputerTest.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputerTest.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/DefaultHashComputerTest.java diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorageTest.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorageTest.java similarity index 98% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorageTest.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorageTest.java index 1933359e81..5d01757cca 100644 --- a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorageTest.java +++ b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/FileConfigStorageTest.java @@ -16,13 +16,6 @@ */ package org.terracotta.dynamic_config.server.configuration.nomad.persistence; -import org.junit.Rule; -import org.junit.Test; -import org.terracotta.dynamic_config.api.model.NodeContext; -import org.terracotta.dynamic_config.api.model.Testing; -import org.terracotta.dynamic_config.api.service.Props; -import org.terracotta.testing.TmpDir; - import java.io.StringReader; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -35,14 +28,20 @@ import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import org.junit.Rule; +import org.junit.Test; +import org.terracotta.dynamic_config.api.model.NodeContext; +import org.terracotta.dynamic_config.api.model.Testing; import static org.terracotta.dynamic_config.api.model.Testing.newTestCluster; import static org.terracotta.dynamic_config.api.model.Testing.newTestNode; import static org.terracotta.dynamic_config.api.model.Testing.newTestStripe; +import org.terracotta.dynamic_config.api.service.Props; +import org.terracotta.testing.TmpDir; public class FileConfigStorageTest { @Rule - public TmpDir temporaryFolder = new TmpDir(Paths.get(System.getProperty("user.dir"), "target"), false); + public TmpDir temporaryFolder = new TmpDir(Paths.get(System.getProperty("user.dir"), "build"), false); @Test public void saveAndRetrieve() throws Exception { diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorageTest.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorageTest.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorageTest.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/InitialConfigStorageTest.java diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManagerTest.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManagerTest.java similarity index 98% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManagerTest.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManagerTest.java index d461766733..3da084ebbc 100644 --- a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManagerTest.java +++ b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/NomadConfigurationManagerTest.java @@ -16,11 +16,6 @@ */ package org.terracotta.dynamic_config.server.configuration.nomad.persistence; -import org.junit.Rule; -import org.junit.Test; -import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.org.junit.rules.TemporaryFolder; - import java.io.File; import java.nio.file.Files; import java.nio.file.Path; @@ -33,13 +28,16 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertThrows; +import org.junit.Rule; +import org.junit.Test; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import static org.terracotta.dynamic_config.api.service.IParameterSubstitutor.identity; -import static org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.ConfigDirDepth; +import org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.ConfigDirDepth; import static org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.ConfigDirDepth.FULL; import static org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.ConfigDirDepth.NONE; import static org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.ConfigDirDepth.ROOT_ONLY; @@ -47,11 +45,12 @@ import static org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.DIR_CLUSTER; import static org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.DIR_LICENSE; import static org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager.findNodeName; +import org.terracotta.org.junit.rules.TemporaryFolder; import static org.terracotta.testing.ExceptionMatcher.throwing; public class NomadConfigurationManagerTest { @Rule - public TemporaryFolder folder = new TemporaryFolder(new File("target")); + public TemporaryFolder folder = new TemporaryFolder(new File("build")); private final Path configPath = Paths.get("config").toAbsolutePath(); private final Path clusterPath = configPath.resolve(DIR_CLUSTER); diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/SanskritNomadServerStateTest.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/SanskritNomadServerStateTest.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/SanskritNomadServerStateTest.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/SanskritNomadServerStateTest.java diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/TestData.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/TestData.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/TestData.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/TestData.java diff --git a/dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/TestModule.java b/dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/TestModule.java similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/TestModule.java rename to dynamic-config/repository/src/test/java/org/terracotta/dynamic_config/server/configuration/nomad/persistence/json/TestModule.java diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1/changes/append.log b/dynamic-config/repository/src/test/resources/config-v1/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1/changes/append.log rename to dynamic-config/repository/src/test/resources/config-v1/changes/append.log diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1/changes/hash0 b/dynamic-config/repository/src/test/resources/config-v1/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1/changes/hash0 rename to dynamic-config/repository/src/test/resources/config-v1/changes/hash0 diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1/cluster/default-node1.1.properties b/dynamic-config/repository/src/test/resources/config-v1/cluster/default-node1.1.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1/cluster/default-node1.1.properties rename to dynamic-config/repository/src/test/resources/config-v1/cluster/default-node1.1.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/changes/append.log b/dynamic-config/repository/src/test/resources/config-v1_with_addition_change/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/changes/append.log rename to dynamic-config/repository/src/test/resources/config-v1_with_addition_change/changes/append.log diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/changes/hash0 b/dynamic-config/repository/src/test/resources/config-v1_with_addition_change/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/changes/hash0 rename to dynamic-config/repository/src/test/resources/config-v1_with_addition_change/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/changes/lock b/dynamic-config/repository/src/test/resources/config-v1_with_addition_change/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/changes/lock rename to dynamic-config/repository/src/test/resources/config-v1_with_addition_change/changes/lock diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/cluster/node1.1.properties b/dynamic-config/repository/src/test/resources/config-v1_with_addition_change/cluster/node1.1.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/cluster/node1.1.properties rename to dynamic-config/repository/src/test/resources/config-v1_with_addition_change/cluster/node1.1.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/cluster/node1.2.properties b/dynamic-config/repository/src/test/resources/config-v1_with_addition_change/cluster/node1.2.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/cluster/node1.2.properties rename to dynamic-config/repository/src/test/resources/config-v1_with_addition_change/cluster/node1.2.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/changes/append.log b/dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/changes/append.log rename to dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/changes/append.log diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/changes/hash0 b/dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/changes/hash0 rename to dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/changes/lock b/dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/changes/lock rename to dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/changes/lock diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.1.properties b/dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.1.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.1.properties rename to dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.1.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.2.properties b/dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.2.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.2.properties rename to dynamic-config/repository/src/test/resources/config-v1_with_deletion_change/cluster/node1.2.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/changes/append.log b/dynamic-config/repository/src/test/resources/config-v1_with_setting/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/changes/append.log rename to dynamic-config/repository/src/test/resources/config-v1_with_setting/changes/append.log diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/changes/hash0 b/dynamic-config/repository/src/test/resources/config-v1_with_setting/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/changes/hash0 rename to dynamic-config/repository/src/test/resources/config-v1_with_setting/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/changes/lock b/dynamic-config/repository/src/test/resources/config-v1_with_setting/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/changes/lock rename to dynamic-config/repository/src/test/resources/config-v1_with_setting/changes/lock diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/cluster/node-1.1.properties b/dynamic-config/repository/src/test/resources/config-v1_with_setting/cluster/node-1.1.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/cluster/node-1.1.properties rename to dynamic-config/repository/src/test/resources/config-v1_with_setting/cluster/node-1.1.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/cluster/node-1.2.properties b/dynamic-config/repository/src/test/resources/config-v1_with_setting/cluster/node-1.2.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/cluster/node-1.2.properties rename to dynamic-config/repository/src/test/resources/config-v1_with_setting/cluster/node-1.2.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/append.log b/dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/append.log rename to dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/hash0 b/dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/hash0 rename to dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.1.properties b/dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.1.properties rename to dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.2.properties b/dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.2.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.2.properties rename to dynamic-config/repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.2.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config.properties b/dynamic-config/repository/src/test/resources/config.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config.properties rename to dynamic-config/repository/src/test/resources/config.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/simplelogger.properties b/dynamic-config/repository/src/test/resources/simplelogger.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/simplelogger.properties rename to dynamic-config/repository/src/test/resources/simplelogger.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/topology.json b/dynamic-config/repository/src/test/resources/topology.json similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/topology.json rename to dynamic-config/repository/src/test/resources/topology.json diff --git a/dynamic-config/server/configuration-repository/src/test/resources/topology_with_setting.json b/dynamic-config/repository/src/test/resources/topology_with_setting.json similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/topology_with_setting.json rename to dynamic-config/repository/src/test/resources/topology_with_setting.json diff --git a/dynamic-config/server/api/build.gradle b/dynamic-config/server/api/build.gradle new file mode 100644 index 0000000000..9990040ef1 --- /dev/null +++ b/dynamic-config/server/api/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':dynamic-config:api') + api "org.terracotta:entity-server-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.server' + artifactId = 'dynamic-config-server-api' + name = 'Dynamic Config Server API' +} diff --git a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigExtension.java b/dynamic-config/server/api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigExtension.java similarity index 100% rename from dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigExtension.java rename to dynamic-config/server/api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigExtension.java index 18744b7678..8f8a17759a 100644 --- a/dynamic-config/server/server-api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigExtension.java +++ b/dynamic-config/server/api/src/main/java/org/terracotta/dynamic_config/server/api/DynamicConfigExtension.java @@ -16,12 +16,12 @@ */ package org.terracotta.dynamic_config.server.api; -import org.terracotta.entity.PlatformConfiguration; -import org.terracotta.entity.ServiceProviderConfiguration; - import java.util.Collection; import java.util.function.Supplier; +import org.terracotta.entity.PlatformConfiguration; +import org.terracotta.entity.ServiceProviderConfiguration; + /** * Extension to implement as a META-INF/services to provide extensions on the servers * diff --git a/dynamic-config/server/config-provider/build.gradle b/dynamic-config/server/config-provider/build.gradle new file mode 100644 index 0000000000..485c0a32fb --- /dev/null +++ b/dynamic-config/server/config-provider/build.gradle @@ -0,0 +1,26 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':dynamic-config:server:api') + service project(':dynamic-config:json') + service project(':diagnostic:server:api') + + voltron "org.terracotta.internal:configuration-provider:$terracottaCoreVersion" + voltron "org.terracotta.internal:common-spi:$terracottaCoreVersion" + + implementation project(':dynamic-config:repository') + implementation "com.beust:jcommander:$jcommanderVersion" + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" + + testImplementation project(':common:test-utilities') +} + +deploy { + groupId = 'org.terracotta.dynamic-config.server' + artifactId = 'dynamic-config-configuration-provider' + name = 'Dynamic Config Server Configuration Provider' +} diff --git a/dynamic-config/server/config-provider/config/checkstyle/copyright-suppressions.xml b/dynamic-config/server/config-provider/config/checkstyle/copyright-suppressions.xml new file mode 100644 index 0000000000..2ab8a9b595 --- /dev/null +++ b/dynamic-config/server/config-provider/config/checkstyle/copyright-suppressions.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/dynamic-config/server/config-provider/config/checkstyle/suppressions.xml b/dynamic-config/server/config-provider/config/checkstyle/suppressions.xml new file mode 100644 index 0000000000..7fbaa88bb9 --- /dev/null +++ b/dynamic-config/server/config-provider/config/checkstyle/suppressions.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/DynamicConfigConfigurationProvider.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/DynamicConfigConfigurationProvider.java similarity index 96% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/DynamicConfigConfigurationProvider.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/DynamicConfigConfigurationProvider.java index 790c6682c7..95093b7c58 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/DynamicConfigConfigurationProvider.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/DynamicConfigConfigurationProvider.java @@ -27,16 +27,16 @@ import org.terracotta.dynamic_config.api.service.DynamicConfigService; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; import org.terracotta.dynamic_config.server.api.DynamicConfigExtension; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; -import org.terracotta.dynamic_config.server.api.LicenseParserDiscovery; -import org.terracotta.dynamic_config.server.api.LicenseService; -import org.terracotta.dynamic_config.server.api.NomadPermissionChangeProcessor; -import org.terracotta.dynamic_config.server.api.NomadRoutingChangeProcessor; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.LicenseParserDiscovery; +import org.terracotta.dynamic_config.api.server.LicenseService; +import org.terracotta.dynamic_config.api.server.NomadPermissionChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadRoutingChangeProcessor; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.dynamic_config.server.configuration.service.ConfigChangeHandlerManagerImpl; import org.terracotta.dynamic_config.server.configuration.service.NomadServerManager; import org.terracotta.dynamic_config.server.configuration.service.ParameterSubstitutor; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditListener.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditListener.java similarity index 97% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditListener.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditListener.java index 2862ce32e7..9fee7effe7 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditListener.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditListener.java @@ -22,7 +22,7 @@ import org.terracotta.dynamic_config.api.model.Stripe; import org.terracotta.dynamic_config.api.model.UID; import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; -import org.terracotta.dynamic_config.server.api.DynamicConfigListener; +import org.terracotta.dynamic_config.api.server.DynamicConfigListener; import org.terracotta.nomad.messages.AcceptRejectResponse; import org.terracotta.nomad.messages.CommitMessage; import org.terracotta.nomad.messages.RollbackMessage; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditService.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditService.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditService.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/AuditService.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeApplicator.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeApplicator.java similarity index 98% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeApplicator.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeApplicator.java index c0f5e0bc34..80eb547281 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeApplicator.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeApplicator.java @@ -24,7 +24,7 @@ import org.terracotta.dynamic_config.api.model.UID; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; import org.terracotta.dynamic_config.api.service.ClusterValidator; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.client.change.NomadChange; import org.terracotta.nomad.server.ChangeApplicator; import org.terracotta.nomad.server.NomadException; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeHandlerManagerImpl.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeHandlerManagerImpl.java similarity index 95% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeHandlerManagerImpl.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeHandlerManagerImpl.java index 24a9d53e6e..1aa757686d 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeHandlerManagerImpl.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ConfigChangeHandlerManagerImpl.java @@ -19,8 +19,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.terracotta.dynamic_config.api.model.Setting; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; import org.terracotta.entity.StateDumpCollector; import org.terracotta.entity.StateDumpable; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigEventServiceImpl.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigEventServiceImpl.java similarity index 92% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigEventServiceImpl.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigEventServiceImpl.java index 4c658ced63..02592b3493 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigEventServiceImpl.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigEventServiceImpl.java @@ -22,10 +22,10 @@ import org.terracotta.dynamic_config.api.model.Stripe; import org.terracotta.dynamic_config.api.model.UID; import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; -import org.terracotta.dynamic_config.server.api.DynamicConfigListener; -import org.terracotta.dynamic_config.server.api.EventRegistration; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigListener; +import org.terracotta.dynamic_config.api.server.EventRegistration; import org.terracotta.nomad.messages.AcceptRejectResponse; import org.terracotta.nomad.messages.CommitMessage; import org.terracotta.nomad.messages.PrepareMessage; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigServiceImpl.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigServiceImpl.java similarity index 98% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigServiceImpl.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigServiceImpl.java index 0f24ea4d4d..c897d1b636 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigServiceImpl.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/DynamicConfigServiceImpl.java @@ -36,10 +36,10 @@ import org.terracotta.dynamic_config.api.service.NomadChangeInfo; import org.terracotta.dynamic_config.api.service.Props; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigListener; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; -import org.terracotta.dynamic_config.server.api.InvalidLicenseException; -import org.terracotta.dynamic_config.server.api.LicenseService; +import org.terracotta.dynamic_config.api.server.DynamicConfigListener; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.InvalidLicenseException; +import org.terracotta.dynamic_config.api.server.LicenseService; import org.terracotta.dynamic_config.server.configuration.sync.DynamicConfigNomadSynchronizer; import org.terracotta.entity.StateDumpCollector; import org.terracotta.entity.StateDumpable; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Licensing.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Licensing.java similarity index 97% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Licensing.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Licensing.java index bbc66d0089..f2f1683880 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Licensing.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Licensing.java @@ -20,8 +20,8 @@ import org.slf4j.LoggerFactory; import org.terracotta.dynamic_config.api.model.Cluster; import org.terracotta.dynamic_config.api.model.License; -import org.terracotta.dynamic_config.server.api.InvalidLicenseException; -import org.terracotta.dynamic_config.server.api.LicenseService; +import org.terracotta.dynamic_config.api.server.InvalidLicenseException; +import org.terracotta.dynamic_config.api.server.LicenseService; import java.io.IOException; import java.io.UncheckedIOException; @@ -105,7 +105,7 @@ public Optional parse() { } /** - * @return false is license not installed, true if valid, {@code org.terracotta.dynamic_config.server.api.LicenseService#validate} will throw if invalid + * @return false is license not installed, true if valid, {@code org.terracotta.dynamic_config.api.server.LicenseService#validate} will throw if invalid */ public boolean validate(Cluster cluster) throws InvalidLicenseException { licenseLock.readLock().lock(); diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadMode.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadMode.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadMode.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadMode.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadServerManager.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadServerManager.java similarity index 96% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadServerManager.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadServerManager.java index 2037a88f75..bbe2c781d6 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadServerManager.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/NomadServerManager.java @@ -31,14 +31,14 @@ import org.terracotta.dynamic_config.api.service.DynamicConfigService; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; -import org.terracotta.dynamic_config.server.api.DelegatingDynamicConfigNomadServer; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; -import org.terracotta.dynamic_config.server.api.LicenseService; -import org.terracotta.dynamic_config.server.api.NomadPermissionChangeProcessor; -import org.terracotta.dynamic_config.server.api.NomadRoutingChangeProcessor; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.DelegatingDynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.LicenseService; +import org.terracotta.dynamic_config.api.server.NomadPermissionChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadRoutingChangeProcessor; import org.terracotta.dynamic_config.server.configuration.nomad.NomadServerFactory; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.ConfigStorageException; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ParameterSubstitutor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ParameterSubstitutor.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ParameterSubstitutor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/ParameterSubstitutor.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Topologies.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Topologies.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Topologies.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/Topologies.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ApplicabilityNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ApplicabilityNomadChangeProcessor.java similarity index 97% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ApplicabilityNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ApplicabilityNomadChangeProcessor.java index fe88898a39..e398e7d879 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ApplicabilityNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ApplicabilityNomadChangeProcessor.java @@ -21,7 +21,7 @@ import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; import org.terracotta.dynamic_config.api.model.nomad.FilteredNomadChange; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; /** diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessor.java similarity index 96% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessor.java index c5f8ce4a59..70a4004775 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessor.java @@ -21,7 +21,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.UID; import org.terracotta.dynamic_config.api.model.nomad.ClusterActivationNomadChange; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import static java.util.Objects.requireNonNull; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/DefaultNomadRoutingChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/DefaultNomadRoutingChangeProcessor.java similarity index 95% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/DefaultNomadRoutingChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/DefaultNomadRoutingChangeProcessor.java index e201b9997c..7a9862d537 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/DefaultNomadRoutingChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/DefaultNomadRoutingChangeProcessor.java @@ -18,8 +18,8 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; -import org.terracotta.dynamic_config.server.api.NomadRoutingChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadRoutingChangeProcessor; import org.terracotta.nomad.client.change.NomadChange; import org.terracotta.nomad.server.NomadException; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/FormatUpgradeNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/FormatUpgradeNomadChangeProcessor.java similarity index 95% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/FormatUpgradeNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/FormatUpgradeNomadChangeProcessor.java index d96b783e1d..d0f626c920 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/FormatUpgradeNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/FormatUpgradeNomadChangeProcessor.java @@ -20,7 +20,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.FormatUpgradeNomadChange; import org.terracotta.dynamic_config.api.service.ClusterValidator; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; public class FormatUpgradeNomadChangeProcessor implements NomadChangeProcessor { @Override diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockAwareNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockAwareNomadChangeProcessor.java similarity index 98% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockAwareNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockAwareNomadChangeProcessor.java index 9a4f1b1950..6c1f16f542 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockAwareNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockAwareNomadChangeProcessor.java @@ -21,7 +21,7 @@ import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; import org.terracotta.dynamic_config.api.model.nomad.LockAwareDynamicConfigNomadChange; import org.terracotta.dynamic_config.api.model.nomad.UnlockConfigNomadChange; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import static java.lang.String.format; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockConfigNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockConfigNomadChangeProcessor.java similarity index 95% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockConfigNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockConfigNomadChangeProcessor.java index 1b68711be9..495a7a3f8a 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockConfigNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/LockConfigNomadChangeProcessor.java @@ -18,7 +18,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.LockConfigNomadChange; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; public class LockConfigNomadChangeProcessor implements NomadChangeProcessor { diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/MultiSettingNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/MultiSettingNomadChangeProcessor.java similarity index 97% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/MultiSettingNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/MultiSettingNomadChangeProcessor.java index 6ff398829b..e0414b7017 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/MultiSettingNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/MultiSettingNomadChangeProcessor.java @@ -20,7 +20,7 @@ import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; import org.terracotta.dynamic_config.api.model.nomad.FilteredNomadChange; import org.terracotta.dynamic_config.api.model.nomad.MultiSettingNomadChange; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import java.util.List; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeAdditionNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeAdditionNomadChangeProcessor.java similarity index 95% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeAdditionNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeAdditionNomadChangeProcessor.java index 132d86a2dc..017720cb51 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeAdditionNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeAdditionNomadChangeProcessor.java @@ -24,8 +24,8 @@ import org.terracotta.dynamic_config.api.model.nomad.NodeAdditionNomadChange; import org.terracotta.dynamic_config.api.service.ClusterValidator; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import static java.util.Objects.requireNonNull; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeRemovalNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeRemovalNomadChangeProcessor.java similarity index 95% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeRemovalNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeRemovalNomadChangeProcessor.java index 7395858cda..8b6078fb2f 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeRemovalNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NodeRemovalNomadChangeProcessor.java @@ -25,8 +25,8 @@ import org.terracotta.dynamic_config.api.model.nomad.NodeRemovalNomadChange; import org.terracotta.dynamic_config.api.service.ClusterValidator; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import static java.util.Objects.requireNonNull; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NomadPermissionChangeProcessorImpl.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NomadPermissionChangeProcessorImpl.java similarity index 94% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NomadPermissionChangeProcessorImpl.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NomadPermissionChangeProcessorImpl.java index 6943e127c1..0e935a4a52 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NomadPermissionChangeProcessorImpl.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/NomadPermissionChangeProcessorImpl.java @@ -18,8 +18,8 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; -import org.terracotta.dynamic_config.server.api.NomadPermissionChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadPermissionChangeProcessor; import org.terracotta.nomad.server.NomadException; import java.util.List; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/SettingNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/SettingNomadChangeProcessor.java similarity index 93% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/SettingNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/SettingNomadChangeProcessor.java index 9eccaf2da1..29c1e197bf 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/SettingNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/SettingNomadChangeProcessor.java @@ -23,11 +23,11 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import static java.util.Objects.requireNonNull; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeAdditionNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeAdditionNomadChangeProcessor.java similarity index 94% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeAdditionNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeAdditionNomadChangeProcessor.java index 4a33032bbb..6f2ef36ada 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeAdditionNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeAdditionNomadChangeProcessor.java @@ -24,9 +24,9 @@ import org.terracotta.dynamic_config.api.model.nomad.StripeAdditionNomadChange; import org.terracotta.dynamic_config.api.service.ClusterValidator; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.LicenseService; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.LicenseService; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import static java.util.Objects.requireNonNull; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeRemovalNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeRemovalNomadChangeProcessor.java similarity index 96% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeRemovalNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeRemovalNomadChangeProcessor.java index c0cc21277d..885fbaac60 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeRemovalNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/StripeRemovalNomadChangeProcessor.java @@ -24,8 +24,8 @@ import org.terracotta.dynamic_config.api.model.nomad.StripeRemovalNomadChange; import org.terracotta.dynamic_config.api.service.ClusterValidator; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import static java.util.Objects.requireNonNull; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/UnlockConfigNomadChangeProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/UnlockConfigNomadChangeProcessor.java similarity index 95% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/UnlockConfigNomadChangeProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/UnlockConfigNomadChangeProcessor.java index d1151ebcd9..294ec221be 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/UnlockConfigNomadChangeProcessor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/UnlockConfigNomadChangeProcessor.java @@ -18,7 +18,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.UnlockConfigNomadChange; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; public class UnlockConfigNomadChangeProcessor implements NomadChangeProcessor { diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessor.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessor.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigFileCommandLineProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigFileCommandLineProcessor.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigFileCommandLineProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigFileCommandLineProcessor.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigRepoCommandLineProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigRepoCommandLineProcessor.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigRepoCommandLineProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigRepoCommandLineProcessor.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitor.java similarity index 99% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitor.java index 892db72bf5..9f9fd8fa24 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitor.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitor.java @@ -27,7 +27,7 @@ import org.terracotta.dynamic_config.api.service.FormatUpgrade; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager; import org.terracotta.dynamic_config.server.configuration.service.NomadServerManager; import org.terracotta.inet.HostPort; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleCommandLineProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleCommandLineProcessor.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleCommandLineProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleCommandLineProcessor.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleParamsUtils.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleParamsUtils.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleParamsUtils.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/ConsoleParamsUtils.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CustomJCommander.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CustomJCommander.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CustomJCommander.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/CustomJCommander.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DefaultGroupPortMapperImpl.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DefaultGroupPortMapperImpl.java similarity index 93% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DefaultGroupPortMapperImpl.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DefaultGroupPortMapperImpl.java index 708bf79d97..052279fb64 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DefaultGroupPortMapperImpl.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DefaultGroupPortMapperImpl.java @@ -17,7 +17,7 @@ package org.terracotta.dynamic_config.server.configuration.startup; import org.terracotta.dynamic_config.api.model.Node; -import org.terracotta.dynamic_config.server.api.GroupPortMapper; +import org.terracotta.dynamic_config.api.server.GroupPortMapper; public class DefaultGroupPortMapperImpl implements GroupPortMapper { @Override diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfiguration.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfiguration.java similarity index 97% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfiguration.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfiguration.java index 8273563ed8..94a020bbb3 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfiguration.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfiguration.java @@ -22,8 +22,8 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.RawPath; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.server.api.GroupPortMapper; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.GroupPortMapper; +import org.terracotta.dynamic_config.api.server.PathResolver; import java.io.File; import java.net.InetSocketAddress; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/MainCommandLineProcessor.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/MainCommandLineProcessor.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/MainCommandLineProcessor.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/MainCommandLineProcessor.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/Options.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/Options.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/Options.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/Options.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/StartupConfiguration.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/StartupConfiguration.java similarity index 98% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/StartupConfiguration.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/StartupConfiguration.java index a5c6ba491f..35d894ead1 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/StartupConfiguration.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/StartupConfiguration.java @@ -29,8 +29,8 @@ import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.Props; import org.terracotta.dynamic_config.server.api.DynamicConfigExtension; -import org.terracotta.dynamic_config.server.api.GroupPortMapper; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.GroupPortMapper; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.entity.PlatformConfiguration; import org.terracotta.entity.ServiceProviderConfiguration; import org.terracotta.entity.StateDumpCollector; @@ -55,7 +55,7 @@ public class StartupConfiguration implements Configuration, PrettyPrintable, StateDumpable, PlatformConfiguration, DynamicConfigExtension.Registrar { private static final Logger LOGGER = LoggerFactory.getLogger(StartupConfiguration.class); - + private final Collection, Supplier>> extendedConfigurations = new CopyOnWriteArrayList<>(); private final Collection serviceProviderConfigurations = new CopyOnWriteArrayList<>(); @@ -250,7 +250,7 @@ public void registerExtendedConfigurationSupplier(Class type, Supplier public void registerServiceProviderConfiguration(ServiceProviderConfiguration serviceProviderConfiguration) { serviceProviderConfigurations.add(serviceProviderConfiguration); } - + public void close() { extendedConfigurations.forEach(action->{ Object o = action.getT2().get(); diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsing.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsing.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsing.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsing.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsingImpl.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsingImpl.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsingImpl.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/OptionsParsingImpl.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/deprecated/DeprecatedOptionsParsingImpl.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/deprecated/DeprecatedOptionsParsingImpl.java similarity index 99% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/deprecated/DeprecatedOptionsParsingImpl.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/deprecated/DeprecatedOptionsParsingImpl.java index be29788819..06380dad78 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/deprecated/DeprecatedOptionsParsingImpl.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/startup/parsing/deprecated/DeprecatedOptionsParsingImpl.java @@ -164,7 +164,7 @@ public class DeprecatedOptionsParsingImpl implements OptionsParsing { @Parameter(names = {"-h", "--" + HELP}, description = "provide usage information") private boolean help; - + private final Map paramValueMap = new HashMap<>(); @Override diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Check.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Check.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Check.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Check.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigNomadSynchronizer.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigNomadSynchronizer.java similarity index 99% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigNomadSynchronizer.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigNomadSynchronizer.java index 1f1d382dc9..67b39af07d 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigNomadSynchronizer.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigNomadSynchronizer.java @@ -25,7 +25,7 @@ import org.terracotta.dynamic_config.api.model.nomad.TopologyNomadChange; import org.terracotta.dynamic_config.api.service.NomadChangeInfo; import org.terracotta.dynamic_config.api.service.Props; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.nomad.messages.AcceptRejectResponse; import org.terracotta.nomad.messages.DiscoverResponse; import org.terracotta.nomad.server.ChangeRequestState; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigSyncData.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigSyncData.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigSyncData.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigSyncData.java diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSync.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSync.java similarity index 98% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSync.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSync.java index 7ec503a5b6..7aca98f4f1 100644 --- a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSync.java +++ b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSync.java @@ -21,7 +21,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.service.DynamicConfigService; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.nomad.server.NomadException; import java.util.Objects; diff --git a/dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Require.java b/dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Require.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Require.java rename to dynamic-config/server/config-provider/src/main/java/org/terracotta/dynamic_config/server/configuration/sync/Require.java diff --git a/dynamic-config/server/configuration-provider/src/main/resources/META-INF/services/org.terracotta.configuration.ConfigurationProvider b/dynamic-config/server/config-provider/src/main/resources/META-INF/services/org.terracotta.configuration.ConfigurationProvider similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/resources/META-INF/services/org.terracotta.configuration.ConfigurationProvider rename to dynamic-config/server/config-provider/src/main/resources/META-INF/services/org.terracotta.configuration.ConfigurationProvider diff --git a/dynamic-config/server/configuration-provider/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.GroupPortMapper b/dynamic-config/server/config-provider/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.GroupPortMapper similarity index 100% rename from dynamic-config/server/configuration-provider/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.GroupPortMapper rename to dynamic-config/server/config-provider/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.GroupPortMapper diff --git a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/DesynchronizedNomadConfigTest.java b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/DesynchronizedNomadConfigTest.java similarity index 97% rename from dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/DesynchronizedNomadConfigTest.java rename to dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/DesynchronizedNomadConfigTest.java index 795410d60d..6ef0bf475f 100644 --- a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/DesynchronizedNomadConfigTest.java +++ b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/DesynchronizedNomadConfigTest.java @@ -16,12 +16,55 @@ */ package org.terracotta.dynamic_config.server.configuration.service; +import java.io.Closeable; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.net.URISyntaxException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.time.Clock; +import java.util.AbstractMap.SimpleEntry; +import static java.util.Arrays.asList; +import java.util.Collection; +import static java.util.Collections.singletonList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; +import java.util.stream.Collectors; +import static java.util.stream.Collectors.toList; +import static java.util.stream.Collectors.toMap; +import static java.util.stream.IntStream.range; +import java.util.stream.Stream; + +import javax.management.MBeanServerFactory; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.greaterThan; +import static org.hamcrest.Matchers.greaterThanOrEqualTo; +import static org.hamcrest.Matchers.hasItem; +import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.Matchers.hasSize; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.fail; +import static org.junit.Assume.assumeThat; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameter; import org.junit.runners.Parameterized.Parameters; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import org.terracotta.common.struct.Measure; import org.terracotta.common.struct.MemoryUnit; import org.terracotta.diagnostic.model.LogicalServerState; @@ -32,25 +75,31 @@ import org.terracotta.dynamic_config.api.model.Node; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.Setting; +import static org.terracotta.dynamic_config.api.model.Setting.FAILOVER_PRIORITY; +import static org.terracotta.dynamic_config.api.model.Setting.NODE_HOSTNAME; +import static org.terracotta.dynamic_config.api.model.Setting.NODE_NAME; +import static org.terracotta.dynamic_config.api.model.Setting.NODE_PORT; +import static org.terracotta.dynamic_config.api.model.Setting.OFFHEAP_RESOURCES; import org.terracotta.dynamic_config.api.model.Version; import org.terracotta.dynamic_config.api.model.nomad.Applicability; import org.terracotta.dynamic_config.api.model.nomad.ClusterActivationNomadChange; import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.LicenseParserDiscovery; +import org.terracotta.dynamic_config.api.server.LicenseService; import org.terracotta.dynamic_config.api.service.ClusterFactory; import org.terracotta.dynamic_config.api.service.ConfigurationConsistencyAnalyzer; import org.terracotta.dynamic_config.api.service.ConfigurationConsistencyState; import org.terracotta.dynamic_config.api.service.DynamicConfigService; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; -import org.terracotta.dynamic_config.server.api.LicenseParserDiscovery; -import org.terracotta.dynamic_config.server.api.LicenseService; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager; import org.terracotta.dynamic_config.server.configuration.sync.DynamicConfigSyncData; import org.terracotta.dynamic_config.server.configuration.sync.DynamicConfigurationPassiveSync; +import static org.terracotta.dynamic_config.server.configuration.sync.Require.NOTHING; import org.terracotta.inet.HostPort; import org.terracotta.json.DefaultJsonFactory; import org.terracotta.json.Json; @@ -68,54 +117,6 @@ import org.terracotta.server.ServerJMX; import org.terracotta.testing.Retry; import org.terracotta.testing.TmpDir; - -import javax.management.MBeanServerFactory; -import java.io.Closeable; -import java.io.IOException; -import java.io.UncheckedIOException; -import java.net.URISyntaxException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.time.Clock; -import java.util.AbstractMap.SimpleEntry; -import java.util.Collection; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Function; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import static java.util.Arrays.asList; -import static java.util.Collections.singletonList; -import static java.util.stream.Collectors.toList; -import static java.util.stream.Collectors.toMap; -import static java.util.stream.IntStream.range; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.greaterThan; -import static org.hamcrest.Matchers.greaterThanOrEqualTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasItems; -import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.fail; -import static org.junit.Assume.assumeThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; -import static org.terracotta.dynamic_config.api.model.Setting.FAILOVER_PRIORITY; -import static org.terracotta.dynamic_config.api.model.Setting.NODE_HOSTNAME; -import static org.terracotta.dynamic_config.api.model.Setting.NODE_NAME; -import static org.terracotta.dynamic_config.api.model.Setting.NODE_PORT; -import static org.terracotta.dynamic_config.api.model.Setting.OFFHEAP_RESOURCES; -import static org.terracotta.dynamic_config.server.configuration.sync.Require.NOTHING; import static org.terracotta.utilities.io.Files.ExtendedOption.RECURSIVE; @RunWith(Parameterized.class) @@ -306,7 +307,8 @@ public void test_diagnostic() { } } - @Test(timeout = 10 * 1000) + @Test(timeout = 20 * 1000) + @Ignore("This test is not deterministic and can fail randomly on slow machines because the timeout can be reached before the concurrent modification") public void test_concurrent_prepare_leading_to_reject_and_rollback() throws InterruptedException { assumeThat(Runtime.getRuntime().availableProcessors(), is(greaterThanOrEqualTo(4))); Retry.untilInterrupted(() -> { @@ -319,7 +321,8 @@ public void test_concurrent_prepare_leading_to_reject_and_rollback() throws Inte }); } - @Test(timeout = 10 * 1000) + @Test(timeout = 20 * 1000) + @Ignore("This test is not deterministic and can fail randomly on slow machines because the timeout can be reached before the concurrent modification") public void test_concurrent_prepare_leading_to_accept() throws InterruptedException { assumeThat(Runtime.getRuntime().availableProcessors(), is(greaterThanOrEqualTo(4))); Retry.untilInterrupted(() -> { diff --git a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessorTest.java b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessorTest.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessorTest.java rename to dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/service/nomad/processor/ClusterActivationNomadChangeProcessorTest.java diff --git a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessorChainTest.java b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessorChainTest.java similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessorChainTest.java rename to dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/CommandLineProcessorChainTest.java diff --git a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitorTest.java b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitorTest.java similarity index 98% rename from dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitorTest.java rename to dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitorTest.java index db23e3fa17..57a84b10a0 100644 --- a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitorTest.java +++ b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/ConfigurationGeneratorVisitorTest.java @@ -22,8 +22,8 @@ import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.model.Stripe; import org.terracotta.dynamic_config.api.model.Testing; -import org.terracotta.dynamic_config.server.api.LicenseService; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.LicenseService; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.dynamic_config.server.configuration.service.ConfigChangeHandlerManagerImpl; import org.terracotta.dynamic_config.server.configuration.service.NomadServerManager; import org.terracotta.dynamic_config.server.configuration.service.ParameterSubstitutor; diff --git a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfigurationTest.java b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfigurationTest.java similarity index 99% rename from dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfigurationTest.java rename to dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfigurationTest.java index 1f976f413d..b4859cf2cd 100644 --- a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfigurationTest.java +++ b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/startup/DynamicConfigServerConfigurationTest.java @@ -26,8 +26,8 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.service.ClusterFactory; -import org.terracotta.dynamic_config.server.api.GroupPortMapper; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.GroupPortMapper; +import org.terracotta.dynamic_config.api.server.PathResolver; import java.nio.file.Paths; import java.util.Collection; diff --git a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSyncTest.java b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSyncTest.java similarity index 99% rename from dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSyncTest.java rename to dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSyncTest.java index e8e8a2ed81..26623135ee 100644 --- a/dynamic-config/server/configuration-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSyncTest.java +++ b/dynamic-config/server/config-provider/src/test/java/org/terracotta/dynamic_config/server/configuration/sync/DynamicConfigurationPassiveSyncTest.java @@ -27,7 +27,7 @@ import org.terracotta.dynamic_config.api.service.DynamicConfigService; import org.terracotta.dynamic_config.api.service.NomadChangeInfo; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.json.DefaultJsonFactory; import org.terracotta.json.Json; import org.terracotta.nomad.client.change.NomadChange; diff --git a/dynamic-config/server/configuration-provider/src/test/resources/simplelogger.properties b/dynamic-config/server/config-provider/src/test/resources/simplelogger.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/simplelogger.properties rename to dynamic-config/server/config-provider/src/test/resources/simplelogger.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.1.properties b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.2.properties b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.2.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.2.properties rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node1/config/cluster/node1.2.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.1.properties b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.2.properties b/dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.2.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.2.properties rename to dynamic-config/server/config-provider/src/test/resources/v1-config-migrated/node2/config/cluster/node2.2.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/cluster/node1.1.properties b/dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/cluster/node1.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node1/config/cluster/node1.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node1/config/cluster/node1.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/cluster/node2.1.properties b/dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/cluster/node2.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v1-config/node2/config/cluster/node2.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v1-config/node2/config/cluster/node2.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.1.properties b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.2.properties b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.2.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.2.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node1/config/cluster/node-1-1.2.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/hash0 diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_addition_change/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.1.properties b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.2.properties b/dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.2.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.2.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-concurrent-tx-rolled-back/node2/config/cluster/node-2-1.2.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/append.log diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/changes/hash0 diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.1.properties b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.1.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.1.properties diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.2.properties b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.2.properties similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v2-10.7.0.0.315/cluster/node1.2.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node1/config/cluster/node1.2.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/changes/hash0 diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.1.properties b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.2.properties b/dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.2.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.2.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-config-10.7.0.0.315/node2/config/cluster/node2.2.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/changes/hash0 diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_deletion_change/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/cluster/node-1-1.1.properties b/dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/cluster/node-1-1.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node1/config/cluster/node-1-1.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node1/config/cluster/node-1-1.1.properties diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/changes/append.log b/dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/changes/append.log similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/changes/append.log rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/changes/append.log diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/changes/hash0 b/dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/changes/hash0 similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/changes/hash0 rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/changes/hash0 diff --git a/dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/changes/lock b/dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/changes/lock similarity index 100% rename from dynamic-config/server/configuration-repository/src/test/resources/config-v1_with_setting/changes/lock rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/changes/lock diff --git a/dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/cluster/node-1-2.1.properties b/dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/cluster/node-1-2.1.properties similarity index 100% rename from dynamic-config/server/configuration-provider/src/test/resources/v2-config/node2/config/cluster/node-1-2.1.properties rename to dynamic-config/server/config-provider/src/test/resources/v2-config/node2/config/cluster/node-1-2.1.properties diff --git a/dynamic-config/server/configuration-provider/pom.xml b/dynamic-config/server/configuration-provider/pom.xml deleted file mode 100755 index e20c50c7a1..0000000000 --- a/dynamic-config/server/configuration-provider/pom.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.server - dynamic-config-server - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-configuration-provider - Dynamic Config :: Server :: Configuration Provider - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.dynamic-config.server - dynamic-config-configuration-repository - ${project.version} - - - com.beust - jcommander - - - org.terracotta - terracotta-utilities-tools - - - - - org.terracotta.dynamic-config - dynamic-config-api-json - ${project.version} - provided - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - org.terracotta.diagnostic - diagnostic-service-api - ${project.version} - provided - - - org.terracotta - packaging-support - provided - - - org.slf4j - slf4j-api - provided - - - - - org.terracotta - standard-cluster-services - provided - - - org.terracotta.internal - common-spi - provided - - - org.terracotta.internal - configuration-provider - provided - - - org.slf4j - slf4j-simple - test - - - diff --git a/dynamic-config/server/configuration-repository/pom.xml b/dynamic-config/server/configuration-repository/pom.xml deleted file mode 100755 index 4ca67f0323..0000000000 --- a/dynamic-config/server/configuration-repository/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.server - dynamic-config-server - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-configuration-repository - Dynamic Config :: Server :: Configuration Repository - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - - - org.terracotta.dynamic-config - dynamic-config-api-json - ${project.version} - - - org.terracotta.common - common-sanskrit - ${project.version} - - - org.terracotta.common - common-nomad - ${project.version} - - - org.terracotta - terracotta-utilities-tools - - - - org.slf4j - slf4j-simple - test - - - diff --git a/dynamic-config/server/pom.xml b/dynamic-config/server/pom.xml deleted file mode 100755 index 30107c37e6..0000000000 --- a/dynamic-config/server/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config - dynamic-config - 5.10-SNAPSHOT - ../pom.xml - - - org.terracotta.dynamic-config.server - dynamic-config-server - pom - Dynamic Config :: Server :: POM - - - server-api - services - configuration-repository - configuration-provider - - - diff --git a/dynamic-config/server/server-api/pom.xml b/dynamic-config/server/server-api/pom.xml deleted file mode 100755 index c5bc3dad78..0000000000 --- a/dynamic-config/server/server-api/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.server - dynamic-config-server - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-server-api - Dynamic Config :: Server :: API - - - - org.terracotta.dynamic-config - dynamic-config-api - ${project.version} - - - org.terracotta - terracotta-utilities-tools - - - - - org.terracotta - entity-server-api - provided - - - diff --git a/dynamic-config/server/services/build.gradle b/dynamic-config/server/services/build.gradle new file mode 100644 index 0000000000..07af19390a --- /dev/null +++ b/dynamic-config/server/services/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':dynamic-config:api') + voltron "org.terracotta.internal:management:$terracottaCoreVersion" + voltron "org.terracotta.internal:server-spi:$terracottaCoreVersion" + voltron "ch.qos.logback:logback-classic:$logbackVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.server' + artifactId = 'dynamic-config-services' + name = 'Dynamic Config Server Plugin' +} diff --git a/dynamic-config/server/services/pom.xml b/dynamic-config/server/services/pom.xml deleted file mode 100755 index 9993fa8c1a..0000000000 --- a/dynamic-config/server/services/pom.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.server - dynamic-config-server - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-services - Dynamic Config :: Server :: Services - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - org.terracotta.diagnostic - diagnostic-model - ${project.version} - provided - - - - - ch.qos.logback - logback-classic - provided - - - org.slf4j - slf4j-api - provided - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta.internal - management - provided - - - org.terracotta.internal - server-spi - provided - - - org.terracotta - standard-cluster-services - provided - - - diff --git a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DisallowSettingChanges.java b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DisallowSettingChanges.java index 7188f807f3..ccfbd57dca 100644 --- a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DisallowSettingChanges.java +++ b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DisallowSettingChanges.java @@ -20,7 +20,7 @@ import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; -import org.terracotta.dynamic_config.server.api.NomadPermissionChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadPermissionChangeProcessor; import org.terracotta.nomad.server.NomadException; import static org.terracotta.dynamic_config.api.model.ClusterState.ACTIVATED; diff --git a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DynamicConfigServiceProvider.java b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DynamicConfigServiceProvider.java index 3b91338e50..5470082afc 100644 --- a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DynamicConfigServiceProvider.java +++ b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/DynamicConfigServiceProvider.java @@ -25,16 +25,16 @@ import org.terracotta.dynamic_config.api.service.DynamicConfigService; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventService; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; -import org.terracotta.dynamic_config.server.api.LicenseService; -import org.terracotta.dynamic_config.server.api.NomadPermissionChangeProcessor; -import org.terracotta.dynamic_config.server.api.NomadRoutingChangeProcessor; -import org.terracotta.dynamic_config.server.api.PathResolver; -import org.terracotta.dynamic_config.server.api.SelectingConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventService; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.LicenseService; +import org.terracotta.dynamic_config.api.server.NomadPermissionChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadRoutingChangeProcessor; +import org.terracotta.dynamic_config.api.server.PathResolver; +import org.terracotta.dynamic_config.api.server.SelectingConfigChangeHandler; import org.terracotta.dynamic_config.server.service.handler.ClientReconnectWindowConfigChangeHandler; import org.terracotta.dynamic_config.server.service.handler.LoggerOverrideConfigChangeHandler; import org.terracotta.dynamic_config.server.service.handler.NodeLogDirChangeHandler; @@ -57,7 +57,7 @@ import static org.terracotta.dynamic_config.api.model.Setting.NODE_PUBLIC_HOSTNAME; import static org.terracotta.dynamic_config.api.model.Setting.NODE_PUBLIC_PORT; import static org.terracotta.dynamic_config.api.model.Setting.TC_PROPERTIES; -import static org.terracotta.dynamic_config.server.api.ConfigChangeHandler.accept; +import static org.terracotta.dynamic_config.api.server.ConfigChangeHandler.accept; @BuiltinService public class DynamicConfigServiceProvider implements ServiceProvider { diff --git a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/ServerStateCheck.java b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/ServerStateCheck.java index 3ee3617a9c..e33d527cd4 100644 --- a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/ServerStateCheck.java +++ b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/ServerStateCheck.java @@ -19,7 +19,7 @@ import org.terracotta.diagnostic.model.LogicalServerState; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.nomad.DynamicConfigNomadChange; -import org.terracotta.dynamic_config.server.api.NomadPermissionChangeProcessor; +import org.terracotta.dynamic_config.api.server.NomadPermissionChangeProcessor; import org.terracotta.nomad.server.NomadException; import org.terracotta.server.ServerJMX; diff --git a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/ClientReconnectWindowConfigChangeHandler.java b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/ClientReconnectWindowConfigChangeHandler.java index 34106b42d9..e361222037 100644 --- a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/ClientReconnectWindowConfigChangeHandler.java +++ b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/ClientReconnectWindowConfigChangeHandler.java @@ -20,8 +20,8 @@ import org.terracotta.common.struct.TimeUnit; import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.NodeContext; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; public class ClientReconnectWindowConfigChangeHandler implements ConfigChangeHandler { diff --git a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/LoggerOverrideConfigChangeHandler.java b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/LoggerOverrideConfigChangeHandler.java index 76148864fc..7525c96697 100644 --- a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/LoggerOverrideConfigChangeHandler.java +++ b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/LoggerOverrideConfigChangeHandler.java @@ -23,8 +23,8 @@ import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; import java.util.Collections; diff --git a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/NodeLogDirChangeHandler.java b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/NodeLogDirChangeHandler.java index 58cad4a881..afec37cb58 100644 --- a/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/NodeLogDirChangeHandler.java +++ b/dynamic-config/server/services/src/main/java/org/terracotta/dynamic_config/server/service/handler/NodeLogDirChangeHandler.java @@ -21,9 +21,9 @@ import org.terracotta.dynamic_config.api.model.RawPath; import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.PathResolver; import java.nio.file.Files; import java.nio.file.Path; diff --git a/dynamic-config/testing/entity/build.gradle b/dynamic-config/testing/entity/build.gradle new file mode 100644 index 0000000000..30d5af01b7 --- /dev/null +++ b/dynamic-config/testing/entity/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':dynamic-config:api') + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.testing' + artifactId = 'dynamic-config-testing-entity' + name = 'Dynamic Config Test Entity' +} diff --git a/dynamic-config/testing/entity/pom.xml b/dynamic-config/testing/entity/pom.xml deleted file mode 100755 index eee2252a6e..0000000000 --- a/dynamic-config/testing/entity/pom.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.testing - dynamic-config-testing - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-testing-entity - Dynamic Config :: Testing :: Entity - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - org.terracotta.diagnostic - diagnostic-service-api - ${project.version} - provided - - - org.terracotta.internal - management - provided - - - org.terracotta - terracotta-utilities-tools - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - packaging-support - provided - - - org.terracotta - standard-cluster-services - provided - - - org.slf4j - slf4j-api - provided - - - diff --git a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/entity/TestEntityServerService.java b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/entity/TestEntityServerService.java index 12355446c4..686169d5c6 100644 --- a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/entity/TestEntityServerService.java +++ b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/entity/TestEntityServerService.java @@ -23,12 +23,12 @@ import org.terracotta.dynamic_config.api.model.nomad.NodeRemovalNomadChange; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.NomadRoutingChangeProcessor; -import org.terracotta.dynamic_config.server.api.PathResolver; -import org.terracotta.dynamic_config.server.api.SelectingConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.NomadRoutingChangeProcessor; +import org.terracotta.dynamic_config.api.server.PathResolver; +import org.terracotta.dynamic_config.api.server.SelectingConfigChangeHandler; import org.terracotta.dynamic_config.test_support.handler.GroupPortSimulateHandler; import org.terracotta.dynamic_config.test_support.handler.SimulationHandler; import org.terracotta.dynamic_config.test_support.processor.MyDummyNomadAdditionChangeProcessor; diff --git a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/GroupPortSimulateHandler.java b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/GroupPortSimulateHandler.java index 0df7f91699..c7ddd37d5c 100644 --- a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/GroupPortSimulateHandler.java +++ b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/GroupPortSimulateHandler.java @@ -20,8 +20,8 @@ import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.Node; import org.terracotta.dynamic_config.api.model.NodeContext; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; public class GroupPortSimulateHandler implements ConfigChangeHandler { @Override diff --git a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/SimulationHandler.java b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/SimulationHandler.java index adb207c09a..0273bb8f87 100644 --- a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/SimulationHandler.java +++ b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/handler/SimulationHandler.java @@ -20,8 +20,8 @@ import org.slf4j.LoggerFactory; import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.NodeContext; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; /** * Handler for

org.terracotta.dynamic-config.simulate
diff --git a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/mapper/TestGroupPortMapper.java b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/mapper/TestGroupPortMapper.java index 122c72ed22..ab59318228 100644 --- a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/mapper/TestGroupPortMapper.java +++ b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/mapper/TestGroupPortMapper.java @@ -18,7 +18,7 @@ import com.tc.classloader.OverrideService; import org.terracotta.dynamic_config.api.model.Node; -import org.terracotta.dynamic_config.server.api.GroupPortMapper; +import org.terracotta.dynamic_config.api.server.GroupPortMapper; @OverrideService("org.terracotta.dynamic_config.server.configuration.startup.DefaultGroupPortMapperImpl") public class TestGroupPortMapper implements GroupPortMapper { diff --git a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadAdditionChangeProcessor.java b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadAdditionChangeProcessor.java index c2f785bca4..602afee663 100644 --- a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadAdditionChangeProcessor.java +++ b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadAdditionChangeProcessor.java @@ -25,8 +25,8 @@ import org.terracotta.dynamic_config.api.model.nomad.NodeAdditionNomadChange; import org.terracotta.dynamic_config.api.service.ClusterValidator; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; import org.terracotta.nomad.server.NomadException; import javax.management.MBeanServer; diff --git a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadRemovalChangeProcessor.java b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadRemovalChangeProcessor.java index 3dc158aa41..74e8e76108 100644 --- a/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadRemovalChangeProcessor.java +++ b/dynamic-config/testing/entity/src/main/java/org/terracotta/dynamic_config/test_support/processor/MyDummyNomadRemovalChangeProcessor.java @@ -26,9 +26,9 @@ import org.terracotta.dynamic_config.api.service.ClusterValidator; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.DynamicConfigEventFiring; -import org.terracotta.dynamic_config.server.api.NomadChangeProcessor; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.DynamicConfigEventFiring; +import org.terracotta.dynamic_config.api.server.NomadChangeProcessor; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.nomad.server.NomadException; import javax.management.MBeanServer; diff --git a/dynamic-config/testing/galvan/build.gradle b/dynamic-config/testing/galvan/build.gradle new file mode 100644 index 0000000000..739bb91452 --- /dev/null +++ b/dynamic-config/testing/galvan/build.gradle @@ -0,0 +1,21 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation project(':common:test-utilities') + implementation project(':dynamic-config:cli:upgrade-tool') + implementation project(':dynamic-config:cli:upgrade-tool-oss') + implementation "org.terracotta:test-interfaces:$terracottaGalvanVersion" + implementation "org.terracotta:galvan:$terracottaGalvanVersion" + implementation "org.terracotta.internal:galvan-support:$terracottaCoreVersion" + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'galvan-platform-support' + name = 'Dynamic Config Galvan Support' +} diff --git a/galvan-platform-support/src/main/java/org/terracotta/testing/api/BasicTestClusterConfiguration.java b/dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/api/BasicTestClusterConfiguration.java similarity index 99% rename from galvan-platform-support/src/main/java/org/terracotta/testing/api/BasicTestClusterConfiguration.java rename to dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/api/BasicTestClusterConfiguration.java index 1edea6b17d..79e56d4991 100644 --- a/galvan-platform-support/src/main/java/org/terracotta/testing/api/BasicTestClusterConfiguration.java +++ b/dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/api/BasicTestClusterConfiguration.java @@ -23,7 +23,7 @@ public class BasicTestClusterConfiguration implements ITestClusterConfiguration { private final String name; public final int serversInStripe; - + public BasicTestClusterConfiguration(String name, int serversInStripe) { this.name = name; this.serversInStripe = serversInStripe; diff --git a/galvan-platform-support/src/main/java/org/terracotta/testing/config/AbstractStartupCommandBuilder.java b/dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/AbstractStartupCommandBuilder.java similarity index 100% rename from galvan-platform-support/src/main/java/org/terracotta/testing/config/AbstractStartupCommandBuilder.java rename to dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/AbstractStartupCommandBuilder.java diff --git a/galvan-platform-support/src/main/java/org/terracotta/testing/config/ConfigFileStartupBuilder.java b/dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/ConfigFileStartupBuilder.java similarity index 100% rename from galvan-platform-support/src/main/java/org/terracotta/testing/config/ConfigFileStartupBuilder.java rename to dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/ConfigFileStartupBuilder.java diff --git a/galvan-platform-support/src/main/java/org/terracotta/testing/config/ConfigRepoStartupBuilder.java b/dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/ConfigRepoStartupBuilder.java similarity index 100% rename from galvan-platform-support/src/main/java/org/terracotta/testing/config/ConfigRepoStartupBuilder.java rename to dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/ConfigRepoStartupBuilder.java diff --git a/galvan-platform-support/src/main/java/org/terracotta/testing/config/DefaultPortAllocator.java b/dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/DefaultPortAllocator.java similarity index 100% rename from galvan-platform-support/src/main/java/org/terracotta/testing/config/DefaultPortAllocator.java rename to dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/DefaultPortAllocator.java diff --git a/galvan-platform-support/src/main/java/org/terracotta/testing/config/PortAllocator.java b/dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/PortAllocator.java similarity index 100% rename from galvan-platform-support/src/main/java/org/terracotta/testing/config/PortAllocator.java rename to dynamic-config/testing/galvan/src/main/java/org/terracotta/testing/config/PortAllocator.java diff --git a/galvan-platform-support/src/main/resources/tc-logback.xml b/dynamic-config/testing/galvan/src/main/resources/tc-logback.xml similarity index 100% rename from galvan-platform-support/src/main/resources/tc-logback.xml rename to dynamic-config/testing/galvan/src/main/resources/tc-logback.xml diff --git a/dynamic-config/testing/pom.xml b/dynamic-config/testing/pom.xml deleted file mode 100755 index 346d0bcacd..0000000000 --- a/dynamic-config/testing/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config - dynamic-config - 5.10-SNAPSHOT - ../pom.xml - - - org.terracotta.dynamic-config.testing - dynamic-config-testing - pom - Dynamic Config :: Testing :: POM - - - support - entity - system-tests - - - diff --git a/dynamic-config/testing/support/build.gradle b/dynamic-config/testing/support/build.gradle new file mode 100644 index 0000000000..692cd6833a --- /dev/null +++ b/dynamic-config/testing/support/build.gradle @@ -0,0 +1,23 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:output-service') + api project(':common:test-utilities') + api project(':diagnostic:client') + api project(':dynamic-config:json') + api project(':dynamic-config:cli:config-tool') + api project(':dynamic-config:cli:upgrade-tool') + api "org.hamcrest:hamcrest-core:$hamcrestVersion" + api "org.hamcrest:hamcrest-library:$hamcrestVersion" + api "org.terracotta:angela:$terracottaAngelaVersion" +} + +deploy { + groupId = 'org.terracotta.dynamic-config.testing' + artifactId = 'dynamic-config-testing-support' + name = 'Dynamic Config Testing Support' +} diff --git a/dynamic-config/testing/support/pom.xml b/dynamic-config/testing/support/pom.xml deleted file mode 100755 index 2b6af49a54..0000000000 --- a/dynamic-config/testing/support/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.dynamic-config.testing - dynamic-config-testing - 5.10-SNAPSHOT - ../pom.xml - - - dynamic-config-testing-support - Dynamic Config :: Testing :: Support - - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-config-tool - ${project.version} - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-upgrade-tools - ${project.version} - - - org.terracotta.diagnostic - diagnostic-client - ${project.version} - - - org.terracotta.common - common-test-utilities - ${project.version} - compile - - - - org.hamcrest - hamcrest-all - - - junit - junit - provided - - - - - org.terracotta - angela - provided - - - org.terracotta - entity-client-api - provided - - - diff --git a/galvan-platform-support/pom.xml b/galvan-platform-support/pom.xml deleted file mode 100644 index 52b5577297..0000000000 --- a/galvan-platform-support/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - .. - - - galvan-platform-support - jar - - - - junit - junit - provided - - - org.terracotta - test-interfaces - - - org.terracotta - galvan - - - - net.java.dev.jna - jna - - - net.java.dev.jna - jna-platform - - - org.terracotta.common - common-test-utilities - ${project.version} - - - org.terracotta.internal - client-runtime - provided - - - org.terracotta.internal - galvan-support - - - ch.qos.logback - logback-classic - test - - - org.terracotta - terracotta-utilities-tools - - - org.terracotta - terracotta-utilities-port-chooser - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-upgrade-tools - ${project.version} - - - org.terracotta.dynamic-config.cli - upgrade-tools-oss - ${project.version} - - - diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000000..1c63aca3c4 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,38 @@ +# Project version (default unless overridden, see build.gradle) +defaultVersion = 5.10-SNAPSHOT + +# Terracotta libs +terracottaAngelaVersion = 3.3.40 +terracottaApisVersion = 1.9.1 +terracottaConfigVersion=10.7.5 +terracottaCoreVersion = 5.10.15 +terracottaGalvanVersion = 1.6.7 +terracottaPassthroughVersion = 1.9.1 +terracottaStatisticVersion = 2.1.3 +terracottaTripwireVersion = 1.0.6 +terracottaUtilitiesTestToolsVersion = 0.0.19 +terracottaUtilitiesToolsVersion=0.0.19 + +# Third party libs +gsonVersion = 2.10.1 +hamcrestVersion = 2.2 +jcommanderVersion = 1.78 +junitVersion = 4.13.1 +logbackVersion = 1.2.13 +mockitoVersion = 2.23.4 +slf4jVersion = 1.7.36 + +# Deployment +deployUrl = https://oss.sonatype.org/service/local/staging/deploy/maven2/ +sonatypeUser = OVERRIDE_ME +sonatypePwd = OVERRIDE_ME +tcDeployUser = OVERRIDE_ME +tcDeployPassword = OVERRIDE_ME + +# Enable the daemon by adding org.gradle.daemon in USER_HOME/.gradle/gradle.properties +org.gradle.parallel=true +org.gradle.daemon=false + +# JVM to use for compilation (via toolchains). Override via -PcompileVM / -PtestVM +# test version defaults to compile version +compileVM=8 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7454180f2ae8848c63b8b4dea2cb829da983f2fa GIT binary patch literal 59536 zcma&NbC71ylI~qywr$(CZQJHswz}-9F59+k+g;UV+cs{`J?GrGXYR~=-ydruB3JCa zB64N^cILAcWk5iofq)<(fq;O7{th4@;QxID0)qN`mJ?GIqLY#rX8-|G{5M0pdVW5^ zzXk$-2kQTAC?_N@B`&6-N-rmVFE=$QD?>*=4<|!MJu@}isLc4AW#{m2if&A5T5g&~ ziuMQeS*U5sL6J698wOd)K@oK@1{peP5&Esut<#VH^u)gp`9H4)`uE!2$>RTctN+^u z=ASkePDZA-X8)rp%D;p*~P?*a_=*Kwc<^>QSH|^<0>o37lt^+Mj1;4YvJ(JR-Y+?%Nu}JAYj5 z_Qc5%Ao#F?q32i?ZaN2OSNhWL;2oDEw_({7ZbgUjna!Fqn3NzLM@-EWFPZVmc>(fZ z0&bF-Ch#p9C{YJT9Rcr3+Y_uR^At1^BxZ#eo>$PLJF3=;t_$2|t+_6gg5(j{TmjYU zK12c&lE?Eh+2u2&6Gf*IdKS&6?rYbSEKBN!rv{YCm|Rt=UlPcW9j`0o6{66#y5t9C zruFA2iKd=H%jHf%ypOkxLnO8#H}#Zt{8p!oi6)7#NqoF({t6|J^?1e*oxqng9Q2Cc zg%5Vu!em)}Yuj?kaP!D?b?(C*w!1;>R=j90+RTkyEXz+9CufZ$C^umX^+4|JYaO<5 zmIM3#dv`DGM;@F6;(t!WngZSYzHx?9&$xEF70D1BvfVj<%+b#)vz)2iLCrTeYzUcL z(OBnNoG6Le%M+@2oo)&jdOg=iCszzv59e zDRCeaX8l1hC=8LbBt|k5?CXgep=3r9BXx1uR8!p%Z|0+4Xro=xi0G!e{c4U~1j6!) zH6adq0}#l{%*1U(Cb%4AJ}VLWKBPi0MoKFaQH6x?^hQ!6em@993xdtS%_dmevzeNl z(o?YlOI=jl(`L9^ z0O+H9k$_@`6L13eTT8ci-V0ljDMD|0ifUw|Q-Hep$xYj0hTO@0%IS^TD4b4n6EKDG z??uM;MEx`s98KYN(K0>c!C3HZdZ{+_53DO%9k5W%pr6yJusQAv_;IA}925Y%;+!tY z%2k!YQmLLOr{rF~!s<3-WEUs)`ix_mSU|cNRBIWxOox_Yb7Z=~Q45ZNe*u|m^|)d* zog=i>`=bTe!|;8F+#H>EjIMcgWcG2ORD`w0WD;YZAy5#s{65~qfI6o$+Ty&-hyMyJ z3Ra~t>R!p=5ZpxA;QkDAoPi4sYOP6>LT+}{xp}tk+<0k^CKCFdNYG(Es>p0gqD)jP zWOeX5G;9(m@?GOG7g;e74i_|SmE?`B2i;sLYwRWKLy0RLW!Hx`=!LH3&k=FuCsM=9M4|GqzA)anEHfxkB z?2iK-u(DC_T1};KaUT@3nP~LEcENT^UgPvp!QC@Dw&PVAhaEYrPey{nkcn(ro|r7XUz z%#(=$7D8uP_uU-oPHhd>>^adbCSQetgSG`e$U|7mr!`|bU0aHl_cmL)na-5x1#OsVE#m*+k84Y^+UMeSAa zbrVZHU=mFwXEaGHtXQq`2ZtjfS!B2H{5A<3(nb-6ARVV8kEmOkx6D2x7~-6hl;*-*}2Xz;J#a8Wn;_B5=m zl3dY;%krf?i-Ok^Pal-}4F`{F@TYPTwTEhxpZK5WCpfD^UmM_iYPe}wpE!Djai6_{ z*pGO=WB47#Xjb7!n2Ma)s^yeR*1rTxp`Mt4sfA+`HwZf%!7ZqGosPkw69`Ix5Ku6G z@Pa;pjzV&dn{M=QDx89t?p?d9gna*}jBly*#1!6}5K<*xDPJ{wv4& zM$17DFd~L*Te3A%yD;Dp9UGWTjRxAvMu!j^Tbc}2v~q^59d4bz zvu#!IJCy(BcWTc`;v$9tH;J%oiSJ_i7s;2`JXZF+qd4C)vY!hyCtl)sJIC{ebI*0> z@x>;EzyBv>AI-~{D6l6{ST=em*U( z(r$nuXY-#CCi^8Z2#v#UXOt`dbYN1z5jzNF2 z411?w)whZrfA20;nl&C1Gi+gk<`JSm+{|*2o<< zqM#@z_D`Cn|0H^9$|Tah)0M_X4c37|KQ*PmoT@%xHc3L1ZY6(p(sNXHa&49Frzto& zR`c~ClHpE~4Z=uKa5S(-?M8EJ$zt0&fJk~p$M#fGN1-y$7!37hld`Uw>Urri(DxLa;=#rK0g4J)pXMC zxzraOVw1+kNWpi#P=6(qxf`zSdUC?D$i`8ZI@F>k6k zz21?d+dw7b&i*>Kv5L(LH-?J%@WnqT7j#qZ9B>|Zl+=> z^U-pV@1y_ptHo4hl^cPRWewbLQ#g6XYQ@EkiP z;(=SU!yhjHp%1&MsU`FV1Z_#K1&(|5n(7IHbx&gG28HNT)*~-BQi372@|->2Aw5It z0CBpUcMA*QvsPy)#lr!lIdCi@1k4V2m!NH)%Px(vu-r(Q)HYc!p zJ^$|)j^E#q#QOgcb^pd74^JUi7fUmMiNP_o*lvx*q%_odv49Dsv$NV;6J z9GOXKomA{2Pb{w}&+yHtH?IkJJu~}Z?{Uk++2mB8zyvh*xhHKE``99>y#TdD z&(MH^^JHf;g(Tbb^&8P*;_i*2&fS$7${3WJtV7K&&(MBV2~)2KB3%cWg#1!VE~k#C z!;A;?p$s{ihyojEZz+$I1)L}&G~ml=udD9qh>Tu(ylv)?YcJT3ihapi!zgPtWb*CP zlLLJSRCj-^w?@;RU9aL2zDZY1`I3d<&OMuW=c3$o0#STpv_p3b9Wtbql>w^bBi~u4 z3D8KyF?YE?=HcKk!xcp@Cigvzy=lnFgc^9c%(^F22BWYNAYRSho@~*~S)4%AhEttv zvq>7X!!EWKG?mOd9&n>vvH1p4VzE?HCuxT-u+F&mnsfDI^}*-d00-KAauEaXqg3k@ zy#)MGX!X;&3&0s}F3q40ZmVM$(H3CLfpdL?hB6nVqMxX)q=1b}o_PG%r~hZ4gUfSp zOH4qlEOW4OMUc)_m)fMR_rl^pCfXc{$fQbI*E&mV77}kRF z&{<06AJyJ!e863o-V>FA1a9Eemx6>^F$~9ppt()ZbPGfg_NdRXBWoZnDy2;#ODgf! zgl?iOcF7Meo|{AF>KDwTgYrJLb$L2%%BEtO>T$C?|9bAB&}s;gI?lY#^tttY&hfr# zKhC+&b-rpg_?~uVK%S@mQleU#_xCsvIPK*<`E0fHE1&!J7!xD#IB|SSPW6-PyuqGn3^M^Rz%WT{e?OI^svARX&SAdU77V(C~ zM$H{Kg59op{<|8ry9ecfP%=kFm(-!W&?U0@<%z*+!*<e0XesMxRFu9QnGqun6R_%T+B%&9Dtk?*d$Q zb~>84jEAPi@&F@3wAa^Lzc(AJz5gsfZ7J53;@D<;Klpl?sK&u@gie`~vTsbOE~Cd4 z%kr56mI|#b(Jk&;p6plVwmNB0H@0SmgdmjIn5Ne@)}7Vty(yb2t3ev@22AE^s!KaN zyQ>j+F3w=wnx7w@FVCRe+`vUH)3gW%_72fxzqX!S&!dchdkRiHbXW1FMrIIBwjsai8`CB2r4mAbwp%rrO>3B$Zw;9=%fXI9B{d(UzVap7u z6piC-FQ)>}VOEuPpuqznpY`hN4dGa_1Xz9rVg(;H$5Te^F0dDv*gz9JS<|>>U0J^# z6)(4ICh+N_Q`Ft0hF|3fSHs*?a=XC;e`sJaU9&d>X4l?1W=|fr!5ShD|nv$GK;j46@BV6+{oRbWfqOBRb!ir88XD*SbC(LF}I1h#6@dvK%Toe%@ zhDyG$93H8Eu&gCYddP58iF3oQH*zLbNI;rN@E{T9%A8!=v#JLxKyUe}e}BJpB{~uN zqgxRgo0*-@-iaHPV8bTOH(rS(huwK1Xg0u+e!`(Irzu@Bld&s5&bWgVc@m7;JgELd zimVs`>vQ}B_1(2#rv#N9O`fJpVfPc7V2nv34PC);Dzbb;p!6pqHzvy?2pD&1NE)?A zt(t-ucqy@wn9`^MN5apa7K|L=9>ISC>xoc#>{@e}m#YAAa1*8-RUMKwbm|;5p>T`Z zNf*ph@tnF{gmDa3uwwN(g=`Rh)4!&)^oOy@VJaK4lMT&5#YbXkl`q?<*XtsqD z9PRK6bqb)fJw0g-^a@nu`^?71k|m3RPRjt;pIkCo1{*pdqbVs-Yl>4E>3fZx3Sv44grW=*qdSoiZ9?X0wWyO4`yDHh2E!9I!ZFi zVL8|VtW38}BOJHW(Ax#KL_KQzarbuE{(%TA)AY)@tY4%A%P%SqIU~8~-Lp3qY;U-} z`h_Gel7;K1h}7$_5ZZT0&%$Lxxr-<89V&&TCsu}LL#!xpQ1O31jaa{U34~^le*Y%L za?7$>Jk^k^pS^_M&cDs}NgXlR>16AHkSK-4TRaJSh#h&p!-!vQY%f+bmn6x`4fwTp z$727L^y`~!exvmE^W&#@uY!NxJi`g!i#(++!)?iJ(1)2Wk;RN zFK&O4eTkP$Xn~4bB|q8y(btx$R#D`O@epi4ofcETrx!IM(kWNEe42Qh(8*KqfP(c0 zouBl6>Fc_zM+V;F3znbo{x#%!?mH3`_ANJ?y7ppxS@glg#S9^MXu|FM&ynpz3o&Qh z2ujAHLF3($pH}0jXQsa#?t--TnF1P73b?4`KeJ9^qK-USHE)4!IYgMn-7z|=ALF5SNGkrtPG@Y~niUQV2?g$vzJN3nZ{7;HZHzWAeQ;5P|@Tl3YHpyznGG4-f4=XflwSJY+58-+wf?~Fg@1p1wkzuu-RF3j2JX37SQUc? zQ4v%`V8z9ZVZVqS8h|@@RpD?n0W<=hk=3Cf8R?d^9YK&e9ZybFY%jdnA)PeHvtBe- zhMLD+SSteHBq*q)d6x{)s1UrsO!byyLS$58WK;sqip$Mk{l)Y(_6hEIBsIjCr5t>( z7CdKUrJTrW%qZ#1z^n*Lb8#VdfzPw~OIL76aC+Rhr<~;4Tl!sw?Rj6hXj4XWa#6Tp z@)kJ~qOV)^Rh*-?aG>ic2*NlC2M7&LUzc9RT6WM%Cpe78`iAowe!>(T0jo&ivn8-7 zs{Qa@cGy$rE-3AY0V(l8wjI^uB8Lchj@?L}fYal^>T9z;8juH@?rG&g-t+R2dVDBe zq!K%{e-rT5jX19`(bP23LUN4+_zh2KD~EAYzhpEO3MUG8@}uBHH@4J zd`>_(K4q&>*k82(dDuC)X6JuPrBBubOg7qZ{?x!r@{%0);*`h*^F|%o?&1wX?Wr4b z1~&cy#PUuES{C#xJ84!z<1tp9sfrR(i%Tu^jnXy;4`Xk;AQCdFC@?V%|; zySdC7qS|uQRcH}EFZH%mMB~7gi}a0utE}ZE_}8PQH8f;H%PN41Cb9R%w5Oi5el^fd z$n{3SqLCnrF##x?4sa^r!O$7NX!}&}V;0ZGQ&K&i%6$3C_dR%I7%gdQ;KT6YZiQrW zk%q<74oVBV>@}CvJ4Wj!d^?#Zwq(b$E1ze4$99DuNg?6t9H}k_|D7KWD7i0-g*EO7 z;5{hSIYE4DMOK3H%|f5Edx+S0VI0Yw!tsaRS2&Il2)ea^8R5TG72BrJue|f_{2UHa z@w;^c|K3da#$TB0P3;MPlF7RuQeXT$ zS<<|C0OF(k)>fr&wOB=gP8!Qm>F41u;3esv7_0l%QHt(~+n; zf!G6%hp;Gfa9L9=AceiZs~tK+Tf*Wof=4!u{nIO90jH@iS0l+#%8=~%ASzFv7zqSB^?!@N7)kp0t&tCGLmzXSRMRyxCmCYUD2!B`? zhs$4%KO~m=VFk3Buv9osha{v+mAEq=ik3RdK@;WWTV_g&-$U4IM{1IhGX{pAu%Z&H zFfwCpUsX%RKg);B@7OUzZ{Hn{q6Vv!3#8fAg!P$IEx<0vAx;GU%}0{VIsmFBPq_mb zpe^BChDK>sc-WLKl<6 zwbW|e&d&dv9Wu0goueyu>(JyPx1mz0v4E?cJjFuKF71Q1)AL8jHO$!fYT3(;U3Re* zPPOe%*O+@JYt1bW`!W_1!mN&=w3G9ru1XsmwfS~BJ))PhD(+_J_^N6j)sx5VwbWK| zwRyC?W<`pOCY)b#AS?rluxuuGf-AJ=D!M36l{ua?@SJ5>e!IBr3CXIxWw5xUZ@Xrw z_R@%?{>d%Ld4p}nEsiA@v*nc6Ah!MUs?GA7e5Q5lPpp0@`%5xY$C;{%rz24$;vR#* zBP=a{)K#CwIY%p} zXVdxTQ^HS@O&~eIftU+Qt^~(DGxrdi3k}DdT^I7Iy5SMOp$QuD8s;+93YQ!OY{eB24%xY7ml@|M7I(Nb@K_-?F;2?et|CKkuZK_>+>Lvg!>JE~wN`BI|_h6$qi!P)+K-1Hh(1;a`os z55)4Q{oJiA(lQM#;w#Ta%T0jDNXIPM_bgESMCDEg6rM33anEr}=|Fn6)|jBP6Y}u{ zv9@%7*#RI9;fv;Yii5CI+KrRdr0DKh=L>)eO4q$1zmcSmglsV`*N(x=&Wx`*v!!hn6X-l0 zP_m;X??O(skcj+oS$cIdKhfT%ABAzz3w^la-Ucw?yBPEC+=Pe_vU8nd-HV5YX6X8r zZih&j^eLU=%*;VzhUyoLF;#8QsEfmByk+Y~caBqSvQaaWf2a{JKB9B>V&r?l^rXaC z8)6AdR@Qy_BxQrE2Fk?ewD!SwLuMj@&d_n5RZFf7=>O>hzVE*seW3U?_p|R^CfoY`?|#x9)-*yjv#lo&zP=uI`M?J zbzC<^3x7GfXA4{FZ72{PE*-mNHyy59Q;kYG@BB~NhTd6pm2Oj=_ zizmD?MKVRkT^KmXuhsk?eRQllPo2Ubk=uCKiZ&u3Xjj~<(!M94c)Tez@9M1Gfs5JV z->@II)CDJOXTtPrQudNjE}Eltbjq>6KiwAwqvAKd^|g!exgLG3;wP+#mZYr`cy3#39e653d=jrR-ulW|h#ddHu(m9mFoW~2yE zz5?dB%6vF}+`-&-W8vy^OCxm3_{02royjvmwjlp+eQDzFVEUiyO#gLv%QdDSI#3W* z?3!lL8clTaNo-DVJw@ynq?q!%6hTQi35&^>P85G$TqNt78%9_sSJt2RThO|JzM$iL zg|wjxdMC2|Icc5rX*qPL(coL!u>-xxz-rFiC!6hD1IR%|HSRsV3>Kq~&vJ=s3M5y8SG%YBQ|{^l#LGlg!D?E>2yR*eV%9m$_J6VGQ~AIh&P$_aFbh zULr0Z$QE!QpkP=aAeR4ny<#3Fwyw@rZf4?Ewq`;mCVv}xaz+3ni+}a=k~P+yaWt^L z@w67!DqVf7D%7XtXX5xBW;Co|HvQ8WR1k?r2cZD%U;2$bsM%u8{JUJ5Z0k= zZJARv^vFkmWx15CB=rb=D4${+#DVqy5$C%bf`!T0+epLJLnh1jwCdb*zuCL}eEFvE z{rO1%gxg>1!W(I!owu*mJZ0@6FM(?C+d*CeceZRW_4id*D9p5nzMY&{mWqrJomjIZ z97ZNnZ3_%Hx8dn;H>p8m7F#^2;T%yZ3H;a&N7tm=Lvs&lgJLW{V1@h&6Vy~!+Ffbb zv(n3+v)_D$}dqd!2>Y2B)#<+o}LH#%ogGi2-?xRIH)1!SD)u-L65B&bsJTC=LiaF+YOCif2dUX6uAA|#+vNR z>U+KQekVGon)Yi<93(d!(yw1h3&X0N(PxN2{%vn}cnV?rYw z$N^}_o!XUB!mckL`yO1rnUaI4wrOeQ(+&k?2mi47hzxSD`N#-byqd1IhEoh!PGq>t z_MRy{5B0eKY>;Ao3z$RUU7U+i?iX^&r739F)itdrTpAi-NN0=?^m%?{A9Ly2pVv>Lqs6moTP?T2-AHqFD-o_ znVr|7OAS#AEH}h8SRPQ@NGG47dO}l=t07__+iK8nHw^(AHx&Wb<%jPc$$jl6_p(b$ z)!pi(0fQodCHfM)KMEMUR&UID>}m^(!{C^U7sBDOA)$VThRCI0_+2=( zV8mMq0R(#z;C|7$m>$>`tX+T|xGt(+Y48@ZYu#z;0pCgYgmMVbFb!$?%yhZqP_nhn zy4<#3P1oQ#2b51NU1mGnHP$cf0j-YOgAA}A$QoL6JVLcmExs(kU{4z;PBHJD%_=0F z>+sQV`mzijSIT7xn%PiDKHOujX;n|M&qr1T@rOxTdxtZ!&u&3HHFLYD5$RLQ=heur zb>+AFokUVQeJy-#LP*^)spt{mb@Mqe=A~-4p0b+Bt|pZ+@CY+%x}9f}izU5;4&QFE zO1bhg&A4uC1)Zb67kuowWY4xbo&J=%yoXlFB)&$d*-}kjBu|w!^zbD1YPc0-#XTJr z)pm2RDy%J3jlqSMq|o%xGS$bPwn4AqitC6&e?pqWcjWPt{3I{>CBy;hg0Umh#c;hU3RhCUX=8aR>rmd` z7Orw(5tcM{|-^J?ZAA9KP|)X6n9$-kvr#j5YDecTM6n z&07(nD^qb8hpF0B^z^pQ*%5ePYkv&FabrlI61ntiVp!!C8y^}|<2xgAd#FY=8b*y( zuQOuvy2`Ii^`VBNJB&R!0{hABYX55ooCAJSSevl4RPqEGb)iy_0H}v@vFwFzD%>#I>)3PsouQ+_Kkbqy*kKdHdfkN7NBcq%V{x^fSxgXpg7$bF& zj!6AQbDY(1u#1_A#1UO9AxiZaCVN2F0wGXdY*g@x$ByvUA?ePdide0dmr#}udE%K| z3*k}Vv2Ew2u1FXBaVA6aerI36R&rzEZeDDCl5!t0J=ug6kuNZzH>3i_VN`%BsaVB3 zQYw|Xub_SGf{)F{$ZX5`Jc!X!;eybjP+o$I{Z^Hsj@D=E{MnnL+TbC@HEU2DjG{3-LDGIbq()U87x4eS;JXnSh;lRlJ z>EL3D>wHt-+wTjQF$fGyDO$>d+(fq@bPpLBS~xA~R=3JPbS{tzN(u~m#Po!?H;IYv zE;?8%^vle|%#oux(Lj!YzBKv+Fd}*Ur-dCBoX*t{KeNM*n~ZPYJ4NNKkI^MFbz9!v z4(Bvm*Kc!-$%VFEewYJKz-CQN{`2}KX4*CeJEs+Q(!kI%hN1!1P6iOq?ovz}X0IOi z)YfWpwW@pK08^69#wSyCZkX9?uZD?C^@rw^Y?gLS_xmFKkooyx$*^5#cPqntNTtSG zlP>XLMj2!VF^0k#ole7`-c~*~+_T5ls?x4)ah(j8vo_ zwb%S8qoaZqY0-$ZI+ViIA_1~~rAH7K_+yFS{0rT@eQtTAdz#8E5VpwnW!zJ_^{Utv zlW5Iar3V5t&H4D6A=>?mq;G92;1cg9a2sf;gY9pJDVKn$DYdQlvfXq}zz8#LyPGq@ z+`YUMD;^-6w&r-82JL7mA8&M~Pj@aK!m{0+^v<|t%APYf7`}jGEhdYLqsHW-Le9TL z_hZZ1gbrz7$f9^fAzVIP30^KIz!!#+DRLL+qMszvI_BpOSmjtl$hh;&UeM{ER@INV zcI}VbiVTPoN|iSna@=7XkP&-4#06C};8ajbxJ4Gcq8(vWv4*&X8bM^T$mBk75Q92j z1v&%a;OSKc8EIrodmIiw$lOES2hzGDcjjB`kEDfJe{r}yE6`eZL zEB`9u>Cl0IsQ+t}`-cx}{6jqcANucqIB>Qmga_&<+80E2Q|VHHQ$YlAt{6`Qu`HA3 z03s0-sSlwbvgi&_R8s={6<~M^pGvBNjKOa>tWenzS8s zR>L7R5aZ=mSU{f?ib4Grx$AeFvtO5N|D>9#)ChH#Fny2maHWHOf2G=#<9Myot#+4u zWVa6d^Vseq_0=#AYS(-m$Lp;*8nC_6jXIjEM`omUmtH@QDs3|G)i4j*#_?#UYVZvJ z?YjT-?!4Q{BNun;dKBWLEw2C-VeAz`%?A>p;)PL}TAZn5j~HK>v1W&anteARlE+~+ zj>c(F;?qO3pXBb|#OZdQnm<4xWmn~;DR5SDMxt0UK_F^&eD|KZ=O;tO3vy4@4h^;2 zUL~-z`-P1aOe?|ZC1BgVsL)2^J-&vIFI%q@40w0{jjEfeVl)i9(~bt2z#2Vm)p`V_ z1;6$Ae7=YXk#=Qkd24Y23t&GvRxaOoad~NbJ+6pxqzJ>FY#Td7@`N5xp!n(c!=RE& z&<<@^a$_Ys8jqz4|5Nk#FY$~|FPC0`*a5HH!|Gssa9=~66&xG9)|=pOOJ2KE5|YrR zw!w6K2aC=J$t?L-;}5hn6mHd%hC;p8P|Dgh6D>hGnXPgi;6r+eA=?f72y9(Cf_ho{ zH6#)uD&R=73^$$NE;5piWX2bzR67fQ)`b=85o0eOLGI4c-Tb@-KNi2pz=Ke@SDcPn za$AxXib84`!Sf;Z3B@TSo`Dz7GM5Kf(@PR>Ghzi=BBxK8wRp>YQoXm+iL>H*Jo9M3 z6w&E?BC8AFTFT&Tv8zf+m9<&S&%dIaZ)Aoqkak_$r-2{$d~0g2oLETx9Y`eOAf14QXEQw3tJne;fdzl@wV#TFXSLXM2428F-Q}t+n2g%vPRMUzYPvzQ9f# zu(liiJem9P*?0%V@RwA7F53r~|I!Ty)<*AsMX3J{_4&}{6pT%Tpw>)^|DJ)>gpS~1rNEh z0$D?uO8mG?H;2BwM5a*26^7YO$XjUm40XmBsb63MoR;bJh63J;OngS5sSI+o2HA;W zdZV#8pDpC9Oez&L8loZO)MClRz!_!WD&QRtQxnazhT%Vj6Wl4G11nUk8*vSeVab@N#oJ}`KyJv+8Mo@T1-pqZ1t|?cnaVOd;1(h9 z!$DrN=jcGsVYE-0-n?oCJ^4x)F}E;UaD-LZUIzcD?W^ficqJWM%QLy6QikrM1aKZC zi{?;oKwq^Vsr|&`i{jIphA8S6G4)$KGvpULjH%9u(Dq247;R#l&I0{IhcC|oBF*Al zvLo7Xte=C{aIt*otJD}BUq)|_pdR>{zBMT< z(^1RpZv*l*m*OV^8>9&asGBo8h*_4q*)-eCv*|Pq=XNGrZE)^(SF7^{QE_~4VDB(o zVcPA_!G+2CAtLbl+`=Q~9iW`4ZRLku!uB?;tWqVjB0lEOf}2RD7dJ=BExy=<9wkb- z9&7{XFA%n#JsHYN8t5d~=T~5DcW4$B%3M+nNvC2`0!#@sckqlzo5;hhGi(D9=*A4` z5ynobawSPRtWn&CDLEs3Xf`(8^zDP=NdF~F^s&={l7(aw&EG}KWpMjtmz7j_VLO;@ zM2NVLDxZ@GIv7*gzl1 zjq78tv*8#WSY`}Su0&C;2F$Ze(q>F(@Wm^Gw!)(j;dk9Ad{STaxn)IV9FZhm*n+U} zi;4y*3v%A`_c7a__DJ8D1b@dl0Std3F||4Wtvi)fCcBRh!X9$1x!_VzUh>*S5s!oq z;qd{J_r79EL2wIeiGAqFstWtkfIJpjVh%zFo*=55B9Zq~y0=^iqHWfQl@O!Ak;(o*m!pZqe9 z%U2oDOhR)BvW8&F70L;2TpkzIutIvNQaTjjs5V#8mV4!NQ}zN=i`i@WI1z0eN-iCS z;vL-Wxc^Vc_qK<5RPh(}*8dLT{~GzE{w2o$2kMFaEl&q zP{V=>&3kW7tWaK-Exy{~`v4J0U#OZBk{a9{&)&QG18L@6=bsZ1zC_d{{pKZ-Ey>I> z;8H0t4bwyQqgu4hmO`3|4K{R*5>qnQ&gOfdy?z`XD%e5+pTDzUt3`k^u~SaL&XMe= z9*h#kT(*Q9jO#w2Hd|Mr-%DV8i_1{J1MU~XJ3!WUplhXDYBpJH><0OU`**nIvPIof z|N8@I=wA)sf45SAvx||f?Z5uB$kz1qL3Ky_{%RPdP5iN-D2!p5scq}buuC00C@jom zhfGKm3|f?Z0iQ|K$Z~!`8{nmAS1r+fp6r#YDOS8V*;K&Gs7Lc&f^$RC66O|)28oh`NHy&vq zJh+hAw8+ybTB0@VhWN^0iiTnLsCWbS_y`^gs!LX!Lw{yE``!UVzrV24tP8o;I6-65 z1MUiHw^{bB15tmrVT*7-#sj6cs~z`wk52YQJ*TG{SE;KTm#Hf#a~|<(|ImHH17nNM z`Ub{+J3dMD!)mzC8b(2tZtokKW5pAwHa?NFiso~# z1*iaNh4lQ4TS)|@G)H4dZV@l*Vd;Rw;-;odDhW2&lJ%m@jz+Panv7LQm~2Js6rOW3 z0_&2cW^b^MYW3)@o;neZ<{B4c#m48dAl$GCc=$>ErDe|?y@z`$uq3xd(%aAsX)D%l z>y*SQ%My`yDP*zof|3@_w#cjaW_YW4BdA;#Glg1RQcJGY*CJ9`H{@|D+*e~*457kd z73p<%fB^PV!Ybw@)Dr%(ZJbX}xmCStCYv#K3O32ej{$9IzM^I{6FJ8!(=azt7RWf4 z7ib0UOPqN40X!wOnFOoddd8`!_IN~9O)#HRTyjfc#&MCZ zZAMzOVB=;qwt8gV?{Y2?b=iSZG~RF~uyx18K)IDFLl})G1v@$(s{O4@RJ%OTJyF+Cpcx4jmy|F3euCnMK!P2WTDu5j z{{gD$=M*pH!GGzL%P)V2*ROm>!$Y=z|D`!_yY6e7SU$~a5q8?hZGgaYqaiLnkK%?0 zs#oI%;zOxF@g*@(V4p!$7dS1rOr6GVs6uYCTt2h)eB4?(&w8{#o)s#%gN@BBosRUe z)@P@8_Zm89pr~)b>e{tbPC~&_MR--iB{=)y;INU5#)@Gix-YpgP<-c2Ms{9zuCX|3 z!p(?VaXww&(w&uBHzoT%!A2=3HAP>SDxcljrego7rY|%hxy3XlODWffO_%g|l+7Y_ zqV(xbu)s4lV=l7M;f>vJl{`6qBm>#ZeMA}kXb97Z)?R97EkoI?x6Lp0yu1Z>PS?2{ z0QQ(8D)|lc9CO3B~e(pQM&5(1y&y=e>C^X$`)_&XuaI!IgDTVqt31wX#n+@!a_A0ZQkA zCJ2@M_4Gb5MfCrm5UPggeyh)8 zO9?`B0J#rkoCx(R0I!ko_2?iO@|oRf1;3r+i)w-2&j?=;NVIdPFsB)`|IC0zk6r9c zRrkfxWsiJ(#8QndNJj@{@WP2Ackr|r1VxV{7S&rSU(^)-M8gV>@UzOLXu9K<{6e{T zXJ6b92r$!|lwjhmgqkdswY&}c)KW4A)-ac%sU;2^fvq7gfUW4Bw$b!i@duy1CAxSn z(pyh$^Z=&O-q<{bZUP+$U}=*#M9uVc>CQVgDs4swy5&8RAHZ~$)hrTF4W zPsSa~qYv_0mJnF89RnnJTH`3}w4?~epFl=D(35$ zWa07ON$`OMBOHgCmfO(9RFc<)?$x)N}Jd2A(<*Ll7+4jrRt9w zwGxExUXd9VB#I|DwfxvJ;HZ8Q{37^wDhaZ%O!oO(HpcqfLH%#a#!~;Jl7F5>EX_=8 z{()l2NqPz>La3qJR;_v+wlK>GsHl;uRA8%j`A|yH@k5r%55S9{*Cp%uw6t`qc1!*T za2OeqtQj7sAp#Q~=5Fs&aCR9v>5V+s&RdNvo&H~6FJOjvaj--2sYYBvMq;55%z8^o z|BJDA4vzfow#DO#ZQHh;Oq_{r+qP{R9ox2TOgwQiv7Ow!zjN+A@BN;0tA2lUb#+zO z(^b89eV)D7UVE+h{mcNc6&GtpOqDn_?VAQ)Vob$hlFwW%xh>D#wml{t&Ofmm_d_+; zKDxzdr}`n2Rw`DtyIjrG)eD0vut$}dJAZ0AohZ+ZQdWXn_Z@dI_y=7t3q8x#pDI-K z2VVc&EGq445Rq-j0=U=Zx`oBaBjsefY;%)Co>J3v4l8V(T8H?49_@;K6q#r~Wwppc z4XW0(4k}cP=5ex>-Xt3oATZ~bBWKv)aw|I|Lx=9C1s~&b77idz({&q3T(Y(KbWO?+ zmcZ6?WeUsGk6>km*~234YC+2e6Zxdl~<_g2J|IE`GH%n<%PRv-50; zH{tnVts*S5*_RxFT9eM0z-pksIb^drUq4>QSww=u;UFCv2AhOuXE*V4z?MM`|ABOC4P;OfhS(M{1|c%QZ=!%rQTDFx`+}?Kdx$&FU?Y<$x;j7z=(;Lyz+?EE>ov!8vvMtSzG!nMie zsBa9t8as#2nH}n8xzN%W%U$#MHNXmDUVr@GX{?(=yI=4vks|V)!-W5jHsU|h_&+kY zS_8^kd3jlYqOoiI`ZqBVY!(UfnAGny!FowZWY_@YR0z!nG7m{{)4OS$q&YDyw6vC$ zm4!$h>*|!2LbMbxS+VM6&DIrL*X4DeMO!@#EzMVfr)e4Tagn~AQHIU8?e61TuhcKD zr!F4(kEebk(Wdk-?4oXM(rJwanS>Jc%<>R(siF+>+5*CqJLecP_we33iTFTXr6W^G z7M?LPC-qFHK;E!fxCP)`8rkxZyFk{EV;G-|kwf4b$c1k0atD?85+|4V%YATWMG|?K zLyLrws36p%Qz6{}>7b>)$pe>mR+=IWuGrX{3ZPZXF3plvuv5Huax86}KX*lbPVr}L z{C#lDjdDeHr~?l|)Vp_}T|%$qF&q#U;ClHEPVuS+Jg~NjC1RP=17=aQKGOcJ6B3mp z8?4*-fAD~}sX*=E6!}^u8)+m2j<&FSW%pYr_d|p_{28DZ#Cz0@NF=gC-o$MY?8Ca8 zr5Y8DSR^*urS~rhpX^05r30Ik#2>*dIOGxRm0#0YX@YQ%Mg5b6dXlS!4{7O_kdaW8PFSdj1=ryI-=5$fiieGK{LZ+SX(1b=MNL!q#lN zv98?fqqTUH8r8C7v(cx#BQ5P9W>- zmW93;eH6T`vuJ~rqtIBg%A6>q>gnWb3X!r0wh_q;211+Om&?nvYzL1hhtjB zK_7G3!n7PL>d!kj){HQE zE8(%J%dWLh1_k%gVXTZt zEdT09XSKAx27Ncaq|(vzL3gm83q>6CAw<$fTnMU05*xAe&rDfCiu`u^1)CD<>sx0i z*hr^N_TeN89G(nunZoLBf^81#pmM}>JgD@Nn1l*lN#a=B=9pN%tmvYFjFIoKe_(GF z-26x{(KXdfsQL7Uv6UtDuYwV`;8V3w>oT_I<`Ccz3QqK9tYT5ZQzbop{=I=!pMOCb zCU68`n?^DT%^&m>A%+-~#lvF!7`L7a{z<3JqIlk1$<||_J}vW1U9Y&eX<}l8##6i( zZcTT@2`9(Mecptm@{3A_Y(X`w9K0EwtPq~O!16bq{7c0f7#(3wn-^)h zxV&M~iiF!{-6A@>o;$RzQ5A50kxXYj!tcgme=Qjrbje~;5X2xryU;vH|6bE(8z^<7 zQ>BG7_c*JG8~K7Oe68i#0~C$v?-t@~@r3t2inUnLT(c=URpA9kA8uq9PKU(Ps(LVH zqgcqW>Gm?6oV#AldDPKVRcEyQIdTT`Qa1j~vS{<;SwyTdr&3*t?J)y=M7q*CzucZ&B0M=joT zBbj@*SY;o2^_h*>R0e({!QHF0=)0hOj^B^d*m>SnRrwq>MolNSgl^~r8GR#mDWGYEIJA8B<|{{j?-7p zVnV$zancW3&JVDtVpIlI|5djKq0(w$KxEFzEiiL=h5Jw~4Le23@s(mYyXWL9SX6Ot zmb)sZaly_P%BeX_9 zw&{yBef8tFm+%=--m*J|o~+Xg3N+$IH)t)=fqD+|fEk4AAZ&!wcN5=mi~Vvo^i`}> z#_3ahR}Ju)(Px7kev#JGcSwPXJ2id9%Qd2A#Uc@t8~egZ8;iC{e! z%=CGJOD1}j!HW_sgbi_8suYnn4#Ou}%9u)dXd3huFIb!ytlX>Denx@pCS-Nj$`VO&j@(z!kKSP0hE4;YIP#w9ta=3DO$7f*x zc9M4&NK%IrVmZAe=r@skWD`AEWH=g+r|*13Ss$+{c_R!b?>?UaGXlw*8qDmY#xlR= z<0XFbs2t?8i^G~m?b|!Hal^ZjRjt<@a? z%({Gn14b4-a|#uY^=@iiKH+k?~~wTj5K1A&hU z2^9-HTC)7zpoWK|$JXaBL6C z#qSNYtY>65T@Zs&-0cHeu|RX(Pxz6vTITdzJdYippF zC-EB+n4}#lM7`2Ry~SO>FxhKboIAF#Z{1wqxaCb{#yEFhLuX;Rx(Lz%T`Xo1+a2M}7D+@wol2)OJs$TwtRNJ={( zD@#zTUEE}#Fz#&(EoD|SV#bayvr&E0vzmb%H?o~46|FAcx?r4$N z&67W3mdip-T1RIxwSm_&(%U|+WvtGBj*}t69XVd&ebn>KOuL(7Y8cV?THd-(+9>G7*Nt%T zcH;`p={`SOjaf7hNd(=37Lz3-51;58JffzIPgGs_7xIOsB5p2t&@v1mKS$2D$*GQ6 zM(IR*j4{nri7NMK9xlDy-hJW6sW|ZiDRaFiayj%;(%51DN!ZCCCXz+0Vm#};70nOx zJ#yA0P3p^1DED;jGdPbQWo0WATN=&2(QybbVdhd=Vq*liDk`c7iZ?*AKEYC#SY&2g z&Q(Ci)MJ{mEat$ZdSwTjf6h~roanYh2?9j$CF@4hjj_f35kTKuGHvIs9}Re@iKMxS-OI*`0S z6s)fOtz}O$T?PLFVSeOjSO26$@u`e<>k(OSP!&YstH3ANh>)mzmKGNOwOawq-MPXe zy4xbeUAl6tamnx))-`Gi2uV5>9n(73yS)Ukma4*7fI8PaEwa)dWHs6QA6>$}7?(L8 ztN8M}?{Tf!Zu22J5?2@95&rQ|F7=FK-hihT-vDp!5JCcWrVogEnp;CHenAZ)+E+K5 z$Cffk5sNwD_?4+ymgcHR(5xgt20Z8M`2*;MzOM#>yhk{r3x=EyM226wb&!+j`W<%* zSc&|`8!>dn9D@!pYow~(DsY_naSx7(Z4i>cu#hA5=;IuI88}7f%)bRkuY2B;+9Uep zpXcvFWkJ!mQai63BgNXG26$5kyhZ2&*3Q_tk)Ii4M>@p~_~q_cE!|^A;_MHB;7s#9 zKzMzK{lIxotjc};k67^Xsl-gS!^*m*m6kn|sbdun`O?dUkJ{0cmI0-_2y=lTAfn*Y zKg*A-2sJq)CCJgY0LF-VQvl&6HIXZyxo2#!O&6fOhbHXC?%1cMc6y^*dOS{f$=137Ds1m01qs`>iUQ49JijsaQ( zksqV9@&?il$|4Ua%4!O15>Zy&%gBY&wgqB>XA3!EldQ%1CRSM(pp#k~-pkcCg4LAT zXE=puHbgsw)!xtc@P4r~Z}nTF=D2~j(6D%gTBw$(`Fc=OOQ0kiW$_RDd=hcO0t97h zb86S5r=>(@VGy1&#S$Kg_H@7G^;8Ue)X5Y+IWUi`o;mpvoV)`fcVk4FpcT|;EG!;? zHG^zrVVZOm>1KFaHlaogcWj(v!S)O(Aa|Vo?S|P z5|6b{qkH(USa*Z7-y_Uvty_Z1|B{rTS^qmEMLEYUSk03_Fg&!O3BMo{b^*`3SHvl0 zhnLTe^_vVIdcSHe)SQE}r~2dq)VZJ!aSKR?RS<(9lzkYo&dQ?mubnWmgMM37Nudwo z3Vz@R{=m2gENUE3V4NbIzAA$H1z0pagz94-PTJyX{b$yndsdKptmlKQKaaHj@3=ED zc7L?p@%ui|RegVYutK$64q4pe9+5sv34QUpo)u{1ci?)_7gXQd{PL>b0l(LI#rJmN zGuO+%GO`xneFOOr4EU(Wg}_%bhzUf;d@TU+V*2#}!2OLwg~%D;1FAu=Un>OgjPb3S z7l(riiCwgghC=Lm5hWGf5NdGp#01xQ59`HJcLXbUR3&n%P(+W2q$h2Qd z*6+-QXJ*&Kvk9ht0f0*rO_|FMBALen{j7T1l%=Q>gf#kma zQlg#I9+HB+z*5BMxdesMND`_W;q5|FaEURFk|~&{@qY32N$G$2B=&Po{=!)x5b!#n zxLzblkq{yj05#O7(GRuT39(06FJlalyv<#K4m}+vs>9@q-&31@1(QBv82{}Zkns~K ze{eHC_RDX0#^A*JQTwF`a=IkE6Ze@j#-8Q`tTT?k9`^ZhA~3eCZJ-Jr{~7Cx;H4A3 zcZ+Zj{mzFZbVvQ6U~n>$U2ZotGsERZ@}VKrgGh0xM;Jzt29%TX6_&CWzg+YYMozrM z`nutuS)_0dCM8UVaKRj804J4i%z2BA_8A4OJRQ$N(P9Mfn-gF;4#q788C@9XR0O3< zsoS4wIoyt046d+LnSCJOy@B@Uz*#GGd#+Ln1ek5Dv>(ZtD@tgZlPnZZJGBLr^JK+!$$?A_fA3LOrkoDRH&l7 zcMcD$Hsjko3`-{bn)jPL6E9Ds{WskMrivsUu5apD z?grQO@W7i5+%X&E&p|RBaEZ(sGLR@~(y^BI@lDMot^Ll?!`90KT!JXUhYS`ZgX3jnu@Ja^seA*M5R@f`=`ynQV4rc$uT1mvE?@tz)TN<=&H1%Z?5yjxcpO+6y_R z6EPuPKM5uxKpmZfT(WKjRRNHs@ib)F5WAP7QCADvmCSD#hPz$V10wiD&{NXyEwx5S z6NE`3z!IS^$s7m}PCwQutVQ#~w+V z=+~->DI*bR2j0^@dMr9`p>q^Ny~NrAVxrJtX2DUveic5vM%#N*XO|?YAWwNI$Q)_) zvE|L(L1jP@F%gOGtnlXtIv2&1i8q<)Xfz8O3G^Ea~e*HJsQgBxWL(yuLY+jqUK zRE~`-zklrGog(X}$9@ZVUw!8*=l`6mzYLtsg`AvBYz(cxmAhr^j0~(rzXdiOEeu_p zE$sf2(w(BPAvO5DlaN&uQ$4@p-b?fRs}d7&2UQ4Fh?1Hzu*YVjcndqJLw0#q@fR4u zJCJ}>_7-|QbvOfylj+e^_L`5Ep9gqd>XI3-O?Wp z-gt*P29f$Tx(mtS`0d05nHH=gm~Po_^OxxUwV294BDKT>PHVlC5bndncxGR!n(OOm znsNt@Q&N{TLrmsoKFw0&_M9$&+C24`sIXGWgQaz=kY;S{?w`z^Q0JXXBKFLj0w0U6P*+jPKyZHX9F#b0D1$&(- zrm8PJd?+SrVf^JlfTM^qGDK&-p2Kdfg?f>^%>1n8bu&byH(huaocL>l@f%c*QkX2i znl}VZ4R1en4S&Bcqw?$=Zi7ohqB$Jw9x`aM#>pHc0x z0$!q7iFu zZ`tryM70qBI6JWWTF9EjgG@>6SRzsd}3h+4D8d~@CR07P$LJ}MFsYi-*O%XVvD@yT|rJ+Mk zDllJ7$n0V&A!0flbOf)HE6P_afPWZmbhpliqJuw=-h+r;WGk|ntkWN(8tKlYpq5Ow z(@%s>IN8nHRaYb*^d;M(D$zGCv5C|uqmsDjwy4g=Lz>*OhO3z=)VD}C<65;`89Ye} zSCxrv#ILzIpEx1KdLPlM&%Cctf@FqTKvNPXC&`*H9=l=D3r!GLM?UV zOxa(8ZsB`&+76S-_xuj?G#wXBfDY@Z_tMpXJS7^mp z@YX&u0jYw2A+Z+bD#6sgVK5ZgdPSJV3>{K^4~%HV?rn~4D)*2H!67Y>0aOmzup`{D zzDp3c9yEbGCY$U<8biJ_gB*`jluz1ShUd!QUIQJ$*1;MXCMApJ^m*Fiv88RZ zFopLViw}{$Tyhh_{MLGIE2~sZ)t0VvoW%=8qKZ>h=adTe3QM$&$PO2lfqH@brt!9j ziePM8$!CgE9iz6B<6_wyTQj?qYa;eC^{x_0wuwV~W+^fZmFco-o%wsKSnjXFEx02V zF5C2t)T6Gw$Kf^_c;Ei3G~uC8SM-xyycmXyC2hAVi-IfXqhu$$-C=*|X?R0~hu z8`J6TdgflslhrmDZq1f?GXF7*ALeMmOEpRDg(s*H`4>_NAr`2uqF;k;JQ+8>A|_6ZNsNLECC%NNEb1Y1dP zbIEmNpK)#XagtL4R6BC{C5T(+=yA-(Z|Ap}U-AfZM#gwVpus3(gPn}Q$CExObJ5AC z)ff9Yk?wZ}dZ-^)?cbb9Fw#EjqQ8jxF4G3=L?Ra zg_)0QDMV1y^A^>HRI$x?Op@t;oj&H@1xt4SZ9(kifQ zb59B*`M99Td7@aZ3UWvj1rD0sE)d=BsBuW*KwkCds7ay(7*01_+L}b~7)VHI>F_!{ zyxg-&nCO?v#KOUec0{OOKy+sjWA;8rTE|Lv6I9H?CI?H(mUm8VXGwU$49LGpz&{nQp2}dinE1@lZ1iox6{ghN&v^GZv9J${7WaXj)<0S4g_uiJ&JCZ zr8-hsu`U%N;+9N^@&Q0^kVPB3)wY(rr}p7{p0qFHb3NUUHJb672+wRZs`gd1UjKPX z4o6zljKKA+Kkj?H>Ew63o%QjyBk&1!P22;MkD>sM0=z_s-G{mTixJCT9@_|*(p^bz zJ8?ZZ&;pzV+7#6Mn`_U-)k8Pjg?a;|Oe^us^PoPY$Va~yi8|?+&=y$f+lABT<*pZr zP}D{~Pq1Qyni+@|aP;ixO~mbEW9#c0OU#YbDZIaw=_&$K%Ep2f%hO^&P67hApZe`x zv8b`Mz@?M_7-)b!lkQKk)JXXUuT|B8kJlvqRmRpxtQDgvrHMXC1B$M@Y%Me!BSx3P z#2Eawl$HleZhhTS6Txm>lN_+I`>eV$&v9fOg)%zVn3O5mI*lAl>QcHuW6!Kixmq`X zBCZ*Ck6OYtDiK!N47>jxI&O2a9x7M|i^IagRr-fmrmikEQGgw%J7bO|)*$2FW95O4 zeBs>KR)izRG1gRVL;F*sr8A}aRHO0gc$$j&ds8CIO1=Gwq1%_~E)CWNn9pCtBE}+`Jelk4{>S)M)`Ll=!~gnn1yq^EX(+y*ik@3Ou0qU`IgYi3*doM+5&dU!cho$pZ zn%lhKeZkS72P?Cf68<#kll_6OAO26bIbueZx**j6o;I0cS^XiL`y+>{cD}gd%lux} z)3N>MaE24WBZ}s0ApfdM;5J_Ny}rfUyxfkC``Awo2#sgLnGPewK};dORuT?@I6(5~ z?kE)Qh$L&fwJXzK){iYx!l5$Tt|^D~MkGZPA}(o6f7w~O2G6Vvzdo*a;iXzk$B66$ zwF#;wM7A+(;uFG4+UAY(2`*3XXx|V$K8AYu#ECJYSl@S=uZW$ksfC$~qrrbQj4??z-)uz0QL}>k^?fPnJTPw% zGz)~?B4}u0CzOf@l^um}HZzbaIwPmb<)< zi_3@E9lc)Qe2_`*Z^HH;1CXOceL=CHpHS{HySy3T%<^NrWQ}G0i4e1xm_K3(+~oi$ zoHl9wzb?Z4j#90DtURtjtgvi7uw8DzHYmtPb;?%8vb9n@bszT=1qr)V_>R%s!92_` zfnHQPANx z<#hIjIMm#*(v*!OXtF+w8kLu`o?VZ5k7{`vw{Yc^qYclpUGIM_PBN1+c{#Vxv&E*@ zxg=W2W~JuV{IuRYw3>LSI1)a!thID@R=bU+cU@DbR^_SXY`MC7HOsCN z!dO4OKV7(E_Z8T#8MA1H`99?Z!r0)qKW_#|29X3#Jb+5+>qUidbeP1NJ@)(qi2S-X zao|f0_tl(O+$R|Qwd$H{_ig|~I1fbp_$NkI!0E;Y z6JrnU{1Ra6^on{9gUUB0mwzP3S%B#h0fjo>JvV~#+X0P~JV=IG=yHG$O+p5O3NUgG zEQ}z6BTp^Fie)Sg<){Z&I8NwPR(=mO4joTLHkJ>|Tnk23E(Bo`FSbPc05lF2-+)X? z6vV3*m~IBHTy*^E!<0nA(tCOJW2G4DsH7)BxLV8kICn5lu6@U*R`w)o9;Ro$i8=Q^V%uH8n3q=+Yf;SFRZu z!+F&PKcH#8cG?aSK_Tl@K9P#8o+jry@gdexz&d(Q=47<7nw@e@FFfIRNL9^)1i@;A z28+$Z#rjv-wj#heI|<&J_DiJ*s}xd-f!{J8jfqOHE`TiHHZVIA8CjkNQ_u;Ery^^t zl1I75&u^`1_q)crO+JT4rx|z2ToSC>)Or@-D zy3S>jW*sNIZR-EBsfyaJ+Jq4BQE4?SePtD2+jY8*%FsSLZ9MY>+wk?}}}AFAw)vr{ml)8LUG-y9>^t!{~|sgpxYc0Gnkg`&~R z-pilJZjr@y5$>B=VMdZ73svct%##v%wdX~9fz6i3Q-zOKJ9wso+h?VME7}SjL=!NUG{J?M&i!>ma`eoEa@IX`5G>B1(7;%}M*%-# zfhJ(W{y;>MRz!Ic8=S}VaBKqh;~7KdnGEHxcL$kA-6E~=!hrN*zw9N+_=odt<$_H_8dbo;0=42wcAETPCVGUr~v(`Uai zb{=D!Qc!dOEU6v)2eHSZq%5iqK?B(JlCq%T6av$Cb4Rko6onlG&?CqaX7Y_C_cOC3 zYZ;_oI(}=>_07}Oep&Ws7x7-R)cc8zfe!SYxJYP``pi$FDS)4Fvw5HH=FiU6xfVqIM!hJ;Rx8c0cB7~aPtNH(Nmm5Vh{ibAoU#J6 zImRCr?(iyu_4W_6AWo3*vxTPUw@vPwy@E0`(>1Qi=%>5eSIrp^`` zK*Y?fK_6F1W>-7UsB)RPC4>>Ps9)f+^MqM}8AUm@tZ->j%&h1M8s*s!LX5&WxQcAh z8mciQej@RPm?660%>{_D+7er>%zX_{s|$Z+;G7_sfNfBgY(zLB4Ey}J9F>zX#K0f6 z?dVNIeEh?EIShmP6>M+d|0wMM85Sa4diw1hrg|ITJ}JDg@o8y>(rF9mXk5M z2@D|NA)-7>wD&wF;S_$KS=eE84`BGw3g0?6wGxu8ys4rwI?9U=*^VF22t3%mbGeOh z`!O-OpF7#Vceu~F`${bW0nYVU9ecmk31V{tF%iv&5hWofC>I~cqAt@u6|R+|HLMMX zVxuSlMFOK_EQ86#E8&KwxIr8S9tj_goWtLv4f@!&h8;Ov41{J~496vp9vX=(LK#j! zAwi*21RAV-LD>9Cw3bV_9X(X3)Kr0-UaB*7Y>t82EQ%!)(&(XuAYtTsYy-dz+w=$ir)VJpe!_$ z6SGpX^i(af3{o=VlFPC);|J8#(=_8#vdxDe|Cok+ANhYwbE*FO`Su2m1~w+&9<_9~ z-|tTU_ACGN`~CNW5WYYBn^B#SwZ(t4%3aPp z;o)|L6Rk569KGxFLUPx@!6OOa+5OjQLK5w&nAmwxkC5rZ|m&HT8G%GVZxB_@ME z>>{rnXUqyiJrT(8GMj_ap#yN_!9-lO5e8mR3cJiK3NE{_UM&=*vIU`YkiL$1%kf+1 z4=jk@7EEj`u(jy$HnzE33ZVW_J4bj}K;vT?T91YlO(|Y0FU4r+VdbmQ97%(J5 zkK*Bed8+C}FcZ@HIgdCMioV%A<*4pw_n}l*{Cr4}a(lq|injK#O?$tyvyE`S%(1`H z_wwRvk#13ElkZvij2MFGOj`fhy?nC^8`Zyo%yVcUAfEr8x&J#A{|moUBAV_^f$hpaUuyQeY3da^ zS9iRgf87YBwfe}>BO+T&Fl%rfpZh#+AM?Dq-k$Bq`vG6G_b4z%Kbd&v>qFjow*mBl z-OylnqOpLg}or7_VNwRg2za3VBK6FUfFX{|TD z`Wt0Vm2H$vdlRWYQJqDmM?JUbVqL*ZQY|5&sY*?!&%P8qhA~5+Af<{MaGo(dl&C5t zE%t!J0 zh6jqANt4ABdPxSTrVV}fLsRQal*)l&_*rFq(Ez}ClEH6LHv{J#v?+H-BZ2)Wy{K@9 z+ovXHq~DiDvm>O~r$LJo!cOuwL+Oa--6;UFE2q@g3N8Qkw5E>ytz^(&($!O47+i~$ zKM+tkAd-RbmP{s_rh+ugTD;lriL~`Xwkad#;_aM?nQ7L_muEFI}U_4$phjvYgleK~`Fo`;GiC07&Hq1F<%p;9Q;tv5b?*QnR%8DYJH3P>Svmv47Y>*LPZJy8_{9H`g6kQpyZU{oJ`m%&p~D=K#KpfoJ@ zn-3cqmHsdtN!f?~w+(t+I`*7GQA#EQC^lUA9(i6=i1PqSAc|ha91I%X&nXzjYaM{8$s&wEx@aVkQ6M{E2 zfzId#&r(XwUNtPcq4Ngze^+XaJA1EK-%&C9j>^9(secqe{}z>hR5CFNveMsVA)m#S zk)_%SidkY-XmMWlVnQ(mNJ>)ooszQ#vaK;!rPmGKXV7am^_F!Lz>;~{VrIO$;!#30XRhE1QqO_~#+Ux;B_D{Nk=grn z8Y0oR^4RqtcYM)7a%@B(XdbZCOqnX#fD{BQTeLvRHd(irHKq=4*jq34`6@VAQR8WG z^%)@5CXnD_T#f%@-l${>y$tfb>2LPmc{~5A82|16mH)R?&r#KKLs7xpN-D`=&Cm^R zvMA6#Ahr<3X>Q7|-qfTY)}32HkAz$_mibYV!I)u>bmjK`qwBe(>za^0Kt*HnFbSdO z1>+ryKCNxmm^)*$XfiDOF2|{-v3KKB?&!(S_Y=Ht@|ir^hLd978xuI&N{k>?(*f8H z=ClxVJK_%_z1TH0eUwm2J+2To7FK4o+n_na)&#VLn1m;!+CX+~WC+qg1?PA~KdOlC zW)C@pw75_xoe=w7i|r9KGIvQ$+3K?L{7TGHwrQM{dCp=Z*D}3kX7E-@sZnup!BImw z*T#a=+WcTwL78exTgBn|iNE3#EsOorO z*kt)gDzHiPt07fmisA2LWN?AymkdqTgr?=loT7z@d`wnlr6oN}@o|&JX!yPzC*Y8d zu6kWlTzE1)ckyBn+0Y^HMN+GA$wUO_LN6W>mxCo!0?oiQvT`z$jbSEu&{UHRU0E8# z%B^wOc@S!yhMT49Y)ww(Xta^8pmPCe@eI5C*ed96)AX9<>))nKx0(sci8gwob_1}4 z0DIL&vsJ1_s%<@y%U*-eX z5rN&(zef-5G~?@r79oZGW1d!WaTqQn0F6RIOa9tJ=0(kdd{d1{<*tHT#cCvl*i>YY zH+L7jq8xZNcTUBqj(S)ztTU!TM!RQ}In*n&Gn<>(60G7}4%WQL!o>hbJqNDSGwl#H z`4k+twp0cj%PsS+NKaxslAEu9!#U3xT1|_KB6`h=PI0SW`P9GTa7caD1}vKEglV8# zjKZR`pluCW19c2fM&ZG)c3T3Um;ir3y(tSCJ7Agl6|b524dy5El{^EQBG?E61H0XY z`bqg!;zhGhyMFl&(o=JWEJ8n~z)xI}A@C0d2hQGvw7nGv)?POU@(kS1m=%`|+^ika zXl8zjS?xqW$WlO?Ewa;vF~XbybHBor$f<%I&*t$F5fynwZlTGj|IjZtVfGa7l&tK} zW>I<69w(cZLu)QIVG|M2xzW@S+70NinQzk&Y0+3WT*cC)rx~04O-^<{JohU_&HL5XdUKW!uFy|i$FB|EMu0eUyW;gsf`XfIc!Z0V zeK&*hPL}f_cX=@iv>K%S5kL;cl_$v?n(Q9f_cChk8Lq$glT|=e+T*8O4H2n<=NGmn z+2*h+v;kBvF>}&0RDS>)B{1!_*XuE8A$Y=G8w^qGMtfudDBsD5>T5SB;Qo}fSkkiV ze^K^M(UthkwrD!&*tTsu>Dacdj_q`~V%r_twr$(Ct&_dKeeXE?fA&4&yASJWJ*}~- zel=@W)tusynfC_YqH4ll>4Eg`Xjs5F7Tj>tTLz<0N3)X<1px_d2yUY>X~y>>93*$) z5PuNMQLf9Bu?AAGO~a_|J2akO1M*@VYN^VxvP0F$2>;Zb9;d5Yfd8P%oFCCoZE$ z4#N$^J8rxYjUE_6{T%Y>MmWfHgScpuGv59#4u6fpTF%~KB^Ae`t1TD_^Ud#DhL+Dm zbY^VAM#MrAmFj{3-BpVSWph2b_Y6gCnCAombVa|1S@DU)2r9W<> zT5L8BB^er3zxKt1v(y&OYk!^aoQisqU zH(g@_o)D~BufUXcPt!Ydom)e|aW{XiMnes2z&rE?og>7|G+tp7&^;q?Qz5S5^yd$i z8lWr4g5nctBHtigX%0%XzIAB8U|T6&JsC4&^hZBw^*aIcuNO47de?|pGXJ4t}BB`L^d8tD`H`i zqrP8?#J@8T#;{^B!KO6J=@OWKhAerih(phML`(Rg7N1XWf1TN>=Z3Do{l_!d~DND&)O)D>ta20}@Lt77qSnVsA7>)uZAaT9bsB>u&aUQl+7GiY2|dAEg@%Al3i316y;&IhQL^8fw_nwS>f60M_-m+!5)S_6EPM7Y)(Nq^8gL7(3 zOiot`6Wy6%vw~a_H?1hLVzIT^i1;HedHgW9-P#)}Y6vF%C=P70X0Tk^z9Te@kPILI z_(gk!k+0%CG)%!WnBjjw*kAKs_lf#=5HXC00s-}oM-Q1aXYLj)(1d!_a7 z*Gg4Fe6F$*ujVjI|79Z5+Pr`us%zW@ln++2l+0hsngv<{mJ%?OfSo_3HJXOCys{Ug z00*YR-(fv<=&%Q!j%b-_ppA$JsTm^_L4x`$k{VpfLI(FMCap%LFAyq;#ns5bR7V+x zO!o;c5y~DyBPqdVQX)8G^G&jWkBy2|oWTw>)?5u}SAsI$RjT#)lTV&Rf8;>u*qXnb z8F%Xb=7#$m)83z%`E;49)t3fHInhtc#kx4wSLLms!*~Z$V?bTyUGiS&m>1P(952(H zuHdv=;o*{;5#X-uAyon`hP}d#U{uDlV?W?_5UjJvf%11hKwe&(&9_~{W)*y1nR5f_ z!N(R74nNK`y8>B!0Bt_Vr!;nc3W>~RiKtGSBkNlsR#-t^&;$W#)f9tTlZz>n*+Fjz z3zXZ;jf(sTM(oDzJt4FJS*8c&;PLTW(IQDFs_5QPy+7yhi1syPCarvqrHFcf&yTy)^O<1EBx;Ir`5W{TIM>{8w&PB>ro4;YD<5LF^TjTb0!zAP|QijA+1Vg>{Afv^% zmrkc4o6rvBI;Q8rj4*=AZacy*n8B{&G3VJc)so4$XUoie0)vr;qzPZVbb<#Fc=j+8CGBWe$n|3K& z_@%?{l|TzKSlUEO{U{{%Fz_pVDxs7i9H#bnbCw7@4DR=}r_qV!Zo~CvD4ZI*+j3kO zW6_=|S`)(*gM0Z;;}nj`73OigF4p6_NPZQ-Od~e$c_);;4-7sR>+2u$6m$Gf%T{aq zle>e3(*Rt(TPD}03n5)!Ca8Pu!V}m6v0o1;5<1h$*|7z|^(3$Y&;KHKTT}hV056wuF0Xo@mK-52~r=6^SI1NC%c~CC?n>yX6wPTgiWYVz!Sx^atLby9YNn1Rk{g?|pJaxD4|9cUf|V1_I*w zzxK)hRh9%zOl=*$?XUjly5z8?jPMy%vEN)f%T*|WO|bp5NWv@B(K3D6LMl!-6dQg0 zXNE&O>Oyf%K@`ngCvbGPR>HRg5!1IV$_}m@3dWB7x3t&KFyOJn9pxRXCAzFr&%37wXG;z^xaO$ekR=LJG ztIHpY8F5xBP{mtQidqNRoz= z@){+N3(VO5bD+VrmS^YjG@+JO{EOIW)9=F4v_$Ed8rZtHvjpiEp{r^c4F6Ic#ChlC zJX^DtSK+v(YdCW)^EFcs=XP7S>Y!4=xgmv>{S$~@h=xW-G4FF9?I@zYN$e5oF9g$# zb!eVU#J+NjLyX;yb)%SY)xJdvGhsnE*JEkuOVo^k5PyS=o#vq!KD46UTW_%R=Y&0G zFj6bV{`Y6)YoKgqnir2&+sl+i6foAn-**Zd1{_;Zb7Ki=u394C5J{l^H@XN`_6XTKY%X1AgQM6KycJ+= zYO=&t#5oSKB^pYhNdzPgH~aEGW2=ec1O#s-KG z71}LOg@4UEFtp3GY1PBemXpNs6UK-ax*)#$J^pC_me;Z$Je(OqLoh|ZrW*mAMBFn< zHttjwC&fkVfMnQeen8`Rvy^$pNRFVaiEN4Pih*Y3@jo!T0nsClN)pdrr9AYLcZxZ| zJ5Wlj+4q~($hbtuY zVQ7hl>4-+@6g1i`1a)rvtp-;b0>^`Dloy(#{z~ytgv=j4q^Kl}wD>K_Y!l~ zp(_&7sh`vfO(1*MO!B%<6E_bx1)&s+Ae`O)a|X=J9y~XDa@UB`m)`tSG4AUhoM=5& znWoHlA-(z@3n0=l{E)R-p8sB9XkV zZ#D8wietfHL?J5X0%&fGg@MH~(rNS2`GHS4xTo7L$>TPme+Is~!|79=^}QbPF>m%J zFMkGzSndiPO|E~hrhCeo@&Ea{M(ieIgRWMf)E}qeTxT8Q#g-!Lu*x$v8W^M^>?-g= zwMJ$dThI|~M06rG$Sv@C@tWR>_YgaG&!BAbkGggVQa#KdtDB)lMLNVLN|51C@F^y8 zCRvMB^{GO@j=cHfmy}_pCGbP%xb{pNN>? z?7tBz$1^zVaP|uaatYaIN+#xEN4jBzwZ|YI_)p(4CUAz1ZEbDk>J~Y|63SZaak~#0 zoYKruYsWHoOlC1(MhTnsdUOwQfz5p6-D0}4;DO$B;7#M{3lSE^jnTT;ns`>!G%i*F?@pR1JO{QTuD0U+~SlZxcc8~>IB{)@8p`P&+nDxNj`*gh|u?yrv$phpQcW)Us)bi`kT%qLj(fi{dWRZ%Es2!=3mI~UxiW0$-v3vUl?#g{p6eF zMEUAqo5-L0Ar(s{VlR9g=j7+lt!gP!UN2ICMokAZ5(Agd>})#gkA2w|5+<%-CuEP# zqgcM}u@3(QIC^Gx<2dbLj?cFSws_f3e%f4jeR?4M^M3cx1f+Qr6ydQ>n)kz1s##2w zk}UyQc+Z5G-d-1}{WzjkLXgS-2P7auWSJ%pSnD|Uivj5u!xk0 z_^-N9r9o;(rFDt~q1PvE#iJZ_f>J3gcP$)SOqhE~pD2|$=GvpL^d!r z6u=sp-CrMoF7;)}Zd7XO4XihC4ji?>V&(t^?@3Q&t9Mx=qex6C9d%{FE6dvU6%d94 zIE;hJ1J)cCqjv?F``7I*6bc#X)JW2b4f$L^>j{*$R`%5VHFi*+Q$2;nyieduE}qdS{L8y8F08yLs?w}{>8>$3236T-VMh@B zq-nujsb_1aUv_7g#)*rf9h%sFj*^mIcImRV*k~Vmw;%;YH(&ylYpy!&UjUVqqtfG` zox3esju?`unJJA_zKXRJP)rA3nXc$m^{S&-p|v|-0x9LHJm;XIww7C#R$?00l&Yyj z=e}gKUOpsImwW?N)+E(awoF@HyP^EhL+GlNB#k?R<2>95hz!h9sF@U20DHSB3~WMa zk90+858r@-+vWwkawJ)8ougd(i#1m3GLN{iSTylYz$brAsP%=&m$mQQrH$g%3-^VR zE%B`Vi&m8f3T~&myTEK28BDWCVzfWir1I?03;pX))|kY5ClO^+bae z*7E?g=3g7EiisYOrE+lA)2?Ln6q2*HLNpZEWMB|O-JI_oaHZB%CvYB(%=tU= zE*OY%QY58fW#RG5=gm0NR#iMB=EuNF@)%oZJ}nmm=tsJ?eGjia{e{yuU0l3{d^D@)kVDt=1PE)&tf_hHC%0MB znL|CRCPC}SeuVTdf>-QV70`0(EHizc21s^sU>y%hW0t!0&y<7}Wi-wGy>m%(-jsDj zP?mF|>p_K>liZ6ZP(w5(|9Ga%>tLgb$|doDDfkdW>Z z`)>V2XC?NJT26mL^@ zf+IKr27TfM!UbZ@?zRddC7#6ss1sw%CXJ4FWC+t3lHZupzM77m^=9 z&(a?-LxIq}*nvv)y?27lZ{j zifdl9hyJudyP2LpU$-kXctshbJDKS{WfulP5Dk~xU4Le4c#h^(YjJit4#R8_khheS z|8(>2ibaHES4+J|DBM7I#QF5u-*EdN{n=Kt@4Zt?@Tv{JZA{`4 zU#kYOv{#A&gGPwT+$Ud}AXlK3K7hYzo$(fBSFjrP{QQ zeaKg--L&jh$9N}`pu{Bs>?eDFPaWY4|9|foN%}i;3%;@4{dc+iw>m}{3rELqH21G! z`8@;w-zsJ1H(N3%|1B@#ioLOjib)j`EiJqPQVSbPSPVHCj6t5J&(NcWzBrzCiDt{4 zdlPAUKldz%6x5II1H_+jv)(xVL+a;P+-1hv_pM>gMRr%04@k;DTokASSKKhU1Qms| zrWh3a!b(J3n0>-tipg{a?UaKsP7?+|@A+1WPDiQIW1Sf@qDU~M_P65_s}7(gjTn0X zucyEm)o;f8UyshMy&>^SC3I|C6jR*R_GFwGranWZe*I>K+0k}pBuET&M~ z;Odo*ZcT?ZpduHyrf8E%IBFtv;JQ!N_m>!sV6ly$_1D{(&nO~w)G~Y`7sD3#hQk%^ zp}ucDF_$!6DAz*PM8yE(&~;%|=+h(Rn-=1Wykas_-@d&z#=S}rDf`4w(rVlcF&lF! z=1)M3YVz7orwk^BXhslJ8jR);sh^knJW(Qmm(QdSgIAIdlN4Te5KJisifjr?eB{FjAX1a0AB>d?qY4Wx>BZ8&}5K0fA+d{l8 z?^s&l8#j7pR&ijD?0b%;lL9l$P_mi2^*_OL+b}4kuLR$GAf85sOo02?Y#90}CCDiS zZ%rbCw>=H~CBO=C_JVV=xgDe%b4FaEFtuS7Q1##y686r%F6I)s-~2(}PWK|Z8M+Gu zl$y~5@#0Ka%$M<&Cv%L`a8X^@tY&T7<0|(6dNT=EsRe0%kp1Qyq!^43VAKYnr*A5~ zsI%lK1ewqO;0TpLrT9v}!@vJK{QoVa_+N4FYT#h?Y8rS1S&-G+m$FNMP?(8N`MZP zels(*?kK{{^g9DOzkuZXJ2;SrOQsp9T$hwRB1(phw1c7`!Q!by?Q#YsSM#I12RhU{$Q+{xj83axHcftEc$mNJ8_T7A-BQc*k(sZ+~NsO~xAA zxnbb%dam_fZlHvW7fKXrB~F&jS<4FD2FqY?VG?ix*r~MDXCE^WQ|W|WM;gsIA4lQP zJ2hAK@CF*3*VqPr2eeg6GzWFlICi8S>nO>5HvWzyZTE)hlkdC_>pBej*>o0EOHR|) z$?};&I4+_?wvL*g#PJ9)!bc#9BJu1(*RdNEn>#Oxta(VWeM40ola<0aOe2kSS~{^P zDJBd}0L-P#O-CzX*%+$#v;(x%<*SPgAje=F{Zh-@ucd2DA(yC|N_|ocs*|-!H%wEw z@Q!>siv2W;C^^j^59OAX03&}&D*W4EjCvfi(ygcL#~t8XGa#|NPO+*M@Y-)ctFA@I z-p7npT1#5zOLo>7q?aZpCZ=iecn3QYklP;gF0bq@>oyBq94f6C=;Csw3PkZ|5q=(c zfs`aw?II0e(h=|7o&T+hq&m$; zBrE09Twxd9BJ2P+QPN}*OdZ-JZV7%av@OM7v!!NL8R;%WFq*?{9T3{ct@2EKgc8h) zMxoM$SaF#p<`65BwIDfmXG6+OiK0e)`I=!A3E`+K@61f}0e z!2a*FOaDrOe>U`q%K!QN`&=&0C~)CaL3R4VY(NDt{Xz(Xpqru5=r#uQN1L$Je1*dkdqQ*=lofQaN%lO!<5z9ZlHgxt|`THd>2 zsWfU$9=p;yLyJyM^t zS2w9w?Bpto`@H^xJpZDKR1@~^30Il6oFGfk5%g6w*C+VM)+%R@gfIwNprOV5{F^M2 zO?n3DEzpT+EoSV-%OdvZvNF+pDd-ZVZ&d8 zKeIyrrfPN=EcFRCPEDCVflX#3-)Ik_HCkL(ejmY8vzcf-MTA{oHk!R2*36`O68$7J zf}zJC+bbQk--9Xm!u#lgLvx8TXx2J258E5^*IZ(FXMpq$2LUUvhWQPs((z1+2{Op% z?J}9k5^N=z;7ja~zi8a_-exIqWUBJwohe#4QJ`|FF*$C{lM18z^#hX6!5B8KAkLUX ziP=oti-gpV(BsLD{0(3*dw}4JxK23Y7M{BeFPucw!sHpY&l%Ws4pSm`+~V7;bZ%Dx zeI)MK=4vC&5#;2MT7fS?^ch9?2;%<8Jlu-IB&N~gg8t;6S-#C@!NU{`p7M8@2iGc& zg|JPg%@gCoCQ&s6JvDU&`X2S<57f(k8nJ1wvBu{8r?;q3_kpZZ${?|( z+^)UvR33sjSd)aT!UPkA;ylO6{aE3MQa{g%Mcf$1KONcjO@&g5zPHWtzM1rYC{_K> zgQNcs<{&X{OA=cEWw5JGqpr0O>x*Tfak2PE9?FuWtz^DDNI}rwAaT0(bdo-<+SJ6A z&}S%boGMWIS0L}=S>|-#kRX;e^sUsotry(MjE|3_9duvfc|nwF#NHuM-w7ZU!5ei8 z6Mkf>2)WunY2eU@C-Uj-A zG(z0Tz2YoBk>zCz_9-)4a>T46$(~kF+Y{#sA9MWH%5z#zNoz)sdXq7ZR_+`RZ%0(q zC7&GyS_|BGHNFl8Xa%@>iWh%Gr?=J5<(!OEjauj5jyrA-QXBjn0OAhJJ9+v=!LK`` z@g(`^*84Q4jcDL`OA&ZV60djgwG`|bcD*i50O}Q{9_noRg|~?dj%VtKOnyRs$Uzqg z191aWoR^rDX#@iSq0n z?9Sg$WSRPqSeI<}&n1T3!6%Wj@5iw5`*`Btni~G=&;J+4`7g#OQTa>u`{4ZZ(c@s$ zK0y;ySOGD-UTjREKbru{QaS>HjN<2)R%Nn-TZiQ(Twe4p@-saNa3~p{?^V9Nixz@a zykPv~<@lu6-Ng9i$Lrk(xi2Tri3q=RW`BJYOPC;S0Yly%77c727Yj-d1vF!Fuk{Xh z)lMbA69y7*5ufET>P*gXQrxsW+ zz)*MbHZv*eJPEXYE<6g6_M7N%#%mR{#awV3i^PafNv(zyI)&bH?F}2s8_rR(6%!V4SOWlup`TKAb@ee>!9JKPM=&8g#BeYRH9FpFybxBXQI2|g}FGJfJ+ zY-*2hB?o{TVL;Wt_ek;AP5PBqfDR4@Z->_182W z{P@Mc27j6jE*9xG{R$>6_;i=y{qf(c`5w9fa*`rEzX6t!KJ(p1H|>J1pC-2zqWENF zmm=Z5B4u{cY2XYl(PfrInB*~WGWik3@1oRhiMOS|D;acnf-Bs(QCm#wR;@Vf!hOPJ zgjhDCfDj$HcyVLJ=AaTbQ{@vIv14LWWF$=i-BDoC11}V;2V8A`S>_x)vIq44-VB-v z*w-d}$G+Ql?En8j!~ZkCpQ$|cA0|+rrY>tiCeWxkRGPoarxlGU2?7%k#F693RHT24 z-?JsiXlT2PTqZqNb&sSc>$d;O4V@|b6VKSWQb~bUaWn1Cf0+K%`Q&Wc<>mQ>*iEGB zbZ;aYOotBZ{vH3y<0A*L0QVM|#rf*LIsGx(O*-7)r@yyBIzJnBFSKBUSl1e|8lxU* zzFL+YDVVkIuzFWeJ8AbgN&w(4-7zbiaMn{5!JQXu)SELk*CNL+Fro|2v|YO)1l15t zs(0^&EB6DPMyaqvY>=KL>)tEpsn;N5Q#yJj<9}ImL((SqErWN3Q=;tBO~ExTCs9hB z2E$7eN#5wX4<3m^5pdjm#5o>s#eS_Q^P)tm$@SawTqF*1dj_i#)3};JslbLKHXl_N z)Fxzf>FN)EK&Rz&*|6&%Hs-^f{V|+_vL1S;-1K-l$5xiC@}%uDuwHYhmsV?YcOUlk zOYkG5v2+`+UWqpn0aaaqrD3lYdh0*!L`3FAsNKu=Q!vJu?Yc8n|CoYyDo_`r0mPoo z8>XCo$W4>l(==h?2~PoRR*kEe)&IH{1sM41mO#-36`02m#nTX{r*r`Q5rZ2-sE|nA zhnn5T#s#v`52T5|?GNS`%HgS2;R(*|^egNPDzzH_z^W)-Q98~$#YAe)cEZ%vge965AS_am#DK#pjPRr-!^za8>`kksCAUj(Xr*1NW5~e zpypt_eJpD&4_bl_y?G%>^L}=>xAaV>KR6;^aBytqpiHe%!j;&MzI_>Sx7O%F%D*8s zSN}cS^<{iiK)=Ji`FpO#^zY!_|D)qeRNAtgmH)m;qC|mq^j(|hL`7uBz+ULUj37gj zksdbnU+LSVo35riSX_4z{UX=%n&}7s0{WuZYoSfwAP`8aKN9P@%e=~1`~1ASL-z%# zw>DO&ixr}c9%4InGc*_y42bdEk)ZdG7-mTu0bD@_vGAr*NcFoMW;@r?@LUhRI zCUJgHb`O?M3!w)|CPu~ej%fddw20lod?Ufp8Dmt0PbnA0J%KE^2~AIcnKP()025V> zG>noSM3$5Btmc$GZoyP^v1@Poz0FD(6YSTH@aD0}BXva?LphAiSz9f&Y(aDAzBnUh z?d2m``~{z;{}kZJ>a^wYI?ry(V9hIoh;|EFc0*-#*`$T0DRQ1;WsqInG;YPS+I4{g zJGpKk%%Sdc5xBa$Q^_I~(F97eqDO7AN3EN0u)PNBAb+n+ zWBTxQx^;O9o0`=g+Zrt_{lP!sgWZHW?8bLYS$;1a@&7w9rD9|Ge;Gb?sEjFoF9-6v z#!2)t{DMHZ2@0W*fCx;62d#;jouz`R5Y(t{BT=$N4yr^^o$ON8d{PQ=!O zX17^CrdM~7D-;ZrC!||<+FEOxI_WI3CA<35va%4v>gc zEX-@h8esj=a4szW7x{0g$hwoWRQG$yK{@3mqd-jYiVofJE!Wok1* znV7Gm&Ssq#hFuvj1sRyHg(6PFA5U*Q8Rx>-blOs=lb`qa{zFy&n4xY;sd$fE+<3EI z##W$P9M{B3c3Si9gw^jlPU-JqD~Cye;wr=XkV7BSv#6}DrsXWFJ3eUNrc%7{=^sP> zrp)BWKA9<}^R9g!0q7yWlh;gr_TEOD|#BmGq<@IV;ueg+D2}cjpp+dPf&Q(36sFU&K8}hA85U61faW&{ zlB`9HUl-WWCG|<1XANN3JVAkRYvr5U4q6;!G*MTdSUt*Mi=z_y3B1A9j-@aK{lNvx zK%p23>M&=KTCgR!Ee8c?DAO2_R?B zkaqr6^BSP!8dHXxj%N1l+V$_%vzHjqvu7p@%Nl6;>y*S}M!B=pz=aqUV#`;h%M0rU zHfcog>kv3UZAEB*g7Er@t6CF8kHDmKTjO@rejA^ULqn!`LwrEwOVmHx^;g|5PHm#B zZ+jjWgjJ!043F+&#_;D*mz%Q60=L9Ove|$gU&~As5^uz@2-BfQ!bW)Khn}G+Wyjw- z19qI#oB(RSNydn0t~;tAmK!P-d{b-@@E5|cdgOS#!>%#Rj6ynkMvaW@37E>@hJP^8 z2zk8VXx|>#R^JCcWdBCy{0nPmYFOxN55#^-rlqobe0#L6)bi?E?SPymF*a5oDDeSd zO0gx?#KMoOd&G(2O@*W)HgX6y_aa6iMCl^~`{@UR`nMQE`>n_{_aY5nA}vqU8mt8H z`oa=g0SyiLd~BxAj2~l$zRSDHxvDs;I4>+M$W`HbJ|g&P+$!U7-PHX4RAcR0szJ*( ze-417=bO2q{492SWrqDK+L3#ChUHtz*@MP)e^%@>_&#Yk^1|tv@j4%3T)diEX zATx4K*hcO`sY$jk#jN5WD<=C3nvuVsRh||qDHnc~;Kf59zr0;c7VkVSUPD%NnnJC_ zl3F^#f_rDu8l}l8qcAz0FFa)EAt32IUy_JLIhU_J^l~FRH&6-ivSpG2PRqzDdMWft>Zc(c)#tb%wgmWN%>IOPm zZi-noqS!^Ftb81pRcQi`X#UhWK70hy4tGW1mz|+vI8c*h@ zfFGJtW3r>qV>1Z0r|L>7I3un^gcep$AAWfZHRvB|E*kktY$qQP_$YG60C@X~tTQjB3%@`uz!qxtxF+LE!+=nrS^07hn` zEgAp!h|r03h7B!$#OZW#ACD+M;-5J!W+{h|6I;5cNnE(Y863%1(oH}_FTW})8zYb$7czP zg~Szk1+_NTm6SJ0MS_|oSz%e(S~P-&SFp;!k?uFayytV$8HPwuyELSXOs^27XvK-D zOx-Dl!P|28DK6iX>p#Yb%3`A&CG0X2S43FjN%IB}q(!hC$fG}yl1y9W&W&I@KTg6@ zK^kpH8=yFuP+vI^+59|3%Zqnb5lTDAykf z9S#X`3N(X^SpdMyWQGOQRjhiwlj!0W-yD<3aEj^&X%=?`6lCy~?`&WSWt z?U~EKFcCG_RJ(Qp7j=$I%H8t)Z@6VjA#>1f@EYiS8MRHZphp zMA_5`znM=pzUpBPO)pXGYpQ6gkine{6u_o!P@Q+NKJ}k!_X7u|qfpAyIJb$_#3@wJ z<1SE2Edkfk9C!0t%}8Yio09^F`YGzpaJHGk*-ffsn85@)%4@`;Fv^8q(-Wk7r=Q8p zT&hD`5(f?M{gfzGbbwh8(}G#|#fDuk7v1W)5H9wkorE0ZZjL0Q1=NRGY>zwgfm81DdoaVwNH;or{{eSyybt)m<=zXoA^RALYG-2t zouH|L*BLvmm9cdMmn+KGopyR@4*=&0&4g|FLoreZOhRmh=)R0bg~ zT2(8V_q7~42-zvb)+y959OAv!V$u(O3)%Es0M@CRFmG{5sovIq4%8Ahjk#*5w{+)+ zMWQoJI_r$HxL5km1#6(e@{lK3Udc~n0@g`g$s?VrnQJ$!oPnb?IHh-1qA`Rz$)Ai< z6w$-MJW-gKNvOhL+XMbE7&mFt`x1KY>k4(!KbbpZ`>`K@1J<(#vVbjx@Z@(6Q}MF# zMnbr-f55(cTa^q4+#)=s+ThMaV~E`B8V=|W_fZWDwiso8tNMTNse)RNBGi=gVwgg% zbOg8>mbRN%7^Um-7oj4=6`$|(K7!+t^90a{$18Z>}<#!bm%ZEFQ{X(yBZMc>lCz0f1I2w9Sq zuGh<9<=AO&g6BZte6hn>Qmvv;Rt)*cJfTr2=~EnGD8P$v3R|&1RCl&7)b+`=QGapi zPbLg_pxm`+HZurtFZ;wZ=`Vk*do~$wB zxoW&=j0OTbQ=Q%S8XJ%~qoa3Ea|au5o}_(P;=!y-AjFrERh%8la!z6Fn@lR?^E~H12D?8#ht=1F;7@o4$Q8GDj;sSC%Jfn01xgL&%F2 zwG1|5ikb^qHv&9hT8w83+yv&BQXOQyMVJSBL(Ky~p)gU3#%|blG?IR9rP^zUbs7rOA0X52Ao=GRt@C&zlyjNLv-} z9?*x{y(`509qhCV*B47f2hLrGl^<@SuRGR!KwHei?!CM10Tq*YDIoBNyRuO*>3FU? zHjipIE#B~y3FSfOsMfj~F9PNr*H?0oHyYB^G(YyNh{SxcE(Y-`x5jFMKb~HO*m+R% zrq|ic4fzJ#USpTm;X7K+E%xsT_3VHKe?*uc4-FsILUH;kL>_okY(w`VU*8+l>o>Jm ziU#?2^`>arnsl#)*R&nf_%>A+qwl%o{l(u)M?DK1^mf260_oteV3#E_>6Y4!_hhVD zM8AI6MM2V*^_M^sQ0dmHu11fy^kOqXqzpr?K$`}BKWG`=Es(9&S@K@)ZjA{lj3ea7_MBP zk(|hBFRjHVMN!sNUkrB;(cTP)T97M$0Dtc&UXSec<+q?y>5=)}S~{Z@ua;1xt@=T5 zI7{`Z=z_X*no8s>mY;>BvEXK%b`a6(DTS6t&b!vf_z#HM{Uoy_5fiB(zpkF{})ruka$iX*~pq1ZxD?q68dIo zIZSVls9kFGsTwvr4{T_LidcWtt$u{kJlW7moRaH6+A5hW&;;2O#$oKyEN8kx`LmG)Wfq4ykh+q{I3|RfVpkR&QH_x;t41Uw z`P+tft^E2B$domKT@|nNW`EHwyj>&}K;eDpe z1bNOh=fvIfk`&B61+S8ND<(KC%>y&?>opCnY*r5M+!UrWKxv0_QvTlJc>X#AaI^xo zaRXL}t5Ej_Z$y*|w*$6D+A?Lw-CO-$itm^{2Ct82-<0IW)0KMNvJHgBrdsIR0v~=H z?n6^}l{D``Me90`^o|q!olsF?UX3YSq^6Vu>Ijm>>PaZI8G@<^NGw{Cx&%|PwYrfw zR!gX_%AR=L3BFsf8LxI|K^J}deh0ZdV?$3r--FEX`#INxsOG6_=!v)DI>0q|BxT)z z-G6kzA01M?rba+G_mwNMQD1mbVbNTWmBi*{s_v_Ft9m2Avg!^78(QFu&n6mbRJ2bA zv!b;%yo{g*9l2)>tsZJOOp}U~8VUH`}$ z8p_}t*XIOehezolNa-a2x0BS})Y9}&*TPgua{Ewn-=wVrmJUeU39EKx+%w%=ixQWK zDLpwaNJs65#6o7Ln7~~X+p_o2BR1g~VCfxLzxA{HlWAI6^H;`juI=&r1jQrUv_q0Z z1Ja-tjdktrrP>GOC*#p?*xfQU5MqjMsBe!9lh(u8)w$e@Z|>aUHI5o;MGw*|Myiz3 z-f0;pHg~Q#%*Kx8MxH%AluVXjG2C$)WL-K63@Q`#y9_k_+}eR(x4~dp7oV-ek0H>I zgy8p#i4GN{>#v=pFYUQT(g&b$OeTy-X_#FDgNF8XyfGY6R!>inYn8IR2RDa&O!(6< znXs{W!bkP|s_YI*Yx%4stI`=ZO45IK6rBs`g7sP40ic}GZ58s?Mc$&i`kq_tfci>N zIHrC0H+Qpam1bNa=(`SRKjixBTtm&e`j9porEci!zdlg1RI0Jw#b(_Tb@RQK1Zxr_ z%7SUeH6=TrXt3J@js`4iDD0=IoHhK~I7^W8^Rcp~Yaf>2wVe|Hh1bUpX9ATD#moByY57-f2Ef1TP^lBi&p5_s7WGG9|0T}dlfxOx zXvScJO1Cnq`c`~{Dp;{;l<-KkCDE+pmexJkd}zCgE{eF=)K``-qC~IT6GcRog_)!X z?fK^F8UDz$(zFUrwuR$qro5>qqn>+Z%<5>;_*3pZ8QM|yv9CAtrAx;($>4l^_$_-L z*&?(77!-=zvnCVW&kUcZMb6;2!83si518Y%R*A3JZ8Is|kUCMu`!vxDgaWjs7^0j( ziTaS4HhQ)ldR=r)_7vYFUr%THE}cPF{0H45FJ5MQW^+W>P+eEX2kLp3zzFe*-pFVA zdDZRybv?H|>`9f$AKVjFWJ=wegO7hOOIYCtd?Vj{EYLT*^gl35|HQ`R=ti+ADm{jyQE7K@kdjuqJhWVSks>b^ zxha88-h3s;%3_5b1TqFCPTxVjvuB5U>v=HyZ$?JSk+&I%)M7KE*wOg<)1-Iy)8-K! z^XpIt|0ibmk9RtMmlUd7#Ap3Q!q9N4atQy)TmrhrFhfx1DAN`^vq@Q_SRl|V z#lU<~n67$mT)NvHh`%als+G-)x1`Y%4Bp*6Un5Ri9h=_Db zA-AdP!f>f0m@~>7X#uBM?diI@)Egjuz@jXKvm zJo+==juc9_<;CqeRaU9_Mz@;3e=E4=6TK+c`|uu#pIqhSyNm`G(X)&)B`8q0RBv#> z`gGlw(Q=1Xmf55VHj%C#^1lpc>LY8kfA@|rlC1EA<1#`iuyNO z(=;irt{_&K=i4)^x%;U(Xv<)+o=dczC5H3W~+e|f~{*ucxj@{Yi-cw^MqYr3fN zF5D+~!wd$#al?UfMnz(@K#wn`_5na@rRr8XqN@&M&FGEC@`+OEv}sI1hw>Up0qAWf zL#e4~&oM;TVfjRE+10B_gFlLEP9?Q-dARr3xi6nQqnw>k-S;~b z;!0s2VS4}W8b&pGuK=7im+t(`nz@FnT#VD|!)eQNp-W6)@>aA+j~K*H{$G`y2|QHY z|Hmy+CR@#jWY4~)lr1qBJB_RfHJFfP<}pK5(#ZZGSqcpyS&}01LnTWk5fzmXMGHkJ zTP6L^B+uj;lmB_W<~4=${+v0>z31M!-_O@o-O9GyW)j_mjx}!0@br_LE-7SIuPP84 z;5=O(U*g_um0tyG|61N@d9lEuOeiRd+#NY^{nd5;-CVlw&Ap7J?qwM^?E29wvS}2d zbzar4Fz&RSR(-|s!Z6+za&Z zY#D<5q_JUktIzvL0)yq_kLWG6DO{ri=?c!y!f(Dk%G{8)k`Gym%j#!OgXVDD3;$&v@qy#ISJfp=Vm>pls@9-mapVQChAHHd-x+OGx)(*Yr zC1qDUTZ6mM(b_hi!TuFF2k#8uI2;kD70AQ&di$L*4P*Y-@p`jdm%_c3f)XhYD^6M8&#Y$ZpzQMcR|6nsH>b=*R_Von!$BTRj7yGCXokoAQ z&ANvx0-Epw`QIEPgI(^cS2f(Y85yV@ygI{ewyv5Frng)e}KCZF7JbR(&W618_dcEh(#+^zZFY;o<815<5sOHQdeax9_!PyM&;{P zkBa5xymca0#)c#tke@3KNEM8a_mT&1gm;p&&JlMGH(cL(b)BckgMQ^9&vRwj!~3@l zY?L5}=Jzr080OGKb|y`ee(+`flQg|!lo6>=H)X4`$Gz~hLmu2a%kYW_Uu8x09Pa0J zKZ`E$BKJ=2GPj_3l*TEcZ*uYRr<*J^#5pILTT;k_cgto1ZL-%slyc16J~OH-(RgDA z%;EjEnoUkZ&acS{Q8`{i6T5^nywgqQI5bDIymoa7CSZG|WWVk>GM9)zy*bNih|QIm z%0+(Nnc*a_xo;$=!HQYaapLms>J1ToyjtFByY`C2H1wT#178#4+|{H0BBqtCdd$L% z_3Hc60j@{t9~MjM@LBalR&6@>B;9?r<7J~F+WXyYu*y3?px*=8MAK@EA+jRX8{CG?GI-< z54?Dc9CAh>QTAvyOEm0^+x;r2BWX|{3$Y7)L5l*qVE*y0`7J>l2wCmW zL1?|a`pJ-l{fb_N;R(Z9UMiSj6pQjOvQ^%DvhIJF!+Th7jO2~1f1N+(-TyCFYQZYw z4)>7caf^Ki_KJ^Zx2JUb z&$3zJy!*+rCV4%jqwyuNY3j1ZEiltS0xTzd+=itTb;IPYpaf?8Y+RSdVdpacB(bVQ zC(JupLfFp8y43%PMj2}T|VS@%LVp>hv4Y!RPMF?pp8U_$xCJ)S zQx!69>bphNTIb9yn*_yfj{N%bY)t{L1cs8<8|!f$;UQ*}IN=2<6lA;x^(`8t?;+ST zh)z4qeYYgZkIy{$4x28O-pugO&gauRh3;lti9)9Pvw+^)0!h~%m&8Q!AKX%urEMnl z?yEz?g#ODn$UM`+Q#$Q!6|zsq_`dLO5YK-6bJM6ya>}H+vnW^h?o$z;V&wvuM$dR& zeEq;uUUh$XR`TWeC$$c&Jjau2it3#%J-y}Qm>nW*s?En?R&6w@sDXMEr#8~$=b(gk zwDC3)NtAP;M2BW_lL^5ShpK$D%@|BnD{=!Tq)o(5@z3i7Z){} zGr}Exom_qDO{kAVkZ*MbLNHE666Kina#D{&>Jy%~w7yX$oj;cYCd^p9zy z8*+wgSEcj$4{WxKmCF(5o7U4jqwEvO&dm1H#7z}%VXAbW&W24v-tS6N3}qrm1OnE)fUkoE8yMMn9S$?IswS88tQWm4#Oid#ckgr6 zRtHm!mfNl-`d>O*1~d7%;~n+{Rph6BBy^95zqI{K((E!iFQ+h*C3EsbxNo_aRm5gj zKYug($r*Q#W9`p%Bf{bi6;IY0v`pB^^qu)gbg9QHQ7 zWBj(a1YSu)~2RK8Pi#C>{DMlrqFb9e_RehEHyI{n?e3vL_}L>kYJC z_ly$$)zFi*SFyNrnOt(B*7E$??s67EO%DgoZL2XNk8iVx~X_)o++4oaK1M|ou73vA0K^503j@uuVmLcHH4ya-kOIDfM%5%(E z+Xpt~#7y2!KB&)PoyCA+$~DXqxPxxALy!g-O?<9+9KTk4Pgq4AIdUkl`1<1#j^cJg zgU3`0hkHj_jxV>`Y~%LAZl^3o0}`Sm@iw7kwff{M%VwtN)|~!p{AsfA6vB5UolF~d zHWS%*uBDt<9y!9v2Xe|au&1j&iR1HXCdyCjxSgG*L{wmTD4(NQ=mFjpa~xooc6kju z`~+d{j7$h-;HAB04H!Zscu^hZffL#9!p$)9>sRI|Yovm)g@F>ZnosF2EgkU3ln0bR zTA}|+E(tt)!SG)-bEJi_0m{l+(cAz^pi}`9=~n?y&;2eG;d9{M6nj>BHGn(KA2n|O zt}$=FPq!j`p&kQ8>cirSzkU0c08%8{^Qyqi-w2LoO8)^E7;;I1;HQ6B$u0nNaX2CY zSmfi)F`m94zL8>#zu;8|{aBui@RzRKBlP1&mfFxEC@%cjl?NBs`cr^nm){>;$g?rhKr$AO&6qV_Wbn^}5tfFBry^e1`%du2~o zs$~dN;S_#%iwwA_QvmMjh%Qo?0?rR~6liyN5Xmej8(*V9ym*T`xAhHih-v$7U}8=dfXi2i*aAB!xM(Xekg*ix@r|ymDw*{*s0?dlVys2e)z62u1 z+k3esbJE=-P5S$&KdFp+2H7_2e=}OKDrf( z9-207?6$@f4m4B+9E*e((Y89!q?zH|mz_vM>kp*HGXldO0Hg#!EtFhRuOm$u8e~a9 z5(roy7m$Kh+zjW6@zw{&20u?1f2uP&boD}$#Zy)4o&T;vyBoqFiF2t;*g=|1=)PxB z8eM3Mp=l_obbc?I^xyLz?4Y1YDWPa+nm;O<$Cn;@ane616`J9OO2r=rZr{I_Kizyc zP#^^WCdIEp*()rRT+*YZK>V@^Zs=ht32x>Kwe zab)@ZEffz;VM4{XA6e421^h~`ji5r%)B{wZu#hD}f3$y@L0JV9f3g{-RK!A?vBUA}${YF(vO4)@`6f1 z-A|}e#LN{)(eXloDnX4Vs7eH|<@{r#LodP@Nz--$Dg_Par%DCpu2>2jUnqy~|J?eZ zBG4FVsz_A+ibdwv>mLp>P!(t}E>$JGaK$R~;fb{O3($y1ssQQo|5M;^JqC?7qe|hg zu0ZOqeFcp?qVn&Qu7FQJ4hcFi&|nR!*j)MF#b}QO^lN%5)4p*D^H+B){n8%VPUzi! zDihoGcP71a6!ab`l^hK&*dYrVYzJ0)#}xVrp!e;lI!+x+bfCN0KXwUAPU9@#l7@0& QuEJmfE|#`Dqx|px0L@K;Y5)KL literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..fce403e45e --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000000..1aa94a4269 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000000..93e3f59f13 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/healthchecker-entity/api/pom.xml b/healthchecker-entity/api/pom.xml deleted file mode 100755 index dc3f575d25..0000000000 --- a/healthchecker-entity/api/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - healthchecker-entity - 5.10-SNAPSHOT - .. - - - healthchecker-api - - - - org.slf4j - slf4j-api - provided - - - org.terracotta - connection-api - provided - - - org.terracotta - entity-client-api - provided - - - org.terracotta - packaging-support - provided - - - junit - junit - test - - - org.hamcrest - hamcrest-core - 1.3 - test - - - org.mockito - mockito-core - 2.23.4 - test - - - - diff --git a/healthchecker-entity/client-impl/pom.xml b/healthchecker-entity/client-impl/pom.xml deleted file mode 100755 index ab0f993150..0000000000 --- a/healthchecker-entity/client-impl/pom.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - healthchecker-entity - 5.10-SNAPSHOT - .. - - - healthchecker-client - - - - org.terracotta - healthchecker-common - ${project.version} - - - org.terracotta - healthchecker-api - ${project.version} - - - org.terracotta - entity-client-api - provided - - - org.terracotta - entity-common-api - provided - - - org.terracotta - entity-server-api - provided - - - diff --git a/healthchecker-entity/common/pom.xml b/healthchecker-entity/common/pom.xml deleted file mode 100755 index ad42e1457d..0000000000 --- a/healthchecker-entity/common/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - healthchecker-entity - 5.10-SNAPSHOT - .. - - - healthchecker-common - - - - org.terracotta - entity-common-api - provided - - - org.terracotta.voltron.communicator - communicator-support-common - ${project.version} - provided - - - org.terracotta - healthchecker-api - ${project.version} - provided - - - diff --git a/healthchecker-entity/pom.xml b/healthchecker-entity/pom.xml deleted file mode 100755 index 011bd8b965..0000000000 --- a/healthchecker-entity/pom.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - .. - - - healthchecker-entity - pom - - - api - common - client-impl - server-impl - - - - - - org.terracotta - packaging-support - ${terracotta-apis.version} - - - - - diff --git a/healthchecker-entity/server-impl/pom.xml b/healthchecker-entity/server-impl/pom.xml deleted file mode 100755 index 8c77b760ad..0000000000 --- a/healthchecker-entity/server-impl/pom.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - healthchecker-entity - 5.10-SNAPSHOT - .. - - - healthchecker-server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta - healthchecker-common - ${project.version} - - - org.terracotta - entity-server-api - provided - - - org.terracotta - packaging-support - provided - - - diff --git a/healthchecker/client/build.gradle b/healthchecker/client/build.gradle new file mode 100644 index 0000000000..eeced478ab --- /dev/null +++ b/healthchecker/client/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api "org.terracotta:connection-api:$terracottaApisVersion" + api "org.terracotta:entity-client-api:$terracottaApisVersion" + implementation project(':healthchecker:common') +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'healthchecker-client' + name = 'Healthchecker Entity Client' +} diff --git a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/HealthCheck.java b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheck.java similarity index 99% rename from healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/HealthCheck.java rename to healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheck.java index 38badbd098..5d806af8fa 100644 --- a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/HealthCheck.java +++ b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheck.java @@ -16,21 +16,21 @@ */ package org.terracotta.healthchecker; -import org.terracotta.connection.entity.Entity; - import java.util.Timer; import java.util.concurrent.Future; +import org.terracotta.connection.entity.Entity; + interface HealthCheck extends Entity { long VERSION = 1; /** * Ping a message to the server to make sure it is up and running - * + * * @param message The message to echo. * @return The Future to access the asynchronous response. */ Future ping(String message); - + Timer getTimer(); } diff --git a/healthchecker-entity/client-impl/src/main/java/org/terracotta/healthchecker/HealthCheckClientService.java b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckClientService.java similarity index 99% rename from healthchecker-entity/client-impl/src/main/java/org/terracotta/healthchecker/HealthCheckClientService.java rename to healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckClientService.java index 57d987f1b5..245f8a1f65 100755 --- a/healthchecker-entity/client-impl/src/main/java/org/terracotta/healthchecker/HealthCheckClientService.java +++ b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckClientService.java @@ -63,5 +63,5 @@ public HealthCheck create(EntityClientEndpoint e public MessageCodec getMessageCodec() { return CODEC; } - + } diff --git a/healthchecker-entity/client-impl/src/main/java/org/terracotta/healthchecker/HealthCheckerClient.java b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckerClient.java similarity index 99% rename from healthchecker-entity/client-impl/src/main/java/org/terracotta/healthchecker/HealthCheckerClient.java rename to healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckerClient.java index 187558f3a1..8442690bf5 100644 --- a/healthchecker-entity/client-impl/src/main/java/org/terracotta/healthchecker/HealthCheckerClient.java +++ b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckerClient.java @@ -28,7 +28,7 @@ * */ public class HealthCheckerClient implements HealthCheck { - + private final EntityClientEndpoint endpoint; private final Timer driver; @@ -43,7 +43,7 @@ public Future ping(String message) { // don't add any extra acks here. This is pure ping-pong return wrapFuture(endpoint.message(new HealthCheckReq(message)).invoke()); } - + private Future wrapFuture(final Future invoke) { return new Future() { @Override diff --git a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/HealthCheckerFactory.java b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckerFactory.java similarity index 98% rename from healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/HealthCheckerFactory.java rename to healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckerFactory.java index 5ff2413258..787a514723 100755 --- a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/HealthCheckerFactory.java +++ b/healthchecker/client/src/main/java/org/terracotta/healthchecker/HealthCheckerFactory.java @@ -41,13 +41,13 @@ * @author mscott */ public class HealthCheckerFactory { - + private static final Logger LOG = LoggerFactory.getLogger(HealthCheck.class); private static final String NAME = "staticHealthChecker"; /** - * Start a health checker on a connection. Adding a timeout manager to a connection + * Start a health checker on a connection. Adding a timeout manager to a connection * starts a new thread that will periodically ping the server to make sure it is up and running - * + * * @param connection the connection to be monitored * @param probeFrequencyPerMinute the frequency which to ping a server per minute * @param probeTimeoutInMillis timeout the connection and close if the timeout amount of time passes @@ -70,9 +70,9 @@ public static TimeoutManager startHealthChecker(Connection connection, int probe throw new IllegalStateException("healthchecker entity is not the right version on the name " + NAME, version); } } - + private static class HealthCheckTimeoutManager implements TimeoutManager { - + private final Connection root; private final HealthCheck checker; private final Set listeners = new LinkedHashSet<>(); @@ -89,7 +89,7 @@ public HealthCheckTimeoutManager(Connection conn, HealthCheck checker) { this.checker = checker; driver = checker.getTimer(); } - + public synchronized boolean probe(long timeout) throws InterruptedException, ExecutionException { if (currentProbe == null || currentProbe.isDone()) { currentMsg = "ping-" + (iteration++); @@ -106,7 +106,7 @@ public synchronized boolean probe(long timeout) throws InterruptedException, Exe return false; } } - + private void updateMovingAverage(long time) { // not sure if this is a good algorithm but good enough for now totalTime += time; @@ -115,11 +115,11 @@ private void updateMovingAverage(long time) { totalTime -= (totalTime/observations--); } } - + private void logMovingAverage() { LOG.info("moving average ping time:" + TimeUnit.MICROSECONDS.convert(totalTime/observations, TimeUnit.NANOSECONDS) + "µs"); } - + public TimeoutManager start(final long timeout, final long cyclesPerMin) { TimerTask task = new TimerTask() { @Override @@ -160,7 +160,7 @@ public void run() { }, 60000, 60000); return this; } - + private synchronized void closeConnection() { try { closed = true; @@ -168,17 +168,17 @@ private synchronized void closeConnection() { } catch (IOException ioe) { // anything todo here? } catch (ConnectionClosedException state) { -// already closed +// already closed } fireTimeoutListeners(); } - + private synchronized void fireProbeListeners() { for (TimeoutListener l : listeners) { l.probeFailed(root); } } - + private synchronized void fireTimeoutListeners() { for (TimeoutListener l : listeners) { l.connectionClosed(root); @@ -192,11 +192,11 @@ public synchronized boolean addTimeoutListener(TimeoutListener timeout) { } return listeners.add(timeout); } - + public synchronized boolean removeTimeoutListener(TimeoutListener timeout) { return listeners.remove(timeout); } - + @Override public synchronized boolean isConnected() { return !closed; diff --git a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/TimeoutListener.java b/healthchecker/client/src/main/java/org/terracotta/healthchecker/TimeoutListener.java similarity index 98% rename from healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/TimeoutListener.java rename to healthchecker/client/src/main/java/org/terracotta/healthchecker/TimeoutListener.java index 50e0f8bc7c..19111a3eb6 100644 --- a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/TimeoutListener.java +++ b/healthchecker/client/src/main/java/org/terracotta/healthchecker/TimeoutListener.java @@ -23,7 +23,7 @@ */ public interface TimeoutListener { /** - * Called by the TimeoutManager when a connection is closed due to a failure + * Called by the TimeoutManager when a connection is closed due to a failure * in the connection * @param target The connection that was closed */ diff --git a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/TimeoutManager.java b/healthchecker/client/src/main/java/org/terracotta/healthchecker/TimeoutManager.java similarity index 95% rename from healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/TimeoutManager.java rename to healthchecker/client/src/main/java/org/terracotta/healthchecker/TimeoutManager.java index 6ee004493a..34d236c5d7 100644 --- a/healthchecker-entity/api/src/main/java/org/terracotta/healthchecker/TimeoutManager.java +++ b/healthchecker/client/src/main/java/org/terracotta/healthchecker/TimeoutManager.java @@ -17,8 +17,8 @@ package org.terracotta.healthchecker; /** - * The manager of the health check on a connection. - * + * The manager of the health check on a connection. + * */ public interface TimeoutManager { /** diff --git a/healthchecker-entity/client-impl/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService b/healthchecker/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService similarity index 100% rename from healthchecker-entity/client-impl/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService rename to healthchecker/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService diff --git a/healthchecker-entity/api/src/test/java/org/terracotta/healthchecker/HealthCheckerFactoryTest.java b/healthchecker/client/src/test/java/org/terracotta/healthchecker/HealthCheckerFactoryTest.java similarity index 99% rename from healthchecker-entity/api/src/test/java/org/terracotta/healthchecker/HealthCheckerFactoryTest.java rename to healthchecker/client/src/test/java/org/terracotta/healthchecker/HealthCheckerFactoryTest.java index f12d4fe457..304334e9eb 100755 --- a/healthchecker-entity/api/src/test/java/org/terracotta/healthchecker/HealthCheckerFactoryTest.java +++ b/healthchecker/client/src/test/java/org/terracotta/healthchecker/HealthCheckerFactoryTest.java @@ -39,22 +39,22 @@ */ @SuppressWarnings({"unchecked", "rawtypes"}) public class HealthCheckerFactoryTest { - + public HealthCheckerFactoryTest() { } - + @BeforeClass public static void setUpClass() { } - + @AfterClass public static void tearDownClass() { } - + @Before public void setUp() { } - + @After public void tearDown() { } @@ -103,5 +103,5 @@ public void probeFailed(Connection target) { // expected; } } - + } diff --git a/healthchecker/common/build.gradle b/healthchecker/common/build.gradle new file mode 100644 index 0000000000..8579d90dea --- /dev/null +++ b/healthchecker/common/build.gradle @@ -0,0 +1,14 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api "org.terracotta:entity-common-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'healthchecker-common' +} diff --git a/healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckReq.java b/healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckReq.java similarity index 99% rename from healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckReq.java rename to healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckReq.java index cdf2704fce..d274eb293e 100644 --- a/healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckReq.java +++ b/healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckReq.java @@ -22,7 +22,7 @@ * */ public class HealthCheckReq implements EntityMessage { - + private final String base; public HealthCheckReq(String base) { @@ -33,5 +33,5 @@ public HealthCheckReq(String base) { public String toString() { return base; } - + } diff --git a/healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckRsp.java b/healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckRsp.java similarity index 99% rename from healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckRsp.java rename to healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckRsp.java index 3479a1e98e..fe971c857f 100644 --- a/healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckRsp.java +++ b/healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckRsp.java @@ -22,7 +22,7 @@ * */ public class HealthCheckRsp implements EntityResponse { - + private final String base; public HealthCheckRsp(String base) { @@ -33,5 +33,5 @@ public HealthCheckRsp(String base) { public String toString() { return base; } - + } diff --git a/healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckerCodec.java b/healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckerCodec.java similarity index 99% rename from healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckerCodec.java rename to healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckerCodec.java index 8a6b54a381..63d964839f 100644 --- a/healthchecker-entity/common/src/main/java/org/terracotta/healthchecker/HealthCheckerCodec.java +++ b/healthchecker/common/src/main/java/org/terracotta/healthchecker/HealthCheckerCodec.java @@ -27,7 +27,7 @@ */ public class HealthCheckerCodec implements MessageCodec { private static final Charset CHARSET = StandardCharsets.US_ASCII; - + @Override public byte[] encodeMessage(HealthCheckReq message) throws MessageCodecException { return message.toString().getBytes(CHARSET); diff --git a/healthchecker/server/build.gradle b/healthchecker/server/build.gradle new file mode 100644 index 0000000000..3483373d2d --- /dev/null +++ b/healthchecker/server/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + implementation project(':healthchecker:common') +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'healthchecker-server' + name = 'Healthchecker Entity' +} diff --git a/healthchecker-entity/server-impl/src/main/java/org/terracotta/healthchecker/HealthCheckServerEntityService.java b/healthchecker/server/src/main/java/org/terracotta/healthchecker/HealthCheckServerEntityService.java similarity index 99% rename from healthchecker-entity/server-impl/src/main/java/org/terracotta/healthchecker/HealthCheckServerEntityService.java rename to healthchecker/server/src/main/java/org/terracotta/healthchecker/HealthCheckServerEntityService.java index 8928eae921..ee83c611b2 100644 --- a/healthchecker-entity/server-impl/src/main/java/org/terracotta/healthchecker/HealthCheckServerEntityService.java +++ b/healthchecker/server/src/main/java/org/terracotta/healthchecker/HealthCheckServerEntityService.java @@ -80,7 +80,7 @@ public MessageCodec getMessageCodec() { public SyncMessageCodec getSyncMessageCodec() { return null; } - - - + + + } diff --git a/healthchecker-entity/server-impl/src/main/java/org/terracotta/healthchecker/HealthCheckerServer.java b/healthchecker/server/src/main/java/org/terracotta/healthchecker/HealthCheckerServer.java similarity index 99% rename from healthchecker-entity/server-impl/src/main/java/org/terracotta/healthchecker/HealthCheckerServer.java rename to healthchecker/server/src/main/java/org/terracotta/healthchecker/HealthCheckerServer.java index aaea961908..4a971e3432 100644 --- a/healthchecker-entity/server-impl/src/main/java/org/terracotta/healthchecker/HealthCheckerServer.java +++ b/healthchecker/server/src/main/java/org/terracotta/healthchecker/HealthCheckerServer.java @@ -67,7 +67,7 @@ public void loadExisting() { @Override public void destroy() { - } + } @Override public void invokePassive(InvokeContext context, HealthCheckReq message) { @@ -93,6 +93,6 @@ public void startSyncConcurrencyKey(int concurrencyKey) { public void endSyncConcurrencyKey(int concurrencyKey) { } - - + + } diff --git a/healthchecker-entity/server-impl/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/healthchecker/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from healthchecker-entity/server-impl/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to healthchecker/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/kit/pom.xml b/kit/pom.xml deleted file mode 100755 index 4a72891835..0000000000 --- a/kit/pom.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - platform-kit - KIT :: Platform - pom - - - - org.terracotta - platform-layout - ${project.version} - tar.gz - - - - * - * - - - - - - org.terracotta.internal - terracotta-kit - ${terracotta-core.version} - tar.gz - - - - * - * - - - - - - - - - maven-jar-plugin - - - default-jar - none - - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - unpack-core-kit - prepare-package - - unpack - - - ${project.build.directory}/terracotta-kit-${terracotta-core.version} - - - org.terracotta.internal - terracotta-kit - ${terracotta-core.version} - tar.gz - - - - - - unpack-platform-layout - prepare-package - - unpack - - - ${project.build.directory}/platform-layout-${project.version} - - - org.terracotta - platform-layout - ${project.version} - tar.gz - - - - - - - - maven-assembly-plugin - - - platform-kit - package - - single - - - false - posix - true - - src/main/assembly/platform-kit.xml - - - - - - - - - diff --git a/kit/src/main/assembly/platform-kit.xml b/kit/src/main/assembly/platform-kit.xml deleted file mode 100644 index 2c8a835c74..0000000000 --- a/kit/src/main/assembly/platform-kit.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - platform-kit - - - dir - zip - tar.gz - - - - - . - ${project.build.directory}/terracotta-kit-${terracotta-core.version}/terracotta-${terracotta-core.version} - - server/** - - - - . - ${project.build.directory}/platform-layout-${project.version}/platform-layout-${project.version} - - - - diff --git a/layout/pom.xml b/layout/pom.xml deleted file mode 100755 index a78b23406a..0000000000 --- a/layout/pom.xml +++ /dev/null @@ -1,198 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - platform-layout - KIT :: Layout - pom - - - - - - - org.terracotta - statistics - - - org.terracotta.management - monitoring-service-api - ${project.version} - - - org.terracotta.dynamic-config - dynamic-config-api-json - ${project.version} - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - - - org.terracotta.diagnostic - diagnostic-service-api - ${project.version} - - - - - - org.terracotta - data-root-resource - ${project.version} - - - org.terracotta - offheap-resource - ${project.version} - - - org.terracotta - lease-entity-server - ${project.version} - - - org.terracotta - client-message-tracker - ${project.version} - - - org.terracotta - platform-base - ${project.version} - - - org.terracotta.diagnostic - diagnostic-service - ${project.version} - - - - org.terracotta.management - monitoring-service - ${project.version} - - - org.terracotta.management - nms-agent-entity-server - ${project.version} - - - org.terracotta.management - nms-entity-server - ${project.version} - - - - org.terracotta.dynamic-config.server - dynamic-config-configuration-provider - ${project.version} - - - org.terracotta.dynamic-config.server - dynamic-config-services - ${project.version} - - - org.terracotta.dynamic-config.entities - dynamic-config-management-entity-server - ${project.version} - - - org.terracotta.dynamic-config.entities - dynamic-config-topology-entity-server - ${project.version} - - - org.terracotta.dynamic-config.entities - dynamic-config-nomad-entity-server - ${project.version} - - - - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-config-tool - ${project.version} - - - - - - org.terracotta - voter - ${project.version} - - - - - - - - maven-jar-plugin - - - default-jar - none - - - - - maven-assembly-plugin - - - platform-layout - package - - single - - - false - posix - true - - src/main/assembly/platform-layout.xml - - - - - - - - - diff --git a/layout/src/main/kit/tools/bin/config-tool.bat b/layout/src/main/kit/tools/bin/config-tool.bat deleted file mode 100644 index 9d5eeaf0cf..0000000000 --- a/layout/src/main/kit/tools/bin/config-tool.bat +++ /dev/null @@ -1,44 +0,0 @@ -@REM -@REM Copyright Terracotta, Inc. -@REM Copyright Super iPaaS Integration LLC, an IBM Company 2024 -@REM -@REM Licensed under the Apache License, Version 2.0 (the "License"); -@REM you may not use this file except in compliance with the License. -@REM You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, software -@REM distributed under the License is distributed on an "AS IS" BASIS, -@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@REM See the License for the specific language governing permissions and -@REM limitations under the License. -@REM - -@echo off -setlocal EnableExtensions EnableDelayedExpansion - -pushd "%~dp0.." -set "CONFIG_TOOL_DIR=%CD%" -popd -set "CP=%CONFIG_TOOL_DIR%\..\client\lib\*;%CONFIG_TOOL_DIR%\..\client\logging\*;%CONFIG_TOOL_DIR%\..\client\logging\impl\*;%CONFIG_TOOL_DIR%\lib\*" - -if exist "!CONFIG_TOOL_DIR!\bin\setenv.bat" ( - pushd "!CONFIG_TOOL_DIR!\bin" && ( - call .\setenv.bat - popd - ) -) - -if not defined JAVA_HOME ( - echo Environment variable JAVA_HOME needs to be set - exit /b 1 -) - -set "JAVA=%JAVA_HOME%\bin\java.exe" -set java_opts=%JAVA_OPTS% - -"%JAVA%" %java_opts% -cp "%CP%" org.terracotta.dynamic_config.cli.config_tool.ConfigTool %* - -exit /b %ERRORLEVEL% -endlocal \ No newline at end of file diff --git a/layout/src/main/kit/tools/bin/config-tool.sh b/layout/src/main/kit/tools/bin/config-tool.sh deleted file mode 100644 index 50678e4d2e..0000000000 --- a/layout/src/main/kit/tools/bin/config-tool.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# -# Copyright Terracotta, Inc. -# Copyright Super iPaaS Integration LLC, an IBM Company 2024 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -CONFIG_TOOL_DIR=$(dirname "$(cd "$(dirname "$0")";pwd)") - -# this will only happen if using sag installer -if [ -r "${CONFIG_TOOL_DIR}/bin/setenv.sh" ] ; then - . "${CONFIG_TOOL_DIR}/bin/setenv.sh" -fi - -java_opts="$JAVA_OPTS" - -if [ ! -d "$JAVA_HOME" ]; then - echo "Environment variable JAVA_HOME needs to be set" - echo " $JAVA_HOME" - exit 2 -fi - -JAVA="$JAVA_HOME/bin/java" - -"$JAVA" $java_opts -cp "${CONFIG_TOOL_DIR}/../client/lib/*:${CONFIG_TOOL_DIR}/../client/logging/*:${CONFIG_TOOL_DIR}/../client/logging/impl/*:$CONFIG_TOOL_DIR/lib/*" org.terracotta.dynamic_config.cli.config_tool.ConfigTool "$@" \ No newline at end of file diff --git a/layout/src/main/kit/tools/voter/bin/start-tc-voter.bat b/layout/src/main/kit/tools/voter/bin/start-tc-voter.bat deleted file mode 100644 index 54190c8d54..0000000000 --- a/layout/src/main/kit/tools/voter/bin/start-tc-voter.bat +++ /dev/null @@ -1,44 +0,0 @@ -@REM -@REM Copyright Terracotta, Inc. -@REM Copyright Super iPaaS Integration LLC, an IBM Company 2024 -@REM -@REM Licensed under the Apache License, Version 2.0 (the "License"); -@REM you may not use this file except in compliance with the License. -@REM You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, software -@REM distributed under the License is distributed on an "AS IS" BASIS, -@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@REM See the License for the specific language governing permissions and -@REM limitations under the License. -@REM - -@echo off -setlocal EnableExtensions EnableDelayedExpansion - -pushd "%~dp0.." -set "TC_VOTER_DIR=%CD%" -popd - -if exist "!TC_VOTER_DIR!\bin\setenv.bat" ( - pushd "!TC_VOTER_DIR!\bin" && ( - call .\setenv.bat - popd - ) -) - -if not defined JAVA_HOME ( - echo Environment variable JAVA_HOME needs to be set - exit /b 1 -) - -set "CLASSPATH=%TC_VOTER_DIR%\..\..\client\lib\*;%TC_VOTER_DIR%\..\..\client\logging\*;%TC_VOTER_DIR%\..\..\client\logging\impl\*;%TC_VOTER_DIR%\lib\*;%TC_VOTER_DIR%\..\lib\*" -set "JAVA=%JAVA_HOME%\bin\java.exe" - -"%JAVA%" %JAVA_OPTS% "-Dlogback.configurationFile=logback-voter.xml" -cp "%CLASSPATH%" org.terracotta.voter.cli.TCVoterMain %* - -exit /b %ERRORLEVEL% - -endlocal diff --git a/layout/src/main/kit/tools/voter/bin/start-tc-voter.sh b/layout/src/main/kit/tools/voter/bin/start-tc-voter.sh deleted file mode 100644 index 0aa0649079..0000000000 --- a/layout/src/main/kit/tools/voter/bin/start-tc-voter.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# -# Copyright Terracotta, Inc. -# Copyright Super iPaaS Integration LLC, an IBM Company 2024 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -TC_VOTER_DIR="$(dirname "$(cd "$(dirname "$0")";pwd)")" - -# this will only happen if using sag installer -if [ -r "${TC_VOTER_DIR}/bin/setenv.sh" ] ; then - . "${TC_VOTER_DIR}/bin/setenv.sh" -fi - -if ! [ -d "${JAVA_HOME}" ]; then - echo "$0: the JAVA_HOME environment variable is not defined correctly" - exit 2 -fi - -CLASS_PATH="${TC_VOTER_DIR}/../../client/lib/*:${TC_VOTER_DIR}/../../client/logging/*:${TC_VOTER_DIR}/../../client/logging/impl/*:${TC_VOTER_DIR}/lib/*:${TC_VOTER_DIR}/../lib/*" - -"$JAVA_HOME/bin/java" ${JAVA_OPTS} "-Dlogback.configurationFile=logback-voter.xml" -cp "$CLASS_PATH" org.terracotta.voter.cli.TCVoterMain "$@" diff --git a/lease/api/pom.xml b/lease/api/pom.xml deleted file mode 100755 index bdbc3a74e1..0000000000 --- a/lease/api/pom.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - lease-api - - - - org.slf4j - slf4j-api - provided - - - org.terracotta - connection-api - provided - - - org.terracotta - lease-common - ${project.version} - - - org.terracotta - lease-entity-client - ${project.version} - - - org.terracotta - entity-client-api - provided - - - org.terracotta.internal - common-spi - provided - - - org.terracotta.common - common-structures - ${project.version} - - - junit - junit - test - - - org.mockito - mockito-core - 2.23.4 - test - - - - diff --git a/lease/client/build.gradle b/lease/client/build.gradle new file mode 100644 index 0000000000..c633d3ff6a --- /dev/null +++ b/lease/client/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':lease:common') + api project(':common:structures') + api "org.terracotta:connection-api:$terracottaApisVersion" + api "org.terracotta:entity-client-api:$terracottaApisVersion" + implementation "org.terracotta.internal:common-spi:$terracottaCoreVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'lease-entity-client' + name = 'Lease Entity Client' +} diff --git a/lease/api/src/main/java/org/terracotta/lease/CleaningLeaseMaintainer.java b/lease/client/src/main/java/org/terracotta/lease/CleaningLeaseMaintainer.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/CleaningLeaseMaintainer.java rename to lease/client/src/main/java/org/terracotta/lease/CleaningLeaseMaintainer.java diff --git a/lease/api/src/main/java/org/terracotta/lease/Lease.java b/lease/client/src/main/java/org/terracotta/lease/Lease.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/Lease.java rename to lease/client/src/main/java/org/terracotta/lease/Lease.java diff --git a/lease/entity-api/src/main/java/org/terracotta/lease/LeaseAcquirer.java b/lease/client/src/main/java/org/terracotta/lease/LeaseAcquirer.java similarity index 100% rename from lease/entity-api/src/main/java/org/terracotta/lease/LeaseAcquirer.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseAcquirer.java diff --git a/lease/entity-client/src/main/java/org/terracotta/lease/LeaseAcquirerClientService.java b/lease/client/src/main/java/org/terracotta/lease/LeaseAcquirerClientService.java similarity index 100% rename from lease/entity-client/src/main/java/org/terracotta/lease/LeaseAcquirerClientService.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseAcquirerClientService.java diff --git a/lease/entity-client/src/main/java/org/terracotta/lease/LeaseAcquirerImpl.java b/lease/client/src/main/java/org/terracotta/lease/LeaseAcquirerImpl.java similarity index 100% rename from lease/entity-client/src/main/java/org/terracotta/lease/LeaseAcquirerImpl.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseAcquirerImpl.java diff --git a/lease/entity-client/src/main/java/org/terracotta/lease/LeaseEndpointDelegate.java b/lease/client/src/main/java/org/terracotta/lease/LeaseEndpointDelegate.java similarity index 100% rename from lease/entity-client/src/main/java/org/terracotta/lease/LeaseEndpointDelegate.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseEndpointDelegate.java diff --git a/lease/entity-api/src/main/java/org/terracotta/lease/LeaseException.java b/lease/client/src/main/java/org/terracotta/lease/LeaseException.java similarity index 100% rename from lease/entity-api/src/main/java/org/terracotta/lease/LeaseException.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseException.java diff --git a/lease/api/src/main/java/org/terracotta/lease/LeaseExpiryConnectionKillingThread.java b/lease/client/src/main/java/org/terracotta/lease/LeaseExpiryConnectionKillingThread.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/LeaseExpiryConnectionKillingThread.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseExpiryConnectionKillingThread.java diff --git a/lease/api/src/main/java/org/terracotta/lease/LeaseImpl.java b/lease/client/src/main/java/org/terracotta/lease/LeaseImpl.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/LeaseImpl.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseImpl.java diff --git a/lease/api/src/main/java/org/terracotta/lease/LeaseInternal.java b/lease/client/src/main/java/org/terracotta/lease/LeaseInternal.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/LeaseInternal.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseInternal.java diff --git a/lease/api/src/main/java/org/terracotta/lease/LeaseMaintainer.java b/lease/client/src/main/java/org/terracotta/lease/LeaseMaintainer.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/LeaseMaintainer.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseMaintainer.java diff --git a/lease/api/src/main/java/org/terracotta/lease/LeaseMaintainerFactory.java b/lease/client/src/main/java/org/terracotta/lease/LeaseMaintainerFactory.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/LeaseMaintainerFactory.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseMaintainerFactory.java diff --git a/lease/api/src/main/java/org/terracotta/lease/LeaseMaintainerImpl.java b/lease/client/src/main/java/org/terracotta/lease/LeaseMaintainerImpl.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/LeaseMaintainerImpl.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseMaintainerImpl.java diff --git a/lease/api/src/main/java/org/terracotta/lease/LeaseMaintenanceThread.java b/lease/client/src/main/java/org/terracotta/lease/LeaseMaintenanceThread.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/LeaseMaintenanceThread.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseMaintenanceThread.java diff --git a/lease/entity-client/src/main/java/org/terracotta/lease/LeaseReconnectDataSupplier.java b/lease/client/src/main/java/org/terracotta/lease/LeaseReconnectDataSupplier.java similarity index 100% rename from lease/entity-client/src/main/java/org/terracotta/lease/LeaseReconnectDataSupplier.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseReconnectDataSupplier.java diff --git a/lease/entity-client/src/main/java/org/terracotta/lease/LeaseReconnectListener.java b/lease/client/src/main/java/org/terracotta/lease/LeaseReconnectListener.java similarity index 100% rename from lease/entity-client/src/main/java/org/terracotta/lease/LeaseReconnectListener.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseReconnectListener.java diff --git a/lease/entity-api/src/main/java/org/terracotta/lease/LeaseReconnectingException.java b/lease/client/src/main/java/org/terracotta/lease/LeaseReconnectingException.java similarity index 100% rename from lease/entity-api/src/main/java/org/terracotta/lease/LeaseReconnectingException.java rename to lease/client/src/main/java/org/terracotta/lease/LeaseReconnectingException.java diff --git a/lease/api/src/main/java/org/terracotta/lease/NullLease.java b/lease/client/src/main/java/org/terracotta/lease/NullLease.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/NullLease.java rename to lease/client/src/main/java/org/terracotta/lease/NullLease.java diff --git a/lease/api/src/main/java/org/terracotta/lease/ProxyLeaseReconnectListener.java b/lease/client/src/main/java/org/terracotta/lease/ProxyLeaseReconnectListener.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/ProxyLeaseReconnectListener.java rename to lease/client/src/main/java/org/terracotta/lease/ProxyLeaseReconnectListener.java diff --git a/lease/api/src/main/java/org/terracotta/lease/connection/BasicLeasedConnection.java b/lease/client/src/main/java/org/terracotta/lease/connection/BasicLeasedConnection.java similarity index 99% rename from lease/api/src/main/java/org/terracotta/lease/connection/BasicLeasedConnection.java rename to lease/client/src/main/java/org/terracotta/lease/connection/BasicLeasedConnection.java index 610f4d45d4..d3d75d1134 100644 --- a/lease/api/src/main/java/org/terracotta/lease/connection/BasicLeasedConnection.java +++ b/lease/client/src/main/java/org/terracotta/lease/connection/BasicLeasedConnection.java @@ -83,7 +83,7 @@ public void close() throws IOException { */ leaseMaintainer.destroy(); } - + @Override public boolean isValid() { return base.isValid(); diff --git a/lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnection.java b/lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnection.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnection.java rename to lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnection.java diff --git a/lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnectionFactory.java b/lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnectionFactory.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnectionFactory.java rename to lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnectionFactory.java diff --git a/lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnectionService.java b/lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnectionService.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnectionService.java rename to lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnectionService.java diff --git a/lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnectionServiceImpl.java b/lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnectionServiceImpl.java similarity index 100% rename from lease/api/src/main/java/org/terracotta/lease/connection/LeasedConnectionServiceImpl.java rename to lease/client/src/main/java/org/terracotta/lease/connection/LeasedConnectionServiceImpl.java diff --git a/lease/entity-client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService b/lease/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService similarity index 100% rename from lease/entity-client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService rename to lease/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService diff --git a/lease/api/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService b/lease/client/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService similarity index 100% rename from lease/api/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService rename to lease/client/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService diff --git a/lease/api/src/test/java/org/terracotta/lease/CleaningLeaseMaintainerTest.java b/lease/client/src/test/java/org/terracotta/lease/CleaningLeaseMaintainerTest.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/CleaningLeaseMaintainerTest.java rename to lease/client/src/test/java/org/terracotta/lease/CleaningLeaseMaintainerTest.java diff --git a/lease/entity-client/src/test/java/org/terracotta/lease/LeaseAcquirerClientServiceTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseAcquirerClientServiceTest.java similarity index 100% rename from lease/entity-client/src/test/java/org/terracotta/lease/LeaseAcquirerClientServiceTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseAcquirerClientServiceTest.java diff --git a/lease/entity-client/src/test/java/org/terracotta/lease/LeaseAcquirerImplTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseAcquirerImplTest.java similarity index 100% rename from lease/entity-client/src/test/java/org/terracotta/lease/LeaseAcquirerImplTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseAcquirerImplTest.java diff --git a/lease/entity-client/src/test/java/org/terracotta/lease/LeaseEndpointDelegateTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseEndpointDelegateTest.java similarity index 100% rename from lease/entity-client/src/test/java/org/terracotta/lease/LeaseEndpointDelegateTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseEndpointDelegateTest.java diff --git a/lease/api/src/test/java/org/terracotta/lease/LeaseExpiryConnectionKillingThreadTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseExpiryConnectionKillingThreadTest.java similarity index 94% rename from lease/api/src/test/java/org/terracotta/lease/LeaseExpiryConnectionKillingThreadTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseExpiryConnectionKillingThreadTest.java index 7607fdd17b..ae9fc78669 100755 --- a/lease/api/src/test/java/org/terracotta/lease/LeaseExpiryConnectionKillingThreadTest.java +++ b/lease/client/src/test/java/org/terracotta/lease/LeaseExpiryConnectionKillingThreadTest.java @@ -16,22 +16,21 @@ */ package org.terracotta.lease; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.Spy; -import org.mockito.junit.MockitoJUnitRunner; -import org.terracotta.connection.Connection; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.timeout; -import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; +import org.terracotta.connection.Connection; @RunWith(MockitoJUnitRunner.class) public class LeaseExpiryConnectionKillingThreadTest { @@ -59,6 +58,7 @@ public void threadBasics() throws Exception { } @Test + @Ignore("https://github.com/Terracotta-OSS/terracotta-platform/issues/1196") public void whenLeaseIsValidConnectionIsNotClosed() throws Exception { when(leaseMaintainer.getCurrentLease()).thenReturn(new LeaseImpl(timeSource, 100L, 200L)); thread.start(); @@ -67,6 +67,7 @@ public void whenLeaseIsValidConnectionIsNotClosed() throws Exception { } @Test + @Ignore("https://github.com/Terracotta-OSS/terracotta-platform/issues/1196") public void whenLeaseWasNeverValidConnectionIsNotClosed() throws Exception { when(leaseMaintainer.getCurrentLease()).thenReturn(new NullLease()); thread.start(); diff --git a/lease/api/src/test/java/org/terracotta/lease/LeaseImplTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseImplTest.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/LeaseImplTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseImplTest.java diff --git a/lease/api/src/test/java/org/terracotta/lease/LeaseMaintainerFactoryTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseMaintainerFactoryTest.java similarity index 96% rename from lease/api/src/test/java/org/terracotta/lease/LeaseMaintainerFactoryTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseMaintainerFactoryTest.java index 28ef2f0a51..3b2b2f4fa2 100755 --- a/lease/api/src/test/java/org/terracotta/lease/LeaseMaintainerFactoryTest.java +++ b/lease/client/src/test/java/org/terracotta/lease/LeaseMaintainerFactoryTest.java @@ -17,19 +17,19 @@ package org.terracotta.lease; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Spy; -import org.mockito.junit.MockitoJUnitRunner; -import org.terracotta.connection.Connection; -import org.terracotta.connection.entity.EntityRef; - import static org.mockito.ArgumentMatchers.any; +import org.mockito.Mock; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.mockito.Spy; +import org.mockito.junit.MockitoJUnitRunner; +import org.terracotta.connection.Connection; +import org.terracotta.connection.entity.EntityRef; import static org.terracotta.lease.LeaseEntityConstants.ENTITY_NAME; import static org.terracotta.lease.LeaseEntityConstants.ENTITY_VERSION; @@ -57,6 +57,7 @@ public void before() throws Exception { } @Test + @Ignore("https://github.com/Terracotta-OSS/terracotta-platform/issues/1196") public void objectsWiredTogetherCorrectly() throws Exception { LeaseMaintainer leaseMaintainer = LeaseMaintainerFactory.createLeaseMaintainer(connection); diff --git a/lease/api/src/test/java/org/terracotta/lease/LeaseMaintainerImplTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseMaintainerImplTest.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/LeaseMaintainerImplTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseMaintainerImplTest.java diff --git a/lease/api/src/test/java/org/terracotta/lease/LeaseMaintenanceThreadTest.java b/lease/client/src/test/java/org/terracotta/lease/LeaseMaintenanceThreadTest.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/LeaseMaintenanceThreadTest.java rename to lease/client/src/test/java/org/terracotta/lease/LeaseMaintenanceThreadTest.java diff --git a/lease/api/src/test/java/org/terracotta/lease/NullLeaseTest.java b/lease/client/src/test/java/org/terracotta/lease/NullLeaseTest.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/NullLeaseTest.java rename to lease/client/src/test/java/org/terracotta/lease/NullLeaseTest.java diff --git a/lease/api/src/test/java/org/terracotta/lease/ProxyLeaseReconnectListenerTest.java b/lease/client/src/test/java/org/terracotta/lease/ProxyLeaseReconnectListenerTest.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/ProxyLeaseReconnectListenerTest.java rename to lease/client/src/test/java/org/terracotta/lease/ProxyLeaseReconnectListenerTest.java diff --git a/lease/api/src/test/java/org/terracotta/lease/connection/LeasedConnectionFactoryTest.java b/lease/client/src/test/java/org/terracotta/lease/connection/LeasedConnectionFactoryTest.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/connection/LeasedConnectionFactoryTest.java rename to lease/client/src/test/java/org/terracotta/lease/connection/LeasedConnectionFactoryTest.java diff --git a/lease/api/src/test/java/org/terracotta/lease/connection/TestLeasedConnectionService.java b/lease/client/src/test/java/org/terracotta/lease/connection/TestLeasedConnectionService.java similarity index 100% rename from lease/api/src/test/java/org/terracotta/lease/connection/TestLeasedConnectionService.java rename to lease/client/src/test/java/org/terracotta/lease/connection/TestLeasedConnectionService.java diff --git a/lease/api/src/test/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService b/lease/client/src/test/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService similarity index 100% rename from lease/api/src/test/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService rename to lease/client/src/test/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService diff --git a/lease/common/build.gradle b/lease/common/build.gradle new file mode 100644 index 0000000000..27636b62a8 --- /dev/null +++ b/lease/common/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':common:runnel') + api project(':communicator:common') + api "org.terracotta:entity-common-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'lease-common' +} diff --git a/lease/common/pom.xml b/lease/common/pom.xml deleted file mode 100755 index 4da1247b72..0000000000 --- a/lease/common/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - lease-common - - - - junit - junit - test - - - - diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/IgnoredLeaseResponse.java b/lease/common/src/main/java/org/terracotta/lease/IgnoredLeaseResponse.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/IgnoredLeaseResponse.java rename to lease/common/src/main/java/org/terracotta/lease/IgnoredLeaseResponse.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseAcquirerAvailable.java b/lease/common/src/main/java/org/terracotta/lease/LeaseAcquirerAvailable.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseAcquirerAvailable.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseAcquirerAvailable.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseAcquirerCodec.java b/lease/common/src/main/java/org/terracotta/lease/LeaseAcquirerCodec.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseAcquirerCodec.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseAcquirerCodec.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseMessage.java b/lease/common/src/main/java/org/terracotta/lease/LeaseMessage.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseMessage.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseMessage.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseMessageDecoder.java b/lease/common/src/main/java/org/terracotta/lease/LeaseMessageDecoder.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseMessageDecoder.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseMessageDecoder.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseMessageType.java b/lease/common/src/main/java/org/terracotta/lease/LeaseMessageType.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseMessageType.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseMessageType.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseReconnectData.java b/lease/common/src/main/java/org/terracotta/lease/LeaseReconnectData.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseReconnectData.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseReconnectData.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseReconnectFinished.java b/lease/common/src/main/java/org/terracotta/lease/LeaseReconnectFinished.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseReconnectFinished.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseReconnectFinished.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseRequest.java b/lease/common/src/main/java/org/terracotta/lease/LeaseRequest.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseRequest.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseRequest.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseRequestResult.java b/lease/common/src/main/java/org/terracotta/lease/LeaseRequestResult.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseRequestResult.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseRequestResult.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseResponse.java b/lease/common/src/main/java/org/terracotta/lease/LeaseResponse.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseResponse.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseResponse.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseResponseDecoder.java b/lease/common/src/main/java/org/terracotta/lease/LeaseResponseDecoder.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseResponseDecoder.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseResponseDecoder.java diff --git a/lease/entity-common/src/main/java/org/terracotta/lease/LeaseResponseType.java b/lease/common/src/main/java/org/terracotta/lease/LeaseResponseType.java similarity index 100% rename from lease/entity-common/src/main/java/org/terracotta/lease/LeaseResponseType.java rename to lease/common/src/main/java/org/terracotta/lease/LeaseResponseType.java diff --git a/lease/entity-common/src/test/java/org/terracotta/lease/LeaseAcquirerCodecTest.java b/lease/common/src/test/java/org/terracotta/lease/LeaseAcquirerCodecTest.java similarity index 100% rename from lease/entity-common/src/test/java/org/terracotta/lease/LeaseAcquirerCodecTest.java rename to lease/common/src/test/java/org/terracotta/lease/LeaseAcquirerCodecTest.java diff --git a/lease/entity-common/src/test/java/org/terracotta/lease/LeaseReconnectDataTest.java b/lease/common/src/test/java/org/terracotta/lease/LeaseReconnectDataTest.java similarity index 100% rename from lease/entity-common/src/test/java/org/terracotta/lease/LeaseReconnectDataTest.java rename to lease/common/src/test/java/org/terracotta/lease/LeaseReconnectDataTest.java diff --git a/lease/entity-common/src/test/java/org/terracotta/lease/LeaseRequestResultTest.java b/lease/common/src/test/java/org/terracotta/lease/LeaseRequestResultTest.java similarity index 100% rename from lease/entity-common/src/test/java/org/terracotta/lease/LeaseRequestResultTest.java rename to lease/common/src/test/java/org/terracotta/lease/LeaseRequestResultTest.java diff --git a/lease/entity-api/pom.xml b/lease/entity-api/pom.xml deleted file mode 100755 index 73676095d7..0000000000 --- a/lease/entity-api/pom.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - lease-entity-api - - - - org.terracotta - entity-client-api - provided - - - - diff --git a/lease/entity-client/pom.xml b/lease/entity-client/pom.xml deleted file mode 100755 index e1ea8171f0..0000000000 --- a/lease/entity-client/pom.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - lease-entity-client - - - - org.terracotta - lease-entity-api - ${project.version} - - - org.terracotta - lease-common - ${project.version} - - - org.terracotta - lease-entity-common - ${project.version} - - - org.terracotta - entity-client-api - provided - - - org.terracotta - entity-common-api - provided - - - junit - junit - test - - - org.mockito - mockito-core - 2.23.4 - test - - - diff --git a/lease/entity-common/pom.xml b/lease/entity-common/pom.xml deleted file mode 100755 index 410d6fe665..0000000000 --- a/lease/entity-common/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - lease-entity-common - - - - org.terracotta - runnel - ${project.version} - - - org.terracotta - entity-common-api - provided - - - org.terracotta.voltron.communicator - communicator-support-common - ${project.version} - provided - - - junit - junit - test - - - diff --git a/lease/entity-server/pom.xml b/lease/entity-server/pom.xml deleted file mode 100755 index 146474a12b..0000000000 --- a/lease/entity-server/pom.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - lease-entity-server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta - lease-common - ${project.version} - - - org.terracotta - lease-entity-common - ${project.version} - - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - org.terracotta.internal - tc-config-parser - provided - - - - org.slf4j - slf4j-api - provided - - - - junit - junit - test - - - org.mockito - mockito-core - 2.23.4 - test - - - org.hamcrest - hamcrest-core - 1.3 - test - - - org.terracotta - lease-entity-api - ${project.version} - test - - - org.terracotta - entity-client-api - test - - - diff --git a/lease/passthrough-leased-connection-api/pom.xml b/lease/passthrough-leased-connection-api/pom.xml deleted file mode 100644 index deae146c7d..0000000000 --- a/lease/passthrough-leased-connection-api/pom.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - passthrough-leased-connection-api - - - - org.terracotta - passthrough-server - provided - - - org.terracotta - lease-api - ${project.version} - - - org.terracotta - connection-api - provided - - - org.terracotta - packaging-support - provided - - - org.terracotta.internal - common-spi - provided - - - junit - junit - test - - - org.mockito - mockito-core - test - - - - \ No newline at end of file diff --git a/lease/passthrough/build.gradle b/lease/passthrough/build.gradle new file mode 100644 index 0000000000..ec78a1a1e6 --- /dev/null +++ b/lease/passthrough/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':lease:client') + implementation "org.terracotta:passthrough-server:$terracottaPassthroughVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'passthrough-leased-connection-api' + name = 'Lease Passthrough Support' +} diff --git a/lease/passthrough-leased-connection-api/src/main/java/org/terracotta/passthrough/connection/PassthroughLeasedConnectionService.java b/lease/passthrough/src/main/java/org/terracotta/passthrough/connection/PassthroughLeasedConnectionService.java similarity index 100% rename from lease/passthrough-leased-connection-api/src/main/java/org/terracotta/passthrough/connection/PassthroughLeasedConnectionService.java rename to lease/passthrough/src/main/java/org/terracotta/passthrough/connection/PassthroughLeasedConnectionService.java diff --git a/lease/passthrough-leased-connection-api/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService b/lease/passthrough/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService similarity index 100% rename from lease/passthrough-leased-connection-api/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService rename to lease/passthrough/src/main/resources/META-INF/services/org.terracotta.lease.connection.LeasedConnectionService diff --git a/lease/passthrough-leased-connection-api/src/test/java/org/terracotta/passthrough/connection/PassthroughLeaseConnectionTest.java b/lease/passthrough/src/test/java/org/terracotta/passthrough/connection/PassthroughLeaseConnectionTest.java similarity index 100% rename from lease/passthrough-leased-connection-api/src/test/java/org/terracotta/passthrough/connection/PassthroughLeaseConnectionTest.java rename to lease/passthrough/src/test/java/org/terracotta/passthrough/connection/PassthroughLeaseConnectionTest.java diff --git a/lease/passthrough-leased-connection-api/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService b/lease/passthrough/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService similarity index 100% rename from lease/passthrough-leased-connection-api/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService rename to lease/passthrough/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService diff --git a/lease/pom.xml b/lease/pom.xml deleted file mode 100755 index ce8de929e0..0000000000 --- a/lease/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - .. - - - lease - pom - - - api - common - entity-api - entity-client - entity-common - entity-server - system-test - passthrough-leased-connection-api - - - diff --git a/lease/server/build.gradle b/lease/server/build.gradle new file mode 100644 index 0000000000..7e6a173fd8 --- /dev/null +++ b/lease/server/build.gradle @@ -0,0 +1,30 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.xjc' + id 'org.terracotta.build.convention.voltron' +} + +sourceSets { + xml { + xjcTargetPackage = 'org.terracotta.lease.config' + } +} + +dependencies { + service project(':dynamic-config:server:api') + + implementation project(':lease:common') + + xmlApi "javax.xml.bind:jaxb-api:[2.2,3]" + xmlApi "org.terracotta.internal:tc-config-parser:$terracottaConfigVersion" + xmlApi "org.terracotta:tcconfig-schema:$terracottaConfigVersion" + + xmlXjcEpisodes "org.terracotta:tcconfig-schema:$terracottaConfigVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'lease-entity-server' + name = 'Lease Entity' +} diff --git a/lease/server/config/checkstyle/suppressions.xml b/lease/server/config/checkstyle/suppressions.xml new file mode 100644 index 0000000000..9d12753f33 --- /dev/null +++ b/lease/server/config/checkstyle/suppressions.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/ActiveLeaseAcquirer.java b/lease/server/src/main/java/org/terracotta/lease/ActiveLeaseAcquirer.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/ActiveLeaseAcquirer.java rename to lease/server/src/main/java/org/terracotta/lease/ActiveLeaseAcquirer.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/LeaseAcquirerServerService.java b/lease/server/src/main/java/org/terracotta/lease/LeaseAcquirerServerService.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/LeaseAcquirerServerService.java rename to lease/server/src/main/java/org/terracotta/lease/LeaseAcquirerServerService.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/PassiveLeaseAcquirer.java b/lease/server/src/main/java/org/terracotta/lease/PassiveLeaseAcquirer.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/PassiveLeaseAcquirer.java rename to lease/server/src/main/java/org/terracotta/lease/PassiveLeaseAcquirer.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseConfigChangeHandler.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseConfigChangeHandler.java similarity index 94% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseConfigChangeHandler.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseConfigChangeHandler.java index eba1242456..ed5421ae26 100644 --- a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseConfigChangeHandler.java +++ b/lease/server/src/main/java/org/terracotta/lease/service/LeaseConfigChangeHandler.java @@ -21,8 +21,8 @@ import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.Setting; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; import org.terracotta.lease.service.config.LeaseConfiguration; public class LeaseConfigChangeHandler implements ConfigChangeHandler { diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseConstants.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseConstants.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseConstants.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseConstants.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseDynamicConfigExtension.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseDynamicConfigExtension.java similarity index 96% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseDynamicConfigExtension.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseDynamicConfigExtension.java index 6c527121e0..4250505bf0 100644 --- a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseDynamicConfigExtension.java +++ b/lease/server/src/main/java/org/terracotta/lease/service/LeaseDynamicConfigExtension.java @@ -20,7 +20,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; import org.terracotta.dynamic_config.server.api.DynamicConfigExtension; import org.terracotta.entity.PlatformConfiguration; import org.terracotta.lease.service.config.LeaseConfiguration; diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseResult.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseResult.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseResult.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseResult.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseService.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseService.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseService.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseService.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseServiceConfiguration.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseServiceConfiguration.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseServiceConfiguration.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseServiceConfiguration.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseServiceImpl.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseServiceImpl.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseServiceImpl.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseServiceImpl.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseServiceProvider.java b/lease/server/src/main/java/org/terracotta/lease/service/LeaseServiceProvider.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/LeaseServiceProvider.java rename to lease/server/src/main/java/org/terracotta/lease/service/LeaseServiceProvider.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloser.java b/lease/server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloser.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloser.java rename to lease/server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloser.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloserImpl.java b/lease/server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloserImpl.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloserImpl.java rename to lease/server/src/main/java/org/terracotta/lease/service/closer/ClientConnectionCloserImpl.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloser.java b/lease/server/src/main/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloser.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloser.java rename to lease/server/src/main/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloser.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseConfiguration.java b/lease/server/src/main/java/org/terracotta/lease/service/config/LeaseConfiguration.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseConfiguration.java rename to lease/server/src/main/java/org/terracotta/lease/service/config/LeaseConfiguration.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseElement.java b/lease/server/src/main/java/org/terracotta/lease/service/config/LeaseElement.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseElement.java rename to lease/server/src/main/java/org/terracotta/lease/service/config/LeaseElement.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/config/ValidationFailureId.java b/lease/server/src/main/java/org/terracotta/lease/service/config/ValidationFailureId.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/config/ValidationFailureId.java rename to lease/server/src/main/java/org/terracotta/lease/service/config/ValidationFailureId.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/ExpiredLease.java b/lease/server/src/main/java/org/terracotta/lease/service/monitor/ExpiredLease.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/ExpiredLease.java rename to lease/server/src/main/java/org/terracotta/lease/service/monitor/ExpiredLease.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/Lease.java b/lease/server/src/main/java/org/terracotta/lease/service/monitor/Lease.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/Lease.java rename to lease/server/src/main/java/org/terracotta/lease/service/monitor/Lease.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/LeaseMonitorThread.java b/lease/server/src/main/java/org/terracotta/lease/service/monitor/LeaseMonitorThread.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/LeaseMonitorThread.java rename to lease/server/src/main/java/org/terracotta/lease/service/monitor/LeaseMonitorThread.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/LeaseState.java b/lease/server/src/main/java/org/terracotta/lease/service/monitor/LeaseState.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/LeaseState.java rename to lease/server/src/main/java/org/terracotta/lease/service/monitor/LeaseState.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/ReconnectionLease.java b/lease/server/src/main/java/org/terracotta/lease/service/monitor/ReconnectionLease.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/ReconnectionLease.java rename to lease/server/src/main/java/org/terracotta/lease/service/monitor/ReconnectionLease.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/ValidLease.java b/lease/server/src/main/java/org/terracotta/lease/service/monitor/ValidLease.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/monitor/ValidLease.java rename to lease/server/src/main/java/org/terracotta/lease/service/monitor/ValidLease.java diff --git a/lease/entity-server/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension b/lease/server/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension similarity index 100% rename from lease/entity-server/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension rename to lease/server/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension diff --git a/lease/entity-server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/lease/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from lease/entity-server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to lease/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/lease/entity-server/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider b/lease/server/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider similarity index 100% rename from lease/entity-server/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider rename to lease/server/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/ActiveLeaseAcquirerTest.java b/lease/server/src/test/java/org/terracotta/lease/ActiveLeaseAcquirerTest.java similarity index 99% rename from lease/entity-server/src/test/java/org/terracotta/lease/ActiveLeaseAcquirerTest.java rename to lease/server/src/test/java/org/terracotta/lease/ActiveLeaseAcquirerTest.java index 6116632acb..192ab6f2d4 100755 --- a/lease/entity-server/src/test/java/org/terracotta/lease/ActiveLeaseAcquirerTest.java +++ b/lease/server/src/test/java/org/terracotta/lease/ActiveLeaseAcquirerTest.java @@ -16,30 +16,29 @@ */ package org.terracotta.lease; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import org.mockito.Mock; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; import org.mockito.junit.MockitoJUnitRunner; import org.terracotta.entity.ActiveInvokeContext; import org.terracotta.entity.ClientCommunicator; import org.terracotta.entity.ClientDescriptor; import org.terracotta.entity.IEntityMessenger; +import org.terracotta.entity.ReconnectRejectedException; import org.terracotta.lease.service.LeaseResult; import org.terracotta.lease.service.LeaseService; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.when; -import org.terracotta.entity.ReconnectRejectedException; - @SuppressWarnings({"rawtypes", "unchecked"}) @RunWith(MockitoJUnitRunner.class) public class ActiveLeaseAcquirerTest { @@ -114,7 +113,6 @@ public void tellsServiceAboutReconnectionStarting() { try { leaseAcquirer.startReconnect().handleReconnect(clientDescriptor, new LeaseReconnectData(1).encode()); } catch (ReconnectRejectedException reject) { - } verify(leaseService).reconnecting(clientDescriptor); @@ -130,7 +128,6 @@ public void tellsServiceAboutReconnectionFinishing() throws Exception { try { leaseAcquirer.startReconnect().handleReconnect(clientDescriptor, new LeaseReconnectData(1).encode()); } catch (ReconnectRejectedException reject) { - } verify(leaseService).reconnecting(clientDescriptor); @@ -149,7 +146,6 @@ public void rejectsLeaseRequestsSentOnOldConnections() throws Exception { try { leaseAcquirer.startReconnect().handleReconnect(clientDescriptor, new LeaseReconnectData(1).encode()); } catch (ReconnectRejectedException reject) { - } LeaseRequestResult response = (LeaseRequestResult) leaseAcquirer.invokeActive(context, new LeaseRequest(0)); diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/LeaseAcquirerServerServiceTest.java b/lease/server/src/test/java/org/terracotta/lease/LeaseAcquirerServerServiceTest.java similarity index 95% rename from lease/entity-server/src/test/java/org/terracotta/lease/LeaseAcquirerServerServiceTest.java rename to lease/server/src/test/java/org/terracotta/lease/LeaseAcquirerServerServiceTest.java index d2b62f5bbe..c554072cf8 100755 --- a/lease/entity-server/src/test/java/org/terracotta/lease/LeaseAcquirerServerServiceTest.java +++ b/lease/server/src/test/java/org/terracotta/lease/LeaseAcquirerServerServiceTest.java @@ -22,7 +22,7 @@ import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.hamcrest.MockitoHamcrest; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; import org.terracotta.entity.ClientCommunicator; import org.terracotta.entity.ClientDescriptor; import org.terracotta.entity.ConcurrencyStrategy; @@ -49,13 +49,13 @@ public class LeaseAcquirerServerServiceTest { @Test public void handlesEntityType() { LeaseAcquirerServerService serverService = new LeaseAcquirerServerService(); - assertTrue(serverService.handlesEntityType(LeaseAcquirer.class.getCanonicalName())); + assertTrue(serverService.handlesEntityType("org.terracotta.lease.LeaseAcquirer")); } @Test public void isPermanentEntity() { PermanentEntity permanentEntity = LeaseAcquirerServerService.class.getAnnotation(PermanentEntity.class); - assertEquals(LeaseAcquirer.class.getCanonicalName(), permanentEntity.type()); + assertEquals("org.terracotta.lease.LeaseAcquirer", permanentEntity.type()); assertEquals("SystemLeaseAcquirer", permanentEntity.name()); assertEquals(1L, permanentEntity.version()); } diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/MockStateDumpCollector.java b/lease/server/src/test/java/org/terracotta/lease/MockStateDumpCollector.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/MockStateDumpCollector.java rename to lease/server/src/test/java/org/terracotta/lease/MockStateDumpCollector.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseConfigChangeHandlerTest.java b/lease/server/src/test/java/org/terracotta/lease/service/LeaseConfigChangeHandlerTest.java similarity index 97% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseConfigChangeHandlerTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/LeaseConfigChangeHandlerTest.java index c78acaa283..c8dac2f26a 100644 --- a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseConfigChangeHandlerTest.java +++ b/lease/server/src/test/java/org/terracotta/lease/service/LeaseConfigChangeHandlerTest.java @@ -22,7 +22,7 @@ import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.model.Testing; import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; import org.terracotta.lease.service.config.LeaseConfiguration; import static org.hamcrest.CoreMatchers.is; diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseResultTest.java b/lease/server/src/test/java/org/terracotta/lease/service/LeaseResultTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseResultTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/LeaseResultTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceConfigurationTest.java b/lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceConfigurationTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceConfigurationTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceConfigurationTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceImplTest.java b/lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceImplTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceImplTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceImplTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceProviderTest.java b/lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceProviderTest.java similarity index 95% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceProviderTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceProviderTest.java index e46cd70d73..7d33986b32 100755 --- a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceProviderTest.java +++ b/lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceProviderTest.java @@ -16,18 +16,6 @@ */ package org.terracotta.lease.service; -import com.tc.classloader.BuiltinService; -import org.junit.Test; -import org.terracotta.entity.ClientDescriptor; -import org.terracotta.entity.PlatformConfiguration; -import org.terracotta.entity.ServiceConfiguration; -import org.terracotta.entity.ServiceProviderConfiguration; -import org.terracotta.lease.MockStateDumpCollector; -import org.terracotta.lease.TestTimeSource; -import org.terracotta.lease.TimeSourceProvider; -import org.terracotta.lease.service.closer.ClientConnectionCloser; -import org.terracotta.lease.service.config.LeaseConfiguration; - import java.util.Collection; import static org.hamcrest.CoreMatchers.notNullValue; @@ -36,10 +24,23 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import org.junit.Ignore; +import org.junit.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; +import org.terracotta.entity.ClientDescriptor; +import org.terracotta.entity.PlatformConfiguration; +import org.terracotta.entity.ServiceConfiguration; +import org.terracotta.entity.ServiceProviderConfiguration; +import org.terracotta.lease.MockStateDumpCollector; +import org.terracotta.lease.TestTimeSource; +import org.terracotta.lease.TimeSourceProvider; +import org.terracotta.lease.service.closer.ClientConnectionCloser; +import org.terracotta.lease.service.config.LeaseConfiguration; + +import com.tc.classloader.BuiltinService; public class LeaseServiceProviderTest { @Test @@ -51,11 +52,13 @@ public void serviceTypes() { } @Test + @Ignore("https://github.com/Terracotta-OSS/terracotta-platform/issues/1196") public void singleLeaseConfigured() throws Exception { testLeaseLengths(1500L, new LeaseConfiguration(1500L)); } @Test + @Ignore("https://github.com/Terracotta-OSS/terracotta-platform/issues/1196") public void noLeaseConfigured() throws Exception { testLeaseLengths(150_000L, () -> LeaseServiceProvider.class); } diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceTest.java b/lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/LeaseServiceTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/LeaseServiceTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloseImplTest.java b/lease/server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloseImplTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloseImplTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloseImplTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloserTest.java b/lease/server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloserTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloserTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/closer/ClientConnectionCloserTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloserTest.java b/lease/server/src/test/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloserTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloserTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/closer/ProxyClientConnectionCloserTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/config/LeaseConfigValidatorTest.java b/lease/server/src/test/java/org/terracotta/lease/service/config/LeaseConfigValidatorTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/config/LeaseConfigValidatorTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/config/LeaseConfigValidatorTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationParserTest.java b/lease/server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationParserTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationParserTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationParserTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationTest.java b/lease/server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/config/LeaseConfigurationTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/ExpiredLeaseTest.java b/lease/server/src/test/java/org/terracotta/lease/service/monitor/ExpiredLeaseTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/ExpiredLeaseTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/monitor/ExpiredLeaseTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/LeaseMonitorThreadTest.java b/lease/server/src/test/java/org/terracotta/lease/service/monitor/LeaseMonitorThreadTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/LeaseMonitorThreadTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/monitor/LeaseMonitorThreadTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/LeaseStateTest.java b/lease/server/src/test/java/org/terracotta/lease/service/monitor/LeaseStateTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/LeaseStateTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/monitor/LeaseStateTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/ReconnectionLeaseTest.java b/lease/server/src/test/java/org/terracotta/lease/service/monitor/ReconnectionLeaseTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/ReconnectionLeaseTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/monitor/ReconnectionLeaseTest.java diff --git a/lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/ValidLeaseTest.java b/lease/server/src/test/java/org/terracotta/lease/service/monitor/ValidLeaseTest.java similarity index 100% rename from lease/entity-server/src/test/java/org/terracotta/lease/service/monitor/ValidLeaseTest.java rename to lease/server/src/test/java/org/terracotta/lease/service/monitor/ValidLeaseTest.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseConfigValidator.java b/lease/server/src/xml/java/org/terracotta/lease/config/LeaseConfigValidator.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseConfigValidator.java rename to lease/server/src/xml/java/org/terracotta/lease/config/LeaseConfigValidator.java diff --git a/lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseConfigurationParser.java b/lease/server/src/xml/java/org/terracotta/lease/config/LeaseConfigurationParser.java similarity index 100% rename from lease/entity-server/src/main/java/org/terracotta/lease/service/config/LeaseConfigurationParser.java rename to lease/server/src/xml/java/org/terracotta/lease/config/LeaseConfigurationParser.java diff --git a/lease/entity-server/src/main/resources/META-INF/services/org.terracotta.config.service.ServiceConfigParser b/lease/server/src/xml/resources/META-INF/services/org.terracotta.config.service.ServiceConfigParser similarity index 100% rename from lease/entity-server/src/main/resources/META-INF/services/org.terracotta.config.service.ServiceConfigParser rename to lease/server/src/xml/resources/META-INF/services/org.terracotta.config.service.ServiceConfigParser diff --git a/lease/server/src/xml/schema/catalog.cat b/lease/server/src/xml/schema/catalog.cat new file mode 100644 index 0000000000..a32e1e51e4 --- /dev/null +++ b/lease/server/src/xml/schema/catalog.cat @@ -0,0 +1,6 @@ +# +# Copyright Terracotta, Inc. +# Copyright Super iPaaS Integration LLC, an IBM Company 2017, 2024 +# + +PUBLIC "http://www.terracotta.org/config" "classpath:/terracotta.xsd" diff --git a/lease/entity-server/src/main/resources/lease-service.xsd b/lease/server/src/xml/schema/lease-service.xsd similarity index 100% rename from lease/entity-server/src/main/resources/lease-service.xsd rename to lease/server/src/xml/schema/lease-service.xsd diff --git a/lease/system-test/pom.xml b/lease/system-test/pom.xml deleted file mode 100755 index 5ce6f7acfe..0000000000 --- a/lease/system-test/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - lease - 5.10-SNAPSHOT - .. - - - lease-system-test - - - - org.terracotta - passthrough-server - test - - - org.terracotta - lease-api - ${project.version} - test - - - org.terracotta - lease-entity-server - ${project.version} - test - - - org.terracotta.dynamic-config - dynamic-config-api - ${project.version} - test - - - junit - junit - test - - - org.slf4j - slf4j-api - test - - - - diff --git a/lease/system-tests/build.gradle b/lease/system-tests/build.gradle new file mode 100644 index 0000000000..84f51b81fc --- /dev/null +++ b/lease/system-tests/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + testImplementation project(':lease:client') + testImplementation project(':lease:server') + testImplementation project(':dynamic-config:api') + testImplementation "org.terracotta:passthrough-server:$terracottaPassthroughVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'lease-system-test' + name = 'Lease System tests' +} diff --git a/lease/system-test/src/test/java/org/terracotta/lease/LeaseSystemTest.java b/lease/system-tests/src/test/java/org/terracotta/lease/LeaseSystemTest.java similarity index 97% rename from lease/system-test/src/test/java/org/terracotta/lease/LeaseSystemTest.java rename to lease/system-tests/src/test/java/org/terracotta/lease/LeaseSystemTest.java index c01a6d51be..a8f3c685c0 100755 --- a/lease/system-test/src/test/java/org/terracotta/lease/LeaseSystemTest.java +++ b/lease/system-tests/src/test/java/org/terracotta/lease/LeaseSystemTest.java @@ -16,8 +16,19 @@ */ package org.terracotta.lease; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.URI; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.Properties; + import org.junit.AfterClass; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; import org.terracotta.connection.Connection; import org.terracotta.connection.ConnectionFactory; @@ -35,17 +46,6 @@ import org.terracotta.passthrough.PassthroughClusterControl; import org.terracotta.passthrough.PassthroughTestHelpers; -import java.io.IOException; -import java.net.InetSocketAddress; -import java.net.URI; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Properties; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - public class LeaseSystemTest { private static PassthroughClusterControl cluster; @@ -62,6 +62,7 @@ public static void beforeClass() { } @Test + @Ignore("https://github.com/Terracotta-OSS/terracotta-platform/issues/1196") public void operationLongerThanLeaseLength() throws Exception { Properties properties = new Properties(); properties.put(ConnectionPropertyNames.CONNECTION_NAME, "LeaseSystemTest"); @@ -80,6 +81,7 @@ public void operationLongerThanLeaseLength() throws Exception { } @Test + @Ignore("https://github.com/Terracotta-OSS/terracotta-platform/issues/1196") public void operationLongerThanLeaseLengthWithIterableBasedAPI() throws Exception { Properties properties = new Properties(); properties.put(ConnectionPropertyNames.CONNECTION_NAME, "LeaseSystemTest"); diff --git a/lease/system-test/src/test/java/org/terracotta/lease/LeaseTestUtil.java b/lease/system-tests/src/test/java/org/terracotta/lease/LeaseTestUtil.java similarity index 100% rename from lease/system-test/src/test/java/org/terracotta/lease/LeaseTestUtil.java rename to lease/system-tests/src/test/java/org/terracotta/lease/LeaseTestUtil.java diff --git a/lease/system-test/src/test/java/org/terracotta/lease/NoLeaseConfigurationTest.java b/lease/system-tests/src/test/java/org/terracotta/lease/NoLeaseConfigurationTest.java similarity index 100% rename from lease/system-test/src/test/java/org/terracotta/lease/NoLeaseConfigurationTest.java rename to lease/system-tests/src/test/java/org/terracotta/lease/NoLeaseConfigurationTest.java diff --git a/lease/system-test/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService b/lease/system-tests/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService similarity index 100% rename from lease/system-test/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService rename to lease/system-tests/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService diff --git a/management/README.adoc b/management/README.adoc index 7832026076..157b769e8e 100644 --- a/management/README.adoc +++ b/management/README.adoc @@ -18,7 +18,7 @@ limitations under the License. Terracotta Management is a set of Java modules for management and monitoring, common to several Terracotta products. -Licensed under the Apache License, Version 2.0 +Licensed under the Apache License, Version 2.0 (C) Terracotta, Inc., a Software AG company. http://www.terracotta.org diff --git a/management/cluster-topology/README.adoc b/management/cluster-topology/README.adoc deleted file mode 100644 index 9304f8f264..0000000000 --- a/management/cluster-topology/README.adoc +++ /dev/null @@ -1 +0,0 @@ -Represents the cluster topology used by management apps. diff --git a/management/cluster-topology/pom.xml b/management/cluster-topology/pom.xml deleted file mode 100755 index 3efb8c8544..0000000000 --- a/management/cluster-topology/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - terracotta-management - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - cluster-topology - Terracotta Management :: Cluster Topology - - - - org.terracotta.management - management-model - ${project.version} - - - - junit - junit - test - - - org.terracotta.common - common-json-support - ${project.version} - test - - - - diff --git a/management/nms-agent-entity/README.adoc b/management/entities/nms-agent/README.adoc similarity index 100% rename from management/nms-agent-entity/README.adoc rename to management/entities/nms-agent/README.adoc diff --git a/management/entities/nms-agent/client/build.gradle b/management/entities/nms-agent/client/build.gradle new file mode 100644 index 0000000000..502754ef4c --- /dev/null +++ b/management/entities/nms-agent/client/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':management:registry') + api project(':management:entities:nms-agent:common') + api "org.terracotta:entity-client-api:$terracottaApisVersion" + implementation project(':voltron-proxy:client') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'nms-agent-entity' + name = 'NMS Agent Entity Client' +} diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/DefaultNmsAgentService.java b/management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/DefaultNmsAgentService.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/DefaultNmsAgentService.java rename to management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/DefaultNmsAgentService.java diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntity.java b/management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntity.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntity.java rename to management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntity.java diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityClientService.java b/management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityClientService.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityClientService.java rename to management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityClientService.java diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityFactory.java b/management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityFactory.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityFactory.java rename to management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentEntityFactory.java diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentService.java b/management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentService.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentService.java rename to management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/NmsAgentService.java diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticProvider.java b/management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticProvider.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticProvider.java rename to management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticProvider.java diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticUtility.java b/management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticUtility.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticUtility.java rename to management/entities/nms-agent/client/src/main/java/org/terracotta/management/entity/nms/agent/client/diag/DiagnosticUtility.java diff --git a/management/nms-agent-entity/nms-agent-entity-client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService b/management/entities/nms-agent/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService rename to management/entities/nms-agent/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService diff --git a/management/entities/nms-agent/common/build.gradle b/management/entities/nms-agent/common/build.gradle new file mode 100644 index 0000000000..4a7b3a5d12 --- /dev/null +++ b/management/entities/nms-agent/common/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':management:model') + implementation project(':voltron-proxy:common') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'nms-agent-entity-common' +} diff --git a/management/nms-agent-entity/nms-agent-entity-common/src/main/java/org/terracotta/management/entity/nms/agent/NmsAgent.java b/management/entities/nms-agent/common/src/main/java/org/terracotta/management/entity/nms/agent/NmsAgent.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-common/src/main/java/org/terracotta/management/entity/nms/agent/NmsAgent.java rename to management/entities/nms-agent/common/src/main/java/org/terracotta/management/entity/nms/agent/NmsAgent.java diff --git a/management/nms-agent-entity/nms-agent-entity-common/src/main/java/org/terracotta/management/entity/nms/agent/ReconnectData.java b/management/entities/nms-agent/common/src/main/java/org/terracotta/management/entity/nms/agent/ReconnectData.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-common/src/main/java/org/terracotta/management/entity/nms/agent/ReconnectData.java rename to management/entities/nms-agent/common/src/main/java/org/terracotta/management/entity/nms/agent/ReconnectData.java diff --git a/management/entities/nms-agent/server/build.gradle b/management/entities/nms-agent/server/build.gradle new file mode 100644 index 0000000000..08fbf47b9c --- /dev/null +++ b/management/entities/nms-agent/server/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':management:server:api') + service "org.terracotta:statistics:$terracottaStatisticVersion" + implementation project(':management:entities:nms-agent:common') + implementation project(':voltron-proxy:server') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'nms-agent-entity-server' + name = 'NMS Agent Entity' +} diff --git a/management/nms-agent-entity/nms-agent-entity-server/src/main/java/org/terracotta/management/entity/nms/agent/server/ActiveNmsAgentServerEntity.java b/management/entities/nms-agent/server/src/main/java/org/terracotta/management/entity/nms/agent/server/ActiveNmsAgentServerEntity.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-server/src/main/java/org/terracotta/management/entity/nms/agent/server/ActiveNmsAgentServerEntity.java rename to management/entities/nms-agent/server/src/main/java/org/terracotta/management/entity/nms/agent/server/ActiveNmsAgentServerEntity.java diff --git a/management/nms-agent-entity/nms-agent-entity-server/src/main/java/org/terracotta/management/entity/nms/agent/server/NmsAgentEntityServerService.java b/management/entities/nms-agent/server/src/main/java/org/terracotta/management/entity/nms/agent/server/NmsAgentEntityServerService.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-server/src/main/java/org/terracotta/management/entity/nms/agent/server/NmsAgentEntityServerService.java rename to management/entities/nms-agent/server/src/main/java/org/terracotta/management/entity/nms/agent/server/NmsAgentEntityServerService.java diff --git a/management/nms-agent-entity/nms-agent-entity-server/src/main/java/org/terracotta/management/entity/nms/agent/server/PassiveNmsAgentServerEntity.java b/management/entities/nms-agent/server/src/main/java/org/terracotta/management/entity/nms/agent/server/PassiveNmsAgentServerEntity.java similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-server/src/main/java/org/terracotta/management/entity/nms/agent/server/PassiveNmsAgentServerEntity.java rename to management/entities/nms-agent/server/src/main/java/org/terracotta/management/entity/nms/agent/server/PassiveNmsAgentServerEntity.java diff --git a/management/nms-agent-entity/nms-agent-entity-server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/management/entities/nms-agent/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from management/nms-agent-entity/nms-agent-entity-server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to management/entities/nms-agent/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/management/entities/nms/client/build.gradle b/management/entities/nms/client/build.gradle new file mode 100644 index 0000000000..e532a054ba --- /dev/null +++ b/management/entities/nms/client/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':management:entities:nms:common') + api "org.terracotta:entity-client-api:$terracottaApisVersion" + implementation project(':voltron-proxy:client') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'nms-entity-client' + name = 'NMS Entity Client' +} diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/DefaultNmsService.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/DefaultNmsService.java similarity index 99% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/DefaultNmsService.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/DefaultNmsService.java index 3ddf02428e..8ab0740606 100644 --- a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/DefaultNmsService.java +++ b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/DefaultNmsService.java @@ -171,7 +171,7 @@ public ManagementCall call(Context context, String capabilityName, String // add handler to complete the call when response will be (or already is) received getManagementAnswerFor(managementCallId).whenComplete((aReturn, stopper) -> { if (stopper != null) { - // in case we interrupt the management calls with the #cancelAllManagementCalls() method + // in case we interrupt the management calls with the #cancelAllManagementCalls() method managementCall.completeExceptionally(stopper); } else { try { diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/IllegalManagementCallException.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/IllegalManagementCallException.java similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/IllegalManagementCallException.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/IllegalManagementCallException.java diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/ManagementCall.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/ManagementCall.java similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/ManagementCall.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/ManagementCall.java diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntity.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntity.java similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntity.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntity.java diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityClientService.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityClientService.java similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityClientService.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityClientService.java diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityFactory.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityFactory.java similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityFactory.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsEntityFactory.java diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsService.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsService.java similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/NmsService.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/NmsService.java diff --git a/management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/VoltronManagementCall.java b/management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/VoltronManagementCall.java similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/java/org/terracotta/management/entity/nms/client/VoltronManagementCall.java rename to management/entities/nms/client/src/main/java/org/terracotta/management/entity/nms/client/VoltronManagementCall.java diff --git a/management/nms-entity/nms-entity-client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService b/management/entities/nms/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService similarity index 100% rename from management/nms-entity/nms-entity-client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService rename to management/entities/nms/client/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService diff --git a/management/entities/nms/common/build.gradle b/management/entities/nms/common/build.gradle new file mode 100644 index 0000000000..b571b9916e --- /dev/null +++ b/management/entities/nms/common/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':management:model') + implementation project(':voltron-proxy:common') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'nms-entity-common' +} diff --git a/management/nms-entity/nms-entity-common/src/main/java/org/terracotta/management/entity/nms/Nms.java b/management/entities/nms/common/src/main/java/org/terracotta/management/entity/nms/Nms.java similarity index 100% rename from management/nms-entity/nms-entity-common/src/main/java/org/terracotta/management/entity/nms/Nms.java rename to management/entities/nms/common/src/main/java/org/terracotta/management/entity/nms/Nms.java diff --git a/management/nms-entity/nms-entity-common/src/main/java/org/terracotta/management/entity/nms/NmsConfig.java b/management/entities/nms/common/src/main/java/org/terracotta/management/entity/nms/NmsConfig.java similarity index 100% rename from management/nms-entity/nms-entity-common/src/main/java/org/terracotta/management/entity/nms/NmsConfig.java rename to management/entities/nms/common/src/main/java/org/terracotta/management/entity/nms/NmsConfig.java diff --git a/management/nms-entity/nms-entity-common/src/main/java/org/terracotta/management/entity/nms/NmsVersion.java b/management/entities/nms/common/src/main/java/org/terracotta/management/entity/nms/NmsVersion.java similarity index 100% rename from management/nms-entity/nms-entity-common/src/main/java/org/terracotta/management/entity/nms/NmsVersion.java rename to management/entities/nms/common/src/main/java/org/terracotta/management/entity/nms/NmsVersion.java diff --git a/management/entities/nms/server/build.gradle b/management/entities/nms/server/build.gradle new file mode 100644 index 0000000000..5e5d3a040e --- /dev/null +++ b/management/entities/nms/server/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':management:server:api') + service project(':dynamic-config:api') + service "org.terracotta:statistics:$terracottaStatisticVersion" + implementation project(':management:entities:nms:common') + implementation project(':voltron-proxy:server') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'nms-entity-server' + name = 'NMS Entity' +} diff --git a/management/nms-entity/nms-entity-server/src/main/java/org/terracotta/management/entity/nms/server/ActiveNmsServerEntity.java b/management/entities/nms/server/src/main/java/org/terracotta/management/entity/nms/server/ActiveNmsServerEntity.java similarity index 99% rename from management/nms-entity/nms-entity-server/src/main/java/org/terracotta/management/entity/nms/server/ActiveNmsServerEntity.java rename to management/entities/nms/server/src/main/java/org/terracotta/management/entity/nms/server/ActiveNmsServerEntity.java index 15133c8c70..aed6e3bc7b 100644 --- a/management/nms-entity/nms-entity-server/src/main/java/org/terracotta/management/entity/nms/server/ActiveNmsServerEntity.java +++ b/management/entities/nms/server/src/main/java/org/terracotta/management/entity/nms/server/ActiveNmsServerEntity.java @@ -61,7 +61,7 @@ class ActiveNmsServerEntity extends ActiveProxiedServerEntity call) { String serverName = call.getContext().get(Server.NAME_KEY); @@ -86,13 +86,13 @@ public void executeManagementCallOnPassive(String managementCallIdentifier, Cont .execute() .getSingleResult(); if(contextualReturn.hasExecuted()) { - entityManagementRegistry.getMonitoringService().answerManagementCall(managementCallIdentifier, contextualReturn); + entityManagementRegistry.getMonitoringService().answerManagementCall(managementCallIdentifier, contextualReturn); } } } // Nms - + @Override public Future readTopology() { throw new UnsupportedOperationException("Cannot be called on a passive server"); diff --git a/management/nms-entity/nms-entity-server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/management/entities/nms/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from management/nms-entity/nms-entity-server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to management/entities/nms/server/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/management/management-model/pom.xml b/management/management-model/pom.xml deleted file mode 100755 index a3e8764a0a..0000000000 --- a/management/management-model/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.management - terracotta-management - 5.10-SNAPSHOT - - - management-model - Terracotta Management :: Model - - - - org.terracotta - statistics - ${statistics.version} - - - org.terracotta.management - sequence-generator - ${project.version} - - - - junit - junit - test - - - - diff --git a/management/management-registry/README.adoc b/management/management-registry/README.adoc deleted file mode 100644 index 6174176464..0000000000 --- a/management/management-registry/README.adoc +++ /dev/null @@ -1 +0,0 @@ -Mechanism classes to support creating a management registry and some providers of capabilities such as statistics, management calls, etc. diff --git a/management/management-registry/pom.xml b/management/management-registry/pom.xml deleted file mode 100755 index 067d6c35d9..0000000000 --- a/management/management-registry/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - 4.0.0 - - - org.terracotta.management - terracotta-management - 5.10-SNAPSHOT - - - management-registry - Terracotta Management :: Registry - - - - org.terracotta.management - management-model - ${project.version} - - - - junit - junit - test - - - org.mockito - mockito-core - 2.23.4 - test - - - org.terracotta.common - common-json-support - ${project.version} - test - - - - diff --git a/management/management-model/README.adoc b/management/model/README.adoc similarity index 100% rename from management/management-model/README.adoc rename to management/model/README.adoc diff --git a/management/model/build.gradle b/management/model/build.gradle new file mode 100644 index 0000000000..8b4b8ec92a --- /dev/null +++ b/management/model/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':management:sequence-generator') + api "org.terracotta:statistics:$terracottaStatisticVersion" + + testImplementation project(':common:json') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'management-model' + name = 'Management Model' +} diff --git a/management/management-model/src/main/java/org/terracotta/management/model/call/ContextualCall.java b/management/model/src/main/java/org/terracotta/management/model/call/ContextualCall.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/call/ContextualCall.java rename to management/model/src/main/java/org/terracotta/management/model/call/ContextualCall.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/call/ContextualReturn.java b/management/model/src/main/java/org/terracotta/management/model/call/ContextualReturn.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/call/ContextualReturn.java rename to management/model/src/main/java/org/terracotta/management/model/call/ContextualReturn.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/call/Parameter.java b/management/model/src/main/java/org/terracotta/management/model/call/Parameter.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/call/Parameter.java rename to management/model/src/main/java/org/terracotta/management/model/call/Parameter.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/capabilities/Capability.java b/management/model/src/main/java/org/terracotta/management/model/capabilities/Capability.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/capabilities/Capability.java rename to management/model/src/main/java/org/terracotta/management/model/capabilities/Capability.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/capabilities/DefaultCapability.java b/management/model/src/main/java/org/terracotta/management/model/capabilities/DefaultCapability.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/capabilities/DefaultCapability.java rename to management/model/src/main/java/org/terracotta/management/model/capabilities/DefaultCapability.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/capabilities/context/CapabilityContext.java b/management/model/src/main/java/org/terracotta/management/model/capabilities/context/CapabilityContext.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/capabilities/context/CapabilityContext.java rename to management/model/src/main/java/org/terracotta/management/model/capabilities/context/CapabilityContext.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/CallDescriptor.java b/management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/CallDescriptor.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/CallDescriptor.java rename to management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/CallDescriptor.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Descriptor.java b/management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Descriptor.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Descriptor.java rename to management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Descriptor.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Settings.java b/management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Settings.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Settings.java rename to management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/Settings.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/StatisticDescriptor.java b/management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/StatisticDescriptor.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/capabilities/descriptors/StatisticDescriptor.java rename to management/model/src/main/java/org/terracotta/management/model/capabilities/descriptors/StatisticDescriptor.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/AbstractManageableNode.java b/management/model/src/main/java/org/terracotta/management/model/cluster/AbstractManageableNode.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/AbstractManageableNode.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/AbstractManageableNode.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/AbstractNode.java b/management/model/src/main/java/org/terracotta/management/model/cluster/AbstractNode.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/AbstractNode.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/AbstractNode.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Client.java b/management/model/src/main/java/org/terracotta/management/model/cluster/Client.java similarity index 99% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Client.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/Client.java index e18237e163..32b4ea0916 100644 --- a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Client.java +++ b/management/model/src/main/java/org/terracotta/management/model/cluster/Client.java @@ -91,11 +91,11 @@ public Client addProperty(String key, String value) { public String getProperty(String key) { return properties.get(key); } - + public boolean hasProperty(String key) { return properties.containsKey(key); } - + public Map getProperties() { return properties; } diff --git a/management/management-model/src/main/java/org/terracotta/management/model/cluster/ClientIdentifier.java b/management/model/src/main/java/org/terracotta/management/model/cluster/ClientIdentifier.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/cluster/ClientIdentifier.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/ClientIdentifier.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Cluster.java b/management/model/src/main/java/org/terracotta/management/model/cluster/Cluster.java similarity index 99% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Cluster.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/Cluster.java index 04537b8eda..1558f460e5 100644 --- a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Cluster.java +++ b/management/model/src/main/java/org/terracotta/management/model/cluster/Cluster.java @@ -43,7 +43,7 @@ public final class Cluster implements Contextual { public boolean isEmpty() { return stripes.isEmpty(); } - + public Stream clientStream() { return clients.values().stream(); } diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Connection.java b/management/model/src/main/java/org/terracotta/management/model/cluster/Connection.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Connection.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/Connection.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Endpoint.java b/management/model/src/main/java/org/terracotta/management/model/cluster/Endpoint.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Endpoint.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/Endpoint.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/ManagementRegistry.java b/management/model/src/main/java/org/terracotta/management/model/cluster/ManagementRegistry.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/ManagementRegistry.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/ManagementRegistry.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Node.java b/management/model/src/main/java/org/terracotta/management/model/cluster/Node.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Node.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/Node.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Server.java b/management/model/src/main/java/org/terracotta/management/model/cluster/Server.java similarity index 99% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Server.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/Server.java index 56b3602c72..30e237a0a4 100644 --- a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Server.java +++ b/management/model/src/main/java/org/terracotta/management/model/cluster/Server.java @@ -214,7 +214,7 @@ public final boolean addServerEntity(ServerEntity serverEntity) { return false; } else { serverEntity.setParent(this); - return true; + return true; } } diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/ServerEntity.java b/management/model/src/main/java/org/terracotta/management/model/cluster/ServerEntity.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/ServerEntity.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/ServerEntity.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/ServerEntityIdentifier.java b/management/model/src/main/java/org/terracotta/management/model/cluster/ServerEntityIdentifier.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/ServerEntityIdentifier.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/ServerEntityIdentifier.java diff --git a/management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Stripe.java b/management/model/src/main/java/org/terracotta/management/model/cluster/Stripe.java similarity index 100% rename from management/cluster-topology/src/main/java/org/terracotta/management/model/cluster/Stripe.java rename to management/model/src/main/java/org/terracotta/management/model/cluster/Stripe.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/context/Context.java b/management/model/src/main/java/org/terracotta/management/model/context/Context.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/context/Context.java rename to management/model/src/main/java/org/terracotta/management/model/context/Context.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/context/ContextContainer.java b/management/model/src/main/java/org/terracotta/management/model/context/ContextContainer.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/context/ContextContainer.java rename to management/model/src/main/java/org/terracotta/management/model/context/ContextContainer.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/context/Contextual.java b/management/model/src/main/java/org/terracotta/management/model/context/Contextual.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/context/Contextual.java rename to management/model/src/main/java/org/terracotta/management/model/context/Contextual.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/message/DefaultManagementCallMessage.java b/management/model/src/main/java/org/terracotta/management/model/message/DefaultManagementCallMessage.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/message/DefaultManagementCallMessage.java rename to management/model/src/main/java/org/terracotta/management/model/message/DefaultManagementCallMessage.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/message/DefaultMessage.java b/management/model/src/main/java/org/terracotta/management/model/message/DefaultMessage.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/message/DefaultMessage.java rename to management/model/src/main/java/org/terracotta/management/model/message/DefaultMessage.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/message/ManagementCallMessage.java b/management/model/src/main/java/org/terracotta/management/model/message/ManagementCallMessage.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/message/ManagementCallMessage.java rename to management/model/src/main/java/org/terracotta/management/model/message/ManagementCallMessage.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/message/Message.java b/management/model/src/main/java/org/terracotta/management/model/message/Message.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/message/Message.java rename to management/model/src/main/java/org/terracotta/management/model/message/Message.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/notification/ContextualNotification.java b/management/model/src/main/java/org/terracotta/management/model/notification/ContextualNotification.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/notification/ContextualNotification.java rename to management/model/src/main/java/org/terracotta/management/model/notification/ContextualNotification.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/stats/ContextualStatistics.java b/management/model/src/main/java/org/terracotta/management/model/stats/ContextualStatistics.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/stats/ContextualStatistics.java rename to management/model/src/main/java/org/terracotta/management/model/stats/ContextualStatistics.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/stats/DelegatingSample.java b/management/model/src/main/java/org/terracotta/management/model/stats/DelegatingSample.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/stats/DelegatingSample.java rename to management/model/src/main/java/org/terracotta/management/model/stats/DelegatingSample.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/stats/DelegatingStatistic.java b/management/model/src/main/java/org/terracotta/management/model/stats/DelegatingStatistic.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/stats/DelegatingStatistic.java rename to management/model/src/main/java/org/terracotta/management/model/stats/DelegatingStatistic.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/stats/Sample.java b/management/model/src/main/java/org/terracotta/management/model/stats/Sample.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/stats/Sample.java rename to management/model/src/main/java/org/terracotta/management/model/stats/Sample.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/stats/Statistic.java b/management/model/src/main/java/org/terracotta/management/model/stats/Statistic.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/stats/Statistic.java rename to management/model/src/main/java/org/terracotta/management/model/stats/Statistic.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/stats/StatisticRegistry.java b/management/model/src/main/java/org/terracotta/management/model/stats/StatisticRegistry.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/stats/StatisticRegistry.java rename to management/model/src/main/java/org/terracotta/management/model/stats/StatisticRegistry.java diff --git a/management/management-model/src/main/java/org/terracotta/management/model/stats/StatisticType.java b/management/model/src/main/java/org/terracotta/management/model/stats/StatisticType.java similarity index 100% rename from management/management-model/src/main/java/org/terracotta/management/model/stats/StatisticType.java rename to management/model/src/main/java/org/terracotta/management/model/stats/StatisticType.java diff --git a/management/cluster-topology/src/test/java/org/terracotta/management/model/cluster/AbstractTest.java b/management/model/src/test/java/org/terracotta/management/model/cluster/AbstractTest.java similarity index 100% rename from management/cluster-topology/src/test/java/org/terracotta/management/model/cluster/AbstractTest.java rename to management/model/src/test/java/org/terracotta/management/model/cluster/AbstractTest.java diff --git a/management/management-model/src/test/java/org/terracotta/management/model/cluster/ClientIdentifierTest.java b/management/model/src/test/java/org/terracotta/management/model/cluster/ClientIdentifierTest.java similarity index 100% rename from management/management-model/src/test/java/org/terracotta/management/model/cluster/ClientIdentifierTest.java rename to management/model/src/test/java/org/terracotta/management/model/cluster/ClientIdentifierTest.java diff --git a/management/cluster-topology/src/test/java/org/terracotta/management/model/cluster/ClusterTest.java b/management/model/src/test/java/org/terracotta/management/model/cluster/ClusterTest.java similarity index 100% rename from management/cluster-topology/src/test/java/org/terracotta/management/model/cluster/ClusterTest.java rename to management/model/src/test/java/org/terracotta/management/model/cluster/ClusterTest.java diff --git a/management/management-model/src/test/java/org/terracotta/management/model/cluster/SerializationTest.java b/management/model/src/test/java/org/terracotta/management/model/cluster/SerializationTest.java similarity index 100% rename from management/management-model/src/test/java/org/terracotta/management/model/cluster/SerializationTest.java rename to management/model/src/test/java/org/terracotta/management/model/cluster/SerializationTest.java diff --git a/management/management-model/src/test/java/org/terracotta/management/model/cluster/SettingsTest.java b/management/model/src/test/java/org/terracotta/management/model/cluster/SettingsTest.java similarity index 100% rename from management/management-model/src/test/java/org/terracotta/management/model/cluster/SettingsTest.java rename to management/model/src/test/java/org/terracotta/management/model/cluster/SettingsTest.java diff --git a/management/cluster-topology/src/test/resources/cluster.json b/management/model/src/test/resources/cluster.json similarity index 100% rename from management/cluster-topology/src/test/resources/cluster.json rename to management/model/src/test/resources/cluster.json diff --git a/management/monitoring-service-api/pom.xml b/management/monitoring-service-api/pom.xml deleted file mode 100755 index 8508520c8c..0000000000 --- a/management/monitoring-service-api/pom.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - terracotta-management - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - monitoring-service-api - Terracotta Management :: Monitoring Service API - - - - - org.terracotta.management - management-model - ${project.version} - - - org.terracotta.management - management-registry - ${project.version} - - - org.terracotta.management - sequence-generator - ${project.version} - - - org.terracotta.management - cluster-topology - ${project.version} - - - - org.terracotta - statistics - ${statistics.version} - provided - - - org.slf4j - slf4j-api - provided - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - - \ No newline at end of file diff --git a/management/monitoring-service/pom.xml b/management/monitoring-service/pom.xml deleted file mode 100755 index 391b5f96a1..0000000000 --- a/management/monitoring-service/pom.xml +++ /dev/null @@ -1,116 +0,0 @@ - - - - - terracotta-management - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - monitoring-service - Terracotta Management :: Monitoring Service - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - - org.terracotta.voltron.proxy - voltron-proxy-common - ${project.version} - - - - - org.terracotta.management - monitoring-service-api - ${project.version} - provided - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - org.slf4j - slf4j-api - provided - - - - - org.terracotta - monitoring-support - provided - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - - junit - junit - test - - - org.terracotta.common - common-json-support - ${project.version} - test - - - org.mockito - mockito-core - 2.23.4 - test - - - ch.qos.logback - logback-classic - test - - - diff --git a/management/nms-agent-entity/nms-agent-entity-client/pom.xml b/management/nms-agent-entity/nms-agent-entity-client/pom.xml deleted file mode 100755 index 26f72d1c64..0000000000 --- a/management/nms-agent-entity/nms-agent-entity-client/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - nms-agent-entity - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - nms-agent-entity-client - Terracotta Management :: NMS Agent Entity :: Client - - - - org.terracotta.voltron.proxy - voltron-proxy-client - ${project.version} - - - org.terracotta.management - nms-agent-entity-common - ${project.version} - - - org.terracotta.management - management-registry - ${project.version} - - - org.slf4j - slf4j-api - provided - - - - - org.terracotta - entity-client-api - provided - - - - \ No newline at end of file diff --git a/management/nms-agent-entity/nms-agent-entity-common/pom.xml b/management/nms-agent-entity/nms-agent-entity-common/pom.xml deleted file mode 100755 index 1790d6f7be..0000000000 --- a/management/nms-agent-entity/nms-agent-entity-common/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - nms-agent-entity - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - nms-agent-entity-common - Terracotta Management :: NMS Agent Entity :: Common - - - - - org.terracotta.management - management-model - ${project.version} - - - org.terracotta.management - sequence-generator - ${project.version} - - - - - org.terracotta.voltron.proxy - voltron-proxy-common - ${project.version} - - - - \ No newline at end of file diff --git a/management/nms-agent-entity/nms-agent-entity-server/pom.xml b/management/nms-agent-entity/nms-agent-entity-server/pom.xml deleted file mode 100755 index ffe5efd0b0..0000000000 --- a/management/nms-agent-entity/nms-agent-entity-server/pom.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - nms-agent-entity - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - nms-agent-entity-server - Terracotta Management :: NMS Agent Entity :: Server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - - org.terracotta.management - monitoring-service-api - ${project.version} - provided - - - org.terracotta - statistics - ${statistics.version} - provided - - - org.slf4j - slf4j-api - provided - - - - - org.terracotta.management - nms-agent-entity-common - ${project.version} - - - org.terracotta.voltron.proxy - voltron-proxy-server - ${project.version} - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - \ No newline at end of file diff --git a/management/nms-agent-entity/pom.xml b/management/nms-agent-entity/pom.xml deleted file mode 100755 index 680880cb57..0000000000 --- a/management/nms-agent-entity/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - 4.0.0 - pom - - - nms-agent-entity-common - nms-agent-entity-client - nms-agent-entity-server - - - - org.terracotta.management - terracotta-management - 5.10-SNAPSHOT - - - nms-agent-entity - Terracotta Management :: NMS Agent Entity - - diff --git a/management/nms-entity/nms-entity-client/pom.xml b/management/nms-entity/nms-entity-client/pom.xml deleted file mode 100755 index 19197fa9e5..0000000000 --- a/management/nms-entity/nms-entity-client/pom.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - nms-entity - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - nms-entity-client - Terracotta Management :: NMS Entity :: Client - - - - org.terracotta.voltron.proxy - voltron-proxy-client - ${project.version} - - - org.terracotta.management - nms-entity-common - ${project.version} - - - - - org.terracotta - entity-client-api - provided - - - - \ No newline at end of file diff --git a/management/nms-entity/nms-entity-common/pom.xml b/management/nms-entity/nms-entity-common/pom.xml deleted file mode 100755 index bc3c70817b..0000000000 --- a/management/nms-entity/nms-entity-common/pom.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - nms-entity - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - nms-entity-common - Terracotta Management :: NMS Entity :: Common - - - - - org.terracotta.management - cluster-topology - ${project.version} - - - org.terracotta.management - management-model - ${project.version} - - - org.terracotta.management - management-registry - ${project.version} - - - org.terracotta.management - sequence-generator - ${project.version} - - - - - org.terracotta.voltron.proxy - voltron-proxy-common - ${project.version} - - - - \ No newline at end of file diff --git a/management/nms-entity/nms-entity-server/pom.xml b/management/nms-entity/nms-entity-server/pom.xml deleted file mode 100755 index 8e0e1ceb39..0000000000 --- a/management/nms-entity/nms-entity-server/pom.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - nms-entity - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - nms-entity-server - Terracotta Management :: NMS Entity :: Server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - - org.terracotta.management - monitoring-service-api - ${project.version} - provided - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - org.terracotta - statistics - ${statistics.version} - provided - - - org.slf4j - slf4j-api - provided - - - - - org.terracotta.management - nms-entity-common - ${project.version} - - - org.terracotta.voltron.proxy - voltron-proxy-server - ${project.version} - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - \ No newline at end of file diff --git a/management/nms-entity/pom.xml b/management/nms-entity/pom.xml deleted file mode 100755 index b416a15ffd..0000000000 --- a/management/nms-entity/pom.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - terracotta-management - org.terracotta.management - 5.10-SNAPSHOT - - - 4.0.0 - pom - - - nms-entity-common - nms-entity-client - nms-entity-server - - - nms-entity - Terracotta Management :: NMS Entity - - diff --git a/management/pom.xml b/management/pom.xml deleted file mode 100755 index 7e448dde77..0000000000 --- a/management/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../ - - 4.0.0 - - org.terracotta.management - terracotta-management - pom - - - sequence-generator - management-model - management-registry - cluster-topology - monitoring-service-api - monitoring-service - nms-agent-entity - nms-entity - testing/sample-entity - testing/integration-tests - testing/doc - - - Terracotta Management - A set of Java modules for management and monitoring, common to several Terracotta products - - diff --git a/management/registry/build.gradle b/management/registry/build.gradle new file mode 100644 index 0000000000..62ab29cdb4 --- /dev/null +++ b/management/registry/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':management:model') + + testImplementation project(':common:json') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'management-registry' + name = 'Management Registry' +} diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/AbstractManagementProvider.java b/management/registry/src/main/java/org/terracotta/management/registry/AbstractManagementProvider.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/AbstractManagementProvider.java rename to management/registry/src/main/java/org/terracotta/management/registry/AbstractManagementProvider.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/CallQuery.java b/management/registry/src/main/java/org/terracotta/management/registry/CallQuery.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/CallQuery.java rename to management/registry/src/main/java/org/terracotta/management/registry/CallQuery.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/CapabilityManagement.java b/management/registry/src/main/java/org/terracotta/management/registry/CapabilityManagement.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/CapabilityManagement.java rename to management/registry/src/main/java/org/terracotta/management/registry/CapabilityManagement.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/CapabilityManagementSupport.java b/management/registry/src/main/java/org/terracotta/management/registry/CapabilityManagementSupport.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/CapabilityManagementSupport.java rename to management/registry/src/main/java/org/terracotta/management/registry/CapabilityManagementSupport.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/CombiningCapabilityManagementSupport.java b/management/registry/src/main/java/org/terracotta/management/registry/CombiningCapabilityManagementSupport.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/CombiningCapabilityManagementSupport.java rename to management/registry/src/main/java/org/terracotta/management/registry/CombiningCapabilityManagementSupport.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultCallQuery.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultCallQuery.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultCallQuery.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultCallQuery.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultCallQueryBuilder.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultCallQueryBuilder.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultCallQueryBuilder.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultCallQueryBuilder.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultCapabilityManagement.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultCapabilityManagement.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultCapabilityManagement.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultCapabilityManagement.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultExposedObject.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultExposedObject.java similarity index 99% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultExposedObject.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultExposedObject.java index 309f5b329b..73aa0fba70 100644 --- a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultExposedObject.java +++ b/management/registry/src/main/java/org/terracotta/management/registry/DefaultExposedObject.java @@ -27,7 +27,7 @@ * @author Mathieu Carbou */ public class DefaultExposedObject implements ExposedObject { - + private final Context context; private final T o; diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultManagementRegistry.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultManagementRegistry.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultManagementRegistry.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultManagementRegistry.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultResultSet.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultResultSet.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultResultSet.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultResultSet.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQuery.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQuery.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQuery.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQuery.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQueryBuilder.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQueryBuilder.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQueryBuilder.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticQueryBuilder.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsExposedObject.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsExposedObject.java similarity index 99% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsExposedObject.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsExposedObject.java index 7fb9b9fee8..fa3c9f8089 100644 --- a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsExposedObject.java +++ b/management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsExposedObject.java @@ -33,7 +33,7 @@ public class DefaultStatisticsExposedObject extends DefaultExposedObject { protected final StatisticRegistry statisticRegistry; - + public DefaultStatisticsExposedObject(T o, LongSupplier timeSource, Context context) { super(o, context); statisticRegistry = new StatisticRegistry(o, timeSource); diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsManagementProvider.java b/management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsManagementProvider.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsManagementProvider.java rename to management/registry/src/main/java/org/terracotta/management/registry/DefaultStatisticsManagementProvider.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/ExposedObject.java b/management/registry/src/main/java/org/terracotta/management/registry/ExposedObject.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/ExposedObject.java rename to management/registry/src/main/java/org/terracotta/management/registry/ExposedObject.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/ManagementProvider.java b/management/registry/src/main/java/org/terracotta/management/registry/ManagementProvider.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/ManagementProvider.java rename to management/registry/src/main/java/org/terracotta/management/registry/ManagementProvider.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/ManagementProviderAdapter.java b/management/registry/src/main/java/org/terracotta/management/registry/ManagementProviderAdapter.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/ManagementProviderAdapter.java rename to management/registry/src/main/java/org/terracotta/management/registry/ManagementProviderAdapter.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/ManagementRegistry.java b/management/registry/src/main/java/org/terracotta/management/registry/ManagementRegistry.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/ManagementRegistry.java rename to management/registry/src/main/java/org/terracotta/management/registry/ManagementRegistry.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/Named.java b/management/registry/src/main/java/org/terracotta/management/registry/Named.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/Named.java rename to management/registry/src/main/java/org/terracotta/management/registry/Named.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/Query.java b/management/registry/src/main/java/org/terracotta/management/registry/Query.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/Query.java rename to management/registry/src/main/java/org/terracotta/management/registry/Query.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/QueryBuilder.java b/management/registry/src/main/java/org/terracotta/management/registry/QueryBuilder.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/QueryBuilder.java rename to management/registry/src/main/java/org/terracotta/management/registry/QueryBuilder.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/RequiredContext.java b/management/registry/src/main/java/org/terracotta/management/registry/RequiredContext.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/RequiredContext.java rename to management/registry/src/main/java/org/terracotta/management/registry/RequiredContext.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/ResultSet.java b/management/registry/src/main/java/org/terracotta/management/registry/ResultSet.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/ResultSet.java rename to management/registry/src/main/java/org/terracotta/management/registry/ResultSet.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/StatisticQuery.java b/management/registry/src/main/java/org/terracotta/management/registry/StatisticQuery.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/StatisticQuery.java rename to management/registry/src/main/java/org/terracotta/management/registry/StatisticQuery.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/action/AbstractActionManagementProvider.java b/management/registry/src/main/java/org/terracotta/management/registry/action/AbstractActionManagementProvider.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/action/AbstractActionManagementProvider.java rename to management/registry/src/main/java/org/terracotta/management/registry/action/AbstractActionManagementProvider.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/action/Exposed.java b/management/registry/src/main/java/org/terracotta/management/registry/action/Exposed.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/action/Exposed.java rename to management/registry/src/main/java/org/terracotta/management/registry/action/Exposed.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/collect/DefaultStatisticCollector.java b/management/registry/src/main/java/org/terracotta/management/registry/collect/DefaultStatisticCollector.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/collect/DefaultStatisticCollector.java rename to management/registry/src/main/java/org/terracotta/management/registry/collect/DefaultStatisticCollector.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollector.java b/management/registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollector.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollector.java rename to management/registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollector.java diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollectorProvider.java b/management/registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollectorProvider.java similarity index 99% rename from management/management-registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollectorProvider.java rename to management/registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollectorProvider.java index 63c7c208db..5fa9f39e62 100644 --- a/management/management-registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollectorProvider.java +++ b/management/registry/src/main/java/org/terracotta/management/registry/collect/StatisticCollectorProvider.java @@ -69,7 +69,7 @@ public void stopStatisticCollector() { public boolean isRunning() { return collectorService.isRunning(); } - + @Exposed public void startStatisticCollector(@Named("interval") long interval, @Named("unit") TimeUnit unit) { diff --git a/management/management-registry/src/main/java/org/terracotta/management/registry/collect/StatisticProvider.java b/management/registry/src/main/java/org/terracotta/management/registry/collect/StatisticProvider.java similarity index 100% rename from management/management-registry/src/main/java/org/terracotta/management/registry/collect/StatisticProvider.java rename to management/registry/src/main/java/org/terracotta/management/registry/collect/StatisticProvider.java diff --git a/management/management-registry/src/test/java/org/terracotta/management/registry/DefaultCallQueryTest.java b/management/registry/src/test/java/org/terracotta/management/registry/DefaultCallQueryTest.java similarity index 100% rename from management/management-registry/src/test/java/org/terracotta/management/registry/DefaultCallQueryTest.java rename to management/registry/src/test/java/org/terracotta/management/registry/DefaultCallQueryTest.java diff --git a/management/management-registry/src/test/java/org/terracotta/management/registry/ManagementRegistryTest.java b/management/registry/src/test/java/org/terracotta/management/registry/ManagementRegistryTest.java similarity index 100% rename from management/management-registry/src/test/java/org/terracotta/management/registry/ManagementRegistryTest.java rename to management/registry/src/test/java/org/terracotta/management/registry/ManagementRegistryTest.java diff --git a/management/management-registry/src/test/java/org/terracotta/management/registry/action/ActionProviderTest.java b/management/registry/src/test/java/org/terracotta/management/registry/action/ActionProviderTest.java similarity index 100% rename from management/management-registry/src/test/java/org/terracotta/management/registry/action/ActionProviderTest.java rename to management/registry/src/test/java/org/terracotta/management/registry/action/ActionProviderTest.java diff --git a/management/management-registry/src/test/java/org/terracotta/management/registry/action/MyManagementProvider.java b/management/registry/src/test/java/org/terracotta/management/registry/action/MyManagementProvider.java similarity index 100% rename from management/management-registry/src/test/java/org/terracotta/management/registry/action/MyManagementProvider.java rename to management/registry/src/test/java/org/terracotta/management/registry/action/MyManagementProvider.java diff --git a/management/management-registry/src/test/java/org/terracotta/management/registry/action/MyObject.java b/management/registry/src/test/java/org/terracotta/management/registry/action/MyObject.java similarity index 100% rename from management/management-registry/src/test/java/org/terracotta/management/registry/action/MyObject.java rename to management/registry/src/test/java/org/terracotta/management/registry/action/MyObject.java diff --git a/management/management-registry/src/test/java/org/terracotta/management/registry/json/TestModule.java b/management/registry/src/test/java/org/terracotta/management/registry/json/TestModule.java similarity index 100% rename from management/management-registry/src/test/java/org/terracotta/management/registry/json/TestModule.java rename to management/registry/src/test/java/org/terracotta/management/registry/json/TestModule.java diff --git a/management/management-registry/src/test/resources/capabilities.json b/management/registry/src/test/resources/capabilities.json similarity index 100% rename from management/management-registry/src/test/resources/capabilities.json rename to management/registry/src/test/resources/capabilities.json diff --git a/management/sequence-generator/build.gradle b/management/sequence-generator/build.gradle new file mode 100644 index 0000000000..c857aa3d58 --- /dev/null +++ b/management/sequence-generator/build.gradle @@ -0,0 +1,20 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + testImplementation project(':common:test-utilities') +} + +test { + forkEvery = 1 + jvmArgs = ['-Dorg.terracotta.management.sequence.NodeIdSource=org.terracotta.management.sequence.MyNodeIdSource', '-Dorg.terracotta.management.sequence.TimeSource=org.terracotta.management.sequence.MyTimeSource'] +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'sequence-generator' + name = 'Management Sequence Generator' +} diff --git a/management/sequence-generator/pom.xml b/management/sequence-generator/pom.xml deleted file mode 100755 index 4773ddd85a..0000000000 --- a/management/sequence-generator/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - terracotta-management - org.terracotta.management - 5.10-SNAPSHOT - - 4.0.0 - - sequence-generator - Terracotta Management :: Sequence Generator - - - - - org.apache.maven.plugins - maven-surefire-plugin - - false - - -Dorg.terracotta.management.sequence.NodeIdSource=org.terracotta.management.sequence.MyNodeIdSource - -Dorg.terracotta.management.sequence.TimeSource=org.terracotta.management.sequence.MyTimeSource - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - org.terracotta.management.sequence.perf.PerfTest - - - - - - - - - - junit - junit - test - - - - \ No newline at end of file diff --git a/management/monitoring-service-api/README.adoc b/management/server/api/README.adoc similarity index 100% rename from management/monitoring-service-api/README.adoc rename to management/server/api/README.adoc diff --git a/management/server/api/build.gradle b/management/server/api/build.gradle new file mode 100644 index 0000000000..70d73195f6 --- /dev/null +++ b/management/server/api/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':management:registry') + api "org.terracotta:entity-server-api:$terracottaApisVersion" + api "org.terracotta:standard-cluster-services:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'monitoring-service-api' + name = 'Monitoring Server API' +} diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/AbstractManagementRegistryConfiguration.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/AbstractManagementRegistryConfiguration.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/AbstractManagementRegistryConfiguration.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/AbstractManagementRegistryConfiguration.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringService.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringService.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringService.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringService.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringServiceConfiguration.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringServiceConfiguration.java similarity index 99% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringServiceConfiguration.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringServiceConfiguration.java index 35ea4083ce..45474e4d88 100644 --- a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringServiceConfiguration.java +++ b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ClientMonitoringServiceConfiguration.java @@ -16,19 +16,19 @@ */ package org.terracotta.management.service.monitoring; +import java.util.Objects; + import org.terracotta.entity.BasicServiceConfiguration; import org.terracotta.entity.ClientCommunicator; import org.terracotta.entity.ServiceConfiguration; import org.terracotta.entity.ServiceException; import org.terracotta.entity.ServiceRegistry; -import java.util.Objects; - /** * @author Mathieu Carbou */ public class ClientMonitoringServiceConfiguration implements ServiceConfiguration { - + private final ServiceRegistry registry; public ClientMonitoringServiceConfiguration(ServiceRegistry registry) { diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistry.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistry.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistry.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistry.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistryConfiguration.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistryConfiguration.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistryConfiguration.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/EntityManagementRegistryConfiguration.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/EntityMonitoringService.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/EntityMonitoringService.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/EntityMonitoringService.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/EntityMonitoringService.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManageableServerComponent.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManageableServerComponent.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManageableServerComponent.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManageableServerComponent.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManagementExecutor.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManagementExecutor.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManagementExecutor.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManagementExecutor.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManagementService.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManagementService.java similarity index 99% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManagementService.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManagementService.java index 09e7c830dd..cd58923366 100644 --- a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManagementService.java +++ b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManagementService.java @@ -16,14 +16,14 @@ */ package org.terracotta.management.service.monitoring; +import java.io.Closeable; + import org.terracotta.entity.ClientDescriptor; import org.terracotta.entity.CommonServerEntity; import org.terracotta.management.model.call.Parameter; import org.terracotta.management.model.cluster.Cluster; import org.terracotta.management.model.context.Context; -import java.io.Closeable; - /** * Class used by the active NMS Entity to monitor the stripe and send management calls * @@ -32,7 +32,7 @@ public interface ManagementService extends Closeable { void setManagementExecutor(ManagementExecutor managementExecutor); - + /** * @return the current topology. You must not apply any mutation to the returned object. * A cluster is a composition of several clients and stripes, but the returned cluster will only have one stripe: the one we are currently on. diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManagementServiceConfiguration.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManagementServiceConfiguration.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ManagementServiceConfiguration.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/ManagementServiceConfiguration.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ServerManagementRegistryConfiguration.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/ServerManagementRegistryConfiguration.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/ServerManagementRegistryConfiguration.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/ServerManagementRegistryConfiguration.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/SharedEntityManagementRegistry.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/SharedEntityManagementRegistry.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/SharedEntityManagementRegistry.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/SharedEntityManagementRegistry.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractEntityManagementProvider.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractEntityManagementProvider.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractEntityManagementProvider.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractEntityManagementProvider.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractExposedStatistics.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractExposedStatistics.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractExposedStatistics.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractExposedStatistics.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractStatisticsManagementProvider.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractStatisticsManagementProvider.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractStatisticsManagementProvider.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AbstractStatisticsManagementProvider.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBinding.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBinding.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBinding.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBinding.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBindingManagementProvider.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBindingManagementProvider.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBindingManagementProvider.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/AliasBindingManagementProvider.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBinding.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBinding.java similarity index 99% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBinding.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBinding.java index df12dd0f57..e6c1654003 100644 --- a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBinding.java +++ b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBinding.java @@ -16,11 +16,11 @@ */ package org.terracotta.management.service.monitoring.registry.provider; +import java.util.Objects; + import org.terracotta.entity.ClientDescriptor; import org.terracotta.management.model.cluster.ClientIdentifier; -import java.util.Objects; - public class ClientBinding { private final ClientDescriptor clientDescriptor; @@ -31,7 +31,7 @@ public class ClientBinding { public ClientBinding(ClientDescriptor clientDescriptor) { this(clientDescriptor, null); } - + public ClientBinding(ClientDescriptor clientDescriptor, Object value) { this.clientDescriptor = Objects.requireNonNull(clientDescriptor); this.value = value; diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBindingManagementProvider.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBindingManagementProvider.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBindingManagementProvider.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/ClientBindingManagementProvider.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/MonitoringServiceAware.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/MonitoringServiceAware.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/MonitoringServiceAware.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/MonitoringServiceAware.java diff --git a/management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/StatisticCollectorManagementProvider.java b/management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/StatisticCollectorManagementProvider.java similarity index 100% rename from management/monitoring-service-api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/StatisticCollectorManagementProvider.java rename to management/server/api/src/main/java/org/terracotta/management/service/monitoring/registry/provider/StatisticCollectorManagementProvider.java diff --git a/management/monitoring-service/README.adoc b/management/server/services/README.adoc similarity index 100% rename from management/monitoring-service/README.adoc rename to management/server/services/README.adoc diff --git a/management/server/services/build.gradle b/management/server/services/build.gradle new file mode 100644 index 0000000000..49f3a9b47e --- /dev/null +++ b/management/server/services/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':management:server:api') + service project(':dynamic-config:api') + implementation project(':voltron-proxy:common') + testImplementation project(':common:json') +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'monitoring-service' + name = 'Monitoring Server Plugin' +} diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultClientMonitoringService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultClientMonitoringService.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultClientMonitoringService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultClientMonitoringService.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityManagementRegistry.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityManagementRegistry.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityManagementRegistry.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityManagementRegistry.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityMonitoringService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityMonitoringService.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityMonitoringService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultEntityMonitoringService.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultFiringService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultFiringService.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultFiringService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultFiringService.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementDataListener.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementDataListener.java similarity index 98% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementDataListener.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementDataListener.java index 8711b0e174..891b2a7afb 100644 --- a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementDataListener.java +++ b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementDataListener.java @@ -45,8 +45,8 @@ class DefaultManagementDataListener implements ManagementDataListener, TopologyE // 2. Platform rebuilds the tree with addNode() for created active entities, etc (platform-level stuff) // 3. Platform replays addNode() calls made by old passive entities // 4. Platform replays pushBestEffortData() calls made by old passive entities - // 5. Platform starts sending addNode() and pushBestEffortData() for messages coming from the new active entity - // We need to detect this replay phase so that we can ignore incoming messages coming from passive entities, + // 5. Platform starts sending addNode() and pushBestEffortData() for messages coming from the new active entity + // We need to detect this replay phase so that we can ignore incoming messages coming from passive entities, // until we are out of this failover phase, and throw assertion f we are still receiving messages from passives. // Steps 1-4 are done in the failover thread and 5 on the request processor thread. private volatile String failoverThreadName; @@ -111,7 +111,7 @@ private void accept(MessageSource messageSource, String method, Runnable runnabl // - messages coming from an active entity onto an active with same server names // - messages coming from a passive entity to an active server with different server names // We discard messages from the replay. - // We fail if we still receive data from the old passive entity and promotion is finished + // We fail if we still receive data from the old passive entity and promotion is finished boolean activeToActive = messageSource.isActiveEntity() && currentServerActive && currentServerName.equals(messageSource.getServerName()); boolean passiveToActive = !messageSource.isActiveEntity() && currentServerActive && !currentServerName.equals(messageSource.getServerName()); boolean fromOldPassiveEntity = !messageSource.isActiveEntity() && currentServerActive && currentServerName.equals(messageSource.getServerName()); diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementService.java similarity index 99% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementService.java index d703296e5a..09479c409e 100644 --- a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementService.java +++ b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultManagementService.java @@ -140,7 +140,7 @@ void onMessageToSend(Message message) { String cid = "" + consumerId; // The statistic collector collects all statistics from the shared management registry (entities) // plus 1 management entity (which contains this collector). - // Here, we only accept groups of stats that are collected by the collector that have the same + // Here, we only accept groups of stats that are collected by the collector that have the same // consumerId (same NMS entity) boolean accepted = message.unwrap(Contextual.class).stream() .map(Contextual::getContext) diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultSharedEntityManagementRegistry.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultSharedEntityManagementRegistry.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultSharedEntityManagementRegistry.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultSharedEntityManagementRegistry.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultStatisticService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultStatisticService.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/DefaultStatisticService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/DefaultStatisticService.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ExecutionChain.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/ExecutionChain.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ExecutionChain.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/ExecutionChain.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ExecutorUtil.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/ExecutorUtil.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ExecutorUtil.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/ExecutorUtil.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/FiringService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/FiringService.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/FiringService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/FiringService.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringDataListenerAdapter.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringDataListenerAdapter.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringDataListenerAdapter.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringDataListenerAdapter.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringPlatformListenerAdapter.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringPlatformListenerAdapter.java similarity index 99% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringPlatformListenerAdapter.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringPlatformListenerAdapter.java index 456ade9148..566f06df83 100644 --- a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringPlatformListenerAdapter.java +++ b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/IStripeMonitoringPlatformListenerAdapter.java @@ -126,7 +126,7 @@ public boolean addNode(PlatformServer sender, String[] parents, String name, Ser case "state": { delegate.serverStateChanged(sender, (ServerState) value); - return false; // false to avoid replay of the cached data when a passive server becomes active + return false; // false to avoid replay of the cached data when a passive server becomes active } case "fetched": { diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ManagementDataListener.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/ManagementDataListener.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ManagementDataListener.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/ManagementDataListener.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ManagementMessage.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/ManagementMessage.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/ManagementMessage.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/ManagementMessage.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/MessageSource.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/MessageSource.java similarity index 97% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/MessageSource.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/MessageSource.java index d1ea28e27e..159e8533f6 100644 --- a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/MessageSource.java +++ b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/MessageSource.java @@ -29,7 +29,7 @@ public class MessageSource implements Serializable { private static final long serialVersionUID = 1; - + private final String serverName; private final long consumerId; private final boolean activeEntity; @@ -37,7 +37,7 @@ public class MessageSource implements Serializable { public MessageSource(String serverName, long consumerId, boolean activeEntity) { this.serverName = Objects.requireNonNull(serverName); this.consumerId = consumerId; - this.activeEntity = activeEntity; + this.activeEntity = activeEntity; } public String getServerName() { diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/MonitoringServiceProvider.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/MonitoringServiceProvider.java similarity index 99% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/MonitoringServiceProvider.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/MonitoringServiceProvider.java index 30f2753919..68a9380d86 100644 --- a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/MonitoringServiceProvider.java +++ b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/MonitoringServiceProvider.java @@ -183,7 +183,7 @@ public T getService(long consumerID, ServiceConfiguration configuration) managementRegistry.onClose(() -> sharedManagementRegistry.removeEntityManagementRegistry(managementRegistry)); } else if (configuration instanceof ServerManagementRegistryConfiguration) { - // here, this is the case of an entity that wants to both expose management stuff, plus contains server-side management + // here, this is the case of an entity that wants to both expose management stuff, plus contains server-side management // information, plus a statistics collector previous = sharedManagementRegistry.addServerManagementRegistry(managementRegistry); managementRegistry.onClose(() -> sharedManagementRegistry.removeServerManagementRegistry(managementRegistry)); diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/Notification.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/Notification.java similarity index 99% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/Notification.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/Notification.java index 60b7ab7d35..ef6aa21fdc 100644 --- a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/Notification.java +++ b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/Notification.java @@ -40,6 +40,6 @@ enum Notification { CLIENT_TAGS_UPDATED, ENTITY_REGISTRY_AVAILABLE, - + CLIENT_PROPERTY_ADDED } diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/PlatformListener.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/PlatformListener.java similarity index 99% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/PlatformListener.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/PlatformListener.java index 9f86de14ca..b64ff627cc 100644 --- a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/PlatformListener.java +++ b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/PlatformListener.java @@ -50,6 +50,6 @@ interface PlatformListener { void clientFetch(PlatformConnectedClient client, PlatformEntity entity, ClientDescriptor clientDescriptor); void clientUnfetch(PlatformConnectedClient client, PlatformEntity entity, ClientDescriptor clientDescriptor); - + void clientAddProperty(PlatformConnectedClient client, String key, String value); } diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/StatisticService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/StatisticService.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/StatisticService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/StatisticService.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/TopologyEventListener.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/TopologyEventListener.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/TopologyEventListener.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/TopologyEventListener.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/TopologyService.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/TopologyService.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/TopologyService.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/TopologyService.java diff --git a/management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/Utils.java b/management/server/services/src/main/java/org/terracotta/management/service/monitoring/Utils.java similarity index 100% rename from management/monitoring-service/src/main/java/org/terracotta/management/service/monitoring/Utils.java rename to management/server/services/src/main/java/org/terracotta/management/service/monitoring/Utils.java diff --git a/management/monitoring-service/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider b/management/server/services/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider similarity index 100% rename from management/monitoring-service/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider rename to management/server/services/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider diff --git a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/ManagementExecutorAdapter.java b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/ManagementExecutorAdapter.java similarity index 99% rename from management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/ManagementExecutorAdapter.java rename to management/server/services/src/test/java/org/terracotta/management/service/monitoring/ManagementExecutorAdapter.java index d568f5777b..7b39c5f0de 100644 --- a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/ManagementExecutorAdapter.java +++ b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/ManagementExecutorAdapter.java @@ -26,16 +26,13 @@ public class ManagementExecutorAdapter implements ManagementExecutor { @Override public void executeManagementCallOnServer(String managementCallIdentifier, ContextualCall call) { - } @Override public void sendMessageToClients(Message message) { - } @Override public void sendMessageToClient(Message message, ClientDescriptor to) { - } } diff --git a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/ManagementRegistryServiceTest.java b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/ManagementRegistryServiceTest.java similarity index 100% rename from management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/ManagementRegistryServiceTest.java rename to management/server/services/src/test/java/org/terracotta/management/service/monitoring/ManagementRegistryServiceTest.java diff --git a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/MyManagementProvider.java b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/MyManagementProvider.java similarity index 100% rename from management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/MyManagementProvider.java rename to management/server/services/src/test/java/org/terracotta/management/service/monitoring/MyManagementProvider.java diff --git a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/MyObject.java b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/MyObject.java similarity index 100% rename from management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/MyObject.java rename to management/server/services/src/test/java/org/terracotta/management/service/monitoring/MyObject.java diff --git a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/MyPlatformConfiguration.java b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/MyPlatformConfiguration.java similarity index 100% rename from management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/MyPlatformConfiguration.java rename to management/server/services/src/test/java/org/terracotta/management/service/monitoring/MyPlatformConfiguration.java diff --git a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/UtilsTest.java b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/UtilsTest.java similarity index 100% rename from management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/UtilsTest.java rename to management/server/services/src/test/java/org/terracotta/management/service/monitoring/UtilsTest.java diff --git a/management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/VoltronMonitoringServiceTest.java b/management/server/services/src/test/java/org/terracotta/management/service/monitoring/VoltronMonitoringServiceTest.java similarity index 100% rename from management/monitoring-service/src/test/java/org/terracotta/management/service/monitoring/VoltronMonitoringServiceTest.java rename to management/server/services/src/test/java/org/terracotta/management/service/monitoring/VoltronMonitoringServiceTest.java diff --git a/management/monitoring-service/src/test/resources/cluster-1.json b/management/server/services/src/test/resources/cluster-1.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-1.json rename to management/server/services/src/test/resources/cluster-1.json diff --git a/management/monitoring-service/src/test/resources/cluster-10.json b/management/server/services/src/test/resources/cluster-10.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-10.json rename to management/server/services/src/test/resources/cluster-10.json diff --git a/management/monitoring-service/src/test/resources/cluster-2.json b/management/server/services/src/test/resources/cluster-2.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-2.json rename to management/server/services/src/test/resources/cluster-2.json diff --git a/management/monitoring-service/src/test/resources/cluster-3.json b/management/server/services/src/test/resources/cluster-3.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-3.json rename to management/server/services/src/test/resources/cluster-3.json diff --git a/management/monitoring-service/src/test/resources/cluster-4.json b/management/server/services/src/test/resources/cluster-4.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-4.json rename to management/server/services/src/test/resources/cluster-4.json diff --git a/management/monitoring-service/src/test/resources/cluster-5.json b/management/server/services/src/test/resources/cluster-5.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-5.json rename to management/server/services/src/test/resources/cluster-5.json diff --git a/management/monitoring-service/src/test/resources/cluster-6.json b/management/server/services/src/test/resources/cluster-6.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-6.json rename to management/server/services/src/test/resources/cluster-6.json diff --git a/management/monitoring-service/src/test/resources/cluster-7.json b/management/server/services/src/test/resources/cluster-7.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-7.json rename to management/server/services/src/test/resources/cluster-7.json diff --git a/management/monitoring-service/src/test/resources/cluster-8.json b/management/server/services/src/test/resources/cluster-8.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-8.json rename to management/server/services/src/test/resources/cluster-8.json diff --git a/management/monitoring-service/src/test/resources/cluster-9.json b/management/server/services/src/test/resources/cluster-9.json similarity index 100% rename from management/monitoring-service/src/test/resources/cluster-9.json rename to management/server/services/src/test/resources/cluster-9.json diff --git a/management/monitoring-service/src/test/resources/logback.xml b/management/server/services/src/test/resources/logback.xml similarity index 100% rename from management/monitoring-service/src/test/resources/logback.xml rename to management/server/services/src/test/resources/logback.xml diff --git a/management/testing/doc/pom.xml b/management/testing/doc/pom.xml deleted file mode 100755 index c65a552dba..0000000000 --- a/management/testing/doc/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - terracotta-management - org.terracotta.management - 5.10-SNAPSHOT - ../../pom.xml - - 4.0.0 - - org.terracotta.management.testing - doc - Terracotta Management :: Testing :: Doc Use Case - - - - - org.terracotta.management - nms-entity-client - ${project.version} - - - - - org.terracotta - connection-api - - - org.terracotta.internal - client-runtime - - - - - org.terracotta.management.testing - sample-entity - ${project.version} - plugin - - - - - ch.qos.logback - logback-classic - - - - diff --git a/management/testing/entity/build.gradle b/management/testing/entity/build.gradle new file mode 100644 index 0000000000..fcf0ccb019 --- /dev/null +++ b/management/testing/entity/build.gradle @@ -0,0 +1,32 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +dependencies { + service project(':dynamic-config:api') + service project(':management:server:api') + service project(':resources:offheap') + implementation project(':voltron-proxy:server') + + compileOnly project(':voltron-proxy:client') + compileOnly project(':management:entities:nms-agent:client') + compileOnly "org.terracotta:entity-client-api:$terracottaApisVersion" + + testImplementation project(':common:json') + testImplementation project(':voltron-proxy:client') + testImplementation project(':management:entities:nms:client') + testImplementation project(':management:entities:nms:server') + testImplementation project(':management:entities:nms-agent:client') + testImplementation project(':management:entities:nms-agent:server') + testImplementation project(':management:server:services') + testImplementation project(':resources:offheap') + testImplementation "org.terracotta:passthrough-server:$terracottaPassthroughVersion" +} + +deploy { + groupId = 'org.terracotta.management.testing' + artifactId = 'sample-entity' + name = 'Management Test Entity' +} diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/Cache.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/Cache.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/Cache.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/Cache.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/CacheOperationOutcomes.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/CacheOperationOutcomes.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/CacheOperationOutcomes.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/CacheOperationOutcomes.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntity.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntity.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntity.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntity.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityClientService.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityClientService.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityClientService.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityClientService.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityFactory.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityFactory.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityFactory.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheEntityFactory.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheFactory.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheFactory.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/CacheFactory.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/CacheFactory.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/ClientCache.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/ClientCache.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/ClientCache.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/ClientCache.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheCallManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheCallManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheCallManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheCallManagementProvider.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheSettingsManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheSettingsManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheSettingsManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheSettingsManagementProvider.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticCollectorManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticCollectorManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticCollectorManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticCollectorManagementProvider.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticsManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticsManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticsManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/CacheStatisticsManagementProvider.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/Management.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/Management.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/client/management/Management.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/client/management/Management.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/ActiveCacheServerEntity.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/ActiveCacheServerEntity.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/ActiveCacheServerEntity.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/ActiveCacheServerEntity.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/CacheEntityServerService.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/CacheEntityServerService.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/CacheEntityServerService.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/CacheEntityServerService.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/CacheSync.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/CacheSync.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/CacheSync.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/CacheSync.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/MapConfiguration.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/MapConfiguration.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/MapConfiguration.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/MapConfiguration.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/MapProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/MapProvider.java similarity index 99% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/MapProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/MapProvider.java index c198bb5779..33dd4a3b4d 100644 --- a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/MapProvider.java +++ b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/MapProvider.java @@ -79,11 +79,11 @@ public T getService(long consumerID, ServiceConfiguration configuration) offHeapResource.reserve(12 * 1024 * 1024); return new ConcurrentHashMap<>(); })); - + } else if (configuration instanceof MapRelease) { offHeapResource.release(12 * 1024 * 1024); return null; - + } else { throw new IllegalArgumentException("Missing configuration " + MapConfiguration.class.getSimpleName() + " when requesting service " + serviceType.getName()); } diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/MapRelease.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/MapRelease.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/MapRelease.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/MapRelease.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/PassiveCacheServerEntity.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/PassiveCacheServerEntity.java similarity index 99% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/PassiveCacheServerEntity.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/PassiveCacheServerEntity.java index 2f0e215f9e..7629d2e75e 100644 --- a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/PassiveCacheServerEntity.java +++ b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/PassiveCacheServerEntity.java @@ -47,7 +47,7 @@ class PassiveCacheServerEntity extends PassiveProxiedServerEntity implements Cac @Override public void createNew() { super.createNew(); - + LOGGER.trace("[{}] createNew()", cache.getName()); management.entityCreated(); management.serverCacheCreated(cache); @@ -65,7 +65,7 @@ public void destroy() { } catch (ServiceException e) { e.printStackTrace(); } - + super.destroy(); } diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/ServerCache.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/ServerCache.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/ServerCache.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/ServerCache.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateBinding.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateBinding.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateBinding.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateBinding.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateSettingsManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateSettingsManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateSettingsManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ClientStateSettingsManagementProvider.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/Management.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/Management.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/Management.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/Management.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheBinding.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheBinding.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheBinding.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheBinding.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheCallManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheCallManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheCallManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheCallManagementProvider.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheSettingsManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheSettingsManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheSettingsManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheSettingsManagementProvider.java diff --git a/management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheStatisticsManagementProvider.java b/management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheStatisticsManagementProvider.java similarity index 100% rename from management/testing/sample-entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheStatisticsManagementProvider.java rename to management/testing/entity/src/main/java/org/terracotta/management/entity/sample/server/management/ServerCacheStatisticsManagementProvider.java diff --git a/management/testing/sample-entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService b/management/testing/entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService similarity index 100% rename from management/testing/sample-entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService rename to management/testing/entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityClientService diff --git a/management/testing/sample-entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService b/management/testing/entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService similarity index 100% rename from management/testing/sample-entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService rename to management/testing/entity/src/main/resources/META-INF/services/org.terracotta.entity.EntityServerService diff --git a/management/testing/sample-entity/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider b/management/testing/entity/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider similarity index 100% rename from management/testing/sample-entity/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider rename to management/testing/entity/src/main/resources/META-INF/services/org.terracotta.entity.ServiceProvider diff --git a/management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/AbstractTest.java b/management/testing/entity/src/test/java/org/terracotta/management/entity/sample/AbstractTest.java similarity index 94% rename from management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/AbstractTest.java rename to management/testing/entity/src/test/java/org/terracotta/management/entity/sample/AbstractTest.java index 557e6b8fd8..46d9556263 100644 --- a/management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/AbstractTest.java +++ b/management/testing/entity/src/test/java/org/terracotta/management/entity/sample/AbstractTest.java @@ -48,15 +48,11 @@ import org.terracotta.management.entity.sample.json.TestModule; import org.terracotta.management.entity.sample.server.CacheEntityServerService; import org.terracotta.offheapresource.OffHeapResourcesProvider; -import org.terracotta.offheapresource.config.MemoryUnit; -import org.terracotta.offheapresource.config.OffheapResourcesType; -import org.terracotta.offheapresource.config.ResourceType; import org.terracotta.passthrough.PassthroughClusterControl; import org.terracotta.passthrough.PassthroughTestHelpers; import java.io.IOException; import java.io.UncheckedIOException; -import java.math.BigInteger; import java.net.URI; import java.net.URISyntaxException; import java.nio.file.Files; @@ -72,8 +68,10 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Collections.singleton; + import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import org.terracotta.common.struct.Measure; import static org.terracotta.dynamic_config.api.model.Testing.N_UIDS; import static org.terracotta.dynamic_config.api.model.Testing.newTestCluster; @@ -111,12 +109,8 @@ protected AbstractTest(int nPassives) { server.registerClientEntityService(new NmsEntityClientService()); server.registerServerEntityService(new NmsEntityServerService()); - OffheapResourcesType resources = new OffheapResourcesType(); - ResourceType resource = new ResourceType(); - resource.setName("primary-server-resource"); - resource.setUnit(MemoryUnit.MB); - resource.setValue(BigInteger.valueOf(32)); - resources.getResource().add(resource); + Map> resources = new HashMap<>(); + resources.put("primary-server-resource", Measure.of(32, org.terracotta.common.struct.MemoryUnit.MB)); server.registerExtendedConfiguration(new OffHeapResourcesProvider(resources)); server.registerExtendedConfiguration(topologyServiceServiceProvider.getService(0, new BasicServiceConfiguration<>(TopologyService.class))); diff --git a/management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/CacheEntityFeaturesTest.java b/management/testing/entity/src/test/java/org/terracotta/management/entity/sample/CacheEntityFeaturesTest.java similarity index 100% rename from management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/CacheEntityFeaturesTest.java rename to management/testing/entity/src/test/java/org/terracotta/management/entity/sample/CacheEntityFeaturesTest.java diff --git a/management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/ClientCacheLocalManagementTest.java b/management/testing/entity/src/test/java/org/terracotta/management/entity/sample/ClientCacheLocalManagementTest.java similarity index 100% rename from management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/ClientCacheLocalManagementTest.java rename to management/testing/entity/src/test/java/org/terracotta/management/entity/sample/ClientCacheLocalManagementTest.java diff --git a/management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/json/TestModule.java b/management/testing/entity/src/test/java/org/terracotta/management/entity/sample/json/TestModule.java similarity index 100% rename from management/testing/sample-entity/src/test/java/org/terracotta/management/entity/sample/json/TestModule.java rename to management/testing/entity/src/test/java/org/terracotta/management/entity/sample/json/TestModule.java diff --git a/management/testing/sample-entity/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService b/management/testing/entity/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService similarity index 100% rename from management/testing/sample-entity/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService rename to management/testing/entity/src/test/resources/META-INF/services/org.terracotta.connection.ConnectionService diff --git a/management/testing/sample-entity/src/test/resources/client-descriptors.json b/management/testing/entity/src/test/resources/client-descriptors.json similarity index 100% rename from management/testing/sample-entity/src/test/resources/client-descriptors.json rename to management/testing/entity/src/test/resources/client-descriptors.json diff --git a/management/testing/integration-tests/src/test/resources/logback.xml b/management/testing/entity/src/test/resources/logback.xml similarity index 100% rename from management/testing/integration-tests/src/test/resources/logback.xml rename to management/testing/entity/src/test/resources/logback.xml diff --git a/management/testing/doc/README.adoc b/management/testing/examples/README.md similarity index 100% rename from management/testing/doc/README.adoc rename to management/testing/examples/README.md diff --git a/management/testing/examples/build.gradle b/management/testing/examples/build.gradle new file mode 100644 index 0000000000..b3fb3572e4 --- /dev/null +++ b/management/testing/examples/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation project(':management:entities:nms:client') + implementation project(':management:testing:entity') + implementation project(':voltron-proxy:client') + implementation "org.terracotta:connection-api:$terracottaApisVersion" + implementation "org.terracotta.internal:client-runtime:$terracottaCoreVersion" +} + +deploy { + groupId = 'org.terracotta.management' + artifactId = 'management-examples' + name = 'Management Examples' +} diff --git a/management/testing/doc/src/main/java/org/terracotta/management/doc/DoManagementCall.java b/management/testing/examples/src/main/java/org/terracotta/management/doc/DoManagementCall.java similarity index 100% rename from management/testing/doc/src/main/java/org/terracotta/management/doc/DoManagementCall.java rename to management/testing/examples/src/main/java/org/terracotta/management/doc/DoManagementCall.java diff --git a/management/testing/doc/src/main/java/org/terracotta/management/doc/ReadNotifications.java b/management/testing/examples/src/main/java/org/terracotta/management/doc/ReadNotifications.java similarity index 100% rename from management/testing/doc/src/main/java/org/terracotta/management/doc/ReadNotifications.java rename to management/testing/examples/src/main/java/org/terracotta/management/doc/ReadNotifications.java diff --git a/management/testing/doc/src/main/java/org/terracotta/management/doc/ReadStatistics.java b/management/testing/examples/src/main/java/org/terracotta/management/doc/ReadStatistics.java similarity index 100% rename from management/testing/doc/src/main/java/org/terracotta/management/doc/ReadStatistics.java rename to management/testing/examples/src/main/java/org/terracotta/management/doc/ReadStatistics.java diff --git a/management/testing/doc/src/main/java/org/terracotta/management/doc/ReadTopology.java b/management/testing/examples/src/main/java/org/terracotta/management/doc/ReadTopology.java similarity index 100% rename from management/testing/doc/src/main/java/org/terracotta/management/doc/ReadTopology.java rename to management/testing/examples/src/main/java/org/terracotta/management/doc/ReadTopology.java diff --git a/management/testing/doc/src/main/java/org/terracotta/management/doc/StartSampleEntity.java b/management/testing/examples/src/main/java/org/terracotta/management/doc/StartSampleEntity.java similarity index 92% rename from management/testing/doc/src/main/java/org/terracotta/management/doc/StartSampleEntity.java rename to management/testing/examples/src/main/java/org/terracotta/management/doc/StartSampleEntity.java index dc2d3b512a..d4a83d4134 100644 --- a/management/testing/doc/src/main/java/org/terracotta/management/doc/StartSampleEntity.java +++ b/management/testing/examples/src/main/java/org/terracotta/management/doc/StartSampleEntity.java @@ -16,16 +16,16 @@ */ package org.terracotta.management.doc; -import org.terracotta.connection.ConnectionException; -import org.terracotta.management.entity.sample.Cache; -import org.terracotta.management.entity.sample.client.CacheFactory; - import java.net.URI; import java.util.Random; import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; +import org.terracotta.connection.ConnectionException; +import org.terracotta.management.entity.sample.Cache; +import org.terracotta.management.entity.sample.client.CacheFactory; + /** * @author Mathieu Carbou */ @@ -37,13 +37,15 @@ public static void main(String[] args) throws ConnectionException, ExecutionExce Cache pets = cacheFactory.getCache("pets"); + Random random = new Random(); + while (true) { - String key = "pet-" + new Random().nextInt(100); + String key = "pet-" + random.nextInt(100); System.out.println("put(" + key + ")"); pets.put(key, "Garfield"); - key = "pet-" + new Random().nextInt(100); + key = "pet-" + random.nextInt(100); System.out.println("get(" + key + ")"); pets.get(key); diff --git a/management/testing/doc/src/main/java/org/terracotta/management/doc/Utils.java b/management/testing/examples/src/main/java/org/terracotta/management/doc/Utils.java similarity index 100% rename from management/testing/doc/src/main/java/org/terracotta/management/doc/Utils.java rename to management/testing/examples/src/main/java/org/terracotta/management/doc/Utils.java diff --git a/management/testing/doc/src/main/resources/logback.xml b/management/testing/examples/src/main/resources/logback.xml similarity index 100% rename from management/testing/doc/src/main/resources/logback.xml rename to management/testing/examples/src/main/resources/logback.xml diff --git a/management/testing/doc/src/main/resources/tc-config.xml b/management/testing/examples/src/main/resources/tc-config.xml similarity index 100% rename from management/testing/doc/src/main/resources/tc-config.xml rename to management/testing/examples/src/main/resources/tc-config.xml diff --git a/management/testing/sample-entity/.gitignore b/management/testing/sample-entity/.gitignore deleted file mode 100644 index ea8c4bf7f3..0000000000 --- a/management/testing/sample-entity/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/target diff --git a/management/testing/sample-entity/pom.xml b/management/testing/sample-entity/pom.xml deleted file mode 100755 index 0a73d063ea..0000000000 --- a/management/testing/sample-entity/pom.xml +++ /dev/null @@ -1,180 +0,0 @@ - - - - - terracotta-management - org.terracotta.management - 5.10-SNAPSHOT - ../../pom.xml - - 4.0.0 - - org.terracotta.management.testing - sample-entity - jar - Terracotta Management :: Testing :: Sample Entity - - - - org.terracotta.voltron.proxy - voltron-proxy-client - ${project.version} - - - org.terracotta.voltron.proxy - voltron-proxy-server - ${project.version} - - - - org.terracotta.management - nms-agent-entity-client - ${project.version} - provided - - - - - org.terracotta - entity-client-api - provided - - - - - org.terracotta - entity-server-api - provided - - - org.terracotta.management - monitoring-service-api - ${project.version} - provided - - - org.terracotta - offheap-resource - ${project.version} - provided - - - org.terracotta - standard-cluster-services - provided - - - - junit - junit - test - - - org.terracotta - passthrough-server - test - - - ch.qos.logback - logback-classic - test - - - org.terracotta.common - common-json-support - ${project.version} - test - - - - org.terracotta.management - nms-entity-client - ${project.version} - test - - - - org.terracotta.management - nms-agent-entity-server - ${project.version} - test - - - - org.terracotta.management - nms-entity-server - ${project.version} - test - - - - org.terracotta.management - monitoring-service - ${project.version} - test - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - test - - - org.mockito - mockito-core - test - - - - - - - org.apache.maven.plugins - maven-shade-plugin - - true - plugin - false - true - true - - - - - - org.terracotta.voltron.proxy:voltron-proxy-common - org.terracotta.voltron.proxy:voltron-proxy-server - - - - - - - shade - - - - - - - - \ No newline at end of file diff --git a/mvnw b/mvnw deleted file mode 100755 index 0e000705d6..0000000000 --- a/mvnw +++ /dev/null @@ -1,242 +0,0 @@ -#!/bin/sh -# -# Copyright Terracotta, Inc. -# Copyright Super iPaaS Integration LLC, an IBM Company 2024 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Migwn, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/mvnw.cmd b/mvnw.cmd deleted file mode 100755 index 019bd74d76..0000000000 --- a/mvnw.cmd +++ /dev/null @@ -1,143 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM http://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/offheap-resource/pom.xml b/offheap-resource/pom.xml deleted file mode 100755 index 3472c87b8b..0000000000 --- a/offheap-resource/pom.xml +++ /dev/null @@ -1,162 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - ../pom.xml - - - offheap-resource - Plugin :: Off-Heap - - - - org.terracotta.common - common-structures - ${project.version} - - - - org.slf4j - slf4j-api - provided - - - org.terracotta - statistics - ${statistics.version} - provided - - - - - org.terracotta.dynamic-config.server - dynamic-config-server-api - ${project.version} - provided - - - - - org.terracotta.management - monitoring-service-api - ${project.version} - provided - - - org.terracotta.internal - tc-config-parser - provided - - - org.terracotta - packaging-support - provided - - - org.terracotta - entity-server-api - provided - - - org.terracotta - tc-tripwire-plugin - provided - - - junit - junit - test - - - org.hamcrest - hamcrest-all - test - - - org.mockito - mockito-core - test - - - org.slf4j - slf4j-simple - ${slf4j.range.version} - test - - - - - - - org.jvnet.jaxb2.maven2 - maven-jaxb2-plugin - - - generate-sources - - generate - - - - - false - src/main/resources - - *.xsd - - org.terracotta.offheapresource.config - - - - org.terracotta - tcconfig-schema - ${terracotta-configuration.version} - catalog.cat - - - - - - org.terracotta - tcconfig-schema - ${terracotta-configuration.version} - - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - diff --git a/platform-base/build.gradle b/platform-base/build.gradle new file mode 100644 index 0000000000..26f0d8d610 --- /dev/null +++ b/platform-base/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.voltron' +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'platform-base' + name = 'ServerInfo Server Plugin' +} diff --git a/platform-base/pom.xml b/platform-base/pom.xml deleted file mode 100755 index 20dac70b0d..0000000000 --- a/platform-base/pom.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - - - platform-base - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta - packaging-support - ${terracotta-apis.version} - provided - - - org.terracotta - entity-server-api - ${terracotta-apis.version} - provided - - - junit - junit - test - - - org.mockito - mockito-core - test - - - diff --git a/platform-layout/build.gradle.kts b/platform-layout/build.gradle.kts new file mode 100644 index 0000000000..f58895ce45 --- /dev/null +++ b/platform-layout/build.gradle.kts @@ -0,0 +1,281 @@ +@file:Suppress("UnstableApiUsage") + +import org.gradle.api.attributes.DocsType.JAVADOC +import org.gradle.api.internal.project.ProjectInternal +import org.gradle.api.plugins.jvm.internal.JvmPluginServices +import org.gradle.util.internal.GUtil + +import org.redundent.kotlin.xml.Namespace +import org.redundent.kotlin.xml.PrintOptions +import org.redundent.kotlin.xml.XmlVersion +import org.redundent.kotlin.xml.xml + +import java.nio.file.FileSystems +import java.util.SortedMap +import kotlin.io.path.inputStream +import kotlin.io.path.outputStream +import kotlin.text.Charsets.UTF_8 + +buildscript { + dependencies { + classpath("org.redundent:kotlin-xml-builder:1.9.1") + } +} + +plugins { + id("jvm-ecosystem") + id("org.terracotta.build.convention.distribution") + id("org.terracotta.build.deploy") +} + +val kit by configurations.registering { + description = "Outgoing kit configuration" +} + +copyright.check(fileTree("src/main/dist")) + +// tools + +val tools by configurations.registering { + description = "Tools (tools/)" + attributes { + attribute(Category.CATEGORY_ATTRIBUTE, objects.named(org.terracotta.build.plugins.ToolPlugin.TOOL_CATEGORY)) + } +} + +// server libs + +val serverLibs = configurations.dependencyScope("serverLibs") { + description = "The server libraries" +} + +val serverLibsClasspath = configurations.resolvable("serverLibsClasspath") { + extendsFrom(serverLibs.get()) +} + +val serverLibsClasspathAssembly = tasks.register("serverLibsClasspathAssembly") { + classpath = serverLibsClasspath + outputDirectory = layout.buildDirectory.dir("server-libs") +} + +// plugins + +val serverPluginApis by configurations.registering { + description = "The server plugins apis (server/plugins/api)" +} + +val serverClasspath = configurations.resolvable("serverClasspath") { + extendsFrom(serverLibsClasspath.get(), serverPluginApis.get()) +} + +val serverPluginLibs = dependencies.extensions.create("serverPluginLibs", project, serverClasspath) + +// versions + +val logbackVersion: String by properties +val slf4jVersion: String by properties +val terracottaCoreVersion: String by properties + +dependencies { + /* + * These roundabout string invokes are necessary until Gradle 8.5 due to: https://github.com/gradle/gradle/issues/26602 + */ + serverLibs.name("org.terracotta.internal:terracotta:$terracottaCoreVersion") + serverLibs.name("org.terracotta.internal:tc-server:$terracottaCoreVersion") + constraints { + serverLibs.name("ch.qos.logback:logback-classic") { + version { + strictly(logbackVersion) + } + } + serverLibs.name("org.slf4j:slf4j-api") { + version { + strictly(slf4jVersion) + } + } + } + + // voltron server API + serverPluginApis(project(":diagnostic:server:api")) + serverPluginApis(project(":dynamic-config:server:api")) + serverPluginApis(project(":management:server:api")) + + // voltron resources + serverPluginLibs + .with(project(":resources:data-root")) + .with(project(":resources:offheap")) + + // voltron services + serverPluginLibs + .with(project(":client-message-tracker")) + .with(project(":diagnostic:server:services")) + .with(project(":dynamic-config:server:config-provider")) // server config + .with(project(":dynamic-config:server:services")) + .with(project(":lease:server")) // also contains an entity + .with(project(":management:server:services")) + .with(project(":platform-base")) + + // voltron entities + serverPluginLibs + .with(project(":dynamic-config:entities:management:server")) + .with(project(":dynamic-config:entities:nomad:server")) + .with(project(":dynamic-config:entities:topology:server")) + .with(project(":management:entities:nms-agent:server")) + .with(project(":management:entities:nms:server")) + + tools(project(":dynamic-config:cli:config-tool")) + tools(project(":voter")) +} + +distributions { + main { + contents { + includeEmptyDirs = false + filesMatching(listOf("**/*.bat", "**/*.sh")) { + permissions { + unix("0775") + } + } + filesNotMatching("**/*.jar") { + duplicatesStrategy = DuplicatesStrategy.FAIL + } + filesMatching("**/*.jar") { + // We can safely exclude JAR duplicates as our dependency strategy is fail on conflict + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + } + + into("server") { + into("plugins/api") { + from(serverPluginApis) { + exclude(filesIn(serverLibsClasspathAssembly)) + } + } + into("plugins/lib") { + from(serverPluginLibs.files()) { + exclude(filesIn(serverPluginApis, serverLibsClasspathAssembly)) + } + } + } + + into("tools") { + from(tools) + } + } + } +} + +tasks.distTar { + dependsOn(serverLibsClasspathAssembly) + compression = Compression.GZIP + archiveExtension = "tar.gz" +} + +val explodedKit = tasks.register("explodedKit") { + into(project.layout.buildDirectory.dir("platform-layout")) + with(distributions.main.get().contents) +} + +artifacts { + add(kit.name, explodedKit.map { + copy -> copy.destinationDir + }) +} + +publishing { + publications { + register("distribution") { + artifact(tasks.distZip) + artifact(tasks.distTar) + groupId = "org.terracotta.distributions" + artifactId = "terracotta-platform-layout" + pom { + name = "Terracotta platform layout" + description = "Defines the Terracotta platform layout" + } + } + } +} + +fun filesIn(vararg files: Any): Spec { + val filter: Provider> = project.files(files).elements.map { fs -> + fs.flatMap { f -> + if (f.asFile.isDirectory) { + fileTree(f.asFile).files + } else { + listOf(f.asFile) + } + }.map { f -> f.name } + } + return Spec { fte -> filter.get().contains(fte.name) } +} + +abstract class ServerPluginExtension(private val project: Project, private val apis: Provider) { + + private val plugins: MutableCollection> = mutableListOf() + + fun files() : Provider { + return plugins.stream().reduce {pa, pb -> pa.zip(pb) { a, b -> a.plus(b) }}.orElse(project.provider { project.files() }) + } + + fun with(notation: Any, config : Action = Action{}) : ServerPluginExtension { + val dependency = project.dependencies.create(notation) + config(dependency) + + val pluginConfigurationName = when (dependency) { + is ModuleDependency -> "server-plugin#${dependency.group}#${dependency.name}${dependency.targetConfiguration?.let { "#${it}" } ?: ""}" + else -> "server-plugin#${dependency.group}#${dependency.name}" + } + + plugins += (project.configurations.register(pluginConfigurationName) { + /* + * This ensures that all the server plugins agree on the versions of the things that go in to the common + * server api directory (and that the things in the server API directory are those things). + */ + shouldResolveConsistentlyWith(apis.get()) + isVisible = false + dependencies.add(dependency) + }) + return this + } +} + +abstract class ClasspathAssembly : DefaultTask() { + + @get:InputFiles + abstract val classpath: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @TaskAction + fun assembleAndPatchManifest() { + val classpath = classpath.get() + + project.sync { + from(classpath) + into(outputDirectory) + } + + classpath.resolvedConfiguration.firstLevelModuleDependencies.forEach { dependency -> + dependency.moduleArtifacts.forEach { artifact -> + val file = artifact.file + if (file.isFile && file.name.endsWith(".jar", ignoreCase = true)) { + val targetFile = outputDirectory.file(file.name).get().asFile + FileSystems.newFileSystem(project.uri("jar:" + targetFile.toURI()), emptyMap()).use { jar -> + val manifestEntry = jar.getPath("META-INF", "MANIFEST.MF") + + val manifest = manifestEntry.inputStream().use { java.util.jar.Manifest(it) } + + if (manifest.mainAttributes.containsKey(java.util.jar.Attributes.Name.CLASS_PATH)) { + manifest.mainAttributes[java.util.jar.Attributes.Name.CLASS_PATH] = classpath.minus(file).joinToString(" ") { it.name } + + manifestEntry.outputStream().use { + manifest.write(it) + } + } + } + } + } + } + } +} diff --git a/layout/src/main/kit/server/conf/tc-cluster.cfg b/platform-layout/src/main/dist/server/conf/tc-cluster.cfg similarity index 100% rename from layout/src/main/kit/server/conf/tc-cluster.cfg rename to platform-layout/src/main/dist/server/conf/tc-cluster.cfg diff --git a/resources/data-root/build.gradle b/resources/data-root/build.gradle new file mode 100644 index 0000000000..62496a17d1 --- /dev/null +++ b/resources/data-root/build.gradle @@ -0,0 +1,35 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.xjc' + id 'org.terracotta.build.convention.voltron' +} + +sourceSets { + xml { + xjcTargetPackage = 'org.terracotta.data.config' + } +} + +dependencies { + service project(':dynamic-config:server:api') + service project(':management:server:api') + service "org.terracotta:statistics:$terracottaStatisticVersion" + + implementation "org.terracotta:terracotta-utilities-tools:$terracottaUtilitiesToolsVersion" + + xmlApi "javax.xml.bind:jaxb-api:[2.2,3]" + xmlApi "org.terracotta.internal:tc-config-parser:$terracottaConfigVersion" + xmlApi "org.terracotta:tcconfig-schema:$terracottaConfigVersion" + + testImplementation project(':common:test-utilities') + testImplementation "org.terracotta:passthrough-server:$terracottaPassthroughVersion" + + xmlXjcEpisodes "org.terracotta:tcconfig-schema:$terracottaConfigVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'data-root-resource' + name = 'Data Root Server Resource' +} diff --git a/resources/data-root/config/checkstyle/suppressions.xml b/resources/data-root/config/checkstyle/suppressions.xml new file mode 100644 index 0000000000..1f8c637319 --- /dev/null +++ b/resources/data-root/config/checkstyle/suppressions.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirConfigChangeHandler.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirConfigChangeHandler.java similarity index 96% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirConfigChangeHandler.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirConfigChangeHandler.java index 8f7739c077..8b5cea8145 100644 --- a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirConfigChangeHandler.java +++ b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirConfigChangeHandler.java @@ -22,9 +22,9 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.RawPath; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.PathResolver; import java.io.IOException; import java.nio.file.Files; diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirs.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirs.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirs.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirs.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsConfig.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsConfig.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsConfig.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsConfig.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsConfigImpl.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsConfigImpl.java similarity index 89% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsConfigImpl.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsConfigImpl.java index 4a9e727b8a..cf3632c2a6 100644 --- a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsConfigImpl.java +++ b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsConfigImpl.java @@ -21,9 +21,8 @@ import org.terracotta.config.data_roots.management.DataRootBinding; import org.terracotta.config.data_roots.management.DataRootSettingsManagementProvider; import org.terracotta.config.data_roots.management.DataRootStatisticsManagementProvider; -import org.terracotta.data.config.DataRootMapping; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.entity.PlatformConfiguration; import org.terracotta.entity.StateDumpCollector; import org.terracotta.entity.StateDumpable; @@ -54,12 +53,13 @@ public class DataDirsConfigImpl implements DataDirsConfig, ManageableServerCompo private static final Logger LOGGER = LoggerFactory.getLogger(DataDirsConfigImpl.class); private final ConcurrentMap dataRootMap = new ConcurrentHashMap<>(); - private final String platformRootIdentifier; private final ConcurrentMap serverToDataRoots = new ConcurrentHashMap<>(); private final IParameterSubstitutor parameterSubstitutor; private final PathResolver pathResolver; private final Collection registries = new CopyOnWriteArrayList<>(); + private String platformRootIdentifier; + public DataDirsConfigImpl(IParameterSubstitutor parameterSubstitutor, PathResolver pathResolver, Path metadataDir, Map dataDirectories) { this.parameterSubstitutor = parameterSubstitutor; this.pathResolver = pathResolver; @@ -92,29 +92,11 @@ public DataDirsConfigImpl(IParameterSubstitutor parameterSubstitutor, PathResolv } } - public DataDirsConfigImpl(IParameterSubstitutor parameterSubstitutor, PathResolver pathResolver, org.terracotta.data.config.DataDirectories dataDirectories) { - this(parameterSubstitutor, pathResolver, dataDirectories, false); - } - - public DataDirsConfigImpl(IParameterSubstitutor parameterSubstitutor, PathResolver pathResolver, org.terracotta.data.config.DataDirectories dataDirectories, boolean skipIO) { - this.parameterSubstitutor = parameterSubstitutor; - this.pathResolver = pathResolver; - - String tempPlatformRootIdentifier = null; - for (DataRootMapping mapping : dataDirectories.getDirectory()) { - addDataDirectory(mapping.getName(), mapping.getValue(), skipIO); - if (mapping.isUseForPlatform()) { - if (tempPlatformRootIdentifier == null) { - tempPlatformRootIdentifier = mapping.getName(); - } else { - throw new DataDirsConfigurationException("More than one data directory is configured to be used by platform"); - } - } - } - platformRootIdentifier = tempPlatformRootIdentifier; + // only used from XML parser. + void setPlatformRootIdentifier(String platformRootIdentifier) { + this.platformRootIdentifier = platformRootIdentifier; } - @Override public DataDirs getDataDirectoriesForServer(PlatformConfiguration platformConfiguration) { return getDataRootsForServer(platformConfiguration.getServerName()); diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsConfigurationException.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsConfigurationException.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsConfigurationException.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsConfigurationException.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsWithServerName.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsWithServerName.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataDirsWithServerName.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/DataDirsWithServerName.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootsDynamicConfigExtension.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataRootsDynamicConfigExtension.java similarity index 95% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootsDynamicConfigExtension.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/DataRootsDynamicConfigExtension.java index c292436a52..0d5172bf61 100644 --- a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootsDynamicConfigExtension.java +++ b/resources/data-root/src/main/java/org/terracotta/config/data_roots/DataRootsDynamicConfigExtension.java @@ -20,9 +20,9 @@ import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; import org.terracotta.dynamic_config.server.api.DynamicConfigExtension; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.entity.PlatformConfiguration; import java.nio.file.Path; diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/MetaDataDirConfigChangeHandler.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/MetaDataDirConfigChangeHandler.java similarity index 95% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/MetaDataDirConfigChangeHandler.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/MetaDataDirConfigChangeHandler.java index e6e636f9a1..7602570250 100644 --- a/data-root-resource/src/main/java/org/terracotta/config/data_roots/MetaDataDirConfigChangeHandler.java +++ b/resources/data-root/src/main/java/org/terracotta/config/data_roots/MetaDataDirConfigChangeHandler.java @@ -20,9 +20,9 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.RawPath; import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.PathResolver; import java.io.IOException; import java.nio.file.Files; diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/MoveOperation.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/MoveOperation.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/MoveOperation.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/MoveOperation.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/Utils.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/Utils.java similarity index 95% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/Utils.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/Utils.java index dc63e0e7ba..ffc6531d8b 100644 --- a/data-root-resource/src/main/java/org/terracotta/config/data_roots/Utils.java +++ b/resources/data-root/src/main/java/org/terracotta/config/data_roots/Utils.java @@ -16,7 +16,7 @@ */ package org.terracotta.config.data_roots; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; import java.io.IOException; import java.nio.file.DirectoryStream; diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/ValidationFailureId.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/ValidationFailureId.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/ValidationFailureId.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/ValidationFailureId.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/management/DataRootBinding.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/management/DataRootBinding.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/management/DataRootBinding.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/management/DataRootBinding.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/management/DataRootSettingsManagementProvider.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/management/DataRootSettingsManagementProvider.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/management/DataRootSettingsManagementProvider.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/management/DataRootSettingsManagementProvider.java diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/management/DataRootStatisticsManagementProvider.java b/resources/data-root/src/main/java/org/terracotta/config/data_roots/management/DataRootStatisticsManagementProvider.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/management/DataRootStatisticsManagementProvider.java rename to resources/data-root/src/main/java/org/terracotta/config/data_roots/management/DataRootStatisticsManagementProvider.java diff --git a/data-root-resource/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension b/resources/data-root/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension similarity index 100% rename from data-root-resource/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension rename to resources/data-root/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension diff --git a/data-root-resource/src/test/java/org/terracotta/config/data_roots/DataDirConfigChangeHandlerTest.java b/resources/data-root/src/test/java/org/terracotta/config/data_roots/DataDirConfigChangeHandlerTest.java similarity index 98% rename from data-root-resource/src/test/java/org/terracotta/config/data_roots/DataDirConfigChangeHandlerTest.java rename to resources/data-root/src/test/java/org/terracotta/config/data_roots/DataDirConfigChangeHandlerTest.java index 92210f7576..c7a1b938b4 100644 --- a/data-root-resource/src/test/java/org/terracotta/config/data_roots/DataDirConfigChangeHandlerTest.java +++ b/resources/data-root/src/test/java/org/terracotta/config/data_roots/DataDirConfigChangeHandlerTest.java @@ -24,7 +24,7 @@ import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.model.Testing; import org.terracotta.dynamic_config.api.model.nomad.SettingNomadChange; -import org.terracotta.dynamic_config.server.api.PathResolver; +import org.terracotta.dynamic_config.api.server.PathResolver; import org.terracotta.testing.TmpDir; import java.nio.file.Paths; diff --git a/data-root-resource/src/test/java/org/terracotta/config/data_roots/DataDirsConfigImplTest.java b/resources/data-root/src/test/java/org/terracotta/config/data_roots/DataDirsConfigImplTest.java similarity index 97% rename from data-root-resource/src/test/java/org/terracotta/config/data_roots/DataDirsConfigImplTest.java rename to resources/data-root/src/test/java/org/terracotta/config/data_roots/DataDirsConfigImplTest.java index f6d218258a..0977c9840a 100644 --- a/data-root-resource/src/test/java/org/terracotta/config/data_roots/DataDirsConfigImplTest.java +++ b/resources/data-root/src/test/java/org/terracotta/config/data_roots/DataDirsConfigImplTest.java @@ -16,17 +16,6 @@ */ package org.terracotta.config.data_roots; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; -import org.terracotta.config.data_roots.management.DataRootBinding; -import org.terracotta.config.util.ParameterSubstitutor; -import org.terracotta.data.config.DataDirectories; -import org.terracotta.data.config.DataRootMapping; -import org.terracotta.management.service.monitoring.EntityManagementRegistry; -import org.terracotta.management.service.monitoring.EntityMonitoringService; - import java.io.IOException; import java.net.URL; import java.nio.file.Files; @@ -43,10 +32,20 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; +import org.junit.Ignore; +import org.junit.Rule; +import org.junit.Test; import static org.junit.internal.matchers.ThrowableMessageMatcher.hasMessage; +import org.junit.rules.TemporaryFolder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.terracotta.config.data_roots.management.DataRootBinding; +import org.terracotta.config.util.ParameterSubstitutor; +import org.terracotta.data.config.DataDirectories; +import org.terracotta.data.config.DataRootMapping; +import org.terracotta.management.service.monitoring.EntityManagementRegistry; +import org.terracotta.management.service.monitoring.EntityMonitoringService; public class DataDirsConfigImplTest { @@ -258,7 +257,7 @@ private DataDirsConfigImpl configureDataRoot(String[] ids, String[] dataRootPath dataDirectories.getDirectory().add(dataRootMapping); } - return new DataDirsConfigImpl(ParameterSubstitutor::substitute, DataRootConfigParser.getPathResolver(source), dataDirectories); + return DataRootConfigParser.toDataDirsConfig(dataDirectories, DataRootConfigParser.getPathResolver(source)); } private DataDirsConfigImpl configureDataRoot(DataRootMapping[] dataRootMappings) throws IOException { @@ -270,6 +269,6 @@ private DataDirsConfigImpl configureDataRoot(DataRootMapping[] dataRootMappings) dataDirectories.getDirectory().add(dataRootMappings[i]); } - return new DataDirsConfigImpl(ParameterSubstitutor::substitute, DataRootConfigParser.getPathResolver(null), dataDirectories); + return DataRootConfigParser.toDataDirsConfig(dataDirectories, DataRootConfigParser.getPathResolver(null)); } } \ No newline at end of file diff --git a/data-root-resource/src/test/java/org/terracotta/config/data_roots/DataRootValidatorTest.java b/resources/data-root/src/test/java/org/terracotta/config/data_roots/DataRootValidatorTest.java similarity index 100% rename from data-root-resource/src/test/java/org/terracotta/config/data_roots/DataRootValidatorTest.java rename to resources/data-root/src/test/java/org/terracotta/config/data_roots/DataRootValidatorTest.java diff --git a/data-root-resource/src/test/java/org/terracotta/config/data_roots/PassthroughIntegrationTest.java b/resources/data-root/src/test/java/org/terracotta/config/data_roots/PassthroughIntegrationTest.java similarity index 96% rename from data-root-resource/src/test/java/org/terracotta/config/data_roots/PassthroughIntegrationTest.java rename to resources/data-root/src/test/java/org/terracotta/config/data_roots/PassthroughIntegrationTest.java index 71808f31b1..c65ac475b0 100644 --- a/data-root-resource/src/test/java/org/terracotta/config/data_roots/PassthroughIntegrationTest.java +++ b/resources/data-root/src/test/java/org/terracotta/config/data_roots/PassthroughIntegrationTest.java @@ -58,7 +58,7 @@ public void setUp() throws Exception { DATA_ROOT_PATH = folder.newFolder().getAbsolutePath(); this.passthroughServer = new PassthroughServer(); - this.passthroughServer.registerExtendedConfiguration(new DataDirsConfigImpl(ParameterSubstitutor::substitute, DataRootConfigParser.getPathResolver(null), getConfiguration())); + this.passthroughServer.registerExtendedConfiguration(DataRootConfigParser.toDataDirsConfig(getConfiguration(), DataRootConfigParser.getPathResolver(null))); this.passthroughServer.registerServiceProvider(new TestServiceProvider(), null); this.passthroughServer.registerAsynchronousServerCrasher(p -> {}); this.passthroughServer.start(true, false); diff --git a/data-root-resource/src/test/java/org/terracotta/config/data_roots/TcConfigWithDataDirsTest.java b/resources/data-root/src/test/java/org/terracotta/config/data_roots/TcConfigWithDataDirsTest.java similarity index 100% rename from data-root-resource/src/test/java/org/terracotta/config/data_roots/TcConfigWithDataDirsTest.java rename to resources/data-root/src/test/java/org/terracotta/config/data_roots/TcConfigWithDataDirsTest.java diff --git a/data-root-resource/src/test/resources/configs/tc-config-data.xml b/resources/data-root/src/test/resources/configs/tc-config-data.xml similarity index 100% rename from data-root-resource/src/test/resources/configs/tc-config-data.xml rename to resources/data-root/src/test/resources/configs/tc-config-data.xml diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootConfigParser.java b/resources/data-root/src/xml/java/org/terracotta/config/data_roots/DataRootConfigParser.java similarity index 76% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootConfigParser.java rename to resources/data-root/src/xml/java/org/terracotta/config/data_roots/DataRootConfigParser.java index b98092d145..783a397b26 100644 --- a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootConfigParser.java +++ b/resources/data-root/src/xml/java/org/terracotta/config/data_roots/DataRootConfigParser.java @@ -16,28 +16,31 @@ */ package org.terracotta.config.data_roots; -import org.terracotta.config.service.ConfigValidator; -import org.terracotta.config.service.ExtendedConfigParser; -import org.terracotta.config.util.DefaultSubstitutor; -import org.terracotta.config.util.ParameterSubstitutor; -import org.terracotta.data.config.DataDirectories; -import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; -import org.terracotta.dynamic_config.server.api.PathResolver; -import org.w3c.dom.Element; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; -import javax.xml.transform.Source; -import javax.xml.transform.stream.StreamSource; import java.io.IOException; import java.net.URI; import java.net.URL; import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Collections; import java.util.function.Function; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Unmarshaller; +import javax.xml.transform.Source; +import javax.xml.transform.stream.StreamSource; + +import org.terracotta.config.service.ConfigValidator; +import org.terracotta.config.service.ExtendedConfigParser; +import org.terracotta.config.util.DefaultSubstitutor; +import org.terracotta.config.util.ParameterSubstitutor; +import org.terracotta.data.config.DataDirectories; +import org.terracotta.data.config.DataRootMapping; +import org.terracotta.dynamic_config.api.server.PathResolver; +import org.terracotta.dynamic_config.api.service.IParameterSubstitutor; +import org.w3c.dom.Element; + /** * @author vmad */ @@ -59,13 +62,29 @@ public URI getNamespace() { @Override public DataDirsConfigImpl parse(Element element, String source) { DataDirectories dataDirectories = parser().apply(element); + PathResolver pathResolver = getPathResolver(source); + return toDataDirsConfig(dataDirectories, pathResolver); + } + + public static DataDirsConfigImpl toDataDirsConfig(DataDirectories dataDirectories, PathResolver pathResolver) { DefaultSubstitutor.applyDefaults(dataDirectories); - PathResolver pathResolver = getPathResolver(source); + DataDirsConfigImpl dataDirs = new DataDirsConfigImpl(ParameterSubstitutor::substitute, pathResolver, null, Collections.emptyMap()); + + String tempPlatformRootIdentifier = null; + for (DataRootMapping mapping : dataDirectories.getDirectory()) { + dataDirs.addDataDirectory(mapping.getName(), mapping.getValue(), true); + if (mapping.isUseForPlatform()) { + if (tempPlatformRootIdentifier == null) { + tempPlatformRootIdentifier = mapping.getName(); + } else { + throw new DataDirsConfigurationException("More than one data directory is configured to be used by platform"); + } + } + } + dataDirs.setPlatformRootIdentifier(tempPlatformRootIdentifier); - // true == skip any file IO when using this parser. - // this parser is only used by the migration tool now - return new DataDirsConfigImpl(ParameterSubstitutor::substitute, pathResolver, dataDirectories, true); + return dataDirs; } public Function parser() { diff --git a/data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootValidator.java b/resources/data-root/src/xml/java/org/terracotta/config/data_roots/DataRootValidator.java similarity index 100% rename from data-root-resource/src/main/java/org/terracotta/config/data_roots/DataRootValidator.java rename to resources/data-root/src/xml/java/org/terracotta/config/data_roots/DataRootValidator.java diff --git a/data-root-resource/src/main/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser b/resources/data-root/src/xml/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser similarity index 100% rename from data-root-resource/src/main/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser rename to resources/data-root/src/xml/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser diff --git a/resources/data-root/src/xml/schema/catalog.cat b/resources/data-root/src/xml/schema/catalog.cat new file mode 100644 index 0000000000..a32e1e51e4 --- /dev/null +++ b/resources/data-root/src/xml/schema/catalog.cat @@ -0,0 +1,6 @@ +# +# Copyright Terracotta, Inc. +# Copyright Super iPaaS Integration LLC, an IBM Company 2017, 2024 +# + +PUBLIC "http://www.terracotta.org/config" "classpath:/terracotta.xsd" diff --git a/data-root-resource/src/main/resources/data-roots-config.xsd b/resources/data-root/src/xml/schema/data-roots-config.xsd similarity index 100% rename from data-root-resource/src/main/resources/data-roots-config.xsd rename to resources/data-root/src/xml/schema/data-roots-config.xsd diff --git a/resources/offheap/build.gradle b/resources/offheap/build.gradle new file mode 100644 index 0000000000..c21d056a52 --- /dev/null +++ b/resources/offheap/build.gradle @@ -0,0 +1,34 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.convention.xjc' + id 'org.terracotta.build.convention.voltron' +} + +sourceSets { + xml { + xjcTargetPackage = 'org.terracotta.offheapresource.config' + } +} + +dependencies { + service project(':dynamic-config:server:api') + service project(':management:server:api') + service "org.terracotta:statistics:$terracottaStatisticVersion" + + voltron "org.terracotta:tc-tripwire-plugin:$terracottaTripwireVersion" + + xmlApi "javax.xml.bind:jaxb-api:[2.2,3]" + xmlApi "org.terracotta.internal:tc-config-parser:$terracottaConfigVersion" + xmlApi "org.terracotta:tcconfig-schema:$terracottaConfigVersion" + + implementation project(':common:structures') + + xmlXjcEpisodes "org.terracotta:tcconfig-schema:$terracottaConfigVersion" +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'offheap-resource' + name = 'Offheap Server Resource' +} diff --git a/resources/offheap/config/checkstyle/suppressions.xml b/resources/offheap/config/checkstyle/suppressions.xml new file mode 100644 index 0000000000..1f8c637319 --- /dev/null +++ b/resources/offheap/config/checkstyle/suppressions.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/CapacityChangeHandler.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/CapacityChangeHandler.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/CapacityChangeHandler.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/CapacityChangeHandler.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapDynamicConfigExtension.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapDynamicConfigExtension.java similarity index 96% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapDynamicConfigExtension.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapDynamicConfigExtension.java index 79a903cece..c80950813f 100644 --- a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapDynamicConfigExtension.java +++ b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapDynamicConfigExtension.java @@ -19,7 +19,7 @@ import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.model.Setting; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandlerManager; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandlerManager; import org.terracotta.dynamic_config.server.api.DynamicConfigExtension; import org.terracotta.entity.PlatformConfiguration; diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResource.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResource.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResource.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResource.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceIdentifier.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourceIdentifier.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceIdentifier.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourceIdentifier.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceImpl.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourceImpl.java similarity index 99% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceImpl.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourceImpl.java index 2138ef49ee..cb67e5d315 100644 --- a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceImpl.java +++ b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourceImpl.java @@ -123,7 +123,7 @@ class OffHeapResourceImpl implements OffHeapResource, AutoCloseable { public OffHeapResourceBinding getManagementBinding() { return managementBinding; } - + @Override public void close() { monitor.unregister(); diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResources.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResources.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResources.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResources.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourcesProvider.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourcesProvider.java similarity index 85% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourcesProvider.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourcesProvider.java index a9e2aef077..ac8781d7f4 100644 --- a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourcesProvider.java +++ b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapResourcesProvider.java @@ -23,9 +23,6 @@ import org.terracotta.entity.StateDumpable; import org.terracotta.management.service.monitoring.EntityManagementRegistry; import org.terracotta.management.service.monitoring.ManageableServerComponent; -import org.terracotta.offheapresource.config.MemoryUnit; -import org.terracotta.offheapresource.config.OffheapResourcesType; -import org.terracotta.offheapresource.config.ResourceType; import org.terracotta.offheapresource.management.OffHeapResourceBinding; import org.terracotta.offheapresource.management.OffHeapResourceSettingsManagementProvider; import org.terracotta.offheapresource.management.OffHeapResourceStatisticsManagementProvider; @@ -53,19 +50,11 @@ */ public class OffHeapResourcesProvider implements OffHeapResources, ManageableServerComponent, StateDumpable, AutoCloseable { private static final Logger LOGGER = LoggerFactory.getLogger(OffHeapResourcesProvider.class); - private static final BigInteger MAX_LONG_PLUS_ONE = BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.ONE); private final Map resources = new ConcurrentHashMap<>(); private final Collection registries = new CopyOnWriteArrayList<>(); private final AtomicLong totalConfiguredOffheap = new AtomicLong(0); - public OffHeapResourcesProvider(OffheapResourcesType configuration) { - for (ResourceType r : configuration.getResource()) { - long size = longValueExact(convert(r.getValue(), r.getUnit())); - addToResources(identifier(r.getName()), size); - } - } - public OffHeapResourcesProvider(Map> resources) { resources.forEach((name, measure) -> { long size = measure.getQuantity(org.terracotta.common.struct.MemoryUnit.B); @@ -132,38 +121,12 @@ public void addStateTo(StateDumpCollector dump) { } } - static BigInteger convert(BigInteger value, MemoryUnit unit) { - switch (unit) { - case B: - return value.shiftLeft(0); - case K_B: - return value.shiftLeft(10); - case MB: - return value.shiftLeft(20); - case GB: - return value.shiftLeft(30); - case TB: - return value.shiftLeft(40); - case PB: - return value.shiftLeft(50); - } - throw new IllegalArgumentException("Unknown unit " + unit); - } - - static long longValueExact(BigInteger value) { - if (value.compareTo(MAX_LONG_PLUS_ONE) < 0) { - return value.longValue(); - } else { - throw new ArithmeticException("BigInteger out of long range"); - } - } - //For testing only long getTotalConfiguredOffheap() { return totalConfiguredOffheap.get(); } - private boolean addToResources(OffHeapResourceIdentifier identifier, long capacityInBytes) { + boolean addToResources(OffHeapResourceIdentifier identifier, long capacityInBytes) { AtomicBoolean status = new AtomicBoolean(); resources.computeIfAbsent(identifier, (id) -> { status.compareAndSet(false, true); diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageEvent.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageEvent.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageEvent.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageEvent.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventImpl.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventImpl.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventImpl.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventImpl.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventType.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventType.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventType.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageEventType.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageListener.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageListener.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapUsageListener.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffHeapUsageListener.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffheapResourceConfigChangeHandler.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffheapResourceConfigChangeHandler.java similarity index 96% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffheapResourceConfigChangeHandler.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/OffheapResourceConfigChangeHandler.java index ce3c10b5c0..67aa8ee8a2 100644 --- a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffheapResourceConfigChangeHandler.java +++ b/resources/offheap/src/main/java/org/terracotta/offheapresource/OffheapResourceConfigChangeHandler.java @@ -24,8 +24,8 @@ import org.terracotta.dynamic_config.api.model.Configuration; import org.terracotta.dynamic_config.api.model.NodeContext; import org.terracotta.dynamic_config.api.service.TopologyService; -import org.terracotta.dynamic_config.server.api.ConfigChangeHandler; -import org.terracotta.dynamic_config.server.api.InvalidConfigChangeException; +import org.terracotta.dynamic_config.api.server.ConfigChangeHandler; +import org.terracotta.dynamic_config.api.server.InvalidConfigChangeException; /** * @author Mathieu Carbou diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/PhysicalMemory.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/PhysicalMemory.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/PhysicalMemory.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/PhysicalMemory.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/ValidationFailureId.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/ValidationFailureId.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/ValidationFailureId.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/ValidationFailureId.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceBinding.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceBinding.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceBinding.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceBinding.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceSettingsManagementProvider.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceSettingsManagementProvider.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceSettingsManagementProvider.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceSettingsManagementProvider.java diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceStatisticsManagementProvider.java b/resources/offheap/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceStatisticsManagementProvider.java similarity index 100% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceStatisticsManagementProvider.java rename to resources/offheap/src/main/java/org/terracotta/offheapresource/management/OffHeapResourceStatisticsManagementProvider.java diff --git a/offheap-resource/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension b/resources/offheap/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension similarity index 100% rename from offheap-resource/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension rename to resources/offheap/src/main/resources/META-INF/services/org.terracotta.dynamic_config.server.api.DynamicConfigExtension diff --git a/offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapConfigValidatorTest.java b/resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapConfigValidatorTest.java similarity index 100% rename from offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapConfigValidatorTest.java rename to resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapConfigValidatorTest.java diff --git a/offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParserTest.java b/resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParserTest.java similarity index 94% rename from offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParserTest.java rename to resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParserTest.java index 52ddebcbeb..dad6ed1d63 100644 --- a/offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParserTest.java +++ b/resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParserTest.java @@ -16,26 +16,26 @@ */ package org.terracotta.offheapresource; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.terracotta.offheapresource.config.MemoryUnit; -import org.w3c.dom.Document; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.Collection; import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.SchemaFactory; -import java.math.BigInteger; -import java.util.ArrayList; -import java.util.Collection; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import static org.terracotta.offheapresource.OffHeapResourceConfigurationParser.convert; +import static org.terracotta.offheapresource.OffHeapResourceConfigurationParser.longValueExact; import static org.terracotta.offheapresource.OffHeapResourceIdentifier.identifier; -import static org.terracotta.offheapresource.OffHeapResourcesProvider.convert; -import static org.terracotta.offheapresource.OffHeapResourcesProvider.longValueExact; +import org.terracotta.offheapresource.config.MemoryUnit; +import org.w3c.dom.Document; /** * diff --git a/offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourceIdentifierTest.java b/resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourceIdentifierTest.java similarity index 100% rename from offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourceIdentifierTest.java rename to resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourceIdentifierTest.java diff --git a/offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourceTest.java b/resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourceTest.java similarity index 100% rename from offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourceTest.java rename to resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourceTest.java diff --git a/offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourcesProviderTest.java b/resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourcesProviderTest.java similarity index 89% rename from offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourcesProviderTest.java rename to resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourcesProviderTest.java index d1e6f56254..025980b945 100644 --- a/offheap-resource/src/test/java/org/terracotta/offheapresource/OffHeapResourcesProviderTest.java +++ b/resources/offheap/src/test/java/org/terracotta/offheapresource/OffHeapResourcesProviderTest.java @@ -16,25 +16,14 @@ */ package org.terracotta.offheapresource; -import org.junit.Before; -import org.junit.Test; -import org.terracotta.management.service.monitoring.EntityManagementRegistry; -import org.terracotta.management.service.monitoring.EntityMonitoringService; -import org.terracotta.offheapresource.config.MemoryUnit; -import org.terracotta.offheapresource.config.OffheapResourcesType; -import org.terracotta.offheapresource.config.ResourceType; -import org.terracotta.offheapresource.management.OffHeapResourceBinding; -import org.terracotta.statistics.StatisticsManager; -import org.terracotta.statistics.ValueStatistic; - import java.math.BigInteger; +import static java.util.Collections.singletonList; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.stream.IntStream; -import static java.util.Collections.singletonList; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; @@ -42,10 +31,20 @@ import static org.hamcrest.core.IsNull.nullValue; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import org.junit.Before; +import org.junit.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.terracotta.management.service.monitoring.EntityManagementRegistry; +import org.terracotta.management.service.monitoring.EntityMonitoringService; import static org.terracotta.offheapresource.OffHeapResourceIdentifier.identifier; +import org.terracotta.offheapresource.config.MemoryUnit; +import org.terracotta.offheapresource.config.OffheapResourcesType; +import org.terracotta.offheapresource.config.ResourceType; +import org.terracotta.offheapresource.management.OffHeapResourceBinding; +import org.terracotta.statistics.StatisticsManager; +import org.terracotta.statistics.ValueStatistic; public class OffHeapResourcesProviderTest { private ResourceType resourceConfig; @@ -65,7 +64,7 @@ public void testObserverExposed() { when(resourceConfig.getValue()).thenReturn(BigInteger.valueOf(2)); when(configuration.getResource()).thenReturn(singletonList(resourceConfig)); - OffHeapResourcesProvider provider = new OffHeapResourcesProvider(configuration); + OffHeapResourcesProvider provider = OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); OffHeapResource offHeapResource = provider.getOffHeapResource(identifier("foo")); assertThat(offHeapResource.available(), equalTo(2L * 1024 * 1024)); @@ -81,7 +80,7 @@ public void testInitializeWithValidConfig() { when(resourceConfig.getValue()).thenReturn(BigInteger.valueOf(2)); when(configuration.getResource()).thenReturn(singletonList(resourceConfig)); - OffHeapResourcesProvider provider = new OffHeapResourcesProvider(configuration); + OffHeapResourcesProvider provider = OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); assertThat(provider.getOffHeapResource(identifier("foo")), notNullValue()); assertThat(provider.getOffHeapResource(identifier("foo")).available(), is(2L * 1024 * 1024)); } @@ -93,7 +92,7 @@ public void testNullReturnOnInvalidResource() { when(resourceConfig.getValue()).thenReturn(BigInteger.valueOf(2)); when(configuration.getResource()).thenReturn(singletonList(resourceConfig)); - OffHeapResourcesProvider provider = new OffHeapResourcesProvider(configuration); + OffHeapResourcesProvider provider = OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); assertThat(provider.getOffHeapResource(identifier("bar")), nullValue()); } @@ -104,7 +103,7 @@ public void testResourceTooBig() { when(resourceConfig.getValue()).thenReturn(BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.ONE)); when(configuration.getResource()).thenReturn(singletonList(resourceConfig)); - new OffHeapResourcesProvider(configuration); + OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); } @Test @@ -114,7 +113,7 @@ public void testResourceMax() { when(resourceConfig.getValue()).thenReturn(BigInteger.valueOf(Long.MAX_VALUE)); when(configuration.getResource()).thenReturn(singletonList(resourceConfig)); - new OffHeapResourcesProvider(configuration); + OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); } @Test @@ -123,7 +122,7 @@ public void testResourceAddition_ok() { EntityMonitoringService entityMonitoringService = mock(EntityMonitoringService.class); when(registry.getMonitoringService()).thenReturn(entityMonitoringService); when(entityMonitoringService.getConsumerId()).thenReturn(1L); - OffHeapResourcesProvider offHeapResourcesProvider = new OffHeapResourcesProvider(configuration); + OffHeapResourcesProvider offHeapResourcesProvider = OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); OffHeapResourceIdentifier newOffheap_preRegistry_Id = identifier("newOffheap_preRegistry"); assertTrue(offHeapResourcesProvider.addOffHeapResource(newOffheap_preRegistry_Id, 100_000L)); OffHeapResourceImpl newOffheap_preRegistry = offHeapResourcesProvider.getOffHeapResource(newOffheap_preRegistry_Id); @@ -142,7 +141,7 @@ public void testResourceAddition_ok() { @Test public void testResourceAddition_failForDuplicateResource() { - OffHeapResourcesProvider offHeapResourcesProvider = new OffHeapResourcesProvider(configuration); + OffHeapResourcesProvider offHeapResourcesProvider = OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); assertThat(offHeapResourcesProvider.getTotalConfiguredOffheap(), equalTo(0L)); assertTrue(offHeapResourcesProvider.addOffHeapResource(identifier("newOffheap"), 100_000L)); @@ -158,7 +157,7 @@ public void testConcurrentOffheapAddition_noOverlap() throws Exception { int numThreads = 20; ExecutorService executorService = Executors.newFixedThreadPool(numThreads); - OffHeapResourcesProvider offHeapResourcesProvider = new OffHeapResourcesProvider(configuration); + OffHeapResourcesProvider offHeapResourcesProvider = OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); CyclicBarrier cyclicBarrier = new CyclicBarrier(numThreads + 1); for (int i = 0; i < numThreads; i++) { executorService.submit(() -> { @@ -179,7 +178,7 @@ public void testConcurrentOffheapAddition_noOverlap() throws Exception { @Test public void testConcurrentOffheapAddition_someOverlap() { - OffHeapResourcesProvider offHeapResourcesProvider = new OffHeapResourcesProvider(configuration); + OffHeapResourcesProvider offHeapResourcesProvider = OffHeapResourceConfigurationParser.toOffHeapResourcesProvider(configuration); final long incrementPerRun = 100L; final int numIterations = 50; diff --git a/offheap-resource/src/test/java/org/terracotta/offheapresource/PhysicalMemoryTest.java b/resources/offheap/src/test/java/org/terracotta/offheapresource/PhysicalMemoryTest.java similarity index 92% rename from offheap-resource/src/test/java/org/terracotta/offheapresource/PhysicalMemoryTest.java rename to resources/offheap/src/test/java/org/terracotta/offheapresource/PhysicalMemoryTest.java index 75760f0d38..8779f41b76 100644 --- a/offheap-resource/src/test/java/org/terracotta/offheapresource/PhysicalMemoryTest.java +++ b/resources/offheap/src/test/java/org/terracotta/offheapresource/PhysicalMemoryTest.java @@ -17,10 +17,10 @@ package org.terracotta.offheapresource; -import org.junit.Test; - import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.fail; +import org.junit.Test; /** * @author Mathieu Carbou @@ -35,18 +35,20 @@ public void invocations_do_not_fail() { assertNotNull(PhysicalMemory.totalSwapSpace()); assertNotNull(PhysicalMemory.freeSwapSpace()); assertNotNull(PhysicalMemory.ourCommittedVirtualMemory()); - } else if (version == 17) { + } else if (version == 17 || version == 21) { assertNotNull(PhysicalMemory.totalPhysicalMemory()); assertNotNull(PhysicalMemory.freePhysicalMemory()); assertNull(PhysicalMemory.totalSwapSpace()); assertNull(PhysicalMemory.freeSwapSpace()); assertNull(PhysicalMemory.ourCommittedVirtualMemory()); - } else { + } else if(version == 11) { assertNull(PhysicalMemory.totalPhysicalMemory()); assertNull(PhysicalMemory.freePhysicalMemory()); assertNull(PhysicalMemory.totalSwapSpace()); assertNull(PhysicalMemory.freeSwapSpace()); assertNull(PhysicalMemory.ourCommittedVirtualMemory()); + } else { + fail("Not assertions for Java version: " + version); } } diff --git a/offheap-resource/src/test/java/org/terracotta/offheapresource/TcConfigWithOffheapTest.java b/resources/offheap/src/test/java/org/terracotta/offheapresource/TcConfigWithOffheapTest.java similarity index 100% rename from offheap-resource/src/test/java/org/terracotta/offheapresource/TcConfigWithOffheapTest.java rename to resources/offheap/src/test/java/org/terracotta/offheapresource/TcConfigWithOffheapTest.java diff --git a/offheap-resource/src/test/resources/configs/no-resources.xml b/resources/offheap/src/test/resources/configs/no-resources.xml similarity index 100% rename from offheap-resource/src/test/resources/configs/no-resources.xml rename to resources/offheap/src/test/resources/configs/no-resources.xml diff --git a/offheap-resource/src/test/resources/configs/tc-config-offheap.xml b/resources/offheap/src/test/resources/configs/tc-config-offheap.xml similarity index 100% rename from offheap-resource/src/test/resources/configs/tc-config-offheap.xml rename to resources/offheap/src/test/resources/configs/tc-config-offheap.xml diff --git a/offheap-resource/src/test/resources/configs/valid.xml b/resources/offheap/src/test/resources/configs/valid.xml similarity index 100% rename from offheap-resource/src/test/resources/configs/valid.xml rename to resources/offheap/src/test/resources/configs/valid.xml diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapConfigValidator.java b/resources/offheap/src/xml/java/org/terracotta/offheapresource/OffHeapConfigValidator.java similarity index 93% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapConfigValidator.java rename to resources/offheap/src/xml/java/org/terracotta/offheapresource/OffHeapConfigValidator.java index 893d2b3624..8238f7e239 100644 --- a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapConfigValidator.java +++ b/resources/offheap/src/xml/java/org/terracotta/offheapresource/OffHeapConfigValidator.java @@ -22,16 +22,17 @@ import org.terracotta.offheapresource.config.ResourceType; import org.w3c.dom.Element; +import java.math.BigInteger; import java.util.Map; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; -import static org.terracotta.offheapresource.OffHeapResourcesProvider.convert; -import static org.terracotta.offheapresource.OffHeapResourcesProvider.longValueExact; +import static org.terracotta.offheapresource.OffHeapResourceConfigurationParser.convert; +import static org.terracotta.offheapresource.OffHeapResourceConfigurationParser.longValueExact; public class OffHeapConfigValidator implements ConfigValidator { - + private final Function resourcesTypeSupplier; public OffHeapConfigValidator(Function resourcesTypeSupplier) { @@ -78,7 +79,7 @@ protected boolean compareOffHeapResources(Map oneMap, Map< } protected boolean compareOffHeapResourceSizes(ResourceType oneResourceType, ResourceType otherResourceType) { - return longValueExact(convert(oneResourceType.getValue(), oneResourceType.getUnit())) + return longValueExact(convert(oneResourceType.getValue(), oneResourceType.getUnit())) == longValueExact(convert(otherResourceType.getValue(), otherResourceType.getUnit())); } diff --git a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParser.java b/resources/offheap/src/xml/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParser.java similarity index 67% rename from offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParser.java rename to resources/offheap/src/xml/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParser.java index bf8cb6edc2..e7e4e35179 100644 --- a/offheap-resource/src/main/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParser.java +++ b/resources/offheap/src/xml/java/org/terracotta/offheapresource/OffHeapResourceConfigurationParser.java @@ -19,7 +19,9 @@ import org.terracotta.config.TCConfigurationParser; import org.terracotta.config.service.ConfigValidator; import org.terracotta.config.service.ExtendedConfigParser; +import org.terracotta.offheapresource.config.MemoryUnit; import org.terracotta.offheapresource.config.OffheapResourcesType; +import org.terracotta.offheapresource.config.ResourceType; import org.w3c.dom.Element; import org.xml.sax.SAXException; @@ -31,15 +33,20 @@ import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.SchemaFactory; + import java.io.IOException; +import java.math.BigInteger; import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.function.Function; +import static java.util.Collections.emptyMap; +import static org.terracotta.offheapresource.OffHeapResourceIdentifier.identifier; + public class OffHeapResourceConfigurationParser implements ExtendedConfigParser { - + private static final BigInteger MAX_LONG_PLUS_ONE = BigInteger.valueOf(Long.MAX_VALUE).add(BigInteger.ONE); private static final URL XML_SCHEMA = OffHeapResourceConfigurationParser.class.getResource("/offheap-resource.xsd"); private static final URI NAMESPACE = URI.create("http://www.terracotta.org/config/offheap-resource"); @@ -55,7 +62,8 @@ public URI getNamespace() { @Override public OffHeapResourcesProvider parse(Element elmnt, String string) { - return new OffHeapResourcesProvider(parser().apply(elmnt)); + OffheapResourcesType configuration = parser().apply(elmnt); + return toOffHeapResourcesProvider(configuration); } public ConfigValidator getConfigValidator() { @@ -84,4 +92,38 @@ public Function parser() { }; } + public static OffHeapResourcesProvider toOffHeapResourcesProvider(OffheapResourcesType configuration) { + OffHeapResourcesProvider provider = new OffHeapResourcesProvider(emptyMap()); + for (ResourceType r : configuration.getResource()) { + long size = longValueExact(convert(r.getValue(), r.getUnit())); + provider.addToResources(identifier(r.getName()), size); + } + return provider; + } + + static BigInteger convert(BigInteger value, MemoryUnit unit) { + switch (unit) { + case B: + return value.shiftLeft(0); + case K_B: + return value.shiftLeft(10); + case MB: + return value.shiftLeft(20); + case GB: + return value.shiftLeft(30); + case TB: + return value.shiftLeft(40); + case PB: + return value.shiftLeft(50); + } + throw new IllegalArgumentException("Unknown unit " + unit); + } + + static long longValueExact(BigInteger value) { + if (value.compareTo(MAX_LONG_PLUS_ONE) < 0) { + return value.longValue(); + } else { + throw new ArithmeticException("BigInteger out of long range"); + } + } } diff --git a/offheap-resource/src/main/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser b/resources/offheap/src/xml/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser similarity index 100% rename from offheap-resource/src/main/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser rename to resources/offheap/src/xml/resources/META-INF/services/org.terracotta.config.service.ExtendedConfigParser diff --git a/resources/offheap/src/xml/schema/catalog.cat b/resources/offheap/src/xml/schema/catalog.cat new file mode 100644 index 0000000000..a32e1e51e4 --- /dev/null +++ b/resources/offheap/src/xml/schema/catalog.cat @@ -0,0 +1,6 @@ +# +# Copyright Terracotta, Inc. +# Copyright Super iPaaS Integration LLC, an IBM Company 2017, 2024 +# + +PUBLIC "http://www.terracotta.org/config" "classpath:/terracotta.xsd" diff --git a/offheap-resource/src/main/resources/offheap-resource.xsd b/resources/offheap/src/xml/schema/offheap-resource.xsd similarity index 100% rename from offheap-resource/src/main/resources/offheap-resource.xsd rename to resources/offheap/src/xml/schema/offheap-resource.xsd diff --git a/runnel/pom.xml b/runnel/pom.xml deleted file mode 100755 index cda6136e66..0000000000 --- a/runnel/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - - - runnel - - - - junit - junit - test - - - org.mockito - mockito-core - test - - - - diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000000..6e482003b8 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,122 @@ +pluginManagement { + plugins { + id 'org.asciidoctor.jvm.convert' version '4.0.3' + id 'org.asciidoctor.jvm.gems' version '4.0.3' + id 'biz.aQute.bnd.builder' version '6.4.0' + id 'org.owasp.dependencycheck' version '8.4.3' + } + includeBuild 'build-logic' +} + +rootProject.name = 'terracotta-platform' + +include ':common:test-utilities', + ':common:inet', + ':common:json', + ':common:nomad', + ':common:output-service', + ':common:runnel', + ':common:sanskrit', + ':common:structures', + + // voltron proxy API + ':voltron-proxy:common', + ':voltron-proxy:client', + ':voltron-proxy:server', + + // communicator API + ':communicator:common', + ':communicator:client', + ':communicator:server', + + // management API + ':management:sequence-generator', + ':management:model', + ':management:registry', + + // dynamic-config API + ':dynamic-config:model', + ':dynamic-config:api', + ':dynamic-config:json', + ':dynamic-config:repository', + + // diagnostic service API + ':diagnostic:model', + ':diagnostic:common', + ':diagnostic:client', + + // lease API + ':lease:common', + ':lease:client', + + // voltron server API + ':diagnostic:server:api', + ':dynamic-config:server:api', + ':management:server:api', + + // voltron resources + ':resources:data-root', + ':resources:offheap', + + // voltron services + ':client-message-tracker', + ':diagnostic:server:services', + ':dynamic-config:server:config-provider', + ':dynamic-config:server:services', + ':lease:server', + ':management:server:services', + ':platform-base', + + // voltron healthchecker entity + ':healthchecker:common', + ':healthchecker:client', + ':healthchecker:server', + + // voltron dynamic-config entities + ':dynamic-config:entities:management:server', + ':dynamic-config:entities:nomad:common', + ':dynamic-config:entities:nomad:client', + ':dynamic-config:entities:nomad:server', + ':dynamic-config:entities:topology:common', + ':dynamic-config:entities:topology:client', + ':dynamic-config:entities:topology:server', + + // voltron management entities + ':management:entities:nms:common', + ':management:entities:nms:client', + ':management:entities:nms:server', + ':management:entities:nms-agent:common', + ':management:entities:nms-agent:client', + ':management:entities:nms-agent:server', + + // dynamic-config CLI + ':dynamic-config:cli:api', + ':dynamic-config:cli:jcommander', + ':dynamic-config:cli:config-tool', + ':dynamic-config:cli:upgrade-tool', + ':dynamic-config:cli:upgrade-tool-oss', + + // voter CLI + ':voter', + + // doc + ':docs', + + // kit + ':platform-layout', + + // testing + ':dynamic-config:testing:entity', + ':dynamic-config:testing:galvan', + ':dynamic-config:testing:support', + ':lease:passthrough', + ':lease:system-tests', + ':management:testing:examples', + ':management:testing:entity', + + // testing - long-running tests + ':system-tests:test-kit' + // ':system-tests:management' + // ':system-tests:dynamic-config' + + diff --git a/dynamic-config/testing/system-tests/pom.xml b/system-tests/dynamic-config/pom.xml similarity index 100% rename from dynamic-config/testing/system-tests/pom.xml rename to system-tests/dynamic-config/pom.xml diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/ConfigConversionIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/ConfigConversionIT.java similarity index 99% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/ConfigConversionIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/ConfigConversionIT.java index 31d34bfb60..4436efc13f 100644 --- a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/ConfigConversionIT.java +++ b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/ConfigConversionIT.java @@ -33,7 +33,7 @@ import org.terracotta.dynamic_config.api.service.Props; import org.terracotta.dynamic_config.cli.upgrade_tools.config_converter.ConfigConverterTool; import org.terracotta.dynamic_config.cli.upgrade_tools.config_converter.exception.ConfigConversionException; -import org.terracotta.dynamic_config.server.api.DynamicConfigNomadServer; +import org.terracotta.dynamic_config.api.server.DynamicConfigNomadServer; import org.terracotta.dynamic_config.server.configuration.nomad.NomadServerFactory; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.ConfigStorageException; import org.terracotta.dynamic_config.server.configuration.nomad.persistence.NomadConfigurationManager; diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand1x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommand2x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandFail1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandFail1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandFail1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandFail1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithMultipleVoter1x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithMultipleVoter1x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithMultipleVoter1x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithMultipleVoter1x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithVoter1x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithVoter1x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithVoter1x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachCommandWithVoter1x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x4IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x4IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x4IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachInConsistency1x4IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachStripeIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachStripeIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachStripeIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/AttachStripeIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigRepoIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigRepoIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigRepoIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigRepoIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigSyncIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigSyncIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigSyncIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/ConfigSyncIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand2x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand2x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand2x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommand2x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommandWithVoter1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommandWithVoter1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommandWithVoter1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachCommandWithVoter1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachInConsistency1x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachStripeIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachStripeIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachStripeIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DetachStripeIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticMode1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticMode1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticMode1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticMode1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticsIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticsIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticsIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DiagnosticsIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DynamicTopologyEntityIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DynamicTopologyEntityIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DynamicTopologyEntityIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/DynamicTopologyEntityIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/GetCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/GetCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/GetCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/GetCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/LockConfigIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/LockConfigIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/LockConfigIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/LockConfigIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/PassiveRedirection1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/PassiveRedirection1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/PassiveRedirection1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/PassiveRedirection1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/RepairCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Scaling2x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Scaling2x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Scaling2x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Scaling2x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand2x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand2x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand2x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SetCommand2x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SimulationHandlerIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SimulationHandlerIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SimulationHandlerIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/SimulationHandlerIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/UnsetCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/UnsetCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/UnsetCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/UnsetCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Voter1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Voter1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Voter1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activated/Voter1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand2x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand2x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand2x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/ActivateCommand2x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/AutoActivateNewPassive1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/AutoActivateNewPassive1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/AutoActivateNewPassive1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/AutoActivateNewPassive1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6CliActivationIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6CliActivationIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6CliActivationIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6CliActivationIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6ConfigActivationIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6ConfigActivationIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6ConfigActivationIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/Ipv6ConfigActivationIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/PreActivatedNodeStartup1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/PreActivatedNodeStartup1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/activation/PreActivatedNodeStartup1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/activation/PreActivatedNodeStartup1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachCommand2x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachDetachCommand2x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachDetachCommand2x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachDetachCommand2x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/AttachDetachCommand2x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand2x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand2x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand2x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DetachCommand2x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DiagnosticIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DiagnosticIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DiagnosticIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/DiagnosticIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/GetCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/ImportCommand2x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/ImportCommand2x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/ImportCommand2x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/ImportCommand2x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/Ipv6ConfigIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/Ipv6ConfigIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/Ipv6ConfigIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/Ipv6ConfigIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/NodeStartupIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/NodeStartupIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/NodeStartupIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/NodeStartupIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand2x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand2x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand2x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/SetCommand2x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/TopologyServiceIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/TopologyServiceIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/TopologyServiceIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/TopologyServiceIT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/UnsetCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/UnsetCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/UnsetCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/diagnostic/UnsetCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x4IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x4IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x4IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/AttachInConsistency1x4IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x3IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x3IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x3IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/network_disrupted/DetachInConsistency1x3IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/AttachCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/AttachCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/AttachCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/AttachCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DetachCommand1x2IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DetachCommand1x2IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DetachCommand1x2IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DetachCommand1x2IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DiagnosticCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DiagnosticCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DiagnosticCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/DiagnosticCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/GetCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/GetCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/GetCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/GetCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/RepairCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/RepairCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/RepairCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/RepairCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/SetCommand1x1IT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/SetCommand1x1IT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/SetCommand1x1IT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/new_options/SetCommand1x1IT.java diff --git a/dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/permission/SetUnsetSettingsIT.java b/system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/permission/SetUnsetSettingsIT.java similarity index 100% rename from dynamic-config/testing/system-tests/src/test/java/org/terracotta/dynamic_config/system_tests/permission/SetUnsetSettingsIT.java rename to system-tests/dynamic-config/src/test/java/org/terracotta/dynamic_config/system_tests/permission/SetUnsetSettingsIT.java diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files-new-format/single-stripe.cfg b/system-tests/dynamic-config/src/test/resources/config-property-files-new-format/single-stripe.cfg similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files-new-format/single-stripe.cfg rename to system-tests/dynamic-config/src/test/resources/config-property-files-new-format/single-stripe.cfg diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files-new-format/single-stripe_invalid1.cfg b/system-tests/dynamic-config/src/test/resources/config-property-files-new-format/single-stripe_invalid1.cfg similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files-new-format/single-stripe_invalid1.cfg rename to system-tests/dynamic-config/src/test/resources/config-property-files-new-format/single-stripe_invalid1.cfg diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files-new-format/single-stripe_invalid2.cfg b/system-tests/dynamic-config/src/test/resources/config-property-files-new-format/single-stripe_invalid2.cfg similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files-new-format/single-stripe_invalid2.cfg rename to system-tests/dynamic-config/src/test/resources/config-property-files-new-format/single-stripe_invalid2.cfg diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x1-no-fo.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/1x1-no-fo.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x1-no-fo.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/1x1-no-fo.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x1.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/1x1.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x1.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/1x1.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2-diff.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/1x2-diff.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2-diff.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/1x2-diff.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2-no-fo.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/1x2-no-fo.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2-no-fo.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/1x2-no-fo.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/1x2.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/1x2.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2_default_stripe_name.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/1x2_default_stripe_name.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/1x2_default_stripe_name.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/1x2_default_stripe_name.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/import2x1.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/import2x1.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/import2x1.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/import2x1.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe-no-fo.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe-no-fo.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe-no-fo.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe-no-fo.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_invalid1.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_invalid1.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_invalid1.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_invalid1.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_invalid2.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_invalid2.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_invalid2.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_invalid2.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_multi-node-no-fo.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_multi-node-no-fo.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_multi-node-no-fo.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_multi-node-no-fo.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_multi-node.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_multi-node.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_multi-node.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_multi-node.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_multi-node_ipv6.properties b/system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_multi-node_ipv6.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/config-property-files/single-stripe_multi-node_ipv6.properties rename to system-tests/dynamic-config/src/test/resources/config-property-files/single-stripe_multi-node_ipv6.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/cluster-1.properties b/system-tests/dynamic-config/src/test/resources/conversion/cluster-1.properties similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/cluster-1.properties rename to system-tests/dynamic-config/src/test/resources/conversion/cluster-1.properties diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-1.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-1.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1_default_lease_failover_and_reconnect_window.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-1_default_lease_failover_and_reconnect_window.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1_default_lease_failover_and_reconnect_window.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-1_default_lease_failover_and_reconnect_window.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1_lease_failover_and_reconnect_window.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-1_lease_failover_and_reconnect_window.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1_lease_failover_and_reconnect_window.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-1_lease_failover_and_reconnect_window.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1_no_server_element.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-1_no_server_element.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-1_no_server_element.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-1_no_server_element.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-2.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-2.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-2.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-2.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-3.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-3.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-3.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-3.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-4.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-4.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-4.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-4.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-5.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-5.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-5.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-5.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-6.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-6.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-6.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-6.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-7.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-7.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-7.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-7.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-8.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config-8.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config-8.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config-8.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config.xml b/system-tests/dynamic-config/src/test/resources/conversion/tc-config.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/conversion/tc-config.xml rename to system-tests/dynamic-config/src/test/resources/conversion/tc-config.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic-when-locked.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic-when-locked.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic-when-locked.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic-when-locked.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic1.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic1.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic1.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic1.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic2.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic2.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic2.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic2.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic3.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic3.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic3.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic3.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic4.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic4.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic4.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic4.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic5.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic5.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic5.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic5.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic6-1.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic6-1.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic6-1.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic6-1.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic6-2.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic6-2.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic6-2.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic6-2.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic7.txt b/system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic7.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/diagnostic-output/diagnostic7.txt rename to system-tests/dynamic-config/src/test/resources/diagnostic-output/diagnostic7.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/dummy.txt b/system-tests/dynamic-config/src/test/resources/dummy.txt similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/dummy.txt rename to system-tests/dynamic-config/src/test/resources/dummy.txt diff --git a/dynamic-config/testing/system-tests/src/test/resources/logback-ext-test.xml b/system-tests/dynamic-config/src/test/resources/logback-ext-test.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/logback-ext-test.xml rename to system-tests/dynamic-config/src/test/resources/logback-ext-test.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/logback-test.xml b/system-tests/dynamic-config/src/test/resources/logback-test.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/logback-test.xml rename to system-tests/dynamic-config/src/test/resources/logback-test.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-1-minimal.xml b/system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-1-minimal.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-1-minimal.xml rename to system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-1-minimal.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-1-node.xml b/system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-1-node.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-1-node.xml rename to system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-1-node.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-1-node_ipv6.xml b/system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-1-node_ipv6.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-1-node_ipv6.xml rename to system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-1-node_ipv6.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-2-nodes.xml b/system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-2-nodes.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe1-2-nodes.xml rename to system-tests/dynamic-config/src/test/resources/tc-configs/stripe1-2-nodes.xml diff --git a/dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe2-2-nodes.xml b/system-tests/dynamic-config/src/test/resources/tc-configs/stripe2-2-nodes.xml similarity index 100% rename from dynamic-config/testing/system-tests/src/test/resources/tc-configs/stripe2-2-nodes.xml rename to system-tests/dynamic-config/src/test/resources/tc-configs/stripe2-2-nodes.xml diff --git a/management/testing/integration-tests/pom.xml b/system-tests/management/pom.xml similarity index 100% rename from management/testing/integration-tests/pom.xml rename to system-tests/management/pom.xml diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/AbstractHATest.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/AbstractHATest.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/AbstractHATest.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/AbstractHATest.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/AbstractSingleTest.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/AbstractSingleTest.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/AbstractSingleTest.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/AbstractSingleTest.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/AbstractTest.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/AbstractTest.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/AbstractTest.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/AbstractTest.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/BadClientsIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/BadClientsIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/BadClientsIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/BadClientsIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ClientCacheRemoteManagementIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/ClientCacheRemoteManagementIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ClientCacheRemoteManagementIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/ClientCacheRemoteManagementIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ConcurrentNmsEntitiesIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/ConcurrentNmsEntitiesIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ConcurrentNmsEntitiesIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/ConcurrentNmsEntitiesIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/DiagnosticIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/DiagnosticIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/DiagnosticIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/DiagnosticIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/FailoverIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/FailoverIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/FailoverIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/FailoverIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/HAStatisticsIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/HAStatisticsIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/HAStatisticsIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/HAStatisticsIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/NmsAgentServiceIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/NmsAgentServiceIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/NmsAgentServiceIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/NmsAgentServiceIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/OffHeapLimitReachedIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/OffHeapLimitReachedIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/OffHeapLimitReachedIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/OffHeapLimitReachedIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/PassiveLeaveIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/PassiveLeaveIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/PassiveLeaveIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/PassiveLeaveIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/PassiveStartupIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/PassiveStartupIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/PassiveStartupIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/PassiveStartupIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/PassiveTopologyIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/PassiveTopologyIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/PassiveTopologyIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/PassiveTopologyIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ReconfigureEntityIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/ReconfigureEntityIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ReconfigureEntityIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/ReconfigureEntityIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ServerCacheManagementIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/ServerCacheManagementIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/ServerCacheManagementIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/ServerCacheManagementIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/SimpleGalvanIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/SimpleGalvanIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/SimpleGalvanIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/SimpleGalvanIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/StatisticCollectorIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/StatisticCollectorIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/StatisticCollectorIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/StatisticCollectorIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/TopologyIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/TopologyIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/TopologyIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/TopologyIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/UserErrorsIT.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/UserErrorsIT.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/UserErrorsIT.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/UserErrorsIT.java diff --git a/management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/json/TestModule.java b/system-tests/management/src/test/java/org/terracotta/management/integration/tests/json/TestModule.java similarity index 100% rename from management/testing/integration-tests/src/test/java/org/terracotta/management/integration/tests/json/TestModule.java rename to system-tests/management/src/test/java/org/terracotta/management/integration/tests/json/TestModule.java diff --git a/management/testing/integration-tests/src/test/resources/client-descriptors.json b/system-tests/management/src/test/resources/client-descriptors.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/client-descriptors.json rename to system-tests/management/src/test/resources/client-descriptors.json diff --git a/management/testing/integration-tests/src/test/resources/logback-ext.xml b/system-tests/management/src/test/resources/logback-ext.xml similarity index 100% rename from management/testing/integration-tests/src/test/resources/logback-ext.xml rename to system-tests/management/src/test/resources/logback-ext.xml diff --git a/management/testing/sample-entity/src/test/resources/logback.xml b/system-tests/management/src/test/resources/logback.xml similarity index 100% rename from management/testing/sample-entity/src/test/resources/logback.xml rename to system-tests/management/src/test/resources/logback.xml diff --git a/management/testing/integration-tests/src/test/resources/notifications-after-reconfigure.json b/system-tests/management/src/test/resources/notifications-after-reconfigure.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/notifications-after-reconfigure.json rename to system-tests/management/src/test/resources/notifications-after-reconfigure.json diff --git a/management/testing/integration-tests/src/test/resources/notifications.json b/system-tests/management/src/test/resources/notifications.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/notifications.json rename to system-tests/management/src/test/resources/notifications.json diff --git a/management/testing/integration-tests/src/test/resources/passive.json b/system-tests/management/src/test/resources/passive.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/passive.json rename to system-tests/management/src/test/resources/passive.json diff --git a/management/testing/integration-tests/src/test/resources/server-descriptors.json b/system-tests/management/src/test/resources/server-descriptors.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/server-descriptors.json rename to system-tests/management/src/test/resources/server-descriptors.json diff --git a/management/testing/integration-tests/src/test/resources/state-dump-partial.txt b/system-tests/management/src/test/resources/state-dump-partial.txt similarity index 97% rename from management/testing/integration-tests/src/test/resources/state-dump-partial.txt rename to system-tests/management/src/test/resources/state-dump-partial.txt index c40e765540..f1bc543170 100644 --- a/management/testing/integration-tests/src/test/resources/state-dump-partial.txt +++ b/system-tests/management/src/test/resources/state-dump-partial.txt @@ -85,7 +85,7 @@ stripe.1.node.1.tc-properties=terracotta.management.assert\:true public-hostname=ConfigChangeHandler#accept() public-port=ConfigChangeHandler#accept() offheap-resources=org.terracotta.offheapresource.OffheapResourceConfigChangeHandler - tc-properties=org.terracotta.dynamic_config.server.api.SelectingConfigChangeHandler + tc-properties=org.terracotta.dynamic_config.api.server.SelectingConfigChangeHandler org.terracotta.dynamic_config.server.configuration.service.DynamicConfigServiceImpl={ licensePath= hasLicenseFile=false @@ -142,7 +142,7 @@ stripe.1.node.1.tc-properties=terracotta.management.assert\:true creationTimestamp= version=1 summary=Activating cluster - org.terracotta.dynamic_config.server.api.PathResolver={ + org.terracotta.dynamic_config.api.server.PathResolver={ baseDir= org.terracotta.offheapresource.OffHeapResourcesProvider={ primary-server-resource={ diff --git a/management/testing/integration-tests/src/test/resources/stats.json b/system-tests/management/src/test/resources/stats.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/stats.json rename to system-tests/management/src/test/resources/stats.json diff --git a/management/testing/integration-tests/src/test/resources/topology-after-failover.json b/system-tests/management/src/test/resources/topology-after-failover.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/topology-after-failover.json rename to system-tests/management/src/test/resources/topology-after-failover.json diff --git a/management/testing/integration-tests/src/test/resources/topology-before-reconfigure.json b/system-tests/management/src/test/resources/topology-before-reconfigure.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/topology-before-reconfigure.json rename to system-tests/management/src/test/resources/topology-before-reconfigure.json diff --git a/management/testing/integration-tests/src/test/resources/topology-reconfigured.json b/system-tests/management/src/test/resources/topology-reconfigured.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/topology-reconfigured.json rename to system-tests/management/src/test/resources/topology-reconfigured.json diff --git a/management/testing/integration-tests/src/test/resources/topology.json b/system-tests/management/src/test/resources/topology.json similarity index 100% rename from management/testing/integration-tests/src/test/resources/topology.json rename to system-tests/management/src/test/resources/topology.json diff --git a/system-tests/test-kit/build.gradle.kts b/system-tests/test-kit/build.gradle.kts new file mode 100644 index 0000000000..f10fd001de --- /dev/null +++ b/system-tests/test-kit/build.gradle.kts @@ -0,0 +1,192 @@ +@file:Suppress("UnstableApiUsage") + +import org.gradle.api.attributes.DocsType.JAVADOC +import org.gradle.api.internal.project.ProjectInternal +import org.gradle.api.plugins.jvm.internal.JvmPluginServices +import org.gradle.util.internal.GUtil + +import org.redundent.kotlin.xml.Namespace +import org.redundent.kotlin.xml.PrintOptions +import org.redundent.kotlin.xml.XmlVersion +import org.redundent.kotlin.xml.xml + +import java.nio.file.FileSystems +import java.util.SortedMap +import kotlin.io.path.inputStream +import kotlin.io.path.outputStream +import kotlin.text.Charsets.UTF_8 + +buildscript { + dependencies { + classpath("org.redundent:kotlin-xml-builder:1.9.1") + } +} + +plugins { + id("jvm-ecosystem") + id("org.terracotta.build.convention.distribution") +} + +val kit by configurations.registering { + description = "Outgoing kit configuration" +} + +// layouts: +// - core == core layout from terracotta-core project +// - platform == platform layout from this project + +val core by configurations.registering { +} +val platform by configurations.registering { +} + +// server libs + +val serverLibs = configurations.dependencyScope("serverLibs") { + description = "The server libraries" +} + +val serverLibsClasspath = configurations.resolvable("serverLibsClasspath") { + extendsFrom(serverLibs.get()) +} + +val serverLibsClasspathAssembly = tasks.register("serverLibsClasspathAssembly") { + classpath = serverLibsClasspath + outputDirectory = layout.buildDirectory.dir("server-libs") +} + +// versions + +val logbackVersion: String by properties +val slf4jVersion: String by properties +val terracottaCoreVersion: String by properties + +dependencies { + core("org.terracotta.internal:terracotta-kit:$terracottaCoreVersion@tar.gz") + // platform(project(":platform-layout")) + // platform(project(":platform-layout").layout("kit")) + // platform(project(mapOf("path" to ":platform-layout", "configuration" to "kit"))) + + serverLibs.name("org.terracotta.internal:terracotta:$terracottaCoreVersion") + serverLibs.name("org.terracotta.internal:tc-server:$terracottaCoreVersion") + + constraints { + serverLibs.name("ch.qos.logback:logback-classic") { + version { + strictly(logbackVersion) + } + } + serverLibs.name("org.slf4j:slf4j-api") { + version { + strictly(slf4jVersion) + } + } + } +} + +distributions { + main { + contents { + includeEmptyDirs = false + filesMatching(listOf("**/*.bat", "**/*.sh")) { + permissions { + unix("0775") + } + } + filesNotMatching("**/*.jar") { + duplicatesStrategy = DuplicatesStrategy.FAIL + } + filesMatching("**/*.jar") { + // We can safely exclude JAR duplicates as our dependency strategy is fail on conflict + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + } + + val coreTar = core.map { tarTree(it.singleFile) } + // val platformTar = platform.map { tarTree(it.singleFile) } + + // core layout + into("") { + from (coreTar) { + include("*/server/bin/**") + include("*/init/**") + include("*/legal/**") + + // drop + eachFile(org.terracotta.build.Utils.dropTopLevelDirectories(1)) + } + } + + // platform layout + // into("") { + // from (platformTar) { + // include("**/*") + + // // drop + // eachFile(org.terracotta.build.Utils.dropTopLevelDirectories(1)) + // } + // } + + // server libs + // (ideally should come from core layout but we need to make sure we have the right versions of the dependencies) + into("server") { + into("lib") { + from(serverLibsClasspathAssembly) { + rename("terracotta-$terracottaCoreVersion.jar", "tc.jar") + } + } + } + } + } +} + +val explodedKit = tasks.register("explodedKit") { + into(project.layout.buildDirectory.dir("test-kit")) + with(distributions.main.get().contents) +} + +artifacts { + add(kit.name, explodedKit.map { + copy -> copy.destinationDir + }) +} + +abstract class ClasspathAssembly : DefaultTask() { + + @get:InputFiles + abstract val classpath: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @TaskAction + fun assembleAndPatchManifest() { + val classpath = classpath.get() + + project.sync { + from(classpath) + into(outputDirectory) + } + + classpath.resolvedConfiguration.firstLevelModuleDependencies.forEach { dependency -> + dependency.moduleArtifacts.forEach { artifact -> + val file = artifact.file + if (file.isFile && file.name.endsWith(".jar", ignoreCase = true)) { + val targetFile = outputDirectory.file(file.name).get().asFile + FileSystems.newFileSystem(project.uri("jar:" + targetFile.toURI()), emptyMap()).use { jar -> + val manifestEntry = jar.getPath("META-INF", "MANIFEST.MF") + + val manifest = manifestEntry.inputStream().use { java.util.jar.Manifest(it) } + + if (manifest.mainAttributes.containsKey(java.util.jar.Attributes.Name.CLASS_PATH)) { + manifest.mainAttributes[java.util.jar.Attributes.Name.CLASS_PATH] = classpath.minus(file).joinToString(" ") { it.name } + + manifestEntry.outputStream().use { + manifest.write(it) + } + } + } + } + } + } + } +} diff --git a/voltron-proxy/client/build.gradle b/voltron-proxy/client/build.gradle new file mode 100644 index 0000000000..3c751f29c0 --- /dev/null +++ b/voltron-proxy/client/build.gradle @@ -0,0 +1,16 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':voltron-proxy:common') + api "org.terracotta:entity-client-api:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.voltron.proxy' + artifactId = 'voltron-proxy-client' + name = 'Voltron Proxy Client' +} diff --git a/voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/ClientProxyFactory.java b/voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/ClientProxyFactory.java similarity index 100% rename from voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/ClientProxyFactory.java rename to voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/ClientProxyFactory.java diff --git a/voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListener.java b/voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListener.java similarity index 100% rename from voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListener.java rename to voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListener.java diff --git a/voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListenerAware.java b/voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListenerAware.java similarity index 100% rename from voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListenerAware.java rename to voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/EndpointListenerAware.java diff --git a/voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/ProxyEntityClientService.java b/voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/ProxyEntityClientService.java similarity index 100% rename from voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/ProxyEntityClientService.java rename to voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/ProxyEntityClientService.java diff --git a/voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/ServerMessageAware.java b/voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/ServerMessageAware.java similarity index 100% rename from voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/ServerMessageAware.java rename to voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/ServerMessageAware.java diff --git a/voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandler.java b/voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandler.java similarity index 100% rename from voltron-proxy/voltron-proxy-client/src/main/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandler.java rename to voltron-proxy/client/src/main/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandler.java diff --git a/voltron-proxy/voltron-proxy-client/src/test/java/org/terracotta/voltron/proxy/client/ClientProxyFactoryTest.java b/voltron-proxy/client/src/test/java/org/terracotta/voltron/proxy/client/ClientProxyFactoryTest.java similarity index 99% rename from voltron-proxy/voltron-proxy-client/src/test/java/org/terracotta/voltron/proxy/client/ClientProxyFactoryTest.java rename to voltron-proxy/client/src/test/java/org/terracotta/voltron/proxy/client/ClientProxyFactoryTest.java index 495ea7f52b..8d4cdec57d 100644 --- a/voltron-proxy/voltron-proxy-client/src/test/java/org/terracotta/voltron/proxy/client/ClientProxyFactoryTest.java +++ b/voltron-proxy/client/src/test/java/org/terracotta/voltron/proxy/client/ClientProxyFactoryTest.java @@ -134,16 +134,12 @@ public void onMessage(final Object message) { } public interface PassThrough { - Integer sync(); - @Async Future aSync(); - } public interface ListenerAware extends PassThrough, ServerMessageAware, Entity { - } private static class StringMessageListener implements MessageListener { @@ -151,26 +147,22 @@ public void onMessage(final String message) { throw new UnsupportedOperationException("Implement me!"); } } - - private static class ComplexMessageListener implements ListenerSubInterface { + private static class ComplexMessageListener implements ListenerSubInterface { public void onMessage(Long message) { throw new UnsupportedOperationException("Implement me!"); } - } - + private static interface ListenerSubInterface extends MessageListener { } private static class MoreComplexMessageListener implements ListenerGenericSubInterface { - public void onMessage(Double message) { throw new UnsupportedOperationException("Implement me!"); } - } - + private static interface ListenerGenericSubInterface extends MessageListener { } } \ No newline at end of file diff --git a/voltron-proxy/voltron-proxy-client/src/test/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandlerTest.java b/voltron-proxy/client/src/test/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandlerTest.java similarity index 100% rename from voltron-proxy/voltron-proxy-client/src/test/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandlerTest.java rename to voltron-proxy/client/src/test/java/org/terracotta/voltron/proxy/client/VoltronProxyInvocationHandlerTest.java diff --git a/voltron-proxy/common/build.gradle b/voltron-proxy/common/build.gradle new file mode 100644 index 0000000000..1a6a94f2da --- /dev/null +++ b/voltron-proxy/common/build.gradle @@ -0,0 +1,15 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api "org.terracotta:entity-common-api:$terracottaApisVersion" + api "org.terracotta:packaging-support:$terracottaApisVersion" +} + +deploy { + groupId = 'org.terracotta.voltron.proxy' + artifactId = 'voltron-proxy-common' +} diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/Async.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/Async.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/Async.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/Async.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ClientId.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ClientId.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ClientId.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ClientId.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/Codec.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/Codec.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/Codec.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/Codec.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/CommonProxyFactory.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/CommonProxyFactory.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/CommonProxyFactory.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/CommonProxyFactory.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ConcurrencyStrategy.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ConcurrencyStrategy.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ConcurrencyStrategy.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ConcurrencyStrategy.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ExecutionStrategy.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ExecutionStrategy.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ExecutionStrategy.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ExecutionStrategy.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MessageListener.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MessageListener.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MessageListener.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MessageListener.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MessageListenerAdapter.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MessageListenerAdapter.java similarity index 99% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MessageListenerAdapter.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MessageListenerAdapter.java index 46fb35e912..17672b27d2 100644 --- a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MessageListenerAdapter.java +++ b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MessageListenerAdapter.java @@ -22,6 +22,5 @@ public class MessageListenerAdapter implements MessageListener { @Override public void onMessage(T message) { - } } diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MessageType.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MessageType.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MessageType.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MessageType.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MethodDescriptor.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MethodDescriptor.java similarity index 99% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MethodDescriptor.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MethodDescriptor.java index 136cea9190..0278de1bb7 100644 --- a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/MethodDescriptor.java +++ b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/MethodDescriptor.java @@ -38,7 +38,7 @@ public final class MethodDescriptor { private final Method method; private final ExecutionStrategy.Location location; private final int concurrencyKey; - + private MethodDescriptor(Method method) { this.method = method; diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityMessage.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityMessage.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityMessage.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityMessage.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityResponse.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityResponse.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityResponse.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ProxyEntityResponse.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ProxyMessageCodec.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ProxyMessageCodec.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/ProxyMessageCodec.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/ProxyMessageCodec.java diff --git a/voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/SerializationCodec.java b/voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/SerializationCodec.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/main/java/org/terracotta/voltron/proxy/SerializationCodec.java rename to voltron-proxy/common/src/main/java/org/terracotta/voltron/proxy/SerializationCodec.java diff --git a/voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/AvailableClass.java b/voltron-proxy/common/src/test/java/org/terracotta/AvailableClass.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/AvailableClass.java rename to voltron-proxy/common/src/test/java/org/terracotta/AvailableClass.java diff --git a/voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/voltron/proxy/CommonProxyFactoryTest.java b/voltron-proxy/common/src/test/java/org/terracotta/voltron/proxy/CommonProxyFactoryTest.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/voltron/proxy/CommonProxyFactoryTest.java rename to voltron-proxy/common/src/test/java/org/terracotta/voltron/proxy/CommonProxyFactoryTest.java diff --git a/voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/voltron/proxy/SerializationCodecTest.java b/voltron-proxy/common/src/test/java/org/terracotta/voltron/proxy/SerializationCodecTest.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/voltron/proxy/SerializationCodecTest.java rename to voltron-proxy/common/src/test/java/org/terracotta/voltron/proxy/SerializationCodecTest.java diff --git a/voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/voltron/proxy/shaded/org/terracotta/AvailableShadedClass.java b/voltron-proxy/common/src/test/java/org/terracotta/voltron/proxy/shaded/org/terracotta/AvailableShadedClass.java similarity index 100% rename from voltron-proxy/voltron-proxy-common/src/test/java/org/terracotta/voltron/proxy/shaded/org/terracotta/AvailableShadedClass.java rename to voltron-proxy/common/src/test/java/org/terracotta/voltron/proxy/shaded/org/terracotta/AvailableShadedClass.java diff --git a/voltron-proxy/pom.xml b/voltron-proxy/pom.xml deleted file mode 100755 index 7b95e6f6bd..0000000000 --- a/voltron-proxy/pom.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - 4.0.0 - pom - - - voltron-proxy-common - voltron-proxy-client - voltron-proxy-server - - - - org.terracotta - platform-root - 5.10-SNAPSHOT - - - org.terracotta.voltron.proxy - voltron-proxy - - - - junit - junit - test - - - org.mockito - mockito-core - test - - - - diff --git a/voltron-proxy/server/build.gradle b/voltron-proxy/server/build.gradle new file mode 100644 index 0000000000..602da65310 --- /dev/null +++ b/voltron-proxy/server/build.gradle @@ -0,0 +1,19 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'biz.aQute.bnd.builder' +} + +dependencies { + api project(':voltron-proxy:common') + api "org.terracotta:entity-server-api:$terracottaApisVersion" + api "org.terracotta:standard-cluster-services:$terracottaApisVersion" + + testImplementation project(':voltron-proxy:client') +} + +deploy { + groupId = 'org.terracotta.voltron.proxy' + artifactId = 'voltron-proxy-server' + name = 'Voltron Proxy Server' +} diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/ActiveProxiedServerEntity.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/ActiveProxiedServerEntity.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/ActiveProxiedServerEntity.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/ActiveProxiedServerEntity.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/DelegatingSyncMessageCodec.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/DelegatingSyncMessageCodec.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/DelegatingSyncMessageCodec.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/DelegatingSyncMessageCodec.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiring.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiring.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiring.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiring.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiringSupport.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiringSupport.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiringSupport.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/MessageFiringSupport.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/Messenger.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/Messenger.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/Messenger.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/Messenger.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/MessengerProxyFactory.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/MessengerProxyFactory.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/MessengerProxyFactory.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/MessengerProxyFactory.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/PassiveProxiedServerEntity.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/PassiveProxiedServerEntity.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/PassiveProxiedServerEntity.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/PassiveProxiedServerEntity.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/ProxyInvoker.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/ProxyInvoker.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/ProxyInvoker.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/ProxyInvoker.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/ProxyServerEntityService.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/ProxyServerEntityService.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/ProxyServerEntityService.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/ProxyServerEntityService.java diff --git a/voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/SyncProxyFactory.java b/voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/SyncProxyFactory.java similarity index 100% rename from voltron-proxy/voltron-proxy-server/src/main/java/org/terracotta/voltron/proxy/server/SyncProxyFactory.java rename to voltron-proxy/server/src/main/java/org/terracotta/voltron/proxy/server/SyncProxyFactory.java diff --git a/voltron-proxy/voltron-proxy-server/src/test/java/org/terracotta/voltron/proxy/server/EndToEndTest.java b/voltron-proxy/server/src/test/java/org/terracotta/voltron/proxy/server/EndToEndTest.java similarity index 99% rename from voltron-proxy/voltron-proxy-server/src/test/java/org/terracotta/voltron/proxy/server/EndToEndTest.java rename to voltron-proxy/server/src/test/java/org/terracotta/voltron/proxy/server/EndToEndTest.java index 956a368328..893f6783c1 100644 --- a/voltron-proxy/voltron-proxy-server/src/test/java/org/terracotta/voltron/proxy/server/EndToEndTest.java +++ b/voltron-proxy/server/src/test/java/org/terracotta/voltron/proxy/server/EndToEndTest.java @@ -164,7 +164,6 @@ public void onMessage(final Integer message) { final ProxyInvoker proxyInvoker = new ProxyInvoker(firingClientIdAware).activateEvents(new ClientCommunicator() { @Override public void closeClientConnection(ClientDescriptor clientDescriptor) { - } public void sendNoResponse(final ClientDescriptor clientDescriptor, final EntityResponse message) { diff --git a/voltron-proxy/voltron-proxy-client/pom.xml b/voltron-proxy/voltron-proxy-client/pom.xml deleted file mode 100755 index df77db98d6..0000000000 --- a/voltron-proxy/voltron-proxy-client/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - voltron-proxy - org.terracotta.voltron.proxy - 5.10-SNAPSHOT - - 4.0.0 - - voltron-proxy-client - - - - org.terracotta.voltron.proxy - voltron-proxy-common - ${project.version} - - - - org.terracotta - entity-client-api - provided - - - org.terracotta - entity-common-api - provided - - - org.slf4j - slf4j-api - provided - - - - \ No newline at end of file diff --git a/voltron-proxy/voltron-proxy-common/pom.xml b/voltron-proxy/voltron-proxy-common/pom.xml deleted file mode 100755 index 578e389e3a..0000000000 --- a/voltron-proxy/voltron-proxy-common/pom.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - voltron-proxy - org.terracotta.voltron.proxy - 5.10-SNAPSHOT - - 4.0.0 - - voltron-proxy-common - - - - org.slf4j - slf4j-api - provided - - - org.terracotta - entity-common-api - provided - - - org.terracotta - packaging-support - provided - - - org.terracotta - connection-api - provided - - - - org.hamcrest - hamcrest-all - test - - - - \ No newline at end of file diff --git a/voltron-proxy/voltron-proxy-server/pom.xml b/voltron-proxy/voltron-proxy-server/pom.xml deleted file mode 100755 index 7606533cd7..0000000000 --- a/voltron-proxy/voltron-proxy-server/pom.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - voltron-proxy - org.terracotta.voltron.proxy - 5.10-SNAPSHOT - - 4.0.0 - - voltron-proxy-server - - - - - org.apache.felix - maven-bundle-plugin - - - - true - - - - - - - - - - org.terracotta.voltron.proxy - voltron-proxy-common - ${project.version} - - - - org.terracotta - entity-server-api - provided - - - org.terracotta - standard-cluster-services - provided - - - org.terracotta - connection-api - provided - - - org.slf4j - slf4j-api - provided - - - - org.terracotta.voltron.proxy - voltron-proxy-client - ${project.version} - test - - - org.terracotta - entity-client-api - test - - - - \ No newline at end of file diff --git a/voter/build.gradle b/voter/build.gradle new file mode 100644 index 0000000000..ea59722b35 --- /dev/null +++ b/voter/build.gradle @@ -0,0 +1,28 @@ +plugins { + id 'org.terracotta.build.convention.java-library' + id 'org.terracotta.build.deploy' + id 'org.terracotta.build.tool' + id 'biz.aQute.bnd.builder' +} + +dependencies { + implementation project(':dynamic-config:cli:api') + implementation project(':dynamic-config:cli:jcommander') + implementation "org.terracotta:connection-api:$terracottaApisVersion" + implementation "org.terracotta.internal:client-runtime:$terracottaCoreVersion" + implementation "org.terracotta.internal:common-spi:$terracottaCoreVersion" + runtimeOnly "ch.qos.logback:logback-classic:$logbackVersion" + testImplementation "ch.qos.logback:logback-classic:$logbackVersion" + testImplementation "org.terracotta:terracotta-utilities-test-tools:$terracottaUtilitiesTestToolsVersion" +} + +tool { + name = 'voter' + mainClass = 'org.terracotta.voter.cli.TCVoterMain' +} + +deploy { + groupId = 'org.terracotta' + artifactId = 'voter' + name = 'Voter CLI' +} diff --git a/voter/pom.xml b/voter/pom.xml deleted file mode 100644 index 16e2217c6b..0000000000 --- a/voter/pom.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - 4.0.0 - - - org.terracotta - platform-root - 5.10-SNAPSHOT - - - voter - - - - org.terracotta.dynamic-config.cli - dynamic-config-cli-support - ${project.version} - - - - org.terracotta - connection-api - provided - - - org.terracotta.internal - client-runtime - runtime - - - com.beust - jcommander - - - org.slf4j - slf4j-api - provided - - - ch.qos.logback - logback-classic - test - - - junit - junit - test - - - org.hamcrest - hamcrest-all - test - - - org.mockito - mockito-core - test - - - org.terracotta - terracotta-utilities-test-tools - test - - - \ No newline at end of file diff --git a/voter/src/main/java/org/terracotta/voter/ClientVoterManager.java b/voter/src/main/java/org/terracotta/voter/ClientVoterManager.java index fbfda9188a..098136448b 100644 --- a/voter/src/main/java/org/terracotta/voter/ClientVoterManager.java +++ b/voter/src/main/java/org/terracotta/voter/ClientVoterManager.java @@ -16,12 +16,12 @@ */ package org.terracotta.voter; -import org.terracotta.connection.ConnectionException; - import java.util.Properties; import java.util.Set; import java.util.concurrent.TimeoutException; +import org.terracotta.connection.ConnectionException; + public interface ClientVoterManager { /** @@ -55,17 +55,17 @@ public interface ClientVoterManager { void close(); boolean isVoting(); - + boolean isRegistered(); - + long generation(); - + long lastVotedGeneration(); - + void zombie(); boolean isConnected(); - + boolean register(String id) throws TimeoutException; /** diff --git a/voter/src/main/java/org/terracotta/voter/ClientVoterManagerImpl.java b/voter/src/main/java/org/terracotta/voter/ClientVoterManagerImpl.java index abd47f49c1..d9b91f01ac 100644 --- a/voter/src/main/java/org/terracotta/voter/ClientVoterManagerImpl.java +++ b/voter/src/main/java/org/terracotta/voter/ClientVoterManagerImpl.java @@ -16,12 +16,6 @@ */ package org.terracotta.voter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.terracotta.connection.ConnectionException; -import org.terracotta.connection.Diagnostics; -import org.terracotta.connection.DiagnosticsFactory; - import java.net.InetSocketAddress; import java.util.Arrays; import java.util.HashSet; @@ -29,6 +23,12 @@ import java.util.Set; import java.util.concurrent.TimeoutException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.terracotta.connection.ConnectionException; +import org.terracotta.connection.Diagnostics; +import org.terracotta.connection.DiagnosticsFactory; + public class ClientVoterManagerImpl implements ClientVoterManager { private static final Logger LOGGER = LoggerFactory.getLogger(ClientVoterManagerImpl.class); @@ -95,17 +95,17 @@ public long heartbeat(String id) throws TimeoutException { } return response; } - + /** - * Parse the response from the server. - * + * Parse the response from the server. + * * The server should return a long based on current state * -1 if the voter that is trying to heartbeat is not registered * 0 for a valid heartbeat with no voting occuring - * any positive long means the server is requesting a vote in the + * any positive long means the server is requesting a vote in the * generation returned in the long. * @param result - * @return + * @return */ private long parseResponse(String result) { try { @@ -195,21 +195,21 @@ public synchronized boolean isConnected() { public boolean isVoting() { return voting; } - + @Override public boolean isRegistered() { return generation >= 0; } - + @Override public long generation() { return generation; } - + @Override public long lastVotedGeneration() { return lastVotedGeneration; - } + } @Override public void zombie() { diff --git a/voter/src/main/java/org/terracotta/voter/ClientVoterThread.java b/voter/src/main/java/org/terracotta/voter/ClientVoterThread.java index e24d5afee9..c2b14e1bab 100644 --- a/voter/src/main/java/org/terracotta/voter/ClientVoterThread.java +++ b/voter/src/main/java/org/terracotta/voter/ClientVoterThread.java @@ -39,7 +39,7 @@ public class ClientVoterThread implements AutoCloseable { private final Properties connectionProperties; private final ScheduledExecutorService exec; private static final Logger LOGGER = LoggerFactory.getLogger(ClientVoterThread.class); - + private volatile ScheduledFuture currentTask; public ClientVoterThread(ClientVoterManager mgr, String id, ScheduledExecutorService clock, Properties props) { @@ -55,11 +55,11 @@ private boolean register() throws ConnectionException, TimeoutException { } return mgr.register(id); } - + public ClientVoterManager getVoterManager() { return mgr; } - + @Override public void close() { if (currentTask != null) { diff --git a/voter/src/main/java/org/terracotta/voter/VotingGroup.java b/voter/src/main/java/org/terracotta/voter/VotingGroup.java index 41a1a572f6..1343bae0ff 100644 --- a/voter/src/main/java/org/terracotta/voter/VotingGroup.java +++ b/voter/src/main/java/org/terracotta/voter/VotingGroup.java @@ -81,7 +81,7 @@ public VotingGroup(String id, Properties connectionProps, String... hostPorts) { this.sharedExecutor = Executors.newScheduledThreadPool(hostPorts.length); this.voter = voterThread(connectionProps, factory, hostPorts); } - + public VoterStatus start() { this.voter.start(); return status; @@ -173,7 +173,7 @@ private boolean registerWithActive(String id, futures.forEach(f -> f.cancel(true)); } } - + private void addClientVoterNode(ClientVoterManager mgr, Properties connectionProps) { ClientVoterThread thread = new ClientVoterThread(mgr, id, sharedExecutor, connectionProps); ClientVoterThread former = nodes.put(mgr.getTargetHostPort(), thread); @@ -197,15 +197,15 @@ private void addClientVoterNode(ClientVoterManager mgr, Properties connectionPro LOGGER.info("Unexpected exception. Unable to register with target {}", mgr.getTargetHostPort(), c); } } - + private synchronized void setVoteOwner(ClientVoterManager mgr) { this.voteOwner = mgr; } - + private synchronized ClientVoterManager getVoteOwner() { return this.voteOwner; } - + private synchronized void handleVoteRequest(ClientVoterManager mgr) { try { if (voteOwner == null) { @@ -243,7 +243,7 @@ private synchronized void handleVoteRequest(ClientVoterManager mgr) { fireVotingListeners(mgr.getTargetHostPort()); } } - + private void reset() { for (ClientVoterThread t : nodes.values()) { t.close(); @@ -326,7 +326,7 @@ private void sleepForTopologyFetchInterval() { Thread.currentThread().interrupt(); } } - + private void notifySleepTimer() { synchronized (pollingSleepTimer) { pollingSleepTimer[0] = true; @@ -343,17 +343,17 @@ public void close() { public String toString() { return "VotingGroup{" + nodes.keySet() + "}"; } - + // Below is all cruft for testing help private final List> votingListeners = new CopyOnWriteArrayList<>(); private final CompletableFuture bootstrapped = new CompletableFuture<>(); private CompletableFuture pollingFuture = new CompletableFuture<>(); private String[] targets; - + public void addVotingListener(Consumer voter) { votingListeners.add(voter); } - + private void fireVotingListeners(String voter) { votingListeners.forEach(c->c.accept(voter)); } @@ -365,13 +365,13 @@ public Set getConnectedServers() { public int countConnectedServers() { return nodes.size(); } - + private synchronized CompletableFuture refreshPollingFuture() { pollingFuture = new CompletableFuture<>(); notifyAll(); return pollingFuture; } - + private synchronized CompletableFuture waitForRefresh() { CompletableFuture current = pollingFuture; try { @@ -384,19 +384,19 @@ private synchronized CompletableFuture waitForRefresh() { throw new RuntimeException(ie); } } - + public CompletableFuture forceTopologyUpdate() { return waitForRefresh(); } - + private synchronized void setTargets(String[] nodes) { targets = nodes; } - + public synchronized Set getExistingTopology() { return new HashSet<>(Arrays.asList(targets)); } - + private final VoterStatus status = new VoterStatus() { @Override public boolean isActive() { diff --git a/voter/src/test/java/org/terracotta/voter/VotingGroupTest.java b/voter/src/test/java/org/terracotta/voter/VotingGroupTest.java index 0d40613605..04038a5632 100644 --- a/voter/src/test/java/org/terracotta/voter/VotingGroupTest.java +++ b/voter/src/test/java/org/terracotta/voter/VotingGroupTest.java @@ -17,16 +17,6 @@ package org.terracotta.voter; -import ch.qos.logback.classic.Logger; -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.read.ListAppender; -import org.hamcrest.CoreMatchers; -import org.hamcrest.MatcherAssert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.slf4j.LoggerFactory; - import java.time.Duration; import java.util.ArrayList; import java.util.Collection; @@ -40,19 +30,29 @@ import java.util.UUID; import java.util.concurrent.TimeoutException; import java.util.function.Function; - import static java.util.function.UnaryOperator.identity; import static java.util.stream.Collectors.toMap; + +import org.hamcrest.CoreMatchers; import static org.hamcrest.CoreMatchers.containsString; +import org.hamcrest.MatcherAssert; import static org.hamcrest.Matchers.hasProperty; +import org.junit.BeforeClass; +import org.junit.Test; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import org.slf4j.LoggerFactory; import static org.terracotta.utilities.test.matchers.Eventually.within; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.classic.spi.ILoggingEvent; +import ch.qos.logback.core.read.ListAppender; + public class VotingGroupTest { private static final String VOTER_ID = UUID.randomUUID().toString(); @@ -102,7 +102,6 @@ public void testTopologyUpdate() throws TimeoutException, InterruptedException { when(mockClientVoterManager.getTopology()).thenReturn(expectedTopology); when(mockClientVoterManager.heartbeat(VOTER_ID)).thenReturn(0L); } catch (TimeoutException to) { - } return mockClientVoterManager; } @@ -152,7 +151,6 @@ public void testOverLappingHostPortsWhileAddingServers() throws TimeoutException when(mockClientVoterManager.getTopology()).thenReturn(expectedTopology); when(mockClientVoterManager.heartbeat(VOTER_ID)).thenReturn(0L); } catch (TimeoutException to) { - } return mockClientVoterManager; } @@ -205,7 +203,6 @@ public void testOverLappingHostPortsWhileRemovingServers() throws TimeoutExcepti when(mockClientVoterManager.getTopology()).thenReturn(expectedTopology); when(mockClientVoterManager.heartbeat(VOTER_ID)).thenReturn(0L); } catch (TimeoutException to) { - } return mockClientVoterManager; } @@ -259,7 +256,6 @@ public void testWhenStaticPassivePortsRemoved() throws TimeoutException, Interru when(mockClientVoterManager.getTopology()).thenReturn(expectedTopology); when(mockClientVoterManager.heartbeat(VOTER_ID)).thenReturn(0L); } catch (TimeoutException to) { - } return mockClientVoterManager; }