Skip to content

Commit

Permalink
#898: moved ditto-internal-models-placeholders to a public module "di…
Browse files Browse the repository at this point in the history
…tto-placeholders"

* make use of PlaceholderResolver in RQL ThingPredicateVisitor et. al
* move TopicPathPlaceholder from connectivity internals to "ditto-protocol"
* instantiate TopicPathPlaceholder with extracted TopicPath at places relying on RQL filtering

Signed-off-by: Thomas Jaeckle <thomas.jaeckle@bosch.io>
  • Loading branch information
thjaeckle committed Sep 14, 2021
1 parent 8365d57 commit 08295cb
Show file tree
Hide file tree
Showing 161 changed files with 1,222 additions and 546 deletions.
2 changes: 1 addition & 1 deletion bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@
</dependency>
<dependency>
<groupId>org.eclipse.ditto</groupId>
<artifactId>ditto-internal-models-placeholders</artifactId>
<artifactId>ditto-placeholders</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@

import org.eclipse.ditto.base.model.headers.DittoHeaders;
import org.eclipse.ditto.base.model.headers.WithDittoHeaders;
import org.eclipse.ditto.internal.models.placeholders.ExpressionResolver;
import org.eclipse.ditto.internal.models.placeholders.PipelineElement;
import org.eclipse.ditto.base.model.signals.commands.exceptions.GatewayPlaceholderNotResolvableException;
import org.eclipse.ditto.placeholders.ExpressionResolver;
import org.eclipse.ditto.placeholders.PipelineElement;

