Skip to content

Commit bc38a56

Browse files
michael-simonsmeistermeier
authored andcommitted
Update to Spring Data Commons 3.0.0 and JDK 17.
- Adapt to javax -> jakarta changes - Throw out jboss weld dependencies and just use open beans - Upgrade to latest jQAssistant version that can deal with JDK 17 byte code but disable it as it can't fork a vm for the embedded database which would require a couple of `--add-opens` which we won't have on by default and document that accordingly - Use `maven.compiler.release`
1 parent 7e58d83 commit bc38a56

File tree

9 files changed

+81
-69
lines changed

9 files changed

+81
-69
lines changed

pom.xml

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
<parent>
2020
<groupId>org.springframework.data.build</groupId>
2121
<artifactId>spring-data-parent</artifactId>
22-
<version>2.7.0-SNAPSHOT</version>
22+
<version>3.0.0-SNAPSHOT</version>
2323
</parent>
2424

2525
<groupId>org.springframework.data</groupId>
2626
<artifactId>spring-data-neo4j</artifactId>
27-
<version>6.3.0-SNAPSHOT</version>
27+
<version>7.0.0-SNAPSHOT</version>
2828

2929
<name>Spring Data Neo4j</name>
3030
<description>Next generation Object-Graph-Mapping for Spring Data.</description>
@@ -73,20 +73,19 @@
7373
<asciidoctorj-diagram.version>2.1.0</asciidoctorj-diagram.version>
7474

7575
<byte-buddy.version>1.11.0</byte-buddy.version>
76-
<cdi>2.0.SP1</cdi>
7776
<checkstyle.version>8.40</checkstyle.version>
7877
<cypher-dsl.version>2022.0.0</cypher-dsl.version>
7978
<dist.id>spring-data-neo4j</dist.id>
8079
<dist.key>SDNEO4J</dist.key>
8180
<flatten-maven-plugin.version>1.2.5</flatten-maven-plugin.version>
82-
<jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version>
81+
<jacoco-maven-plugin.version>0.8.7</jacoco-maven-plugin.version>
8382
<java-module-name>spring.data.neo4j</java-module-name>
84-
<java.version>1.8</java.version>
83+
<java.version>17</java.version>
8584
<jaxb.version>2.3.1</jaxb.version>
86-
<jqassistant-dashboard-plugin.version>1.9.0</jqassistant-dashboard-plugin.version>
85+
<jqassistant-dashboard-plugin.version>1.10.0</jqassistant-dashboard-plugin.version>
8786
<jqassistant.plugin.git.version>1.8.0</jqassistant.plugin.git.version>
88-
<jqassistant.plugin.version>1.9.1</jqassistant.plugin.version>
89-
<jqassistant.version>1.9.1</jqassistant.version>
87+
<jqassistant.plugin.version>1.10.1</jqassistant.plugin.version>
88+
<jqassistant.version>1.10.1</jqassistant.version>
9089
<junit-cc-testcontainer>2021.0.1</junit-cc-testcontainer>
9190
<maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
9291
<maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
@@ -98,23 +97,32 @@
9897
<maven-site-plugin.version>3.7.1</maven-site-plugin.version>
9998
<maven-source-plugin.version>3.2.0</maven-source-plugin.version>
10099
<maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version>
101-
<maven.compiler.source>${java.version}</maven.compiler.source>
102-
<maven.compiler.target>${java.version}</maven.compiler.target>
100+
<maven.compiler.release>${java.version}</maven.compiler.release>
103101
<mockito>${mockito.version}</mockito>
102+
<<<<<<< HEAD
104103
<mockito.version>3.10.0</mockito.version>
105104
<neo4j-java-driver.version>4.4.2</neo4j-java-driver.version>
106105
<neo4j.version>4.3.6</neo4j.version>
106+
=======
107+
<mockito.version>4.0.0</mockito.version>
108+
<neo4j-java-driver.version>4.3.4</neo4j-java-driver.version>
109+
<neo4j.version>4.3.2</neo4j.version>
110+
>>>>>>> 4ebd4a7d1 (Update to Spring Data Commons 3.0.0 and JDK 17.)
107111
<objenesis.version>3.0.1</objenesis.version>
108112
<project.build.docs>${project.build.directory}/docs</project.build.docs>
109113
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
110-
<r2dbc.releasetrain>Arabba-SR5</r2dbc.releasetrain>
114+
<r2dbc.releasetrain>Arabba-SR11</r2dbc.releasetrain>
111115
<reactive-streams.version>1.2.1</reactive-streams.version>
112-
<skipArchitectureTests>${skipTests}</skipArchitectureTests>
116+
<skipArchitectureTests>true</skipArchitectureTests>
113117
<skipIntegrationTests>${skipTests}</skipIntegrationTests>
114118
<checkstyle.skip>${skipTests}</checkstyle.skip>
115119

