diff --git a/extensions/neo4j-migrations-annotation-processing/catalog/pom.xml b/extensions/neo4j-migrations-annotation-processing/catalog/pom.xml
index 148510c70b..a8d6f39cd8 100644
--- a/extensions/neo4j-migrations-annotation-processing/catalog/pom.xml
+++ b/extensions/neo4j-migrations-annotation-processing/catalog/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-annotation-processing
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-annotation-catalog
diff --git a/extensions/neo4j-migrations-annotation-processing/pom.xml b/extensions/neo4j-migrations-annotation-processing/pom.xml
index daba36d9dd..ad8ea6f519 100644
--- a/extensions/neo4j-migrations-annotation-processing/pom.xml
+++ b/extensions/neo4j-migrations-annotation-processing/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
../../pom.xml
diff --git a/extensions/neo4j-migrations-annotation-processing/processor-api/pom.xml b/extensions/neo4j-migrations-annotation-processing/processor-api/pom.xml
index d3c50e1696..f85c6eb65a 100644
--- a/extensions/neo4j-migrations-annotation-processing/processor-api/pom.xml
+++ b/extensions/neo4j-migrations-annotation-processing/processor-api/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-annotation-processing
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-annotation-processor-api
diff --git a/extensions/neo4j-migrations-annotation-processing/processor/pom.xml b/extensions/neo4j-migrations-annotation-processing/processor/pom.xml
index 89a3704054..80d1732e72 100644
--- a/extensions/neo4j-migrations-annotation-processing/processor/pom.xml
+++ b/extensions/neo4j-migrations-annotation-processing/processor/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-annotation-processing
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-annotation-processor
diff --git a/extensions/neo4j-migrations-annotation-processing/processor/src/main/java/ac/simons/neo4j/migrations/annotations/proc/impl/CatalogGeneratingProcessor.java b/extensions/neo4j-migrations-annotation-processing/processor/src/main/java/ac/simons/neo4j/migrations/annotations/proc/impl/CatalogGeneratingProcessor.java
index f68fc7e5f8..094d3eae20 100644
--- a/extensions/neo4j-migrations-annotation-processing/processor/src/main/java/ac/simons/neo4j/migrations/annotations/proc/impl/CatalogGeneratingProcessor.java
+++ b/extensions/neo4j-migrations-annotation-processing/processor/src/main/java/ac/simons/neo4j/migrations/annotations/proc/impl/CatalogGeneratingProcessor.java
@@ -288,7 +288,7 @@ private void processOGMPropertyTypes(RoundEnvironment roundEnv) {
.forEach(t -> {
var labels = computeLabelsOGM(t);
var owner = new DefaultNodeType(t.getQualifiedName().toString(), labels);
- catalogItems.addAll(t.accept(new PropertyTypeConstraintGenerator<>(labels), owner));
+ catalogItems.addAll(t.accept(new PropertyTypeConstraintGenerator<>(Mode.OGM, labels), owner));
});
roundEnv.getElementsAnnotatedWith(ogm.relationshipEntity())
@@ -297,7 +297,7 @@ private void processOGMPropertyTypes(RoundEnvironment roundEnv) {
.forEach(t -> {
var type = computeTypeOGM(t);
var owner = new DefaultRelationshipType(t.getQualifiedName().toString(), type);
- catalogItems.addAll(t.accept(new PropertyTypeConstraintGenerator<>(List.of(type)), owner));
+ catalogItems.addAll(t.accept(new PropertyTypeConstraintGenerator<>(Mode.OGM, List.of(type)), owner));
});
}
@@ -753,7 +753,7 @@ private void processSDN6IdAnnotations(RoundEnvironment roundEnv) {
List labels = computeLabelsSDN6(t);
DefaultNodeType owner = new DefaultNodeType(t.getQualifiedName().toString(), labels);
if (requiresPrimaryKeyConstraintSDN6(t)) {
- PropertyType idProperty = t.accept(new PropertySelector(supportedSDN6Annotations),
+ PropertyType idProperty = t.accept(new IdPropertySelector(Mode.SDN6, supportedSDN6Annotations),
owner);
String name = this.constraintNameGenerator.generateName(Constraint.Type.UNIQUE,
Collections.singleton(idProperty));
@@ -761,7 +761,7 @@ private void processSDN6IdAnnotations(RoundEnvironment roundEnv) {
.unique(idProperty.getName()));
}
if (generateTypeConstraints) {
- catalogItems.addAll(t.accept(new PropertyTypeConstraintGenerator<>(labels), owner));
+ catalogItems.addAll(t.accept(new PropertyTypeConstraintGenerator<>(Mode.SDN6, labels), owner));
}
});
}
@@ -769,9 +769,12 @@ private void processSDN6IdAnnotations(RoundEnvironment roundEnv) {
@SuppressWarnings("squid:S110") // Not something we need or can do anything about (Number of parents)
class PropertyTypeConstraintGenerator> extends ElementKindVisitor8>, WriteableElementType> {
+ private final Mode mode;
+
private final List labels;
- PropertyTypeConstraintGenerator(List labels) {
+ PropertyTypeConstraintGenerator(Mode mode, List labels) {
+ this.mode = mode;
this.labels = labels;
}
@@ -803,7 +806,12 @@ List> checkIfEligibleForPropertyTypeConstraint(Element e, Writeab
return List.of();
}
- var property = owner.addProperty(e.getSimpleName().toString());
+ Optional additionalName = switch (mode) {
+ case SDN6 -> extractPropertyName(e, sdn6.property());
+ case OGM -> extractPropertyName(e, ogm.property());
+ case PURE -> Optional.empty();
+ };
+ var property = owner.addProperty(additionalName.orElseGet(() -> e.getSimpleName().toString()));
var name = constraintNameGenerator.generateName(Constraint.Type.PROPERTY_TYPE, List.of(property));
return List.of(Constraint.forNode(labels.get(0).getValue()).named(name).type(property.getName(), TypesEligibleForPropertyTypeConstraints.get(type)));
}
@@ -822,7 +830,7 @@ private void processOGMIdAnnotations(RoundEnvironment roundEnv) {
.map(TypeElement.class::cast)
.forEach(t -> {
List labels = computeLabelsOGM(t);
- PropertyType idProperty = t.accept(new PropertySelector(Collections.singleton(ogm.id())),
+ PropertyType idProperty = t.accept(new IdPropertySelector(Mode.OGM, Collections.singleton(ogm.id())),
new DefaultNodeType(t.getQualifiedName().toString(), labels));
String name = this.constraintNameGenerator.generateName(Constraint.Type.UNIQUE,
Collections.singleton(idProperty));
@@ -1130,11 +1138,14 @@ List> handleRelationship(PropertyType property, boolean isRequ
}
@SuppressWarnings("squid:S110") // Not something we need or can do anything about (Number of parents)
- class PropertySelector extends ElementKindVisitor8, DefaultNodeType> {
+ class IdPropertySelector extends ElementKindVisitor8, DefaultNodeType> {
+
+ private final Mode mode;
private final Set requiredAnnotations;
- PropertySelector(Set requiredAnnotations) {
+ IdPropertySelector(Mode mode, Set requiredAnnotations) {
+ this.mode = mode;
this.requiredAnnotations = requiredAnnotations;
}
@@ -1165,7 +1176,18 @@ public PropertyType visitVariableAsField(VariableElement e, DefaultNod
.map(AnnotationMirror::getAnnotationType)
.map(DeclaredType::asElement)
.anyMatch(requiredAnnotations::contains);
- return requiredAnnotationPresent ? owner.addProperty(e.getSimpleName().toString()) : null;
+
+ if (!requiredAnnotationPresent) {
+ return null;
+ }
+
+ Optional additionalName = switch (mode) {
+ case SDN6 -> extractPropertyName(e, sdn6.property());
+ case OGM -> extractPropertyName(e, ogm.property());
+ case PURE -> Optional.empty();
+ };
+
+ return owner.addProperty(additionalName.orElseGet(() -> e.getSimpleName().toString()));
}
}
diff --git a/extensions/neo4j-migrations-annotation-processing/processor/src/test/java/ac/simons/neo4j/migrations/annotations/proc/sdn6/movies/RenamedIdProperty.java b/extensions/neo4j-migrations-annotation-processing/processor/src/test/java/ac/simons/neo4j/migrations/annotations/proc/sdn6/movies/RenamedIdProperty.java
new file mode 100644
index 0000000000..9b038f7e0a
--- /dev/null
+++ b/extensions/neo4j-migrations-annotation-processing/processor/src/test/java/ac/simons/neo4j/migrations/annotations/proc/sdn6/movies/RenamedIdProperty.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020-2024 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package ac.simons.neo4j.migrations.annotations.proc.sdn6.movies;
+
+import org.springframework.data.neo4j.core.schema.Id;
+import org.springframework.data.neo4j.core.schema.Node;
+import org.springframework.data.neo4j.core.schema.Property;
+
+/**
+ * Class for testing renamed id properties.
+ */
+@Node
+public class RenamedIdProperty {
+ @Id
+ @Property("myOtherIdName")
+ private String myId;
+}
diff --git a/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn.xml b/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn.xml
index 31f85457fe..8df664b81d 100644
--- a/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn.xml
+++ b/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn.xml
@@ -10,6 +10,12 @@
title
+
+
+
+ myOtherIdName
+
+
diff --git a/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn_movies_types.xml b/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn_movies_types.xml
index 00c9d7daae..dbe7130972 100644
--- a/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn_movies_types.xml
+++ b/extensions/neo4j-migrations-annotation-processing/processor/src/test/resources/expected_catalog_sdn_movies_types.xml
@@ -16,10 +16,10 @@
title
-
+
- description
+ tagline
@@ -58,6 +58,18 @@
born
+
+
+
+ myOtherIdName
+
+
+
+
+
+ myOtherIdName
+
+
diff --git a/extensions/neo4j-migrations-formats-adoc/pom.xml b/extensions/neo4j-migrations-formats-adoc/pom.xml
index 2f44028a84..e59e9803e8 100644
--- a/extensions/neo4j-migrations-formats-adoc/pom.xml
+++ b/extensions/neo4j-migrations-formats-adoc/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
../../pom.xml
diff --git a/extensions/neo4j-migrations-formats-csv/pom.xml b/extensions/neo4j-migrations-formats-csv/pom.xml
index a2c8b12193..ddab1946c5 100644
--- a/extensions/neo4j-migrations-formats-csv/pom.xml
+++ b/extensions/neo4j-migrations-formats-csv/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
../../pom.xml
diff --git a/extensions/neo4j-migrations-formats-markdown/pom.xml b/extensions/neo4j-migrations-formats-markdown/pom.xml
index b8e75001b8..902e6d4186 100644
--- a/extensions/neo4j-migrations-formats-markdown/pom.xml
+++ b/extensions/neo4j-migrations-formats-markdown/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
../../pom.xml
diff --git a/neo4j-migrations-bom/pom.xml b/neo4j-migrations-bom/pom.xml
index ed4c8c6d4a..dd7b803078 100644
--- a/neo4j-migrations-bom/pom.xml
+++ b/neo4j-migrations-bom/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-bom
diff --git a/neo4j-migrations-cli/pom.xml b/neo4j-migrations-cli/pom.xml
index 164d69f063..e34e2f16b9 100644
--- a/neo4j-migrations-cli/pom.xml
+++ b/neo4j-migrations-cli/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-cli
diff --git a/neo4j-migrations-core/pom.xml b/neo4j-migrations-core/pom.xml
index 615baba3da..b94ca5a0dc 100644
--- a/neo4j-migrations-core/pom.xml
+++ b/neo4j-migrations-core/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations
diff --git a/neo4j-migrations-examples/neo4j-migrations-cluster-tests/pom.xml b/neo4j-migrations-examples/neo4j-migrations-cluster-tests/pom.xml
index f70060125f..138970e1a1 100644
--- a/neo4j-migrations-examples/neo4j-migrations-cluster-tests/pom.xml
+++ b/neo4j-migrations-examples/neo4j-migrations-cluster-tests/pom.xml
@@ -21,7 +21,7 @@
eu.michael-simons.neo4j
neo4j-migrations-examples
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-cluster-tests
diff --git a/neo4j-migrations-examples/neo4j-migrations-examples-sb-testharness/pom.xml b/neo4j-migrations-examples/neo4j-migrations-examples-sb-testharness/pom.xml
index a9acc9747e..c6e955683b 100644
--- a/neo4j-migrations-examples/neo4j-migrations-examples-sb-testharness/pom.xml
+++ b/neo4j-migrations-examples/neo4j-migrations-examples-sb-testharness/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-examples
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-examples-sb-testharness
diff --git a/neo4j-migrations-examples/neo4j-migrations-examples-sb/pom.xml b/neo4j-migrations-examples/neo4j-migrations-examples-sb/pom.xml
index 9bb036922c..12e22b196b 100644
--- a/neo4j-migrations-examples/neo4j-migrations-examples-sb/pom.xml
+++ b/neo4j-migrations-examples/neo4j-migrations-examples-sb/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-examples
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-examples-sb
diff --git a/neo4j-migrations-examples/pom.xml b/neo4j-migrations-examples/pom.xml
index 2ac23c043e..3b328e1785 100644
--- a/neo4j-migrations-examples/pom.xml
+++ b/neo4j-migrations-examples/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-examples
diff --git a/neo4j-migrations-maven-plugin/pom.xml b/neo4j-migrations-maven-plugin/pom.xml
index 8833ee577f..a34b784545 100644
--- a/neo4j-migrations-maven-plugin/pom.xml
+++ b/neo4j-migrations-maven-plugin/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-maven-plugin
diff --git a/neo4j-migrations-quarkus-parent/deployment/pom.xml b/neo4j-migrations-quarkus-parent/deployment/pom.xml
index a8c7e9189d..13ba1a1f1b 100644
--- a/neo4j-migrations-quarkus-parent/deployment/pom.xml
+++ b/neo4j-migrations-quarkus-parent/deployment/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-quarkus-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-quarkus-deployment
diff --git a/neo4j-migrations-quarkus-parent/integration-tests/pom.xml b/neo4j-migrations-quarkus-parent/integration-tests/pom.xml
index 7c57c3ecb4..d95cee6eaf 100644
--- a/neo4j-migrations-quarkus-parent/integration-tests/pom.xml
+++ b/neo4j-migrations-quarkus-parent/integration-tests/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-quarkus-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-quarkus-integration-tests
diff --git a/neo4j-migrations-quarkus-parent/pom.xml b/neo4j-migrations-quarkus-parent/pom.xml
index 85e949611a..22c03d7962 100644
--- a/neo4j-migrations-quarkus-parent/pom.xml
+++ b/neo4j-migrations-quarkus-parent/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-quarkus-parent
diff --git a/neo4j-migrations-quarkus-parent/runtime/pom.xml b/neo4j-migrations-quarkus-parent/runtime/pom.xml
index a723dbc49e..234a2babf7 100644
--- a/neo4j-migrations-quarkus-parent/runtime/pom.xml
+++ b/neo4j-migrations-quarkus-parent/runtime/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-quarkus-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-quarkus
diff --git a/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-autoconfigure/pom.xml b/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-autoconfigure/pom.xml
index e80ea210b0..745dc9915e 100644
--- a/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-autoconfigure/pom.xml
+++ b/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-autoconfigure/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-spring-boot-starter-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-spring-boot-autoconfigure
diff --git a/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-starter/pom.xml b/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-starter/pom.xml
index d894dfa90d..924e53c6a5 100644
--- a/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-starter/pom.xml
+++ b/neo4j-migrations-spring-boot-starter-parent/neo4j-migrations-spring-boot-starter/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-spring-boot-starter-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-spring-boot-starter
diff --git a/neo4j-migrations-spring-boot-starter-parent/pom.xml b/neo4j-migrations-spring-boot-starter-parent/pom.xml
index f1632769ca..80af9fc427 100644
--- a/neo4j-migrations-spring-boot-starter-parent/pom.xml
+++ b/neo4j-migrations-spring-boot-starter-parent/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-spring-boot-starter-parent
diff --git a/neo4j-migrations-test-resources/pom.xml b/neo4j-migrations-test-resources/pom.xml
index f1e2cb8232..b5672df130 100644
--- a/neo4j-migrations-test-resources/pom.xml
+++ b/neo4j-migrations-test-resources/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-test-resources
diff --git a/neo4j-migrations-test-results/pom.xml b/neo4j-migrations-test-results/pom.xml
index 8a560b774b..dcabf1595e 100644
--- a/neo4j-migrations-test-results/pom.xml
+++ b/neo4j-migrations-test-results/pom.xml
@@ -22,7 +22,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
neo4j-migrations-test-results
diff --git a/pom.xml b/pom.xml
index 5d69c09dfe..be57b555a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
eu.michael-simons.neo4j
neo4j-migrations-parent
- 2.9.4-SNAPSHOT
+ 2.10.0-SNAPSHOT
pom
Neo4j Migrations