From d3c8f1997ba12f5e1a4f84417ae6c03d0c8d01a4 Mon Sep 17 00:00:00 2001 From: dseurotech Date: Tue, 4 Feb 2025 10:43:34 +0100 Subject: [PATCH] :boom: first attempt to break entity factories, centered around Tags as a peripheral use case Signed-off-by: dseurotech --- ...puaConfigurableResourceLimitedService.java | 2 +- .../configuration/ServiceConfigCreator.java | 4 +- .../model/AbstractKapuaUpdatableEntity.java | 12 +- .../model/mappers/KapuaBaseMapper.java | 1 + .../store/api/EventStoreRecordCreator.java | 4 +- .../KapuaNamedEntityServiceUtils.java | 6 +- .../model/AbstractKapuaEntityCreatorTest.java | 4 +- .../AbstractKapuaUpdatableEntityTest.java | 14 +-- .../model/KapuaNamedEntityCreatorTest.java | 2 +- .../KapuaUpdatableEntityCreatorTest.java | 7 +- .../queue/QueuedJobExecutionCreator.java | 4 +- .../app/api/resources/v1/resources/Tags.java | 5 +- .../kapua/service/account/AccountCreator.java | 2 +- .../account/internal/AccountMapper.java | 4 + .../account/steps/AccountServiceSteps.java | 33 ----- .../resources/features/AccountService.feature | 15 --- .../kapua/model/AbstractKapuaEntity.java | 114 ++++++++++++++++++ .../kapua/model/AbstractKapuaNamedEntity.java | 81 +++++++++++++ .../model/AbstractKapuaUpdatableEntity.java | 87 +++++++++++++ .../kapua/model/KapuaEntityCreator.java | 4 +- .../kapua/model/KapuaNamedEntityCreator.java | 2 +- .../kapua/model/KapuaUpdatableEntity.java | 36 +++--- .../model/KapuaUpdatableEntityCreator.java | 6 +- .../kapua/model/query/KapuaListResult.java | 6 +- .../kapua/service/KapuaEntityService.java | 33 +++-- .../JobDeviceManagementOperationCreator.java | 4 +- .../DeviceManagementOperationCreator.java | 4 +- ...anagementOperationNotificationCreator.java | 4 +- .../device/registry/DeviceCreator.java | 4 +- .../connection/DeviceConnectionCreator.java | 4 +- .../option/DeviceConnectionOptionCreator.java | 4 +- .../registry/event/DeviceEventCreator.java | 4 +- .../registry/steps/DeviceRegistrySteps.java | 10 -- .../DeviceRegistryLocatorConfiguration.java | 6 +- .../service/endpoint/EndpointInfoCreator.java | 4 +- .../eclipse/kapua/service/job/JobCreator.java | 2 +- .../job/execution/JobExecutionCreator.java | 4 +- .../service/job/step/JobStepCreator.java | 2 +- .../definition/JobStepDefinitionCreator.java | 2 +- .../definition/JobStepDefinitionRecord.java | 24 ++-- .../service/job/targets/JobTargetCreator.java | 4 +- .../internal/JobExecutionServiceImpl.java | 1 - .../scheduler/trigger/TriggerCreator.java | 2 +- .../definition/TriggerDefinitionCreator.java | 2 +- .../definition/TriggerDefinitionRecord.java | 18 +-- .../trigger/fired/FiredTriggerCreator.java | 4 +- .../credential/CredentialCreator.java | 4 +- .../credential/mfa/MfaOptionCreator.java | 4 +- .../token/AccessTokenCreator.java | 4 +- .../access/AccessInfoCreator.java | 2 +- .../access/AccessPermissionCreator.java | 2 +- .../access/AccessRoleCreator.java | 2 +- .../authorization/domain/DomainCreator.java | 2 +- .../authorization/group/GroupCreator.java | 2 +- .../authorization/role/RoleCreator.java | 2 +- .../role/RolePermissionCreator.java | 2 +- .../certificate/CertificateCreator.java | 2 +- .../info/CertificateInfoCreator.java | 2 +- .../org/eclipse/kapua/service/tag/Tag.java | 42 +++++-- .../eclipse/kapua/service/tag/TagCreator.java | 2 +- .../kapua/service/tag/TagListResult.java | 6 + .../kapua/service/tag/TagXmlRegistry.java | 33 ----- service/tag/internal/pom.xml | 30 +++++ .../service/tag/internal/TagFactoryImpl.java | 43 ------- .../kapua/service/tag/internal/TagImpl.java | 30 ++--- .../tag/internal/TagImplJpaRepository.java | 7 +- .../tag/internal/TagImplListResult.java} | 17 ++- .../kapua/service/tag/internal/TagMapper.java | 39 ++++++ .../kapua/service/tag/internal/TagModule.java | 10 +- .../service/tag/internal}/TagRepository.java | 5 +- .../service/tag/internal/TagServiceImpl.java | 32 +++-- .../tag/internal/TagServiceImplTest.java | 12 +- .../service/tag/steps/TagServiceSteps.java | 3 - .../tag/test/TagLocatorConfiguration.java | 12 +- .../kapua/service/user/UserCreator.java | 2 +- 75 files changed, 602 insertions(+), 354 deletions(-) create mode 100644 service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaEntity.java create mode 100644 service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaNamedEntity.java create mode 100644 service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaUpdatableEntity.java delete mode 100644 service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagXmlRegistry.java delete mode 100644 service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagFactoryImpl.java rename service/tag/{api/src/main/java/org/eclipse/kapua/service/tag/TagFactory.java => internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplListResult.java} (55%) create mode 100644 service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagMapper.java rename service/tag/{api/src/main/java/org/eclipse/kapua/service/tag => internal/src/main/java/org/eclipse/kapua/service/tag/internal}/TagRepository.java (84%) diff --git a/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java b/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java index f8797643bcd..cf195a5fe42 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/configuration/AbstractKapuaConfigurableResourceLimitedService.java @@ -61,7 +61,7 @@ @Deprecated public abstract class AbstractKapuaConfigurableResourceLimitedService< E extends KapuaEntity, - C extends KapuaEntityCreator, + C extends KapuaEntityCreator, S extends KapuaEntityService, F extends KapuaEntityFactory > diff --git a/commons/src/main/java/org/eclipse/kapua/commons/configuration/ServiceConfigCreator.java b/commons/src/main/java/org/eclipse/kapua/commons/configuration/ServiceConfigCreator.java index 79e79290bfc..1a04293c22f 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/configuration/ServiceConfigCreator.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/configuration/ServiceConfigCreator.java @@ -25,7 +25,7 @@ * * @since 1.0 */ -public class ServiceConfigCreator extends KapuaUpdatableEntityCreator { +public class ServiceConfigCreator extends KapuaUpdatableEntityCreator { private static final long serialVersionUID = 7508550960304732465L; @@ -42,7 +42,7 @@ public ServiceConfigCreator(KapuaId scopeId) { super(scopeId); } - public ServiceConfigCreator(KapuaEntityCreator entityCreator) { + public ServiceConfigCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/commons/src/main/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntity.java b/commons/src/main/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntity.java index 1a139241ba2..82c8301753a 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntity.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntity.java @@ -106,8 +106,8 @@ protected AbstractKapuaUpdatableEntity(KapuaUpdatableEntity entity) { setModifiedOn(entity.getModifiedOn()); setModifiedBy(entity.getModifiedBy()); setOptlock(entity.getOptlock()); - setEntityAttributes(entity.getEntityAttributes()); - setEntityProperties(entity.getEntityProperties()); + // setEntityAttributes(entity.getEntityAttributes()); + // setEntityProperties(entity.getEntityProperties()); } @Override @@ -156,7 +156,7 @@ public void setOptlock(int optlock) { // Attributes APIs // ------------------------------------------------- - @Override + // @Override public Properties getEntityAttributes() { try { return PropertiesUtils.readPropertiesFromString(attributes); @@ -165,7 +165,7 @@ public Properties getEntityAttributes() { } } - @Override + // @Override public void setEntityAttributes(Properties entityAttributes) { try { this.attributes = PropertiesUtils.writePropertiesToString(entityAttributes); @@ -178,7 +178,7 @@ public void setEntityAttributes(Properties entityAttributes) { // Properties APIs // ------------------------------------------------- - @Override + // @Override public Properties getEntityProperties() { try { return PropertiesUtils.readPropertiesFromString(properties); @@ -187,7 +187,7 @@ public Properties getEntityProperties() { } } - @Override + // @Override public void setEntityProperties(Properties properties) { try { this.properties = PropertiesUtils.writePropertiesToString(properties); diff --git a/commons/src/main/java/org/eclipse/kapua/commons/model/mappers/KapuaBaseMapper.java b/commons/src/main/java/org/eclipse/kapua/commons/model/mappers/KapuaBaseMapper.java index f66f1103711..f687afd3f4d 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/model/mappers/KapuaBaseMapper.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/model/mappers/KapuaBaseMapper.java @@ -41,6 +41,7 @@ public interface KapuaBaseMapper { @Mapping(target = "modifiedOn", ignore = true) @Mapping(target = "modifiedBy", ignore = true) @Mapping(target = "optlock", ignore = true) + @Mapping(target = "entityProperties", ignore = true) @IgnoreKapuaEntityReadonlyFields public @interface IgnoreKapuaUpdatableEntityReadonlyFields { diff --git a/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/api/EventStoreRecordCreator.java b/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/api/EventStoreRecordCreator.java index 04283a24080..b78b5766229 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/api/EventStoreRecordCreator.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/service/event/store/api/EventStoreRecordCreator.java @@ -15,7 +15,7 @@ import org.eclipse.kapua.model.KapuaEntityCreator; import org.eclipse.kapua.model.id.KapuaId; -public class EventStoreRecordCreator extends KapuaEntityCreator { +public class EventStoreRecordCreator extends KapuaEntityCreator { private static final long serialVersionUID = 1048699703033893534L; @@ -26,7 +26,7 @@ public EventStoreRecordCreator(KapuaId scopeId) { super(scopeId); } - public EventStoreRecordCreator(KapuaEntityCreator entityCreator) { + public EventStoreRecordCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } } diff --git a/commons/src/main/java/org/eclipse/kapua/commons/service/internal/KapuaNamedEntityServiceUtils.java b/commons/src/main/java/org/eclipse/kapua/commons/service/internal/KapuaNamedEntityServiceUtils.java index fc24cd38683..c0816fad61a 100644 --- a/commons/src/main/java/org/eclipse/kapua/commons/service/internal/KapuaNamedEntityServiceUtils.java +++ b/commons/src/main/java/org/eclipse/kapua/commons/service/internal/KapuaNamedEntityServiceUtils.java @@ -71,7 +71,7 @@ private KapuaNamedEntityServiceUtils() { * @deprecated since 2.0.0 - use {@link org.eclipse.kapua.storage.KapuaNamedEntityRepository} instead */ @Deprecated - public static > void checkEntityNameUniqueness(@NotNull KapuaEntityService kapuaNamedEntityService, @NotNull C creator) + public static void checkEntityNameUniqueness(@NotNull KapuaEntityService kapuaNamedEntityService, @NotNull C creator) throws KapuaException { checkEntityNameUniqueness(kapuaNamedEntityService, creator, Collections.emptyList()); } @@ -98,7 +98,7 @@ public static > * @deprecated since 2.0.0 - use {@link org.eclipse.kapua.storage.KapuaNamedEntityRepository} instead */ @Deprecated - public static > void checkEntityNameUniqueness(@NotNull KapuaEntityService kapuaNamedEntityService, @NotNull C creator, + public static void checkEntityNameUniqueness(@NotNull KapuaEntityService kapuaNamedEntityService, @NotNull C creator, @NotNull List additionalPredicates) throws KapuaException { KapuaQuery query = new KapuaQuery(); query.setScopeId(creator.getScopeId()); @@ -196,7 +196,7 @@ public static void checkEntityNameUniqueness(@NotNu * @deprecated since 2.0.0 - use {@link org.eclipse.kapua.storage.KapuaNamedEntityRepository} instead */ @Deprecated - public static > void checkEntityNameUniquenessInAllScopes(@NotNull KapuaEntityService kapuaNamedEntityService, + public static void checkEntityNameUniquenessInAllScopes(@NotNull KapuaEntityService kapuaNamedEntityService, @NotNull C creator) throws KapuaException { KapuaQuery query = new KapuaQuery(); query.setPredicate(query.attributePredicate(KapuaNamedEntityAttributes.NAME, creator.getName())); diff --git a/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaEntityCreatorTest.java b/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaEntityCreatorTest.java index 8303f1dd510..347549aabc4 100644 --- a/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaEntityCreatorTest.java +++ b/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaEntityCreatorTest.java @@ -46,13 +46,13 @@ public AbstractKapuaEntityCreatorTest(BigInteger eid) { this.eid = eid; } - private class ActualKapuaEntityCreator extends KapuaEntityCreator { + private class ActualKapuaEntityCreator extends KapuaEntityCreator { public ActualKapuaEntityCreator(KapuaId scopeId) { super(scopeId); } - public ActualKapuaEntityCreator(KapuaEntityCreator abstractEntityCreator) { + public ActualKapuaEntityCreator(KapuaEntityCreator abstractEntityCreator) { super(abstractEntityCreator); } } diff --git a/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntityTest.java b/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntityTest.java index f46aca5c8cc..c093343e97d 100644 --- a/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntityTest.java +++ b/commons/src/test/java/org/eclipse/kapua/commons/model/AbstractKapuaUpdatableEntityTest.java @@ -12,6 +12,10 @@ *******************************************************************************/ package org.eclipse.kapua.commons.model; +import java.math.BigInteger; +import java.util.Date; +import java.util.Random; + import org.eclipse.kapua.commons.model.id.KapuaEid; import org.eclipse.kapua.commons.security.KapuaSecurityUtils; import org.eclipse.kapua.commons.security.KapuaSession; @@ -24,12 +28,6 @@ import org.junit.experimental.categories.Category; import org.mockito.Mockito; -import java.math.BigInteger; -import java.util.Date; -import java.util.Properties; -import java.util.Random; - - @Category(JUnitTests.class) public class AbstractKapuaUpdatableEntityTest { @@ -65,8 +63,8 @@ public void abstractKapuaUpdatableEntityScopeIdTest() { @Test public void abstractKapuaUpdatableEntityEntityIdTest() { KapuaUpdatableEntity entity = new ActualKapuaUpdatableEntity(); - entity.setEntityAttributes(new Properties()); - entity.setEntityProperties(new Properties()); + // entity.setEntityAttributes(new Properties()); + // entity.setEntityProperties(new Properties()); entity.setOptlock(10); AbstractKapuaUpdatableEntity updatableEntity = new ActualKapuaUpdatableEntity(entity); updatableEntity.setModifiedOn(new Date()); diff --git a/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaNamedEntityCreatorTest.java b/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaNamedEntityCreatorTest.java index 2c173bcf4fd..da40a00fa88 100644 --- a/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaNamedEntityCreatorTest.java +++ b/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaNamedEntityCreatorTest.java @@ -56,7 +56,7 @@ public static Collection strings() { }); } - private class ActualKapuaNamedEntityCreator extends KapuaNamedEntityCreator { + private class ActualKapuaNamedEntityCreator extends KapuaNamedEntityCreator { protected ActualKapuaNamedEntityCreator(KapuaId scopeId, String name) { super(scopeId, name); diff --git a/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaUpdatableEntityCreatorTest.java b/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaUpdatableEntityCreatorTest.java index 43e0baa8f6f..787230be2ca 100644 --- a/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaUpdatableEntityCreatorTest.java +++ b/commons/src/test/java/org/eclipse/kapua/commons/model/KapuaUpdatableEntityCreatorTest.java @@ -15,7 +15,6 @@ import java.util.Properties; import org.eclipse.kapua.commons.model.id.KapuaEid; -import org.eclipse.kapua.model.KapuaEntity; import org.eclipse.kapua.model.KapuaUpdatableEntityCreator; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.qa.markers.junit.JUnitTests; @@ -26,7 +25,7 @@ @Category(JUnitTests.class) public class KapuaUpdatableEntityCreatorTest { - private class ActualKapuaUpdatableEntityCreator extends KapuaUpdatableEntityCreator { + private class ActualKapuaUpdatableEntityCreator extends KapuaUpdatableEntityCreator { public ActualKapuaUpdatableEntityCreator(KapuaId scopeId) { super(scopeId); @@ -36,14 +35,14 @@ public ActualKapuaUpdatableEntityCreator(KapuaId scopeId) { @Test public void abstractKapuaUpdatableEntityCreatorScopeId() { KapuaId scopeId = new KapuaEid(); - KapuaUpdatableEntityCreator kapuaUpdatableEntityCreator = new ActualKapuaUpdatableEntityCreator<>(scopeId); + KapuaUpdatableEntityCreator kapuaUpdatableEntityCreator = new ActualKapuaUpdatableEntityCreator(scopeId); Assert.assertEquals("Actual and expected values are not the same!", scopeId, kapuaUpdatableEntityCreator.getScopeId()); } @Test public void getEntityAttributesTest() { KapuaId scopeId = new KapuaEid(); - KapuaUpdatableEntityCreator kapuaUpdatableEntityCreator = new ActualKapuaUpdatableEntityCreator<>(scopeId); + KapuaUpdatableEntityCreator kapuaUpdatableEntityCreator = new ActualKapuaUpdatableEntityCreator(scopeId); Properties properties = new Properties(); kapuaUpdatableEntityCreator.setEntityAttributes(properties); Assert.assertEquals("Actual and expected values are not the same!", properties, kapuaUpdatableEntityCreator.getEntityAttributes()); diff --git a/job-engine/api/src/main/java/org/eclipse/kapua/job/engine/queue/QueuedJobExecutionCreator.java b/job-engine/api/src/main/java/org/eclipse/kapua/job/engine/queue/QueuedJobExecutionCreator.java index 88f8ece9792..19aa9e2472c 100644 --- a/job-engine/api/src/main/java/org/eclipse/kapua/job/engine/queue/QueuedJobExecutionCreator.java +++ b/job-engine/api/src/main/java/org/eclipse/kapua/job/engine/queue/QueuedJobExecutionCreator.java @@ -29,7 +29,7 @@ @XmlRootElement(name = "queuedJobExecutionCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class QueuedJobExecutionCreator extends KapuaUpdatableEntityCreator { +public class QueuedJobExecutionCreator extends KapuaUpdatableEntityCreator { private static final long serialVersionUID = 3119071638220738358L; @@ -45,7 +45,7 @@ public QueuedJobExecutionCreator(KapuaId scopeId) { super(scopeId); } - public QueuedJobExecutionCreator(KapuaEntityCreator entityCreator) { + public QueuedJobExecutionCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/Tags.java b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/Tags.java index 2e288e42b01..bab1eb458f4 100644 --- a/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/Tags.java +++ b/rest-api/resources/src/main/java/org/eclipse/kapua/app/api/resources/v1/resources/Tags.java @@ -37,7 +37,6 @@ import org.eclipse.kapua.service.KapuaService; import org.eclipse.kapua.service.tag.Tag; import org.eclipse.kapua.service.tag.TagCreator; -import org.eclipse.kapua.service.tag.TagFactory; import org.eclipse.kapua.service.tag.TagListResult; import org.eclipse.kapua.service.tag.TagQuery; import org.eclipse.kapua.service.tag.TagService; @@ -49,8 +48,6 @@ public class Tags extends AbstractKapuaResource { @Inject public TagService tagService; - @Inject - public TagFactory tagFactory; /** * Gets the {@link Tag} list in the scope. @@ -196,7 +193,7 @@ public Tag find( @PathParam("tagId") EntityId tagId) throws KapuaException { Tag tag = tagService.find(scopeId, tagId); - return returnNotNullEntity(tag, Tag.TYPE, tagId); + return returnNotNullEntity(tag, "tag", tagId); } /** diff --git a/service/account/api/src/main/java/org/eclipse/kapua/service/account/AccountCreator.java b/service/account/api/src/main/java/org/eclipse/kapua/service/account/AccountCreator.java index 774837ce057..d044db23644 100644 --- a/service/account/api/src/main/java/org/eclipse/kapua/service/account/AccountCreator.java +++ b/service/account/api/src/main/java/org/eclipse/kapua/service/account/AccountCreator.java @@ -48,7 +48,7 @@ "organizationCountry", "expirationDate" }) -public class AccountCreator extends KapuaNamedEntityCreator { +public class AccountCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = -2460883485294616032L; diff --git a/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountMapper.java b/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountMapper.java index 570b37fc29f..640db26346d 100644 --- a/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountMapper.java +++ b/service/account/internal/src/main/java/org/eclipse/kapua/service/account/internal/AccountMapper.java @@ -50,7 +50,11 @@ default Organization createOrganisation() { void merge(@MappingTarget Organization account, Organization request); //For backward compatibility only + @Mapping(target = "entityAttributes", ignore = true) + @Mapping(target = "entityProperties", ignore = true) AccountUpdateRequest mapChildUpdate(Account account); + @Mapping(target = "entityAttributes", ignore = true) + @Mapping(target = "entityProperties", ignore = true) CurrentAccountUpdateRequest mapCurrentUpdate(Account account); } diff --git a/service/account/test-steps/src/main/java/org/eclipse/kapua/service/account/steps/AccountServiceSteps.java b/service/account/test-steps/src/main/java/org/eclipse/kapua/service/account/steps/AccountServiceSteps.java index c22da48583d..332f102504b 100755 --- a/service/account/test-steps/src/main/java/org/eclipse/kapua/service/account/steps/AccountServiceSteps.java +++ b/service/account/test-steps/src/main/java/org/eclipse/kapua/service/account/steps/AccountServiceSteps.java @@ -21,7 +21,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Properties; import javax.inject.Inject; @@ -52,7 +51,6 @@ import com.google.inject.Singleton; -import io.cucumber.datatable.DataTable; import io.cucumber.java.After; import io.cucumber.java.Before; import io.cucumber.java.Scenario; @@ -458,26 +456,6 @@ public void findRandomAccountId() throws Exception { } } - @When("I set the following parameters") - public void setAccountParameters(DataTable dataTable) throws Exception { - Assert.assertEquals("Wrong test setup. Bad parameters size!", 2, dataTable.width()); - Account account = (Account) stepData.get(LAST_ACCOUNT); - Properties accProps = account.getEntityProperties(); - - for (List row : dataTable.asLists()) { - accProps.setProperty(row.get(0), row.get(1)); - } - account.setEntityProperties(accProps); - - try { - primeException(); - account = accountService.update(account); - stepData.put(LAST_ACCOUNT, account); - } catch (KapuaException ex) { - verifyException(ex); - } - } - @When("I configure {string} item {string} to {string}") public void setConfigurationValue(String type, String name, String value) throws Exception { Map valueMap = new HashMap<>(); @@ -624,17 +602,6 @@ public void findSystemAccount() throws KapuaException { Assert.assertNotNull(tmpAcc); } - @Then("The account has the following parameters") - public void checkAccountParameters(DataTable dataTable) throws KapuaException { - Assert.assertEquals("Wrong test setup. Bad parameters size!", 2, dataTable.width()); - Account account = (Account) stepData.get(LAST_ACCOUNT); - Properties accProps = account.getEntityProperties(); - - for (List row : dataTable.asLists()) { - Assert.assertEquals(row.get(1), accProps.getProperty(row.get(0))); - } - } - @Then("The account has metadata") public void checkMetadataExistence() throws KapuaException { KapuaId accountId = (KapuaId) stepData.get(LAST_ACCOUNT_ID); diff --git a/service/account/test/src/test/resources/features/AccountService.feature b/service/account/test/src/test/resources/features/AccountService.feature index e16faf11154..a7dc2131154 100644 --- a/service/account/test/src/test/resources/features/AccountService.feature +++ b/service/account/test/src/test/resources/features/AccountService.feature @@ -125,21 +125,6 @@ Feature: User Account Service When I delete a random account Then An exception was thrown - Scenario: Check account properties - It must be possible to set arbitrary account properties. - - Given I create a generic account with name "test_acc_11" - When I set the following parameters - | name | value | - | key1 | value1 | - | key2 | value2 | - | key3 | value3 | - Then The account has the following parameters - | name | value | - | key1 | value1 | - | key2 | value2 | - | key3 | value3 | - Scenario: Every account must have the default configuration items Create a new account and check whether it has the default configuration items set. diff --git a/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaEntity.java b/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaEntity.java new file mode 100644 index 00000000000..7b63bc2c1e4 --- /dev/null +++ b/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaEntity.java @@ -0,0 +1,114 @@ +/******************************************************************************* + * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Eurotech - initial API and implementation + *******************************************************************************/ +package org.eclipse.kapua.model; + +import java.util.Date; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + +import org.eclipse.kapua.KapuaSerializable; +import org.eclipse.kapua.model.id.KapuaId; +import org.eclipse.kapua.model.id.KapuaIdAdapter; +import org.eclipse.kapua.model.xml.DateXmlAdapter; + +/** + * {@link AbstractKapuaEntity} definition. + *

+ * All the {@link AbstractKapuaEntity}s will be an extension of this entity. + * + * @since 1.0.0 + */ +@XmlType(propOrder = { + "id", + "scopeId", + "createdOn", + "createdBy" }) +public abstract class AbstractKapuaEntity implements KapuaEntity, KapuaSerializable { + + private KapuaId id; + private KapuaId scopeId; + private Date createdOn; + private KapuaId createdBy; + + /** + * Gets the unique {@link KapuaId} + * + * @return the unique {@link KapuaId} + * @since 1.0.0 + */ + @XmlElement(name = "id") + @XmlJavaTypeAdapter(KapuaIdAdapter.class) + public KapuaId getId() { + return id; + } + + /** + * Sets the unique {@link KapuaId} + * + * @param id + * the unique {@link KapuaId} + * @since 1.0.0 + */ + public void setId(KapuaId id) { + this.id = id; + } + + /** + * Gets the scope {@link KapuaId} + * + * @return the scope {@link KapuaId} + * @since 1.0.0 + */ + @XmlElement(name = "scopeId") + @XmlJavaTypeAdapter(KapuaIdAdapter.class) + public KapuaId getScopeId() { + return this.scopeId; + } + + /** + * Sets the scope {@link KapuaId} + * + * @param scopeId + * the scope {@link KapuaId} + * @since 1.0.0 + */ + public void setScopeId(KapuaId scopeId) { + this.scopeId = scopeId; + } + + /** + * Gets the creation date. + * + * @return the creation date. + * @since 1.0.0 + */ + @XmlElement(name = "createdOn") + @XmlJavaTypeAdapter(DateXmlAdapter.class) + public Date getCreatedOn() { + return this.createdOn; + } + + /** + * Gets the identity {@link KapuaId} who has created this {@link AbstractKapuaEntity} + * + * @return the identity {@link KapuaId} who has created this {@link AbstractKapuaEntity} + * @since 1.0.0 + */ + @XmlElement(name = "createdBy") + @XmlJavaTypeAdapter(KapuaIdAdapter.class) + public KapuaId getCreatedBy() { + return this.createdBy; + } +} diff --git a/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaNamedEntity.java b/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaNamedEntity.java new file mode 100644 index 00000000000..d370f3f9d1d --- /dev/null +++ b/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaNamedEntity.java @@ -0,0 +1,81 @@ +/******************************************************************************* + * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Eurotech - initial API and implementation + *******************************************************************************/ +package org.eclipse.kapua.model; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + +/** + * {@link AbstractKapuaNamedEntity} definition. + *

+ * The {@link AbstractKapuaNamedEntity} adds on top of the {@link KapuaUpdatableEntity} the following properties: + * + *

    + *
  • name
  • + *
  • description
  • + *
+ * + *
+ * + *

+ * Name + *

+ *

+ * The Name property is the unique name of the {@link KapuaEntity} in the scope. + *

+ * + *

+ * Description + *

+ *

+ * The Description property is the optional description of the {@link KapuaEntity}. + *

+ *
+ * + * @since 1.0.0 + */ +@XmlType(propOrder = { "name", "description" }) +public abstract class AbstractKapuaNamedEntity extends AbstractKapuaUpdatableEntity implements KapuaNamedEntity { + + private String name; + private String description; + + /** + * Gets the name of the {@link KapuaEntity} + * + * @return the name of the {@link KapuaEntity} + * @since 1.0.0 + */ + @XmlElement(name = "name") + public String getName() { + return this.name; + } + + /** + * Gets the description for the {@link KapuaEntity} + * + * @return the description of this {@link KapuaEntity} + * @since 1.1.0 + */ + public String getDescription() { + return this.description; + } + + public void setName(String name) { + this.name = name; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaUpdatableEntity.java b/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaUpdatableEntity.java new file mode 100644 index 00000000000..a082ef55893 --- /dev/null +++ b/service/api/src/main/java/org/eclipse/kapua/model/AbstractKapuaUpdatableEntity.java @@ -0,0 +1,87 @@ +/******************************************************************************* + * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Eurotech - initial API and implementation + *******************************************************************************/ +package org.eclipse.kapua.model; + +import java.util.Date; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + +import org.eclipse.kapua.model.id.KapuaId; +import org.eclipse.kapua.model.id.KapuaIdAdapter; +import org.eclipse.kapua.model.xml.DateXmlAdapter; + +/** + * {@link AbstractKapuaUpdatableEntity} definition. + * + * @since 1.0.0 + */ +@XmlType(propOrder = { + "modifiedOn", + "modifiedBy", + "optlock" +}) +public abstract class AbstractKapuaUpdatableEntity extends AbstractKapuaEntity implements KapuaUpdatableEntity { + + private Date modifiedOn; + private KapuaId modifiedBy; + private int optLock; + + /** + * Gets the last date that this {@link KapuaEntity} has been updated. + * + * @return the last date that this {@link KapuaEntity} has been updated. + * @since 1.0.0 + */ + @XmlElement(name = "modifiedOn") + @XmlJavaTypeAdapter(DateXmlAdapter.class) + public Date getModifiedOn() { + return this.modifiedOn; + } + + /** + * Get the last identity {@link KapuaId} that has updated this {@link KapuaEntity} + * + * @return the last identity {@link KapuaId} that has updated this {@link KapuaEntity} + * @since 1.0.0 + */ + @XmlElement(name = "modifiedBy") + @XmlJavaTypeAdapter(KapuaIdAdapter.class) + public KapuaId getModifiedBy() { + return this.modifiedBy; + } + + /** + * Gets the optlock + * + * @return the optlock + * @since 1.0.0 + */ + @XmlElement(name = "optlock") + public int getOptlock() { + return this.optLock; + } + + public void setModifiedOn(Date modifiedOn) { + this.modifiedOn = modifiedOn; + } + + public void setModifiedBy(KapuaId modifiedBy) { + this.modifiedBy = modifiedBy; + } + + public void setOptlock(int optLock) { + this.optLock = optLock; + } +} diff --git a/service/api/src/main/java/org/eclipse/kapua/model/KapuaEntityCreator.java b/service/api/src/main/java/org/eclipse/kapua/model/KapuaEntityCreator.java index 7bd621bbdb9..26e6dd2adbe 100644 --- a/service/api/src/main/java/org/eclipse/kapua/model/KapuaEntityCreator.java +++ b/service/api/src/main/java/org/eclipse/kapua/model/KapuaEntityCreator.java @@ -27,7 +27,7 @@ * entity type * @since 1.0.0 */ -public abstract class KapuaEntityCreator { +public abstract class KapuaEntityCreator { protected KapuaId scopeId; @@ -38,7 +38,7 @@ public KapuaEntityCreator(KapuaId scopeId) { this.scopeId = scopeId; } - protected KapuaEntityCreator(KapuaEntityCreator entityCreator) { + protected KapuaEntityCreator(KapuaEntityCreator entityCreator) { this(entityCreator.getScopeId()); } diff --git a/service/api/src/main/java/org/eclipse/kapua/model/KapuaNamedEntityCreator.java b/service/api/src/main/java/org/eclipse/kapua/model/KapuaNamedEntityCreator.java index fc4bffa302f..6af492231a3 100644 --- a/service/api/src/main/java/org/eclipse/kapua/model/KapuaNamedEntityCreator.java +++ b/service/api/src/main/java/org/eclipse/kapua/model/KapuaNamedEntityCreator.java @@ -48,7 +48,7 @@ * @since 1.0.0 */ @XmlType(propOrder = { "name", "description" }) -public abstract class KapuaNamedEntityCreator extends KapuaUpdatableEntityCreator { +public abstract class KapuaNamedEntityCreator extends KapuaUpdatableEntityCreator { protected String name; protected String description; diff --git a/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntity.java b/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntity.java index 71007d9903b..e69e29cb365 100644 --- a/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntity.java +++ b/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntity.java @@ -12,18 +12,19 @@ *******************************************************************************/ package org.eclipse.kapua.model; -import org.eclipse.kapua.entity.EntityPropertiesReadException; -import org.eclipse.kapua.entity.EntityPropertiesWriteException; -import org.eclipse.kapua.model.id.KapuaId; -import org.eclipse.kapua.model.id.KapuaIdAdapter; -import org.eclipse.kapua.model.xml.DateXmlAdapter; +import java.util.Date; +import java.util.Properties; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; -import java.util.Date; -import java.util.Properties; + +import org.eclipse.kapua.entity.EntityPropertiesReadException; +import org.eclipse.kapua.entity.EntityPropertiesWriteException; +import org.eclipse.kapua.model.id.KapuaId; +import org.eclipse.kapua.model.id.KapuaIdAdapter; +import org.eclipse.kapua.model.xml.DateXmlAdapter; /** * {@link KapuaUpdatableEntity} definition. @@ -69,7 +70,8 @@ public interface KapuaUpdatableEntity extends KapuaEntity { /** * Sets the optlock * - * @param optlock the optlock + * @param optlock + * the optlock * @since 1.0.0 */ void setOptlock(int optlock); @@ -78,7 +80,8 @@ public interface KapuaUpdatableEntity extends KapuaEntity { * Gets the attributes * * @return the attributes - * @throws EntityPropertiesReadException If there are error while reading {@link Properties} + * @throws EntityPropertiesReadException + * If there are error while reading {@link Properties} */ @XmlTransient Properties getEntityAttributes() throws EntityPropertiesReadException; @@ -86,8 +89,10 @@ public interface KapuaUpdatableEntity extends KapuaEntity { /** * Sets the attributes * - * @param props the attributes - * @throws EntityPropertiesWriteException If there are error while writing {@link Properties} + * @param props + * the attributes + * @throws EntityPropertiesWriteException + * If there are error while writing {@link Properties} * @since 1.0.0 */ void setEntityAttributes(Properties props) throws EntityPropertiesWriteException; @@ -96,7 +101,8 @@ public interface KapuaUpdatableEntity extends KapuaEntity { * Gets the property entities * * @return the property entities - * @throws EntityPropertiesReadException If there are error while reading {@link Properties} + * @throws EntityPropertiesReadException + * If there are error while reading {@link Properties} * @since 1.0.0 */ @XmlTransient @@ -105,8 +111,10 @@ public interface KapuaUpdatableEntity extends KapuaEntity { /** * Sets the property entities * - * @param props the property entities - * @throws EntityPropertiesWriteException If there are error while writing {@link Properties} + * @param props + * the property entities + * @throws EntityPropertiesWriteException + * If there are error while writing {@link Properties} * @since 1.0.0 */ void setEntityProperties(Properties props) throws EntityPropertiesWriteException; diff --git a/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntityCreator.java b/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntityCreator.java index 70808d0483f..a73a3b0e08f 100644 --- a/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntityCreator.java +++ b/service/api/src/main/java/org/eclipse/kapua/model/KapuaUpdatableEntityCreator.java @@ -25,11 +25,9 @@ /** * {@link KapuaUpdatableEntityCreator} definition. * - * @param - * entity type * @since 1.0.0 */ -public abstract class KapuaUpdatableEntityCreator extends KapuaEntityCreator { +public abstract class KapuaUpdatableEntityCreator extends KapuaEntityCreator { protected String attributes; @@ -40,7 +38,7 @@ public KapuaUpdatableEntityCreator(KapuaId scopeId) { super(scopeId); } - protected KapuaUpdatableEntityCreator(KapuaEntityCreator entityCreator) { + protected KapuaUpdatableEntityCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/api/src/main/java/org/eclipse/kapua/model/query/KapuaListResult.java b/service/api/src/main/java/org/eclipse/kapua/model/query/KapuaListResult.java index 1e105ce5c78..d7ae78aa007 100644 --- a/service/api/src/main/java/org/eclipse/kapua/model/query/KapuaListResult.java +++ b/service/api/src/main/java/org/eclipse/kapua/model/query/KapuaListResult.java @@ -45,9 +45,9 @@ public class KapuaListResult implements KapuaSerializable { private static final long serialVersionUID = 8939666089540269261L; - private ArrayList items; - private boolean limitExceeded; - private Long totalCount; + protected ArrayList items; + protected boolean limitExceeded; + protected Long totalCount; /** * Constructor. diff --git a/service/api/src/main/java/org/eclipse/kapua/service/KapuaEntityService.java b/service/api/src/main/java/org/eclipse/kapua/service/KapuaEntityService.java index 48cb9eb52aa..a0128a3ec4f 100644 --- a/service/api/src/main/java/org/eclipse/kapua/service/KapuaEntityService.java +++ b/service/api/src/main/java/org/eclipse/kapua/service/KapuaEntityService.java @@ -12,6 +12,8 @@ *******************************************************************************/ package org.eclipse.kapua.service; +import javax.validation.constraints.NotNull; + import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.model.KapuaEntity; import org.eclipse.kapua.model.KapuaEntityCreator; @@ -19,21 +21,22 @@ import org.eclipse.kapua.model.query.KapuaListResult; import org.eclipse.kapua.model.query.KapuaQuery; -import javax.validation.constraints.NotNull; - /** * Base {@code interface} for all {@link KapuaService}s that are managing {@link KapuaEntity}es. * - * @param Type of the {@link KapuaEntity} being managed. - * @param Type of the {@link KapuaEntityCreator} being managed. + * @param + * Type of the {@link KapuaEntity} being managed. + * @param + * Type of the {@link KapuaEntityCreator} being managed. * @since 1.0.0 */ -public interface KapuaEntityService> extends KapuaService { +public interface KapuaEntityService extends KapuaService { /** * Creates a {@link KapuaEntity} using information provided in the given {@link KapuaEntityCreator}. * - * @param creator The {@link KapuaEntityCreator}. + * @param creator + * The {@link KapuaEntityCreator}. * @return The newly created {@link KapuaEntity}. * @throws KapuaException * @since 1.0.0 @@ -43,8 +46,10 @@ public interface KapuaEntityService { +public class JobDeviceManagementOperationCreator extends KapuaEntityCreator { private KapuaId jobId; private KapuaId deviceManagementOperationId; @@ -42,7 +42,7 @@ public JobDeviceManagementOperationCreator(KapuaId scopeId) { super(scopeId); } - public JobDeviceManagementOperationCreator(KapuaEntityCreator entityCreator) { + public JobDeviceManagementOperationCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/DeviceManagementOperationCreator.java b/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/DeviceManagementOperationCreator.java index 351daa9aa7a..bb431e1e181 100644 --- a/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/DeviceManagementOperationCreator.java +++ b/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/DeviceManagementOperationCreator.java @@ -34,7 +34,7 @@ @XmlRootElement(name = "deviceManagementOperationCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class DeviceManagementOperationCreator extends KapuaEntityCreator { +public class DeviceManagementOperationCreator extends KapuaEntityCreator { private Date startedOn; private KapuaId deviceId; @@ -52,7 +52,7 @@ public DeviceManagementOperationCreator(KapuaId scopeId) { super(scopeId); } - public DeviceManagementOperationCreator(KapuaEntityCreator entityCreator) { + public DeviceManagementOperationCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/ManagementOperationNotificationCreator.java b/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/ManagementOperationNotificationCreator.java index f9622d4689d..ffd005eea70 100644 --- a/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/ManagementOperationNotificationCreator.java +++ b/service/device/management/registry/api/src/main/java/org/eclipse/kapua/service/device/management/registry/operation/notification/ManagementOperationNotificationCreator.java @@ -37,7 +37,7 @@ @XmlRootElement(name = "deviceManagementOperationNotificationCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class ManagementOperationNotificationCreator extends KapuaEntityCreator { +public class ManagementOperationNotificationCreator extends KapuaEntityCreator { private KapuaId operationId; private Date sentOn; @@ -53,7 +53,7 @@ public ManagementOperationNotificationCreator(KapuaId scopeId) { super(scopeId); } - public ManagementOperationNotificationCreator(KapuaEntityCreator entityCreator) { + public ManagementOperationNotificationCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/DeviceCreator.java b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/DeviceCreator.java index 07b5302e15b..3e5b6e7fdb2 100644 --- a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/DeviceCreator.java +++ b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/DeviceCreator.java @@ -75,7 +75,7 @@ "tagIds", "tamperStatus" }) -public class DeviceCreator extends KapuaUpdatableEntityCreator { +public class DeviceCreator extends KapuaUpdatableEntityCreator { private static final long serialVersionUID = 8497299443773395462L; private KapuaId groupId; @@ -116,7 +116,7 @@ public DeviceCreator(KapuaId scopeId) { super(scopeId); } - public DeviceCreator(KapuaEntityCreator entityCreator) { + public DeviceCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/DeviceConnectionCreator.java b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/DeviceConnectionCreator.java index 2826fb42f58..4dedfb495cb 100644 --- a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/DeviceConnectionCreator.java +++ b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/DeviceConnectionCreator.java @@ -24,7 +24,7 @@ * * @since 1.0 */ -public class DeviceConnectionCreator extends KapuaUpdatableEntityCreator { +public class DeviceConnectionCreator extends KapuaUpdatableEntityCreator { private static final long serialVersionUID = 2740394157765904615L; @@ -47,7 +47,7 @@ public DeviceConnectionCreator(KapuaId scopeId) { super(scopeId); } - public DeviceConnectionCreator(KapuaEntityCreator entityCreator) { + public DeviceConnectionCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/DeviceConnectionOptionCreator.java b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/DeviceConnectionOptionCreator.java index e280b921677..3843f476404 100644 --- a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/DeviceConnectionOptionCreator.java +++ b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/connection/option/DeviceConnectionOptionCreator.java @@ -22,7 +22,7 @@ * * @since 1.0 */ -public class DeviceConnectionOptionCreator extends KapuaUpdatableEntityCreator { +public class DeviceConnectionOptionCreator extends KapuaUpdatableEntityCreator { private static final long serialVersionUID = 2740394157765904615L; @@ -38,7 +38,7 @@ public DeviceConnectionOptionCreator(KapuaId scopeId) { super(scopeId); } - public DeviceConnectionOptionCreator(KapuaEntityCreator entityCreator) { + public DeviceConnectionOptionCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/event/DeviceEventCreator.java b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/event/DeviceEventCreator.java index 5d3941d4139..9e1a4e41c63 100644 --- a/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/event/DeviceEventCreator.java +++ b/service/device/registry/api/src/main/java/org/eclipse/kapua/service/device/registry/event/DeviceEventCreator.java @@ -27,7 +27,7 @@ * * @since 1.0 */ -public class DeviceEventCreator extends KapuaEntityCreator { +public class DeviceEventCreator extends KapuaEntityCreator { private static final long serialVersionUID = -3982569213440658172L; @XmlElement(name = "deviceId") @@ -61,7 +61,7 @@ public DeviceEventCreator(KapuaId scopeId) { super(scopeId); } - public DeviceEventCreator(KapuaEntityCreator entityCreator) { + public DeviceEventCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/DeviceRegistrySteps.java b/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/DeviceRegistrySteps.java index cbe60ba8b35..16c76d1e5ef 100644 --- a/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/DeviceRegistrySteps.java +++ b/service/device/registry/test-steps/src/main/java/org/eclipse/kapua/service/device/registry/steps/DeviceRegistrySteps.java @@ -63,7 +63,6 @@ import org.eclipse.kapua.service.authorization.domain.Domain; import org.eclipse.kapua.service.authorization.group.Group; import org.eclipse.kapua.service.authorization.group.GroupAttributes; -import org.eclipse.kapua.service.authorization.group.GroupFactory; import org.eclipse.kapua.service.authorization.group.GroupQuery; import org.eclipse.kapua.service.authorization.group.GroupService; import org.eclipse.kapua.service.device.management.message.KapuaMethod; @@ -80,7 +79,6 @@ import org.eclipse.kapua.service.device.registry.DeviceStatus; import org.eclipse.kapua.service.device.registry.connection.DeviceConnection; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionCreator; -import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionFactory; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionListResult; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionQuery; import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionService; @@ -96,7 +94,6 @@ import org.eclipse.kapua.service.tag.Tag; import org.eclipse.kapua.service.tag.TagAttributes; import org.eclipse.kapua.service.tag.TagCreator; -import org.eclipse.kapua.service.tag.TagFactory; import org.eclipse.kapua.service.tag.TagListResult; import org.eclipse.kapua.service.tag.TagQuery; import org.eclipse.kapua.service.tag.TagService; @@ -173,7 +170,6 @@ public class DeviceRegistrySteps extends TestBase { // Various device connection service related references private DeviceConnectionService deviceConnectionService; - private DeviceConnectionFactory deviceConnectionFactory; // Various device event service related references private DeviceEventService eventService; @@ -184,11 +180,9 @@ public class DeviceRegistrySteps extends TestBase { private AccountService accountService; private UserService userService; private TagService tagService; - private TagFactory tagFactory; private KapuaMessageFactory messageFactory; private KapuaLifecycleMessageFactory lifecycleMessageFactory; private GroupService groupService; - private GroupFactory groupFactory; private AclCreator aclCreator; @@ -220,7 +214,6 @@ public void setServices() { deviceFactory = locator.getFactory(DeviceFactory.class); deviceConnectionService = locator.getService(DeviceConnectionService.class); - deviceConnectionFactory = locator.getFactory(DeviceConnectionFactory.class); eventService = locator.getService(DeviceEventService.class); eventFactory = locator.getFactory(DeviceEventFactory.class); @@ -232,10 +225,7 @@ public void setServices() { accountService = locator.getService(AccountService.class); userService = locator.getService(UserService.class); tagService = locator.getService(TagService.class); - tagFactory = locator.getFactory(TagFactory.class); groupService = locator.getService(GroupService.class); - groupFactory = locator.getFactory(GroupFactory.class); - aclCreator = new AclCreator(); } diff --git a/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java b/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java index 8f419caf5de..c92e585b6fc 100644 --- a/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java +++ b/service/device/registry/test/src/test/java/org/eclipse/kapua/service/device/registry/test/DeviceRegistryLocatorConfiguration.java @@ -29,6 +29,7 @@ import org.eclipse.kapua.commons.metric.CommonsMetric; import org.eclipse.kapua.commons.metric.MetricsService; import org.eclipse.kapua.commons.metric.MetricsServiceImpl; +import org.eclipse.kapua.commons.model.mappers.KapuaBaseMapperImpl; import org.eclipse.kapua.commons.service.event.store.internal.EventStoreRecordImplJpaRepository; import org.eclipse.kapua.commons.service.internal.cache.CacheManagerProvider; import org.eclipse.kapua.commons.service.internal.cache.KapuaCacheManager; @@ -72,8 +73,8 @@ import org.eclipse.kapua.service.device.registry.internal.DeviceImplJpaRepository; import org.eclipse.kapua.service.device.registry.internal.DeviceRegistryCacheFactory; import org.eclipse.kapua.service.device.registry.internal.DeviceRegistryServiceImpl; -import org.eclipse.kapua.service.tag.internal.TagFactoryImpl; import org.eclipse.kapua.service.tag.internal.TagImplJpaRepository; +import org.eclipse.kapua.service.tag.internal.TagMapperImpl; import org.eclipse.kapua.service.tag.internal.TagServiceImpl; import org.eclipse.kapua.storage.TxManager; import org.mockito.Matchers; @@ -181,7 +182,8 @@ protected void configure() { Mockito.mock(ServiceConfigurationManager.class), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-tag"), new TagImplJpaRepository(jpaRepoConfig), - new TagFactoryImpl()) + new TagMapperImpl(new KapuaBaseMapperImpl()) + ) ); bind(DeviceValidation.class).toInstance(deviceValidation); diff --git a/service/endpoint/api/src/main/java/org/eclipse/kapua/service/endpoint/EndpointInfoCreator.java b/service/endpoint/api/src/main/java/org/eclipse/kapua/service/endpoint/EndpointInfoCreator.java index 499f05589c6..9c6849fd060 100644 --- a/service/endpoint/api/src/main/java/org/eclipse/kapua/service/endpoint/EndpointInfoCreator.java +++ b/service/endpoint/api/src/main/java/org/eclipse/kapua/service/endpoint/EndpointInfoCreator.java @@ -31,7 +31,7 @@ @XmlRootElement(name = "endpointInfoCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class EndpointInfoCreator extends KapuaEntityCreator { +public class EndpointInfoCreator extends KapuaEntityCreator { private String schema; private String dns; @@ -47,7 +47,7 @@ public EndpointInfoCreator(KapuaId scopeId) { super(scopeId); } - public EndpointInfoCreator(KapuaEntityCreator entityCreator) { + public EndpointInfoCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/job/api/src/main/java/org/eclipse/kapua/service/job/JobCreator.java b/service/job/api/src/main/java/org/eclipse/kapua/service/job/JobCreator.java index 364adf32845..7de4660fc46 100644 --- a/service/job/api/src/main/java/org/eclipse/kapua/service/job/JobCreator.java +++ b/service/job/api/src/main/java/org/eclipse/kapua/service/job/JobCreator.java @@ -34,7 +34,7 @@ @XmlRootElement(name = "jobCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class JobCreator extends KapuaNamedEntityCreator { +public class JobCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = 3119071638220738358L; diff --git a/service/job/api/src/main/java/org/eclipse/kapua/service/job/execution/JobExecutionCreator.java b/service/job/api/src/main/java/org/eclipse/kapua/service/job/execution/JobExecutionCreator.java index 1645d981686..ba271c2775c 100644 --- a/service/job/api/src/main/java/org/eclipse/kapua/service/job/execution/JobExecutionCreator.java +++ b/service/job/api/src/main/java/org/eclipse/kapua/service/job/execution/JobExecutionCreator.java @@ -35,7 +35,7 @@ @XmlRootElement(name = "jobExecutionCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class JobExecutionCreator extends KapuaUpdatableEntityCreator { +public class JobExecutionCreator extends KapuaUpdatableEntityCreator { private static final long serialVersionUID = 3119071638220738358L; @@ -50,7 +50,7 @@ public JobExecutionCreator(KapuaId scopeId) { super(scopeId); } - public JobExecutionCreator(KapuaEntityCreator entityCreator) { + public JobExecutionCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/JobStepCreator.java b/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/JobStepCreator.java index 7ad4903264f..7431f4fe8c3 100644 --- a/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/JobStepCreator.java +++ b/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/JobStepCreator.java @@ -36,7 +36,7 @@ @XmlRootElement(name = "jobStepCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class JobStepCreator extends KapuaNamedEntityCreator { +public class JobStepCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = 3119071638220738358L; diff --git a/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionCreator.java b/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionCreator.java index 8c4a3ec9db5..90e2513295a 100644 --- a/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionCreator.java +++ b/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionCreator.java @@ -31,7 +31,7 @@ @XmlRootElement(name = "jobStepDefinitionCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class JobStepDefinitionCreator extends KapuaNamedEntityCreator { +public class JobStepDefinitionCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = 4602067255120049746L; diff --git a/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionRecord.java b/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionRecord.java index 3f16dcf7ee6..8d38c0482cd 100644 --- a/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionRecord.java +++ b/service/job/api/src/main/java/org/eclipse/kapua/service/job/step/definition/JobStepDefinitionRecord.java @@ -12,14 +12,14 @@ *******************************************************************************/ package org.eclipse.kapua.service.job.step.definition; -import org.eclipse.kapua.entity.EntityPropertiesReadException; -import org.eclipse.kapua.entity.EntityPropertiesWriteException; -import org.eclipse.kapua.model.id.KapuaId; - import java.util.Date; import java.util.List; import java.util.Properties; +import org.eclipse.kapua.entity.EntityPropertiesReadException; +import org.eclipse.kapua.entity.EntityPropertiesWriteException; +import org.eclipse.kapua.model.id.KapuaId; + public abstract class JobStepDefinitionRecord implements JobStepDefinition { private static final long serialVersionUID = 8163044089055983759L; @@ -33,13 +33,13 @@ public abstract class JobStepDefinitionRecord implements JobStepDefinition { private List jobStepProperties; public JobStepDefinitionRecord(KapuaId scopeId, - String name, - String description, - JobStepType stepType, - String readerName, - String processorName, - String writerName, - List jobStepProperties) { + String name, + String description, + JobStepType stepType, + String readerName, + String processorName, + String writerName, + List jobStepProperties) { this.scopeId = scopeId; this.name = name; this.description = description; @@ -194,11 +194,9 @@ public void setWriterName(String writerName) { throw new UnsupportedOperationException(); } - @Override public void setStepProperties(List jobStepProperties) { throw new UnsupportedOperationException(); } - } diff --git a/service/job/api/src/main/java/org/eclipse/kapua/service/job/targets/JobTargetCreator.java b/service/job/api/src/main/java/org/eclipse/kapua/service/job/targets/JobTargetCreator.java index 3f19d2ca647..4e5a0aab684 100644 --- a/service/job/api/src/main/java/org/eclipse/kapua/service/job/targets/JobTargetCreator.java +++ b/service/job/api/src/main/java/org/eclipse/kapua/service/job/targets/JobTargetCreator.java @@ -31,7 +31,7 @@ @XmlRootElement(name = "jobTargetCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class JobTargetCreator extends KapuaUpdatableEntityCreator { +public class JobTargetCreator extends KapuaUpdatableEntityCreator { private static final long serialVersionUID = 3119071638220738358L; @@ -45,7 +45,7 @@ public JobTargetCreator(KapuaId scopeId) { super(scopeId); } - public JobTargetCreator(KapuaEntityCreator entityCreator) { + public JobTargetCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java index 88725a2a373..f8968090fbf 100644 --- a/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java +++ b/service/job/internal/src/main/java/org/eclipse/kapua/service/job/execution/internal/JobExecutionServiceImpl.java @@ -60,7 +60,6 @@ public JobExecution create(JobExecutionCreator jobExecutionCreator) throws Kapua JobExecution jobExecution = new JobExecutionImpl(jobExecutionCreator.getScopeId()); jobExecution.setJobId(jobExecutionCreator.getJobId()); jobExecution.setStartedOn(jobExecutionCreator.getStartedOn()); - jobExecution.setEntityAttributes(jobExecutionCreator.getEntityAttributes()); jobExecution.setTargetIds(jobExecutionCreator.getTargetIds()); // Do create return txManager.execute(tx -> jobExecutionRepository.create(tx, jobExecution)); diff --git a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/TriggerCreator.java b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/TriggerCreator.java index 4e81f6ae4e3..933a035d7cd 100644 --- a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/TriggerCreator.java +++ b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/TriggerCreator.java @@ -36,7 +36,7 @@ @XmlRootElement(name = "triggerCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class TriggerCreator extends KapuaNamedEntityCreator { +public class TriggerCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = -2460883485294616032L; diff --git a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionCreator.java b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionCreator.java index 488721ba076..d2c34fbe40b 100644 --- a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionCreator.java +++ b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionCreator.java @@ -31,7 +31,7 @@ @XmlRootElement(name = "triggerDefinitionCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class TriggerDefinitionCreator extends KapuaNamedEntityCreator { +public class TriggerDefinitionCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = 4602067255120049746L; diff --git a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionRecord.java b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionRecord.java index 4a5fe4ac9f4..d249da96409 100644 --- a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionRecord.java +++ b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/definition/TriggerDefinitionRecord.java @@ -12,14 +12,14 @@ *******************************************************************************/ package org.eclipse.kapua.service.scheduler.trigger.definition; -import org.eclipse.kapua.entity.EntityPropertiesReadException; -import org.eclipse.kapua.entity.EntityPropertiesWriteException; -import org.eclipse.kapua.model.id.KapuaId; - import java.util.Date; import java.util.List; import java.util.Properties; +import org.eclipse.kapua.entity.EntityPropertiesReadException; +import org.eclipse.kapua.entity.EntityPropertiesWriteException; +import org.eclipse.kapua.model.id.KapuaId; + public class TriggerDefinitionRecord implements TriggerDefinition { private KapuaId scopeId; @@ -33,11 +33,11 @@ public class TriggerDefinitionRecord implements TriggerDefinition { private List triggerProperties; public TriggerDefinitionRecord(KapuaId scopeId, - String name, - String description, - TriggerType triggerType, - String processorName, - List triggerProperties) { + String name, + String description, + TriggerType triggerType, + String processorName, + List triggerProperties) { this.scopeId = scopeId; this.name = name; this.description = description; diff --git a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/FiredTriggerCreator.java b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/FiredTriggerCreator.java index 1a1d902d165..1ab7ca1c101 100644 --- a/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/FiredTriggerCreator.java +++ b/service/scheduler/api/src/main/java/org/eclipse/kapua/service/scheduler/trigger/fired/FiredTriggerCreator.java @@ -34,7 +34,7 @@ @XmlRootElement(name = "firedTriggerCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class FiredTriggerCreator extends KapuaEntityCreator { +public class FiredTriggerCreator extends KapuaEntityCreator { private KapuaId triggerId; private Date firedOn; @@ -48,7 +48,7 @@ public FiredTriggerCreator(KapuaId scopeId) { super(scopeId); } - public FiredTriggerCreator(KapuaEntityCreator entityCreator) { + public FiredTriggerCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/CredentialCreator.java b/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/CredentialCreator.java index 2a5b190c58c..b405ed433d8 100644 --- a/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/CredentialCreator.java +++ b/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/CredentialCreator.java @@ -35,7 +35,7 @@ @XmlRootElement(name = "credentialCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class CredentialCreator extends KapuaEntityCreator { +public class CredentialCreator extends KapuaEntityCreator { private static final long serialVersionUID = -5020680413729882095L; @@ -52,7 +52,7 @@ public CredentialCreator(KapuaId scopeId) { super(scopeId); } - public CredentialCreator(KapuaEntityCreator entityCreator) { + public CredentialCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/MfaOptionCreator.java b/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/MfaOptionCreator.java index c13797c64df..4ade53ddb02 100644 --- a/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/MfaOptionCreator.java +++ b/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/credential/mfa/MfaOptionCreator.java @@ -32,7 +32,7 @@ @XmlRootElement(name = "mfaOptionCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class MfaOptionCreator extends KapuaEntityCreator { +public class MfaOptionCreator extends KapuaEntityCreator { private static final long serialVersionUID = -4619585500941519330L; @@ -45,7 +45,7 @@ public MfaOptionCreator(KapuaId scopeId) { super(scopeId); } - public MfaOptionCreator(KapuaEntityCreator entityCreator) { + public MfaOptionCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/token/AccessTokenCreator.java b/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/token/AccessTokenCreator.java index 52cb41df8ba..fb62ad4146d 100644 --- a/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/token/AccessTokenCreator.java +++ b/service/security/authentication/api/src/main/java/org/eclipse/kapua/service/authentication/token/AccessTokenCreator.java @@ -37,7 +37,7 @@ "refreshExpiresOn", "tokenIdentifier" }) -public class AccessTokenCreator extends KapuaEntityCreator { +public class AccessTokenCreator extends KapuaEntityCreator { private static final long serialVersionUID = -27718046815190710L; @@ -55,7 +55,7 @@ public AccessTokenCreator(KapuaId scopeId) { super(scopeId); } - public AccessTokenCreator(KapuaEntityCreator entityCreator) { + public AccessTokenCreator(KapuaEntityCreator entityCreator) { super(entityCreator); } diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessInfoCreator.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessInfoCreator.java index 87cf7ec64de..2c02a38ca02 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessInfoCreator.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessInfoCreator.java @@ -41,7 +41,7 @@ @XmlType(propOrder = { "userId", "roleIds", "permissions" }) -public class AccessInfoCreator extends KapuaEntityCreator { +public class AccessInfoCreator extends KapuaEntityCreator { private static final long serialVersionUID = 972154225756734130L; diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessPermissionCreator.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessPermissionCreator.java index cb22145b526..b0c60896ebc 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessPermissionCreator.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessPermissionCreator.java @@ -32,7 +32,7 @@ @XmlRootElement(name = "accessPermissionCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType(propOrder = { "accessInfoId", "permission" }) -public class AccessPermissionCreator extends KapuaEntityCreator { +public class AccessPermissionCreator extends KapuaEntityCreator { private static final long serialVersionUID = 972154225756734130L; diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessRoleCreator.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessRoleCreator.java index c825668ea7e..3f149fd20b9 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessRoleCreator.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/access/AccessRoleCreator.java @@ -32,7 +32,7 @@ @XmlRootElement(name = "accessRoleCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType(propOrder = { "accessInfoId", "roleId" }) -public class AccessRoleCreator extends KapuaEntityCreator { +public class AccessRoleCreator extends KapuaEntityCreator { private static final long serialVersionUID = 972154225756734130L; diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/domain/DomainCreator.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/domain/DomainCreator.java index 8e68968b1bd..b1731e380dd 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/domain/DomainCreator.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/domain/DomainCreator.java @@ -32,7 +32,7 @@ */ @XmlRootElement(name = "domainCreator") @XmlAccessorType(XmlAccessType.PROPERTY) -public class DomainCreator extends KapuaEntityCreator { // org.eclipse.kapua.model.domain.Domain { +public class DomainCreator extends KapuaEntityCreator { // org.eclipse.kapua.model.domain.Domain { private static final long serialVersionUID = -4676187845961673421L; diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/group/GroupCreator.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/group/GroupCreator.java index 1173c21bd55..deec1ccb388 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/group/GroupCreator.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/group/GroupCreator.java @@ -30,7 +30,7 @@ @XmlRootElement(name = "groupCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class GroupCreator extends KapuaNamedEntityCreator { +public class GroupCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = -4676187845961673421L; diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RoleCreator.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RoleCreator.java index c66834bcf0b..1c3f8da7880 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RoleCreator.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RoleCreator.java @@ -37,7 +37,7 @@ @XmlRootElement(name = "roleCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class RoleCreator extends KapuaNamedEntityCreator { +public class RoleCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = 972154225756734130L; diff --git a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RolePermissionCreator.java b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RolePermissionCreator.java index a91b0aa541b..7a30643bca4 100644 --- a/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RolePermissionCreator.java +++ b/service/security/authorization/api/src/main/java/org/eclipse/kapua/service/authorization/role/RolePermissionCreator.java @@ -32,7 +32,7 @@ @XmlRootElement(name = "rolePermissionCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType(propOrder = { "roleId", "permission" }) -public class RolePermissionCreator extends KapuaEntityCreator { +public class RolePermissionCreator extends KapuaEntityCreator { private static final long serialVersionUID = 972154225756734130L; diff --git a/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/CertificateCreator.java b/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/CertificateCreator.java index f74cb066a0c..e4698d99d4f 100644 --- a/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/CertificateCreator.java +++ b/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/CertificateCreator.java @@ -35,7 +35,7 @@ @XmlRootElement(name = "certificateCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class CertificateCreator extends KapuaNamedEntityCreator { +public class CertificateCreator extends KapuaNamedEntityCreator { private String certificate; private CertificateStatus status; diff --git a/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/info/CertificateInfoCreator.java b/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/info/CertificateInfoCreator.java index 7037a39f31f..d05aa63fc5b 100644 --- a/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/info/CertificateInfoCreator.java +++ b/service/security/certificate/api/src/main/java/org/eclipse/kapua/service/certificate/info/CertificateInfoCreator.java @@ -27,7 +27,7 @@ @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType //This class exists only because the Service needed a placeholder.Sigh. -public class CertificateInfoCreator extends KapuaNamedEntityCreator { +public class CertificateInfoCreator extends KapuaNamedEntityCreator { public CertificateInfoCreator() { throw new UnsupportedOperationException(); diff --git a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/Tag.java b/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/Tag.java index a0cfd2bca3d..078eb8ad5b7 100644 --- a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/Tag.java +++ b/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/Tag.java @@ -12,35 +12,53 @@ *******************************************************************************/ package org.eclipse.kapua.service.tag; -import org.eclipse.kapua.model.KapuaNamedEntity; -import org.eclipse.kapua.model.id.KapuaId; +import java.util.Properties; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; +import org.eclipse.kapua.entity.EntityPropertiesReadException; +import org.eclipse.kapua.entity.EntityPropertiesWriteException; +import org.eclipse.kapua.model.AbstractKapuaNamedEntity; + /** * {@link Tag} {@link org.eclipse.kapua.model.KapuaEntity} definition *

- * {@link Tag}s serve as tag for entities marked as {@link Taggable}. - * It is possible to assign a {@link Tag} to a {@link org.eclipse.kapua.model.KapuaEntity}. + * {@link Tag}s serve as tag for entities marked as {@link Taggable}. It is possible to assign a {@link Tag} to a {@link org.eclipse.kapua.model.KapuaEntity}. * * @since 1.0.0 */ @XmlRootElement(name = "tag") @XmlAccessorType(XmlAccessType.PROPERTY) -@XmlType(factoryClass = TagXmlRegistry.class, factoryMethod = "newTag") -public interface Tag extends KapuaNamedEntity { +@XmlType +public class Tag extends AbstractKapuaNamedEntity { + + private static final long serialVersionUID = -3760818776351242930L; + + @Override + public String getType() { + return "tag"; + } + + @Override + public Properties getEntityAttributes() throws EntityPropertiesReadException { + throw new UnsupportedOperationException(); + } - @XmlTransient - KapuaId ANY = KapuaId.ANY; + @Override + public void setEntityAttributes(Properties props) throws EntityPropertiesWriteException { + throw new UnsupportedOperationException(); + } - String TYPE = "tag"; + @Override + public Properties getEntityProperties() throws EntityPropertiesReadException { + throw new UnsupportedOperationException(); + } @Override - default String getType() { - return TYPE; + public void setEntityProperties(Properties props) throws EntityPropertiesWriteException { + throw new UnsupportedOperationException(); } } diff --git a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagCreator.java b/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagCreator.java index 0029f2a5ea7..bd58d96e59c 100644 --- a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagCreator.java +++ b/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagCreator.java @@ -30,7 +30,7 @@ @XmlRootElement(name = "tagCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class TagCreator extends KapuaNamedEntityCreator { +public class TagCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = -4676187845961673421L; diff --git a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagListResult.java b/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagListResult.java index d51c8dc1900..7ec807ac997 100644 --- a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagListResult.java +++ b/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagListResult.java @@ -12,6 +12,9 @@ *******************************************************************************/ package org.eclipse.kapua.service.tag; +import java.util.ArrayList; +import java.util.List; + import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @@ -28,4 +31,7 @@ public class TagListResult extends KapuaListResult { private static final long serialVersionUID = 791258978210911362L; + public void setItems(List items) { + this.items = new ArrayList<>(items); + } } diff --git a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagXmlRegistry.java b/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagXmlRegistry.java deleted file mode 100644 index eca58fdc102..00000000000 --- a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagXmlRegistry.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2017, 2022 Eurotech and/or its affiliates and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Eurotech - initial API and implementation - *******************************************************************************/ -package org.eclipse.kapua.service.tag; - -import javax.xml.bind.annotation.XmlRegistry; - -import org.eclipse.kapua.locator.KapuaLocator; - -@XmlRegistry -public class TagXmlRegistry { - - private final TagFactory tagFactory = KapuaLocator.getInstance().getFactory(TagFactory.class); - - /** - * Creates a new tag instance - * - * @return - */ - public Tag newTag() { - return tagFactory.newEntity(null); - } - -} diff --git a/service/tag/internal/pom.xml b/service/tag/internal/pom.xml index bc6d6bad211..8ffbbfd394b 100644 --- a/service/tag/internal/pom.xml +++ b/service/tag/internal/pom.xml @@ -56,4 +56,34 @@ test + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + + org.hibernate + hibernate-jpamodelgen + ${hibernate-jpamodelgen.version} + + + + -Amapstruct.unmappedTargetPolicy=ERROR + -Amapstruct.unmappedSourcePolicy=WARN + -Amapstruct.suppressGeneratorTimestamp=true + -Amapstruct.suppressGeneratorVersionInfoComment=true + + + + + + diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagFactoryImpl.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagFactoryImpl.java deleted file mode 100644 index a13177b817b..00000000000 --- a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagFactoryImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016, 2022 Eurotech and/or its affiliates and others - * - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Eurotech - initial API and implementation - *******************************************************************************/ -package org.eclipse.kapua.service.tag.internal; - -import javax.inject.Singleton; - -import org.eclipse.kapua.KapuaEntityCloneException; -import org.eclipse.kapua.model.id.KapuaId; -import org.eclipse.kapua.service.tag.Tag; -import org.eclipse.kapua.service.tag.TagFactory; - -/** - * {@link TagFactory} implementation. - * - * @since 1.0.0 - */ -@Singleton -public class TagFactoryImpl implements TagFactory { - - @Override - public Tag newEntity(KapuaId scopeId) { - return new TagImpl(scopeId); - } - - @Override - public Tag clone(Tag tag) { - try { - return new TagImpl(tag); - } catch (Exception e) { - throw new KapuaEntityCloneException(e, Tag.TYPE, tag); - } - } -} diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImpl.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImpl.java index c8fdd674aac..ad812abb744 100644 --- a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImpl.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImpl.java @@ -12,14 +12,13 @@ *******************************************************************************/ package org.eclipse.kapua.service.tag.internal; -import org.eclipse.kapua.KapuaException; +import javax.persistence.Entity; +import javax.persistence.Table; + import org.eclipse.kapua.commons.model.AbstractKapuaNamedEntity; import org.eclipse.kapua.model.id.KapuaId; import org.eclipse.kapua.service.tag.Tag; -import javax.persistence.Entity; -import javax.persistence.Table; - /** * {@link Tag} implementation. * @@ -27,9 +26,14 @@ */ @Entity(name = "Tag") @Table(name = "tag_tag") -public class TagImpl extends AbstractKapuaNamedEntity implements Tag { +public class TagImpl extends AbstractKapuaNamedEntity { + + public static final String TYPE = "tag"; - private static final long serialVersionUID = -3760818776351242930L; + @Override + public String getType() { + return TYPE; + } /** * Constructor. @@ -43,21 +47,11 @@ protected TagImpl() { /** * Constructor. * - * @param scopeId The scope {@link KapuaId} + * @param scopeId + * The scope {@link KapuaId} * @since 1.0.0 */ public TagImpl(KapuaId scopeId) { super(scopeId); } - - /** - * Clone constructor. - * - * @param tag The {@link Tag} from which to create the new {@link Tag}. - * @throws KapuaException - * @since 1.0.0 - */ - public TagImpl(Tag tag) throws KapuaException { - super(tag); - } } diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplJpaRepository.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplJpaRepository.java index 5d370bd47d3..205ba65cd8b 100644 --- a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplJpaRepository.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplJpaRepository.java @@ -16,17 +16,14 @@ import org.eclipse.kapua.commons.jpa.KapuaJpaRepositoryConfiguration; import org.eclipse.kapua.commons.jpa.KapuaNamedEntityJpaRepository; -import org.eclipse.kapua.service.tag.Tag; -import org.eclipse.kapua.service.tag.TagListResult; -import org.eclipse.kapua.service.tag.TagRepository; @Singleton public class TagImplJpaRepository - extends KapuaNamedEntityJpaRepository + extends KapuaNamedEntityJpaRepository implements TagRepository { public TagImplJpaRepository(KapuaJpaRepositoryConfiguration jpaRepoConfig) { - super(TagImpl.class, Tag.TYPE, TagListResult::new, jpaRepoConfig); + super(TagImpl.class, TagImpl.TYPE, TagImplListResult::new, jpaRepoConfig); } } diff --git a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagFactory.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplListResult.java similarity index 55% rename from service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagFactory.java rename to service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplListResult.java index 32e170dbec2..028f03af46e 100644 --- a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagFactory.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagImplListResult.java @@ -10,16 +10,23 @@ * Contributors: * Eurotech - initial API and implementation *******************************************************************************/ -package org.eclipse.kapua.service.tag; +package org.eclipse.kapua.service.tag.internal; -import org.eclipse.kapua.model.KapuaEntityFactory; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + +import org.eclipse.kapua.model.query.KapuaListResult; +import org.eclipse.kapua.service.tag.Tag; /** - * {@link TagFactory} definition. + * {@link Tag} list result definition. * - * @see org.eclipse.kapua.model.KapuaEntityFactory * @since 1.0.0 */ -public interface TagFactory extends KapuaEntityFactory { +@XmlRootElement(name = "tags") +@XmlType +public class TagImplListResult extends KapuaListResult { + + private static final long serialVersionUID = 791258978210911362L; } diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagMapper.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagMapper.java new file mode 100644 index 00000000000..b2f1d06bc1d --- /dev/null +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagMapper.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2017, 2022 Eurotech and/or its affiliates and others + * + * This program and the accompanying materials are made + * available under the terms of the Eclipse Public License 2.0 + * which is available at https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Eurotech - initial API and implementation + *******************************************************************************/ +package org.eclipse.kapua.service.tag.internal; + +import org.eclipse.kapua.commons.model.mappers.KapuaBaseMapper; +import org.eclipse.kapua.service.tag.Tag; +import org.eclipse.kapua.service.tag.TagCreator; +import org.eclipse.kapua.service.tag.TagListResult; +import org.mapstruct.CollectionMappingStrategy; +import org.mapstruct.InjectionStrategy; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.MappingTarget; + +@Mapper(uses = KapuaBaseMapper.class, componentModel = MappingConstants.ComponentModel.JSR330, injectionStrategy = InjectionStrategy.CONSTRUCTOR, collectionMappingStrategy = CollectionMappingStrategy.TARGET_IMMUTABLE) +public interface TagMapper { + + Tag map(TagImpl tag); + + // @Mapping(target = "modifiedOn", ignore = true) + // @Mapping(target = "modifiedBy", ignore = true) + // @Mapping(target = "optlock", ignore = true) + @KapuaBaseMapper.IgnoreKapuaNamedEntityReadonlyFields + TagImpl map(TagCreator tag); + + TagListResult map(TagImplListResult tagImplListResult); + + void merge(@MappingTarget TagImpl existingTag, Tag tag); +} diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java index 5d382b2b2f0..86338941978 100644 --- a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagModule.java @@ -33,8 +33,6 @@ import org.eclipse.kapua.model.domain.Domain; import org.eclipse.kapua.model.domain.DomainEntry; import org.eclipse.kapua.service.authorization.AuthorizationService; -import org.eclipse.kapua.service.tag.TagFactory; -import org.eclipse.kapua.service.tag.TagRepository; import org.eclipse.kapua.service.tag.TagService; import com.google.inject.Provides; @@ -44,7 +42,7 @@ public class TagModule extends AbstractKapuaModule { @Override protected void configureModule() { - bind(TagFactory.class).to(TagFactoryImpl.class); + bind(TagMapper.class).to(TagMapperImpl.class).in(Singleton.class); } @Provides @@ -53,12 +51,12 @@ TagService tagService( AuthorizationService authorizationService, @Named("TagServiceConfigurationManager") ServiceConfigurationManager serviceConfigurationManager, TagRepository tagRepository, - TagFactory tagFactory, - KapuaJpaTxManagerFactory jpaTxManagerFactory) { + KapuaJpaTxManagerFactory jpaTxManagerFactory, + TagMapper tagMapper) { return new TagServiceImpl(authorizationService, serviceConfigurationManager, jpaTxManagerFactory.create("kapua-tag"), tagRepository, - tagFactory); + tagMapper); } @ProvidesIntoSet diff --git a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagRepository.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagRepository.java similarity index 84% rename from service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagRepository.java rename to service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagRepository.java index 00d0ef8cba8..16720981d19 100644 --- a/service/tag/api/src/main/java/org/eclipse/kapua/service/tag/TagRepository.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagRepository.java @@ -10,10 +10,11 @@ * Contributors: * Eurotech - initial API and implementation *******************************************************************************/ -package org.eclipse.kapua.service.tag; +package org.eclipse.kapua.service.tag.internal; import org.eclipse.kapua.storage.KapuaNamedEntityRepository; public interface TagRepository extends - KapuaNamedEntityRepository { + KapuaNamedEntityRepository { + } diff --git a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java index e04be9c5021..94536def3a6 100644 --- a/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java +++ b/service/tag/internal/src/main/java/org/eclipse/kapua/service/tag/internal/TagServiceImpl.java @@ -16,6 +16,7 @@ import javax.inject.Singleton; import org.eclipse.kapua.KapuaDuplicateNameException; +import org.eclipse.kapua.KapuaEntityNotFoundException; import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.commons.configuration.KapuaConfigurableServiceBase; import org.eclipse.kapua.commons.configuration.ServiceConfigurationManager; @@ -28,9 +29,7 @@ import org.eclipse.kapua.service.authorization.permission.Permission; import org.eclipse.kapua.service.tag.Tag; import org.eclipse.kapua.service.tag.TagCreator; -import org.eclipse.kapua.service.tag.TagFactory; import org.eclipse.kapua.service.tag.TagListResult; -import org.eclipse.kapua.service.tag.TagRepository; import org.eclipse.kapua.service.tag.TagService; import org.eclipse.kapua.storage.TxManager; @@ -43,9 +42,9 @@ public class TagServiceImpl extends KapuaConfigurableServiceBase implements TagService { private final AuthorizationService authorizationService; - private final TagFactory tagFactory; private final TxManager txManager; private final TagRepository tagRepository; + private final TagMapper tagMapper; /** * Injectable Constructor @@ -57,7 +56,6 @@ public class TagServiceImpl extends KapuaConfigurableServiceBase implements TagS * @param txManager * @param tagRepository * The {@link TagRepository} instance - * @param tagFactory * @since 2.0.0 */ @Inject @@ -65,13 +63,12 @@ public TagServiceImpl( AuthorizationService authorizationService, ServiceConfigurationManager serviceConfigurationManager, TxManager txManager, - TagRepository tagRepository, - TagFactory tagFactory) { + TagRepository tagRepository, TagMapper tagMapper) { super(txManager, serviceConfigurationManager, Domains.TAG, authorizationService); this.authorizationService = authorizationService; this.tagRepository = tagRepository; - this.tagFactory = tagFactory; this.txManager = txManager; + this.tagMapper = tagMapper; } @Override @@ -82,7 +79,7 @@ public Tag create(TagCreator tagCreator) throws KapuaException { ArgumentValidator.validateEntityName(tagCreator.getName(), "tagCreator.name"); // Check Access authorizationService.checkPermission(new Permission(Domains.TAG, Actions.write, tagCreator.getScopeId())); - return txManager.execute(tx -> { + final TagImpl newTag = txManager.execute(tx -> { // Check entity limit serviceConfigurationManager.checkAllowedEntities(tx, tagCreator.getScopeId(), "Tags"); // Check duplicate name @@ -91,12 +88,14 @@ public Tag create(TagCreator tagCreator) throws KapuaException { throw new KapuaDuplicateNameException(tagCreator.getName()); } - final Tag toBeCreated = tagFactory.newEntity(tagCreator.getScopeId()); + final TagImpl toBeCreated = new TagImpl(tagCreator.getScopeId()); toBeCreated.setName(tagCreator.getName()); toBeCreated.setDescription(tagCreator.getDescription()); // Do create - return tagRepository.create(tx, toBeCreated); + final TagImpl created = tagRepository.create(tx, toBeCreated); + return created; }); + return tagMapper.map(newTag); } @Override @@ -112,16 +111,22 @@ public Tag update(Tag tag) throws KapuaException { new Permission(Domains.TAG, Actions.write, tag.getScopeId())); // Check duplicate name - return txManager.execute(tx -> { + final TagImpl updatedTag = txManager.execute(tx -> { // Check duplicate name final long otherEntitiesWithSameName = tagRepository.countOtherEntitiesWithNameInScope( tx, tag.getScopeId(), tag.getId(), tag.getName()); if (otherEntitiesWithSameName > 0) { throw new KapuaDuplicateNameException(tag.getName()); } + final TagImpl existingTag = tagRepository.find(tx, tag.getScopeId(), tag.getId()) + .orElseThrow(() -> new KapuaEntityNotFoundException("tag", tag.getId())); + //merge tag info + tagMapper.merge(existingTag, tag); + // Do Update - return tagRepository.update(tx, tag); + return tagRepository.update(tx, existingTag); }); + return tagMapper.map(updatedTag); } @Override @@ -144,6 +149,7 @@ public Tag find(KapuaId scopeId, KapuaId tagId) throws KapuaException { authorizationService.checkPermission(new Permission(Domains.TAG, Actions.read, scopeId)); // Do find return txManager.execute(tx -> tagRepository.find(tx, scopeId, tagId)) + .map(tagMapper::map) .orElse(null); } @@ -154,7 +160,7 @@ public TagListResult query(KapuaQuery query) throws KapuaException { // Check Access authorizationService.checkPermission(new Permission(Domains.TAG, Actions.read, query.getScopeId())); // Do query - return txManager.execute(tx -> tagRepository.query(tx, query)); + return tagMapper.map(txManager.execute(tx -> tagRepository.query(tx, query))); } @Override diff --git a/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java b/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java index 68b6d090129..133c87d783c 100644 --- a/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java +++ b/service/tag/internal/src/test/java/org/eclipse/kapua/service/tag/internal/TagServiceImplTest.java @@ -18,13 +18,11 @@ import org.eclipse.kapua.KapuaException; import org.eclipse.kapua.KapuaIllegalNullArgumentException; import org.eclipse.kapua.commons.configuration.ServiceConfigurationManager; -import org.eclipse.kapua.model.id.KapuaId; +import org.eclipse.kapua.commons.model.mappers.KapuaBaseMapperImpl; import org.eclipse.kapua.model.id.KapuaIdImpl; import org.eclipse.kapua.service.authorization.AuthorizationService; import org.eclipse.kapua.service.tag.Tag; import org.eclipse.kapua.service.tag.TagCreator; -import org.eclipse.kapua.service.tag.TagFactory; -import org.eclipse.kapua.service.tag.TagRepository; import org.eclipse.kapua.storage.TxContext; import org.eclipse.kapua.storage.TxManager; import org.junit.jupiter.api.Assertions; @@ -44,16 +42,14 @@ public class TagServiceImplTest { private ServiceConfigurationManager serviceConfigurationManager; private TagRepository tagRepository; private TagServiceImpl instance; - private TagFactory tagFactory; @BeforeEach public void setUp() throws KapuaException { authorizationService = Mockito.mock(AuthorizationService.class); serviceConfigurationManager = Mockito.mock(ServiceConfigurationManager.class); tagRepository = Mockito.mock(TagRepository.class); - Mockito.when(tagRepository.create(Mockito.any(), Mockito.any())) + Mockito.when(tagRepository.create(Mockito.any(), Mockito.any())) .thenAnswer(invocation -> invocation.getArgumentAt(0, Tag.class)); - tagFactory = Mockito.mock(TagFactory.class); final TxManager txManager = new TxManager() { @Override @@ -66,15 +62,13 @@ public TxContext getTxContext() { return null; } }; - Mockito.when(tagFactory.newEntity(Mockito.any())) - .thenAnswer(invocation -> new TagImpl(invocation.getArgumentAt(0, KapuaId.class))); instance = new TagServiceImpl( authorizationService, serviceConfigurationManager, txManager, tagRepository, - tagFactory + new TagMapperImpl(new KapuaBaseMapperImpl()) ); } diff --git a/service/tag/test-steps/src/main/java/org/eclipse/kapua/service/tag/steps/TagServiceSteps.java b/service/tag/test-steps/src/main/java/org/eclipse/kapua/service/tag/steps/TagServiceSteps.java index c1eef9e12df..4c9d7ec737e 100644 --- a/service/tag/test-steps/src/main/java/org/eclipse/kapua/service/tag/steps/TagServiceSteps.java +++ b/service/tag/test-steps/src/main/java/org/eclipse/kapua/service/tag/steps/TagServiceSteps.java @@ -31,7 +31,6 @@ import org.eclipse.kapua.service.tag.Tag; import org.eclipse.kapua.service.tag.TagAttributes; import org.eclipse.kapua.service.tag.TagCreator; -import org.eclipse.kapua.service.tag.TagFactory; import org.eclipse.kapua.service.tag.TagListResult; import org.eclipse.kapua.service.tag.TagQuery; import org.eclipse.kapua.service.tag.TagService; @@ -57,7 +56,6 @@ public class TagServiceSteps extends TestBase { * Tag service. */ private TagService tagService; - private TagFactory tagFactory; @Inject public TagServiceSteps(StepData stepData) { @@ -68,7 +66,6 @@ public TagServiceSteps(StepData stepData) { public void setServices() { KapuaLocator locator = KapuaLocator.getInstance(); tagService = locator.getService(TagService.class); - tagFactory = locator.getFactory(TagFactory.class); } // ************************************* diff --git a/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java b/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java index cb1ca4586fb..84d71886358 100644 --- a/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java +++ b/service/tag/test/src/test/java/org/eclipse/kapua/service/tag/test/TagLocatorConfiguration.java @@ -28,6 +28,7 @@ import org.eclipse.kapua.commons.metric.CommonsMetric; import org.eclipse.kapua.commons.metric.MetricsService; import org.eclipse.kapua.commons.metric.MetricsServiceImpl; +import org.eclipse.kapua.commons.model.mappers.KapuaBaseMapperImpl; import org.eclipse.kapua.commons.service.event.store.internal.EventStoreRecordImplJpaRepository; import org.eclipse.kapua.commons.service.internal.cache.CacheManagerProvider; import org.eclipse.kapua.commons.setting.system.SystemSetting; @@ -68,11 +69,10 @@ import org.eclipse.kapua.service.device.registry.internal.DeviceFactoryImpl; import org.eclipse.kapua.service.device.registry.internal.DeviceImplJpaRepository; import org.eclipse.kapua.service.device.registry.internal.DeviceRegistryServiceImpl; -import org.eclipse.kapua.service.tag.TagFactory; -import org.eclipse.kapua.service.tag.TagRepository; import org.eclipse.kapua.service.tag.TagService; -import org.eclipse.kapua.service.tag.internal.TagFactoryImpl; import org.eclipse.kapua.service.tag.internal.TagImplJpaRepository; +import org.eclipse.kapua.service.tag.internal.TagMapperImpl; +import org.eclipse.kapua.service.tag.internal.TagRepository; import org.eclipse.kapua.service.tag.internal.TagServiceImpl; import org.mockito.Matchers; import org.mockito.Mockito; @@ -169,7 +169,8 @@ protected void configure() { Mockito.mock(ServiceConfigurationManager.class), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-tag"), new TagImplJpaRepository(jpaRepoConfig), - new TagFactoryImpl()) + new TagMapperImpl(new KapuaBaseMapperImpl()) + ) ); bind(DeviceRegistryService.class).toInstance( new DeviceRegistryServiceImpl( @@ -199,13 +200,12 @@ protected void configure() { bind(DeviceEventService.class).toInstance(deviceEventService); bind(DeviceEventFactory.class).toInstance(new DeviceEventFactoryImpl()); bind(KapuaMessageFactory.class).toInstance(new KapuaMessageFactoryImpl()); - bind(TagFactory.class).to(TagFactoryImpl.class); bind(TagService.class).toInstance(new TagServiceImpl( mockedAuthorization, Mockito.mock(ServiceConfigurationManager.class), new KapuaJpaTxManagerFactory(maxInsertAttempts).create("kapua-tag"), new TagImplJpaRepository(new KapuaJpaRepositoryConfiguration()), - new TagFactoryImpl() + new TagMapperImpl(new KapuaBaseMapperImpl()) )); } }; diff --git a/service/user/api/src/main/java/org/eclipse/kapua/service/user/UserCreator.java b/service/user/api/src/main/java/org/eclipse/kapua/service/user/UserCreator.java index 4c28393dead..1f9aa95acf3 100644 --- a/service/user/api/src/main/java/org/eclipse/kapua/service/user/UserCreator.java +++ b/service/user/api/src/main/java/org/eclipse/kapua/service/user/UserCreator.java @@ -33,7 +33,7 @@ @XmlRootElement(name = "userCreator") @XmlAccessorType(XmlAccessType.PROPERTY) @XmlType -public class UserCreator extends KapuaNamedEntityCreator { +public class UserCreator extends KapuaNamedEntityCreator { private static final long serialVersionUID = 4664940282892151008L;