Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bf27621

Browse files
committed
Fix java config web app init. Add log4j, db-config.properties
1 parent add310d commit bf27621

File tree

12 files changed

+149
-201
lines changed

12 files changed

+149
-201
lines changed

pom.xml

Lines changed: 27 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -67,47 +67,16 @@
6767
<version>${spring.version}</version>
6868
</dependency>
6969

70-
<dependency>
71-
<groupId>org.springframework</groupId>
72-
<artifactId>spring-aop</artifactId>
73-
<version>${spring.version}</version>
74-
</dependency>
75-
76-
<dependency>
77-
<groupId>org.springframework</groupId>
78-
<artifactId>spring-expression</artifactId>
79-
<version>${spring.version}</version>
80-
</dependency>
81-
82-
<dependency>
83-
<groupId>org.springframework</groupId>
84-
<artifactId>spring-test</artifactId>
85-
<version>${spring.version}</version>
86-
</dependency>
87-
8870
<dependency>
8971
<groupId>org.hibernate</groupId>
9072
<artifactId>hibernate-entitymanager</artifactId>
91-
<version>4.1.6.Final</version>
73+
<version>4.2.0.Final</version>
9274
</dependency>
9375

9476
<dependency>
9577
<groupId>org.springframework.data</groupId>
9678
<artifactId>spring-data-jpa</artifactId>
97-
<version>1.2.0.RELEASE</version>
98-
</dependency>
99-
100-
<dependency>
101-
<groupId>org.springframework.data</groupId>
102-
<artifactId>spring-data-rest-webmvc</artifactId>
103-
<version>1.1.0.M1</version>
104-
</dependency>
105-
106-
<dependency>
107-
<groupId>javax.servlet</groupId>
108-
<artifactId>javax.servlet-api</artifactId>
109-
<version>3.0.1</version>
110-
<scope>provided</scope>
79+
<version>1.3.0.RELEASE</version>
11180
</dependency>
11281

11382
<!-- Hibernate Validator reference libraries of Bean validation 1.1 -->
@@ -128,9 +97,17 @@
12897
<groupId>org.jsoup</groupId>
12998
<artifactId>jsoup</artifactId>
13099
<version>1.7.2</version>
100+
<scope>runtime</scope>
131101
</dependency>
132102
<!-- End of Hibernate Validator reference libraries -->
133103

104+
<dependency>
105+
<groupId>javax.servlet</groupId>
106+
<artifactId>javax.servlet-api</artifactId>
107+
<version>3.0.1</version>
108+
<scope>provided</scope>
109+
</dependency>
110+
134111
<!-- Jackson JSON Mapper -->
135112
<dependency>
136113
<groupId>org.codehaus.jackson</groupId>
@@ -145,39 +122,11 @@
145122
<scope>test</scope>
146123
</dependency>
147124

148-
<dependency>
149-
<groupId>org.slf4j</groupId>
150-
<artifactId>slf4j-log4j12</artifactId>
151-
<version>1.7.2</version>
152-
</dependency>
153-
154-
<dependency>
155-
<groupId>org.aspectj</groupId>
156-
<artifactId>aspectjweaver</artifactId>
157-
<version>1.7.2</version>
158-
</dependency>
159-
160125
<dependency>
161126
<groupId>mysql</groupId>
162127
<artifactId>mysql-connector-java</artifactId>
163128
<version>5.1.25</version>
164-
</dependency>
165-
166-
<dependency>
167-
<groupId>commons-dbcp</groupId>
168-
<artifactId>commons-dbcp</artifactId>
169-
<version>1.4</version>
170-
</dependency>
171-
172-
<dependency>
173-
<groupId>commons-io</groupId>
174-
<artifactId>commons-io</artifactId>
175-
<version>2.4</version>
176-
</dependency>
177-
<dependency>
178-
<groupId>commons-lang</groupId>
179-
<artifactId>commons-lang</artifactId>
180-
<version>2.6</version>
129+
<scope>runtime</scope>
181130
</dependency>
182131

183132
<dependency>
@@ -187,47 +136,20 @@
187136
</dependency>
188137
</dependencies>
189138