116120
<skipUnitTests>${skipTests}</skipUnitTests>
121+
<<<<<<< HEAD
117122
<springdata.commons>2.7.0-SNAPSHOT</springdata.commons>
123+
=======
124+
<springdata.commons>3.0.0-SNAPSHOT</springdata.commons>
125+
>>>>>>> 4ebd4a7d1 (Update to Spring Data Commons 3.0.0 and JDK 17.)
118126

119127
<spring-data-commons-docs.dir>../../../../spring-data-commons/src/main/asciidoc</spring-data-commons-docs.dir>
120128
</properties>
@@ -134,16 +142,6 @@
134142
<type>pom</type>
135143
<scope>import</scope>
136144
</dependency>
137-
<dependency>
138-
<groupId>io.reactivex</groupId>
139-
<artifactId>rxjava</artifactId>
140-
<version>${rxjava}</version>
141-
</dependency>
142-
<dependency>
143-
<groupId>io.reactivex</groupId>
144-
<artifactId>rxjava-reactive-streams</artifactId>
145-
<version>${rxjava-reactive-streams}</version>
146-
</dependency>
147145
<dependency>
148146
<groupId>io.reactivex.rxjava2</groupId>
149147
<artifactId>rxjava</artifactId>
@@ -248,42 +246,46 @@
248246
<artifactId>r2dbc-h2</artifactId>
249247
<scope>test</scope>
250248
</dependency>
251-
<dependency>
252-
<groupId>io.reactivex</groupId>
253-
<artifactId>rxjava</artifactId>
254-
<optional>true</optional>
255-
</dependency>
256-
<dependency>
257-
<groupId>io.reactivex</groupId>
258-
<artifactId>rxjava-reactive-streams</artifactId>
259-
<optional>true</optional>
260-
</dependency>
261249
<dependency>
262250
<groupId>io.reactivex.rxjava2</groupId>
263251
<artifactId>rxjava</artifactId>
264252
<optional>true</optional>
265253
</dependency>
266254

267255
<dependency>
268-
<groupId>javax.enterprise</groupId>
269-
<artifactId>cdi-api</artifactId>
256+
<groupId>jakarta.enterprise</groupId>
257+
<artifactId>jakarta.enterprise.cdi-api</artifactId>
270258
<version>${cdi}</version>
271259
<scope>provided</scope>
272260
</dependency>
273261
<dependency>
274-
<groupId>javax.transaction</groupId>
275-
<artifactId>jta</artifactId>
276-
<version>1.1</version>
277-
<scope>test</scope>
262+
<groupId>jakarta.transaction</groupId>
263+
<artifactId>jakarta.transaction-api</artifactId>
264+
<version>2.0.0</version>
278265
</dependency>
279266
<dependency>
280267
<groupId>org.apiguardian</groupId>
281268
<artifactId>apiguardian-api</artifactId>
282269
</dependency>
283270
<dependency>
284-
<groupId>org.jboss.weld.se</groupId>
285-
<artifactId>weld-se-core</artifactId>
286-
<version>3.1.4.Final</version>
271+
<groupId>org.apache.openwebbeans</groupId>
272+
<artifactId>openwebbeans-se</artifactId>
273+
<classifier>jakarta</classifier>
274+
<version>${webbeans}</version>
275+
<scope>test</scope>
276+
</dependency>
277+
<dependency>
278+
<groupId>org.apache.openwebbeans</groupId>
279+
<artifactId>openwebbeans-spi</artifactId>
280+
<classifier>jakarta</classifier>
281+
<version>${webbeans}</version>
282+
<scope>test</scope>
283+
</dependency>
284+
<dependency>
285+
<groupId>org.apache.openwebbeans</groupId>
286+
<artifactId>openwebbeans-impl</artifactId>
287+
<classifier>jakarta</classifier>
288+
<version>${webbeans}</version>
287289
<scope>test</scope>
288290
</dependency>
289291
<dependency>

