Skip to content

Commit 86932cb

Browse files
timis1timis1
and
timis1
authored
JAVA-20168 Migrating spring-jpa (#14257)
* JAVA-20168 Migrating spring-jpa * JAVA-20168 Migrate spring-jpa-2 * JAVA-20168 Remove unneeded annotation --------- Co-authored-by: timis1 <[email protected]>
1 parent c0171ff commit 86932cb

File tree

56 files changed

+188
-190
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+188
-190
lines changed

persistence-modules/pom.xml

+2-3
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
<module>spring-data-arangodb</module>
6767
<module>spring-data-cassandra</module>
6868
<module>spring-data-cassandra-test</module>
69-
<!-- <module>spring-data-cassandra-reactive</module> FAILED -->
7069
<module>spring-data-cosmosdb</module>
7170
<module>spring-data-couchbase-2</module>
7271
<module>spring-data-dynamodb</module>
@@ -99,8 +98,8 @@
9998
<module>spring-data-solr</module>
10099
<!-- <module>spring-hibernate-3</module> FAILED -->
101100
<!-- <module>spring-hibernate-5</module> FAILED --> <!-- long running -->
102-
<!-- <module>spring-jpa</module>
103-
<module>spring-jpa-2</module> FAILED -->
101+
<module>spring-jpa</module>
102+
<module>spring-jpa-2</module>
104103
<module>spring-jdbc</module>
105104
<module>spring-jooq</module>
106105
<module>spring-mybatis</module>

persistence-modules/spring-jpa-2/pom.xml

+16-5
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
<dependency>
7272
<groupId>org.postgresql</groupId>
7373
<artifactId>postgresql</artifactId>
74-
<version>42.4.0</version>
74+
<version>${postgresql.version}</version>
7575
<scope>runtime</scope>
7676
</dependency>
7777
<dependency>
@@ -97,15 +97,26 @@
9797
<version>${org.springframework.version}</version>
9898
<scope>test</scope>
9999
</dependency>
100+
<dependency>
101+
<groupId>com.fasterxml.jackson.core</groupId>
102+
<artifactId>jackson-databind</artifactId>
103+
<version>${jakson-databind.version}</version>
104+
</dependency>
105+
<dependency>
106+
<groupId>com.fasterxml.jackson.core</groupId>
107+
<artifactId>jackson-core</artifactId>
108+
<version>${jakson-core.version}</version>
109+
</dependency>
100110
</dependencies>
101111

102112
<properties>
103113
<!-- Spring -->
104-
<org.springframework.version>5.2.0.RELEASE</org.springframework.version>
105-
<spring-boot.version>2.2.6.RELEASE</spring-boot.version>
114+
<org.springframework.version>6.0.9</org.springframework.version>
115+
<spring-boot.version>3.1.0</spring-boot.version>
106116
<!-- persistence -->
107-
<tomcat-dbcp.version>9.0.0.M26</tomcat-dbcp.version>
108-
<h2.version>2.1.214</h2.version>
117+
<tomcat-dbcp.version>10.1.9</tomcat-dbcp.version>
118+
<jakson-databind.version>2.15.1</jakson-databind.version>
119+
<jakson-core.version>2.14.2</jakson-core.version>
109120
</properties>
110121

111122
</project>

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/hibernate/bootstrap/HibernateXMLConf.java

-12
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,9 @@
11
package com.baeldung.hibernate.bootstrap;
22

3-
import com.google.common.base.Preconditions;
4-
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;
5-
import org.springframework.beans.factory.annotation.Autowired;
6-
import org.springframework.context.annotation.Bean;
73
import org.springframework.context.annotation.Configuration;
84
import org.springframework.context.annotation.ImportResource;
9-
import org.springframework.context.annotation.PropertySource;
10-
import org.springframework.core.env.Environment;
11-
import org.springframework.orm.hibernate5.HibernateTransactionManager;
12-
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
13-
import org.springframework.transaction.PlatformTransactionManager;
145
import org.springframework.transaction.annotation.EnableTransactionManagement;
156

16-
import javax.sql.DataSource;
17-
import java.util.Properties;
18-
197
@Configuration
208
@EnableTransactionManagement
219
@ImportResource({ "classpath:hibernate5Configuration.xml" })

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/hibernate/bootstrap/model/TestEntity.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.baeldung.hibernate.bootstrap.model;
22

3-
import javax.persistence.Entity;
4-
import javax.persistence.Id;
3+
import jakarta.persistence.Entity;
4+
import jakarta.persistence.Id;
55

66
@Entity
77
public class TestEntity {

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Course.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.manytomany.model;
22

3-
import javax.persistence.*;
3+
import jakarta.persistence.*;
44
import java.util.HashSet;
55
import java.util.Set;
66

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRating.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.manytomany.model;
22

3-
import javax.persistence.*;
3+
import jakarta.persistence.*;
44

55
@Entity
66
@Table(name = "course_rating")

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRatingKey.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.baeldung.manytomany.model;
22

3-
import javax.persistence.Column;
4-
import javax.persistence.Embeddable;
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Embeddable;
55
import java.io.Serializable;
66

77
@Embeddable

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/CourseRegistration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.manytomany.model;
22

3-
import javax.persistence.*;
3+
import jakarta.persistence.*;
44
import java.time.LocalDateTime;
55

66
@Entity

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomany/model/Student.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.manytomany.model;
22

3-
import javax.persistence.*;
3+
import jakarta.persistence.*;
44
import java.util.HashSet;
55
import java.util.Set;
66

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomanyremoval/Author.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.manytomanyremoval;
22

3-
import javax.persistence.*;
3+
import jakarta.persistence.*;
44
import java.util.HashSet;
55
import java.util.Set;
66

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomanyremoval/Book.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.baeldung.manytomanyremoval;
22

3-
4-
import javax.persistence.*;
3+
import jakarta.persistence.*;
54
import java.util.HashSet;
65
import java.util.Set;
76

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomanyremoval/Category.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.manytomanyremoval;
22

3-
import javax.persistence.*;
3+
import jakarta.persistence.*;
44

55
@Entity
66
@Table(name = "category")

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/manytomanyremoval/Post.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.baeldung.manytomanyremoval;
22

3-
4-
import javax.persistence.*;
3+
import jakarta.persistence.*;
54
import java.util.HashSet;
65
import java.util.Set;
76

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/multitenant/config/TenantFilter.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import org.springframework.core.annotation.Order;
55
import org.springframework.stereotype.Component;
66

7-
import javax.servlet.*;
8-
import javax.servlet.http.HttpServletRequest;
7+
import jakarta.servlet.*;
8+
import jakarta.servlet.http.HttpServletRequest;
99
import java.io.IOException;
1010

1111
@Component

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/multitenant/domain/Employee.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.baeldung.multitenant.domain;
22

3-
import javax.persistence.Column;
4-
import javax.persistence.Entity;
5-
import javax.persistence.Id;
6-
import javax.persistence.Table;
7-
import javax.persistence.GeneratedValue;
8-
import javax.persistence.GenerationType;
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.Id;
6+
import jakarta.persistence.Table;
7+
import jakarta.persistence.GeneratedValue;
8+
import jakarta.persistence.GenerationType;
99

1010
@Entity
1111
@Table(name = "employee")

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/multitenant/security/AuthenticationFilter.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
import org.springframework.security.core.context.SecurityContextHolder;
55
import org.springframework.web.filter.GenericFilterBean;
66

7-
import javax.servlet.FilterChain;
8-
import javax.servlet.ServletException;
9-
import javax.servlet.ServletRequest;
10-
import javax.servlet.ServletResponse;
11-
import javax.servlet.http.HttpServletRequest;
7+
import jakarta.servlet.FilterChain;
8+
import jakarta.servlet.ServletException;
9+
import jakarta.servlet.ServletRequest;
10+
import jakarta.servlet.ServletResponse;
11+
import jakarta.servlet.http.HttpServletRequest;
1212
import java.io.IOException;
1313

1414
public class AuthenticationFilter extends GenericFilterBean {

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/multitenant/security/AuthenticationService.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
66
import org.springframework.security.core.Authentication;
77

8-
import javax.servlet.http.HttpServletRequest;
9-
import javax.servlet.http.HttpServletResponse;
8+
import jakarta.servlet.http.HttpServletRequest;
9+
import jakarta.servlet.http.HttpServletResponse;
1010
import java.util.Collections;
1111
import java.util.Date;
1212

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/multitenant/security/LoginFilter.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
1010
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
1111

12-
import javax.servlet.FilterChain;
13-
import javax.servlet.ServletException;
14-
import javax.servlet.http.HttpServletRequest;
15-
import javax.servlet.http.HttpServletResponse;
12+
import jakarta.servlet.FilterChain;
13+
import jakarta.servlet.ServletException;
14+
import jakarta.servlet.http.HttpServletRequest;
15+
import jakarta.servlet.http.HttpServletResponse;
1616
import java.io.IOException;
1717
import java.util.Collection;
1818
import java.util.Collections;

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/multitenant/security/SecurityConfiguration.java

+35-31
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,59 @@
22

33
import org.springframework.context.annotation.Bean;
44
import org.springframework.context.annotation.Configuration;
5-
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
5+
import org.springframework.security.authentication.AuthenticationManager;
6+
import org.springframework.security.config.Customizer;
67
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
78
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
8-
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
9+
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
10+
import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer;
911
import org.springframework.security.config.http.SessionCreationPolicy;
12+
import org.springframework.security.core.userdetails.User;
13+
import org.springframework.security.core.userdetails.UserDetails;
1014
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
1115
import org.springframework.security.crypto.password.PasswordEncoder;
16+
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
17+
import org.springframework.security.web.SecurityFilterChain;
1218
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
1319

1420
@Configuration
1521
@EnableWebSecurity
16-
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
22+
public class SecurityConfiguration {
1723

18-
@Override
19-
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
20-
auth.inMemoryAuthentication()
21-
.passwordEncoder(passwordEncoder())
22-
.withUser("user")
23-
.password(passwordEncoder().encode("baeldung"))
24-
.roles("tenant_1");
24+
@Bean
25+
public InMemoryUserDetailsManager userDetailsService() {
26+
UserDetails user1 = User
27+
.withUsername("user")
28+
.password(passwordEncoder().encode("baeldung"))
29+
.roles("tenant_1")
30+
.build();
2531

26-
auth.inMemoryAuthentication()
27-
.passwordEncoder(passwordEncoder())
28-
.withUser("admin")
29-
.password(passwordEncoder().encode("baeldung"))
30-
.roles("tenant_2");
32+
UserDetails user2 = User
33+
.withUsername("admin")
34+
.password(passwordEncoder().encode("baeldung"))
35+
.roles("tenant_2")
36+
.build();
37+
return new InMemoryUserDetailsManager(user1, user2);
3138
}
3239

3340
@Bean
3441
public PasswordEncoder passwordEncoder(){
3542
return new BCryptPasswordEncoder();
3643
}
3744

38-
@Override
39-
protected void configure(HttpSecurity http) throws Exception {
45+
@Bean
46+
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
47+
final AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class);
4048
http
41-
.authorizeRequests()
42-
.antMatchers("/login").permitAll()
43-
.anyRequest().authenticated()
44-
.and()
45-
.sessionManagement()
46-
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
47-
.and()
48-
.addFilterBefore(new LoginFilter("/login", authenticationManager()),
49-
UsernamePasswordAuthenticationFilter.class)
50-
.addFilterBefore(new AuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
51-
.csrf().disable()
52-
.headers().frameOptions().disable()
53-
.and()
54-
.httpBasic();
49+
.authorizeHttpRequests(authorize ->
50+
authorize.requestMatchers("/login").permitAll().anyRequest().authenticated())
51+
.sessionManagement(securityContext -> securityContext.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
52+
.addFilterBefore(new LoginFilter("/login", authenticationManager), UsernamePasswordAuthenticationFilter.class)
53+
.addFilterBefore(new AuthenticationFilter(), UsernamePasswordAuthenticationFilter.class)
54+
.csrf(AbstractHttpConfigurer::disable)
55+
.headers(header -> header.frameOptions(HeadersConfigurer.FrameOptionsConfig::disable))
56+
.httpBasic(Customizer.withDefaults());
57+
58+
return http.build();
5559
}
5660
}

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/spring/dao/generics/AbstractJpaDAO.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.baeldung.spring.dao.generics;
22

3-
import javax.persistence.EntityManager;
4-
import javax.persistence.PersistenceContext;
3+
import jakarta.persistence.EntityManager;
4+
import jakarta.persistence.PersistenceContext;
55
import java.io.Serializable;
66
import java.util.List;
77

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/spring/dao/generics/Foo.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.hibernate.annotations.CacheConcurrencyStrategy;
44

5-
import javax.persistence.*;
5+
import jakarta.persistence.*;
66
import java.io.Serializable;
77

88
@Entity

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/spring/hibernate/Foo.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.baeldung.spring.hibernate;
22

3-
import javax.persistence.*;
3+
import jakarta.persistence.*;
44
import java.io.Serializable;
55

66
@Entity

persistence-modules/spring-jpa-2/src/main/java/com/baeldung/spring/transaction/Course.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import java.io.Serializable;
44

5-
import javax.persistence.Column;
6-
import javax.persistence.Entity;
7-
import javax.persistence.Id;
8-
import javax.persistence.Table;
5+
import jakarta.persistence.Column;
6+
import jakarta.persistence.Entity;
7+
import jakarta.persistence.Id;
8+
import jakarta.persistence.Table;
99

1010
@Entity
1111
@Table(name = "course")

persistence-modules/spring-jpa-2/src/main/resources/persistence-mysql.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jdbc.user=tutorialuser
55
jdbc.pass=tutorialmy5ql
66

77
# hibernate.X
8-
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
8+
hibernate.dialect=org.hibernate.dialect.MySQLDialect
99
hibernate.show_sql=false
1010
hibernate.hbm2ddl.auto=create-drop
1111

0 commit comments

Comments
 (0)