Skip to content

Commit

Permalink
96 started adding files for the boot example
Browse files Browse the repository at this point in the history
  • Loading branch information
iuliana committed Jul 16, 2017
1 parent b20902d commit cfcad45
Show file tree
Hide file tree
Showing 35 changed files with 769 additions and 96 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ build
gradle
gradlew*
*.class
transaction-logs

# Mobile Tools for Java (J2ME)
.mtj.tmp/
Expand Down
35 changes: 19 additions & 16 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -46,21 +46,22 @@ ext {
junit5Version = '5.0.0-M4'

spring = [
context : "org.springframework:spring-context:$springVersion",
webmvc : "org.springframework:spring-webmvc:$springVersion",
aop : "org.springframework:spring-aop:$springVersion",
aspects : "org.springframework:spring-aspects:$springVersion",
tx : "org.springframework:spring-tx:$springVersion",
jdbc : "org.springframework:spring-jdbc:$springVersion",
contextSupport: "org.springframework:spring-context-support:$springVersion",
orm : "org.springframework:spring-orm:$springVersion",
data : "org.springframework.data:spring-data-jpa:$springDataVersion",
test : "org.springframework:spring-test:$springVersion",
jms : "org.springframework:spring-jms:$springVersion",
oxm : "org.springframework:spring-oxm:$springVersion",
securityWeb : "org.springframework.security:spring-security-web:$springSecurityVersion",
securityConfig: "org.springframework.security:spring-security-config:$springSecurityVersion",
rabbit : "org.springframework.amqp:spring-rabbit:$springAmqpVersion"
context : "org.springframework:spring-context:$springVersion",
webmvc : "org.springframework:spring-webmvc:$springVersion",
aop : "org.springframework:spring-aop:$springVersion",
aspects : "org.springframework:spring-aspects:$springVersion",
tx : "org.springframework:spring-tx:$springVersion",
jdbc : "org.springframework:spring-jdbc:$springVersion",
contextSupport : "org.springframework:spring-context-support:$springVersion",
orm : "org.springframework:spring-orm:$springVersion",
data : "org.springframework.data:spring-data-jpa:$springDataVersion",
test : "org.springframework:spring-test:$springVersion",
jms : "org.springframework:spring-jms:$springVersion",
oxm : "org.springframework:spring-oxm:$springVersion",
securityWeb : "org.springframework.security:spring-security-web:$springSecurityVersion",
securityConfig : "org.springframework.security:spring-security-config:$springSecurityVersion",
securityTaglibs: "org.springframework.security:spring-security-taglibs:$springSecurityVersion",
rabbit : "org.springframework.amqp:spring-rabbit:$springAmqpVersion"

]

Expand Down Expand Up @@ -88,7 +89,9 @@ ext {
starterJta : "org.springframework.boot:spring-boot-starter-jta-atomikos:$bootVersion",
starterJms : "org.springframework.boot:spring-boot-starter-artemis:$bootVersion",
starterRabbitmq : "org.springframework.boot:spring-boot-starter-amqp:$bootVersion",
actuator : "org.springframework.boot:spring-boot-starter-actuator:$bootVersion"
starterThyme : "org.springframework.boot:spring-boot-starter-thymeleaf:$bootVersion",
starterSecurity : "org.springframework.boot:spring-boot-starter-security:$bootVersion"

]

testing = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class WebApplication {

private static Logger logger = LoggerFactory.getLogger(WebApplication.class);

public static void main(String[] args) throws Exception {
public static void main(String... args) throws Exception {
ConfigurableApplicationContext ctx = SpringApplication.run(WebApplication.class, args);
assert (ctx != null);
logger.info("Application started...");
Expand Down
2 changes: 1 addition & 1 deletion chapter05/aspectj-boot/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jar {
attributes(
"Created-By": "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class": "com.apress.prospring5.ch4.Application",
"Main-Class": "com.apress.prospring5.ch5.Application",
"Class-Path": configurations.compile.collect { it.getName() }.join(' ')
)
}
Expand Down
1 change: 1 addition & 0 deletions chapter08/boot-jpa/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jar {
manifest {
attributes( "Created-By" : "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class" : "com.apress.prospring5.ch8.Application",
"Class-Path" : configurations.compile.collect { it.getName() }.join(' '))
}
}
1 change: 1 addition & 0 deletions chapter09/boot-jta/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ jar {
manifest {
attributes("Created-By": "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class" : "com.apress.prospring5.ch9.Application",
"Class-Path": configurations.compile.collect { it.getName() }.join(' '))
}
}
1 change: 1 addition & 0 deletions chapter12/boot-amqp/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jar {
manifest {
attributes("Created-By": "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class" : "com.apress.prospring5.ch12.Application",
"Class-Path": configurations.compile.collect { it.getName() }.join(' '))
}
}
1 change: 1 addition & 0 deletions chapter12/boot-jms/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jar {
manifest {
attributes("Created-By": "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class" : "com.apress.prospring5.ch12.Application",
"Class-Path": configurations.compile.collect { it.getName() }.join(' '))
}
}
1 change: 1 addition & 0 deletions chapter12/boot-rest/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jar {
manifest {
attributes("Created-By": "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class" : "com.apress.prospring5.ch12.Application",
"Class-Path": configurations.compile.collect { it.getName() }.join(' '))
}
}
1 change: 1 addition & 0 deletions chapter15/boot-jmx/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ jar {
manifest {
attributes("Created-By": "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class" : "com.apress.prospring5.ch15.Application",
"Class-Path": configurations.compile.collect { it.getName() }.join(' '))
}
}
5 changes: 3 additions & 2 deletions chapter16/chapter16.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@ subprojects {

dependencies {
//we specify these dependencies for all submodules, except the boot module, that defines its own
compile misc.guava
if (!project.name.contains("boot")) {
compile (spring.contextSupport) {
exclude module: 'spring-context'
exclude module: 'spring-beans'
exclude module: 'spring-core'
}
compile (spring.securityWeb) {
compile (spring.securityTaglibs) {
exclude module: 'spring-web'
exclude module: 'spring-context'
exclude module: 'spring-beans'
Expand All @@ -35,7 +36,7 @@ subprojects {
exclude module: 'spring-beans'
exclude module: 'spring-core'
}
compile misc.slf4jJcl, misc.logback, misc.lang3, hibernate.em, hibernate.validator, misc.guava, db.h2,
compile misc.slf4jJcl, misc.logback, misc.lang3, hibernate.em, hibernate.validator, db.h2,
spring.data, spring.webmvc, misc.castor, misc.validation, misc.tiles, misc.jstl,
misc.jacksonDatabind, misc.servlet, misc.io
}
Expand Down
31 changes: 31 additions & 0 deletions chapter16/singer-webapp-boot/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "http://repo.spring.io/release" }
maven { url "http://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/libs-snapshot" }
maven { url "http://repo.spring.io/milestone" }
maven { url "https://repo.spring.io/libs-milestone" }
}

dependencies {
classpath boot.springBootPlugin
}
}

apply plugin: 'org.springframework.boot'

dependencies {
compile boot.starterJpa, boot.starterJta, db.h2, boot.starterWeb, boot.starterThyme, boot.starterSecurity
testCompile boot.starterTest
}

jar {
manifest {
attributes("Created-By": "Iuliana Cosmina",
"Specification-Title": "Pro Spring 5",
"Main-Class" : "com.apress.prospring5.ch16.SingerApplication",
"Class-Path": configurations.compile.collect { it.getName() }.join(' '))
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.apress.prospring5.ch16;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
* Created by iuliana.cosmina on 7/16/17.
*/
@SpringBootApplication(scanBasePackages = {"com.apress.prospring5.ch16.web", "com.apress.prospring5.ch16.services"})
public class SingerApplication {

private static Logger logger = LoggerFactory.getLogger(SingerApplication.class);

public static void main(String... args) throws Exception {
ConfigurableApplicationContext ctx = SpringApplication.run(SingerApplication.class, args);
assert (ctx != null);
logger.info("Application started...");
System.in.read();
ctx.close();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.apress.prospring5.ch16;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
* Created by iuliana.cosmina on 7/16/17.
*/
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity.authorizeRequests().antMatchers("/").permitAll();
httpSecurity.csrf().disable();
httpSecurity.headers().frameOptions().disable();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
package com.apress.prospring5.ch16.entities;


import org.hibernate.validator.constraints.NotBlank;

import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

import static javax.persistence.GenerationType.IDENTITY;

@Entity
@Table(name = "singer")
public class Singer implements Serializable {
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "ID")
private Long id;

@Version
@Column(name = "VERSION")
private int version;

@NotBlank(message="{validation.firstname.NotBlank.message}")
@Size(min=2, max=60, message="{validation.firstname.Size.message}")
@Column(name = "FIRST_NAME")
private String firstName;

@NotBlank(message="{validation.lastname.NotBlank.message}")
@Size(min=1, max=40, message="{validation.lastname.Size.message}")
@Column(name = "LAST_NAME")
private String lastName;

@NotNull
@Temporal(TemporalType.DATE)
@Column(name = "BIRTH_DATE")
private Date birthDate;

@Column(name = "DESCRIPTION")
private String description;

@Basic(fetch= FetchType.LAZY)
@Lob
@Column(name = "PHOTO")
private byte[] photo;


public Long getId() {
return id;
}

public int getVersion() {
return version;
}

public String getFirstName() {
return firstName;
}


public String getLastName() {
return lastName;
}

public void setId(Long id) {
this.id = id;
}

public void setVersion(int version) {
this.version = version;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}

public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}

public Date getBirthDate() {
return birthDate;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

public byte[] getPhoto() {
return photo;
}

public void setPhoto(byte[] photo) {
this.photo = photo;
}
@Transient
public String getBirthDateString() {
String birthDateString = "";
if (birthDate != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
birthDateString = sdf.format(birthDate);
}
return birthDateString;
}

@Override
public String toString() {
return "Singer - Id: " + id + ", First name: " + firstName
+ ", Last name: " + lastName + ", Birthday: " + birthDate
+ ", Description: " + description;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.apress.prospring5.ch16.repos;

import com.apress.prospring5.ch16.entities.Singer;
import org.springframework.data.repository.PagingAndSortingRepository;

public interface SingerRepository extends PagingAndSortingRepository<Singer, Long> {
}
Loading

0 comments on commit cfcad45

Please sign in to comment.