190-
<repositories>
191-
<repository>
192-
<id>org.springframework.maven.snapshot</id>
193-
<name>Spring Maven Snapshot Repository</name>
194-
<url>http://maven.springframework.org/snapshot</url>
195-
<releases>
196-
<enabled>false</enabled>
197-
</releases>
198-
<snapshots>
199-
<enabled>true</enabled>
200-
</snapshots>
201-
</repository>
202-
<repository>
203-
<id>org.springframework.maven.milestone</id>
204-
<name>Spring Maven Milestone Repository</name>
205-
<url>http://maven.springframework.org/milestone</url>
206-
<snapshots>
207-
<enabled>false</enabled>
208-
</snapshots>
209-
</repository>
210-
<repository>
211-
<id>JBoss repository</id>
212-
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
213-
</repository>
214-
</repositories>
215-
<pluginRepositories>
216-
<pluginRepository>
217-
<id>repository.springframework.maven.milestone</id>
218-
<name>Spring Framework Maven Milestone Repository</name>
219-
<url>http://maven.springframework.org/milestone</url>
220-
</pluginRepository>
221-
</pluginRepositories>
222-
223139
<build>
224140
<finalName>javaee7-springmvc</finalName>
225141
<plugins>
142+
<plugin>
143+
<groupId>org.apache.maven.plugins</groupId>
144+
<artifactId>maven-dependency-plugin</artifactId>
145+
<version>2.8</version>
146+
</plugin>
226147
<plugin>
227148
<artifactId>maven-compiler-plugin</artifactId>
149+
<version>3.0</version>
228150
<configuration>
229-
<source>1.6</source>
230-
<target>1.6</target>
151+
<source>1.7</source>
152+
<target>1.7</target>
231153
</configuration>
232154
</plugin>
233155
<plugin>
@@ -238,6 +160,14 @@
238160
</includes>
239161
</configuration>
240162
</plugin>
163+
<plugin>
164+
<groupId>org.apache.maven.plugins</groupId>
165+
<artifactId>maven-war-plugin</artifactId>
166+
<version>2.1.1</version>
167+
<configuration>
168+
<failOnMissingWebXml>false</failOnMissingWebXml>
169+
</configuration>
170+
</plugin>
241171
<plugin>
242172
<groupId>org.apache.tomcat.maven</groupId>
243173
<artifactId>tomcat7-maven-plugin</artifactId>

src/main/java/com/sampleapp/db/domain/Person.java

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
package com.sampleapp.db.domain;
22

3-
import org.hibernate.annotations.GenericGenerator;
3+
import org.hibernate.annotations.Type;
44

55
import javax.persistence.*;
66
import java.io.Serializable;
77
import java.util.UUID;
88