/**
* An algorithm for placeholder substitution based on {@link DittoHeaders}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@
import org.eclipse.ditto.base.model.signals.commands.exceptions.PathUnknownException;
import org.eclipse.ditto.connectivity.model.ConnectionConfigurationInvalidException;
import org.eclipse.ditto.connectivity.model.signals.commands.exceptions.ConnectionConflictException;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFunctionSignatureInvalidException;
import org.eclipse.ditto.internal.utils.test.GlobalErrorRegistryTestCases;
import org.eclipse.ditto.messages.model.AuthorizationSubjectBlockedException;
import org.eclipse.ditto.placeholders.PlaceholderFunctionSignatureInvalidException;
import org.eclipse.ditto.policies.model.PolicyEntryInvalidException;
import org.eclipse.ditto.policies.model.PolicyIdInvalidException;
import org.eclipse.ditto.policies.model.signals.commands.exceptions.PolicyConflictException;
Expand Down
2 changes: 1 addition & 1 deletion connectivity/api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
</dependency>
<dependency>
<groupId>org.eclipse.ditto</groupId>
<artifactId>ditto-internal-models-placeholders</artifactId>
<artifactId>ditto-placeholders</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.ditto</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
import java.util.List;

import org.eclipse.ditto.base.model.entity.id.EntityId;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.connectivity.api.placeholders.ConnectivityPlaceholders;
import org.eclipse.ditto.connectivity.model.Enforcement;
import org.eclipse.ditto.connectivity.model.EnforcementFilterFactory;
import org.eclipse.ditto.connectivity.api.placeholders.ConnectivityPlaceholders;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* Factory class that creates instances of {@link EnforcementFilterFactory}s.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
import org.eclipse.ditto.base.model.entity.id.EntityId;
import org.eclipse.ditto.base.model.entity.id.WithEntityId;
import org.eclipse.ditto.base.model.headers.DittoHeaders;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.connectivity.model.ConnectionSignalIdEnforcementFailedException;
import org.eclipse.ditto.connectivity.model.Enforcement;
import org.eclipse.ditto.connectivity.model.EnforcementFilter;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFilter;
import org.eclipse.ditto.internal.models.placeholders.UnresolvedPlaceholderException;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.PlaceholderFilter;
import org.eclipse.ditto.placeholders.UnresolvedPlaceholderException;

/**
* Implementation of an {@link EnforcementFilter} which is applicable to signals.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
import javax.annotation.concurrent.Immutable;

import org.eclipse.ditto.base.model.entity.id.EntityId;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.connectivity.model.Enforcement;
import org.eclipse.ditto.connectivity.model.EnforcementFilter;
import org.eclipse.ditto.connectivity.model.EnforcementFilterFactory;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFactory;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFilter;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.PlaceholderFactory;
import org.eclipse.ditto.placeholders.PlaceholderFilter;

/**
* Factory that creates instances of EnforcementFilterFactory.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
package org.eclipse.ditto.connectivity.api.placeholders;

import org.eclipse.ditto.connectivity.model.ConnectionId;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* A {@link org.eclipse.ditto.internal.models.placeholders.Placeholder} that requires a {@code String}
* A {@link org.eclipse.ditto.placeholders.Placeholder} that requires a {@code String}
* (a valid Connection ID) to resolve its placeholders.
*
* @since 1.4.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
package org.eclipse.ditto.connectivity.api.placeholders;

import org.eclipse.ditto.base.model.auth.AuthorizationContext;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;
import org.eclipse.ditto.protocol.placeholders.TopicPathPlaceholder;

public final class ConnectivityPlaceholders {

Expand Down Expand Up @@ -60,7 +61,7 @@ public static Placeholder<AuthorizationContext> newRequestPlaceholder() {
* @return the singleton instance of {@link TopicPathPlaceholder}
*/
public static TopicPathPlaceholder newTopicPathPlaceholder() {
return ImmutableTopicPathPlaceholder.INSTANCE;
return TopicPathPlaceholder.getInstance();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
package org.eclipse.ditto.connectivity.api.placeholders;

import org.eclipse.ditto.base.model.entity.id.EntityId;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* A {@link org.eclipse.ditto.internal.models.placeholders.Placeholder} that requires a {@code String}
* A {@link org.eclipse.ditto.placeholders.Placeholder} that requires a {@code String}
* (a valid Entity ID) to resolve its placeholders.
*/
public interface EntityIdPlaceholder extends Placeholder<EntityId> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@
*/
package org.eclipse.ditto.connectivity.api.placeholders;

import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* A {@link org.eclipse.ditto.internal.models.placeholders.Placeholder} that requires a {@code String}
* A {@link org.eclipse.ditto.placeholders.Placeholder} that requires a {@code String}
* (a valid Feature ID) to resolve its placeholders.
* A {@link org.eclipse.ditto.internal.models.placeholders.Placeholder} that requires a {@code String} (a valid Feature ID) to resolve its placeholders.
* A {@link org.eclipse.ditto.placeholders.Placeholder} that requires a {@code String} (a valid Feature ID) to resolve its placeholders.
*
* @since 1.5.0
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

import org.eclipse.ditto.base.model.auth.AuthorizationContext;
import org.eclipse.ditto.base.model.auth.AuthorizationSubject;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* Placeholder implementation that replaces {@code request} related things based on an {@link AuthorizationContext}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
package org.eclipse.ditto.connectivity.api.placeholders;

import org.eclipse.ditto.base.model.entity.id.EntityId;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* A {@link org.eclipse.ditto.internal.models.placeholders.Placeholder} that requires a {@code String}
* A {@link org.eclipse.ditto.placeholders.Placeholder} that requires a {@code String}
* (a valid Policy ID) to resolve its placeholders.
*/
public interface PolicyPlaceholder extends Placeholder<EntityId> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
package org.eclipse.ditto.connectivity.api.placeholders;


import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* A {@link org.eclipse.ditto.internal.models.placeholders.Placeholder} that requires a {@code String}
* A {@link org.eclipse.ditto.placeholders.Placeholder} that requires a {@code String}
* (a {@link org.eclipse.ditto.connectivity.model.Source} {@code address}) to resolve its placeholders.
*/
public interface SourceAddressPlaceholder extends Placeholder<String> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
package org.eclipse.ditto.connectivity.api.placeholders;

import org.eclipse.ditto.base.model.entity.id.EntityId;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* A {@link org.eclipse.ditto.internal.models.placeholders.Placeholder} that requires a {@code String}
* A {@link org.eclipse.ditto.placeholders.Placeholder} that requires a {@code String}
* (a valid Thing ID) to resolve its placeholders.
*/
public interface ThingPlaceholder extends Placeholder<EntityId> {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,19 @@
import org.eclipse.ditto.base.model.entity.id.AbstractNamespacedEntityId;
import org.eclipse.ditto.base.model.entity.id.NamespacedEntityId;
import org.eclipse.ditto.base.model.headers.DittoHeaders;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.base.model.signals.SignalWithEntityId;
import org.eclipse.ditto.connectivity.model.ConnectionSignalIdEnforcementFailedException;
import org.eclipse.ditto.connectivity.model.ConnectivityModelFactory;
import org.eclipse.ditto.connectivity.model.Enforcement;
import org.eclipse.ditto.connectivity.model.EnforcementFilter;
import org.eclipse.ditto.connectivity.model.EnforcementFilterFactory;
import org.eclipse.ditto.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.PlaceholderFactory;
import org.eclipse.ditto.placeholders.UnresolvedPlaceholderException;
import org.eclipse.ditto.policies.model.PolicyId;
import org.eclipse.ditto.things.model.ThingConstants;
import org.eclipse.ditto.things.model.ThingId;
import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFactory;
import org.eclipse.ditto.internal.models.placeholders.UnresolvedPlaceholderException;
import org.eclipse.ditto.base.model.signals.Signal;
import org.eclipse.ditto.base.model.signals.SignalWithEntityId;
import org.junit.Test;
import org.mutabilitydetector.unittesting.AllowedReason;
import org.mutabilitydetector.unittesting.MutabilityAssert;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import java.util.List;
import java.util.Optional;

import org.eclipse.ditto.internal.models.placeholders.Placeholder;
import org.eclipse.ditto.placeholders.Placeholder;

/**
* Simple placeholder for test purposes.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@
import java.util.Collections;

import org.eclipse.ditto.connectivity.model.ConnectionId;
import org.eclipse.ditto.internal.models.placeholders.ExpressionResolver;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFactory;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderResolver;
import org.eclipse.ditto.placeholders.ExpressionResolver;
import org.eclipse.ditto.placeholders.PlaceholderFactory;
import org.eclipse.ditto.placeholders.PlaceholderResolver;
import org.junit.Test;

public final class ConnectionIdPlaceholderTest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,15 @@

import java.util.Collections;

import org.eclipse.ditto.internal.models.placeholders.ExpressionResolver;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFactory;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFilter;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderResolver;
import org.eclipse.ditto.internal.models.placeholders.UnresolvedPlaceholderException;
import org.eclipse.ditto.things.model.ThingId;
import org.eclipse.ditto.placeholders.ExpressionResolver;
import org.eclipse.ditto.placeholders.PlaceholderFactory;
import org.eclipse.ditto.placeholders.PlaceholderFilter;
import org.eclipse.ditto.placeholders.PlaceholderResolver;
import org.eclipse.ditto.placeholders.UnresolvedPlaceholderException;
import org.eclipse.ditto.protocol.ProtocolFactory;
import org.eclipse.ditto.protocol.TopicPath;
import org.eclipse.ditto.protocol.placeholders.TopicPathPlaceholder;
import org.eclipse.ditto.things.model.ThingId;
import org.junit.Test;

public final class TopicPlaceholderTest {
Expand Down
8 changes: 4 additions & 4 deletions connectivity/service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,18 +46,18 @@
<groupId>org.eclipse.ditto</groupId>
<artifactId>ditto-base-service</artifactId>
</dependency>

<dependency>
<groupId>org.eclipse.ditto</groupId>
<artifactId>ditto-internal-models-acks</artifactId>
<artifactId>ditto-placeholders</artifactId>
</dependency>

<dependency>
<groupId>org.eclipse.ditto</groupId>
<artifactId>ditto-internal-models-signalenrichment</artifactId>
<artifactId>ditto-internal-models-acks</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.ditto</groupId>
<artifactId>ditto-internal-models-placeholders</artifactId>
<artifactId>ditto-internal-models-signalenrichment</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.ditto</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,29 @@

import javax.annotation.Nullable;

import org.eclipse.ditto.connectivity.service.config.mapping.MappingConfig;
import org.eclipse.ditto.json.JsonFactory;
import org.eclipse.ditto.json.JsonPointer;
import org.eclipse.ditto.json.JsonValue;
import org.eclipse.ditto.base.model.common.Placeholders;
import org.eclipse.ditto.base.model.headers.DittoHeaders;
import org.eclipse.ditto.base.model.headers.WithDittoHeaders;
import org.eclipse.ditto.connectivity.api.ExternalMessage;
import org.eclipse.ditto.connectivity.model.MessageMapperConfigurationInvalidException;
import org.eclipse.ditto.connectivity.model.MessageMappingFailedException;
import org.eclipse.ditto.internal.models.placeholders.ExpressionResolver;
import org.eclipse.ditto.internal.models.placeholders.HeadersPlaceholder;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFactory;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFilter;
import org.eclipse.ditto.connectivity.service.config.mapping.MappingConfig;
import org.eclipse.ditto.internal.utils.akka.logging.DittoLogger;
import org.eclipse.ditto.internal.utils.akka.logging.DittoLoggerFactory;
import org.eclipse.ditto.json.JsonFactory;
import org.eclipse.ditto.json.JsonPointer;
import org.eclipse.ditto.json.JsonValue;
import org.eclipse.ditto.placeholders.ExpressionResolver;
import org.eclipse.ditto.placeholders.HeadersPlaceholder;
import org.eclipse.ditto.placeholders.PlaceholderFactory;
import org.eclipse.ditto.placeholders.PlaceholderFilter;
import org.eclipse.ditto.protocol.Adaptable;
import org.eclipse.ditto.protocol.adapter.DittoProtocolAdapter;
import org.eclipse.ditto.things.model.Feature;
import org.eclipse.ditto.things.model.FeatureDefinition;
import org.eclipse.ditto.things.model.FeatureProperties;
import org.eclipse.ditto.things.model.ThingId;
import org.eclipse.ditto.things.model.ThingIdInvalidException;
import org.eclipse.ditto.protocol.Adaptable;
import org.eclipse.ditto.protocol.adapter.DittoProtocolAdapter;
import org.eclipse.ditto.connectivity.api.ExternalMessage;
import org.eclipse.ditto.internal.utils.akka.logging.DittoLogger;
import org.eclipse.ditto.internal.utils.akka.logging.DittoLoggerFactory;
import org.eclipse.ditto.things.model.signals.commands.modify.ModifyFeature;
import org.eclipse.ditto.things.model.signals.commands.modify.ModifyFeatureProperty;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,16 @@
import org.eclipse.ditto.connectivity.api.ExternalMessage;
import org.eclipse.ditto.connectivity.model.MessageMapperConfigurationInvalidException;
import org.eclipse.ditto.connectivity.service.config.mapping.MappingConfig;
import org.eclipse.ditto.internal.models.placeholders.ExpressionResolver;
import org.eclipse.ditto.internal.models.placeholders.HeadersPlaceholder;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFactory;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFilter;
import org.eclipse.ditto.internal.utils.akka.logging.DittoLogger;
import org.eclipse.ditto.internal.utils.akka.logging.DittoLoggerFactory;
import org.eclipse.ditto.json.JsonFactory;
import org.eclipse.ditto.json.JsonField;
import org.eclipse.ditto.json.JsonObject;
import org.eclipse.ditto.json.JsonValue;
import org.eclipse.ditto.placeholders.ExpressionResolver;
import org.eclipse.ditto.placeholders.HeadersPlaceholder;
import org.eclipse.ditto.placeholders.PlaceholderFactory;
import org.eclipse.ditto.placeholders.PlaceholderFilter;
import org.eclipse.ditto.policies.model.Policy;
import org.eclipse.ditto.policies.model.PolicyId;
import org.eclipse.ditto.protocol.Adaptable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@
import org.eclipse.ditto.connectivity.model.ConnectivityModelFactory;
import org.eclipse.ditto.connectivity.model.MappingContext;
import org.eclipse.ditto.connectivity.service.config.mapping.MappingConfig;
import org.eclipse.ditto.internal.models.placeholders.ExpressionResolver;
import org.eclipse.ditto.internal.models.placeholders.PlaceholderFactory;
import org.eclipse.ditto.json.JsonArray;
import org.eclipse.ditto.json.JsonCollectors;
import org.eclipse.ditto.json.JsonFactory;
Expand All @@ -48,6 +46,8 @@
import org.eclipse.ditto.messages.model.MessageHeaders;
import org.eclipse.ditto.messages.model.MessagesModelFactory;
import org.eclipse.ditto.messages.model.signals.commands.MessageDeserializer;
import org.eclipse.ditto.placeholders.ExpressionResolver;
import org.eclipse.ditto.placeholders.PlaceholderFactory;
import org.eclipse.ditto.protocol.Adaptable;
import org.eclipse.ditto.protocol.MessagePath;
import org.eclipse.ditto.protocol.Payload;
Expand Down

0 comments on commit 08295cb

Please sign in to comment.