src/main/asciidoc/appendix/build.adoc

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,16 @@ Your build will break on formatting errors or something like unused imports.
155155
[[building-SDN.jqassistant]]
156156
=== jQAssistant
157157

158+
WARNING: Verification of those rules is off by default since Spring Data Neo4j 7, as the it requires JDK 17 to build.
159+
The currently available version of jQAssistant does not run without several `--add-opens` arguments to the Java
160+
module system and we won't apply this to the whole build as we must ensure that SDN itself does *not* need them.
161+
+
162+
To execute the rules during a build run the build like this:
163+
+
164+
+
165+
`MAVEN_OPTS="--add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED" ./mvnw -DskipArchitectureTests=false -DskipTests=true verify`
166+
167+
158168
We also use https://jqassistant.org[jQAssistant], a Neo4j-based tool, to verify some aspects of our architecture.
159169
The rules are described with Cypher and your build will break when they are violated:
160170

@@ -171,7 +181,7 @@ When the build finishes, execute the following command:
171181
[[start-jqassistant]]
172182
.Start jQAssistant
173183
----
174-
$ ./mvnw -pl org.springframework.data.neo4j:spring-data-neo4j jqassistant:server
184+
$ MAVEN_OPTS="--add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED" ./mvnw -DskipArchitectureTests=false jqassistant:server
175185
----
176186

177187
Access the standard Neo4j browser at http://localhost:7474 and a dedicated jQA-Dashboard at http://localhost:7474/jqassistant/dashboard/.
@@ -182,6 +192,6 @@ The scanning and analyzing can be triggered individually, without going through
182192
[[scan-with-jqassistant]]
183193
.Manually scan and analyze the main project
184194
----
185-
$ ./mvnw -pl org.springframework.data.neo4j:spring-data-neo4j jqassistant:scan@jqassistant-scan
186-
$ ./mvnw -pl org.springframework.data.neo4j:spring-data-neo4j jqassistant:analyze@jqassistant-analyze
195+
$ MAVEN_OPTS="--add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED" ./mvnw -DskipArchitectureTests=false jqassistant:scan@jqassistant-scan
196+
$ MAVEN_OPTS="--add-opens java.base/sun.nio.ch=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED" ./mvnw -DskipArchitectureTests=false jqassistant:analyze@jqassistant-analyze
187197
----

src/main/java/org/springframework/data/neo4j/config/Builtin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import java.lang.annotation.Retention;
2020
import java.lang.annotation.RetentionPolicy;
2121

22-
import javax.inject.Qualifier;
22+
import jakarta.inject.Qualifier;
2323

2424
import org.apiguardian.api.API;
2525

src/main/java/org/springframework/data/neo4j/config/Neo4jCdiConfigurationSupport.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@
2626
import org.springframework.data.neo4j.core.transaction.Neo4jTransactionManager;
2727
import org.springframework.transaction.PlatformTransactionManager;
2828

29-
import javax.enterprise.context.ApplicationScoped;
30-
import javax.enterprise.inject.Any;
31-
import javax.enterprise.inject.Instance;
32-
import javax.enterprise.inject.Produces;
33-
import javax.inject.Singleton;
29+
import jakarta.enterprise.context.ApplicationScoped;
30+
import jakarta.enterprise.inject.Any;
31+
import jakarta.enterprise.inject.Instance;
32+
import jakarta.enterprise.inject.Produces;
33+
import jakarta.inject.Singleton;
3434