99
/**
10-
* User of the Prism system. Implementation dependent on persistence store (SQL or NoSQL).
10+
* User of the Prism system.
1111
*
1212
*/
1313
@Entity
14-
public class Person implements Serializable {
14+
public class Person implements Serializable, UUIDType {
1515

1616
@Id
17-
@GeneratedValue(strategy = GenerationType.AUTO)
18-
@Column(name = "id", unique = true, nullable = false)
19-
private String id;
17+
@GeneratedValue
18+
private Long id;
2019

2120
@Column
2221
private String firstName;
@@ -28,16 +27,11 @@ public class Person implements Serializable {
2827
private String email;
2928

3029
@Column
31-
@GenericGenerator(name = "uuid", strategy = "uuid2")
30+
@Type(type = "uuid-char")
3231
private UUID uuid;
3332

34-
public Person(String firstName, String lastName, String email) {
35-
this.firstName = firstName;
36-
this.lastName = lastName;
37-
this.email = email;
38-
}
39-
4033
public String getEmail() {
34+
UUID.randomUUID();
4135
return email;
4236
}
4337

@@ -69,11 +63,11 @@ public void setUuid(UUID uuid) {
6963
this.uuid = uuid;
7064
}
7165

72-
public String getId() {
66+
public Long getId() {
7367
return id;
7468
}
7569

76-
public void setId(String id) {
70+
public void setId(Long id) {
7771
this.id = id;
7872
}
7973
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.sampleapp.db.domain;
2+
3+
import java.util.UUID;
4+
5+
public interface UUIDType {
6+
public UUID getUuid();
7+
public void setUuid(UUID uuid);
8+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package com.sampleapp.db.repository;
2+
3+
import com.sampleapp.db.domain.Person;
4+
import org.springframework.beans.factory.annotation.Autowired;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.ComponentScan;
7+
import org.springframework.context.annotation.Configuration;
8+
import org.springframework.context.annotation.PropertySource;
9+
import org.springframework.core.env.Environment;
10+
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
11+
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
12+
import org.springframework.jdbc.datasource.DriverManagerDataSource;
13+
import org.springframework.orm.jpa.JpaTransactionManager;
14+
import org.springframework.orm.jpa.JpaVendorAdapter;
15+
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
16+
import org.springframework.orm.jpa.vendor.Database;
17+
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
18+
import org.springframework.transaction.PlatformTransactionManager;
19+
import org.springframework.transaction.annotation.EnableTransactionManagement;
20+
21+
import javax.sql.DataSource;
22+
import java.util.Properties;
23+
24+
//TODO: Need to figure out why this config file does not load from init package
25+
@Configuration
26+
@EnableTransactionManagement
27+
@EnableJpaRepositories
28+
@ComponentScan(basePackages = {"com.sampleapp.db.domain"})
29+
@PropertySource("classpath:/db-config.properties")
30+
public class PersistenceConfiguration {
31+
32+
public PersistenceConfiguration() {
33+
super();
34+
}
35+
36+
@Autowired
37+
private Environment env;
38+
39+
@Bean
40+
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
41+
final LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
42+
factoryBean.setDataSource(dataSource());
43+
factoryBean.setPackagesToScan(Person.class.getPackage().getName());
44+
final JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter() {
45+
{
46+
setDatabase(Database.MYSQL);
47+
setDatabasePlatform(env.getProperty("dataSource.dialect"));
48+
setShowSql(Boolean.valueOf(true));
49+
setGenerateDdl(Boolean.valueOf(true));
50+
}
51+
};
52+
factoryBean.setJpaVendorAdapter(vendorAdapter);
53+
factoryBean.setJpaProperties(additionlProperties());
54+
return factoryBean;
55+
}
56+
57+
@Bean
58+
public DataSource dataSource() {
59+
DriverManagerDataSource dataSource = new DriverManagerDataSource();
60+
dataSource.setDriverClassName(env.getProperty("dataSource.driverClass"));
61+
dataSource.setUrl(env.getProperty("dataSource.url"));
62+
dataSource.setUsername(env.getProperty("dataSource.user"));
63+
dataSource.setPassword(env.getProperty("dataSource.password"));
64+
return dataSource;
65+
}
66+
67+
@Bean
68+
public PlatformTransactionManager transactionManager() {
69+
JpaTransactionManager transactionManager = new JpaTransactionManager();
70+
transactionManager.setEntityManagerFactory(
71+
this.entityManagerFactory().getObject());
72+
return transactionManager;
73+
}
74+
75+
@Bean
76+
public PersistenceExceptionTranslationPostProcessor exceptionTranslation(){
77+
return new PersistenceExceptionTranslationPostProcessor();
78+
}
79+
80+
final Properties additionlProperties() {
81+
return new Properties() {
82+
{
83+
setProperty("hibernate.hbm2ddl.auto", "auto");
84+
setProperty("hibernate.ejb.naming_strategy", org.hibernate.cfg.ImprovedNamingStrategy.class.getName());
85+
}
86+
};
87+
}
88+
}

src/main/java/com/sampleapp/db/repository/PersonRepository.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,12 @@
44
import org.springframework.data.repository.PagingAndSortingRepository;
55
import org.springframework.data.repository.query.Param;
66

7-
import java.util.List;
87
import java.util.UUID;
98

109
/**
1110
* Services for PrimUser persistence purposes.
1211
*/
1312
public interface PersonRepository extends PagingAndSortingRepository<Person, Long> {
1413

15-
Person findByUsername(@Param("username") String username);
16-
17-
Person findByUuid(@Param("uuid") UUID uuid);
18-
19-
List<Person> findPrismUsersByFirstNameOrLastName(@Param("firstName") String firstName,
20-
@Param("lastName") String lastName);
14+
public Person findByUuid(@Param("uuid") UUID uuid);
2115
}

0 commit comments

Comments
 (0)