3535
/**
3636
* Support class that can be used as is for all necessary CDI beans or as a blueprint for custom producers.

src/main/java/org/springframework/data/neo4j/config/Neo4jCdiExtension.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
import java.util.Map;
2020
import java.util.Set;
2121

22-
import javax.enterprise.event.Observes;
23-
import javax.enterprise.inject.Any;
24-
import javax.enterprise.inject.Default;
25-
import javax.enterprise.inject.spi.AfterBeanDiscovery;
26-
import javax.enterprise.inject.spi.BeanManager;
27-
import javax.enterprise.inject.spi.BeforeBeanDiscovery;
28-
import javax.enterprise.util.AnnotationLiteral;
22+
import jakarta.enterprise.event.Observes;
23+
import jakarta.enterprise.inject.Any;
24+
import jakarta.enterprise.inject.Default;
25+
import jakarta.enterprise.inject.spi.AfterBeanDiscovery;
26+
import jakarta.enterprise.inject.spi.BeanManager;
27+
import jakarta.enterprise.inject.spi.BeforeBeanDiscovery;
28+
import jakarta.enterprise.util.AnnotationLiteral;
2929

3030
import org.apache.commons.logging.LogFactory;
3131
import org.apiguardian.api.API;

src/main/java/org/springframework/data/neo4j/repository/support/Neo4jRepositoryFactoryCdiBean.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import java.util.Set;
2121
import java.util.stream.Collectors;
2222

23-
import javax.enterprise.context.spi.CreationalContext;
24-
import javax.enterprise.inject.spi.Bean;
25-
import javax.enterprise.inject.spi.BeanManager;
23+
import jakarta.enterprise.context.spi.CreationalContext;
24+
import jakarta.enterprise.inject.spi.Bean;
25+
import jakarta.enterprise.inject.spi.BeanManager;
2626

2727
import org.apiguardian.api.API;
2828
import org.springframework.data.neo4j.config.Neo4jCdiExtension;

src/test/java/org/springframework/data/neo4j/core/transaction/Neo4jTransactionManagerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import java.util.Set;
3535
import java.util.concurrent.atomic.AtomicBoolean;
3636

37-
import javax.transaction.Status;
38-
import javax.transaction.UserTransaction;
37+
import jakarta.transaction.Status;
38+
import jakarta.transaction.UserTransaction;
3939

4040
import org.junit.jupiter.api.AfterEach;
4141
import org.junit.jupiter.api.BeforeEach;

src/test/java/org/springframework/data/neo4j/integration/cdi/Neo4jBasedService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.springframework.data.neo4j.integration.cdi;
1717

18-
import javax.inject.Inject;
18+
import jakarta.inject.Inject;
1919

2020
import org.neo4j.driver.Driver;
2121

src/test/java/org/springframework/data/neo4j/integration/cdi/Neo4jCdiExtensionIT.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@
2020

2121
import java.util.Optional;
2222

23-
import javax.enterprise.context.ApplicationScoped;
24-
import javax.enterprise.inject.AmbiguousResolutionException;
25-
import javax.enterprise.inject.Produces;
26-
import javax.enterprise.inject.se.SeContainer;
27-
import javax.enterprise.inject.se.SeContainerInitializer;
28-
import javax.inject.Singleton;
23+
import jakarta.enterprise.context.ApplicationScoped;
24+
import jakarta.enterprise.inject.AmbiguousResolutionException;
25+
import jakarta.enterprise.inject.Produces;
26+
import jakarta.enterprise.inject.se.SeContainer;
27+
import jakarta.enterprise.inject.se.SeContainerInitializer;
28+
import jakarta.inject.Singleton;
2929

3030
import org.junit.jupiter.api.Test;
3131
import org.junit.jupiter.api.extension.ExtendWith;

0 commit comments

Comments
 (0)