Skip to content

Commit 964ab7c

Browse files
committed
upgrade to Spring Boot 2.1.6
1 parent bfa9ada commit 964ab7c

File tree

8 files changed

+110
-48
lines changed

8 files changed

+110
-48
lines changed

README.md

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
![GitHub release](https://img.shields.io/github/release/hank-cp/pf4j-spring-boot.svg)
2+
![Travis (.org)](https://img.shields.io/travis/hank-cp/pf4j-spring-boot.svg)
3+
![GitHub](https://img.shields.io/github/license/hank-cp/pf4j-spring-boot.svg)
4+
![GitHub last commit](https://img.shields.io/github/last-commit/hank-cp/pf4j-spring-boot.svg)
5+
16
pf4j-spring-boot introduce plugin oriented programming to Spring Boot. It is inspired and builds
27
on top of [Pf4j](https://pf4j.org/) project.
38

build.gradle

+54-44
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,30 @@ def isApplicationProject(String projectName) {
1818
}
1919

2020
buildscript {
21-
ext.springBootVersion = '2.0.5.RELEASE'
22-
2321
repositories {
2422
jcenter()
2523
mavenCentral()
2624
maven { url 'http://repo.spring.io/plugins-release' }
2725
}
2826
dependencies {
29-
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
3027
classpath "org.yaml:snakeyaml:1.19"
3128
classpath 'ch.raffael.markdown-doclet:markdown-doclet:1.4'
3229
}
3330
}
3431

35-
//*************************************************************************
36-
// IDEA
37-
//*************************************************************************
38-
3932
plugins {
4033
id 'idea'
34+
id "io.spring.dependency-management" version "1.0.8.RELEASE"
35+
id "org.springframework.boot" version "2.1.6.RELEASE" apply false
4136
id 'nu.studer.jooq' version '3.0.3' apply false
4237
id 'org.flywaydb.flyway' version "5.2.4" apply false
4338
}
4439

40+
41+
//*************************************************************************
42+
// IDEA
43+
//*************************************************************************
44+
4545
idea {
4646
module {
4747
inheritOutputDirs = true
@@ -62,11 +62,11 @@ subprojects {
6262
}
6363

6464
apply plugin: 'java'
65-
apply plugin: 'application'
66-
apply plugin: 'org.springframework.boot'
6765
apply plugin: 'io.spring.dependency-management'
6866
apply plugin: 'ch.raffael.markdown-doclet'
6967
if (isApplicationProject(name)) {
68+
apply plugin: 'application'
69+
apply plugin: 'org.springframework.boot'
7070
apply plugin: 'nu.studer.jooq'
7171
apply plugin: 'org.flywaydb.flyway'
7272
}
@@ -129,55 +129,65 @@ subprojects {
129129
}
130130

131131
//*************************************************************************
132-
// Application & Distribution
132+
// Build Tasks
133133
//*************************************************************************
134134

135-
startScripts {
136-
dependsOn setProperties
137-
doFirst {
138-
it.setApplicationName("$executable")
139-
it.defaultJvmOpts.add("-Dserver.port=$http_port")
140-
}
141-
startScripts.defaultJvmOpts.add("-XX:NewSize=192m")
142-
startScripts.defaultJvmOpts.add("-XX:+UseParallelOldGC")
143-
startScripts.defaultJvmOpts.add("-XX:+UseAdaptiveSizePolicy")
144-
startScripts.defaultJvmOpts.add("-XX:MaxGCPauseMillis=1000")
145-
startScripts.defaultJvmOpts.add("-Dfile.encoding=UTF-8")
146-
startScripts.defaultJvmOpts.add("-Djava.security.egd=file:/dev/./urandom")
147-
148-
if (checkProperty('java_max_memory')) {
149-
startScripts.defaultJvmOpts.add("-Xmx$java_max_memory")
150-
}
151-
if (checkProperty('java_min_memory')) {
152-
startScripts.defaultJvmOpts.add("-Xms$java_min_memory")
153-
}
154-
155-
if (checkProperty("jmx_host")) {
156-
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote")
157-
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.authenticate=false")
158-
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.ssl=false")
159-
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.local.only=false")
160-
startScripts.defaultJvmOpts.add("-Djava.rmi.server.hostname=$jmx_host")
161-
if (checkProperty("jmx_port")) {
162-
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.port=$jmx_port")
163-
}
164-
}
135+
task("buildApp") {
136+
finalizedBy jar
165137
}
166138

167-
if (isApplicationProject(name)) {
168-
169139
//*************************************************************************
170140
// Spring Boot
171141
//*************************************************************************
172142

143+
dependencyManagement {
144+
imports {
145+
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
146+
}
147+
}
148+
149+
if (isApplicationProject(name)) {
150+
173151
bootRun {
174152
doFirst {
175153
jvmArgs = ["-Dfile.encoding=UTF-8", "-Dserver.port=${http_port}"]
176154
}
177155
}
178156

179-
task("buildApp") {
180-
finalizedBy jar
157+
//*************************************************************************
158+
// Application & Distribution
159+
//*************************************************************************
160+
161+
startScripts {
162+
dependsOn setProperties
163+
doFirst {
164+
it.setApplicationName("$executable")
165+
it.defaultJvmOpts.add("-Dserver.port=$http_port")
166+
}
167+
startScripts.defaultJvmOpts.add("-XX:NewSize=192m")
168+
startScripts.defaultJvmOpts.add("-XX:+UseParallelOldGC")
169+
startScripts.defaultJvmOpts.add("-XX:+UseAdaptiveSizePolicy")
170+
startScripts.defaultJvmOpts.add("-XX:MaxGCPauseMillis=1000")
171+
startScripts.defaultJvmOpts.add("-Dfile.encoding=UTF-8")
172+
startScripts.defaultJvmOpts.add("-Djava.security.egd=file:/dev/./urandom")
173+
174+
if (checkProperty('java_max_memory')) {
175+
startScripts.defaultJvmOpts.add("-Xmx$java_max_memory")
176+
}
177+
if (checkProperty('java_min_memory')) {
178+
startScripts.defaultJvmOpts.add("-Xms$java_min_memory")
179+
}
180+
181+
if (checkProperty("jmx_host")) {
182+
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote")
183+
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.authenticate=false")
184+
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.ssl=false")
185+
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.local.only=false")
186+
startScripts.defaultJvmOpts.add("-Djava.rmi.server.hostname=$jmx_host")
187+
if (checkProperty("jmx_port")) {
188+
startScripts.defaultJvmOpts.add("-Dcom.sun.management.jmxremote.port=$jmx_port")
189+
}
190+
}
181191
}
182192

183193
if (project.hasProperty("db.url")) {

demo-app/src/main/java/demo/pf4j/app/DemoApp.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -22,30 +22,37 @@
2222
import org.modelmapper.jooq.RecordValueReader;
2323
import org.springframework.boot.SpringApplication;
2424
import org.springframework.boot.autoconfigure.SpringBootApplication;
25+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2526
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
2627
import org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration;
28+
import org.springframework.boot.builder.SpringApplicationBuilder;
2729
import org.springframework.context.annotation.Bean;
28-
import org.springframework.context.annotation.EnableAspectJAutoProxy;
29-
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
30+
import org.springframework.context.annotation.Profile;
3031

3132
/**
3233
* @author <a href="https://github.com/hank-cp">Hank CP</a>
3334
*/
3435
@SpringBootApplication(scanBasePackages = "demo.pf4j", exclude = {
3536
SecurityAutoConfiguration.class, SecurityFilterAutoConfiguration.class
3637
})
38+
@Profile("no_security")
3739
public class DemoApp {
3840

3941
public static void main(String[] args) {
40-
SpringApplication.run(DemoApp.class, args);
42+
SpringApplicationBuilder builder = new SpringApplicationBuilder();
43+
builder.profiles("no_security");
44+
builder.sources(DemoApp.class);
45+
builder.build().run();
4146
}
4247

4348
@Bean
49+
@ConditionalOnMissingBean
4450
public ApplicationContextProvider applicationContextProvider() {
4551
return new ApplicationContextProvider();
4652
}
4753

4854
@Bean
55+
@ConditionalOnMissingBean
4956
public ModelMapper modelMapper() {
5057
ModelMapper mapper = new ModelMapper();
5158
mapper.getConfiguration().setSourceNameTokenizer(NameTokenizers.CAMEL_CASE)

demo-app/src/main/java/demo/security/DemoSecurityApp.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,15 @@
1515
*/
1616
package demo.security;
1717

18+
import demo.pf4j.app.DemoApp;
1819
import demo.pf4j.shared.IdsConverter;
1920
import demo.pf4j.shared.spring.ApplicationContextProvider;
2021
import org.modelmapper.ModelMapper;
2122
import org.modelmapper.convention.NameTokenizers;
2223
import org.modelmapper.jooq.RecordValueReader;
2324
import org.springframework.boot.SpringApplication;
2425
import org.springframework.boot.autoconfigure.SpringBootApplication;
26+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2527
import org.springframework.context.annotation.Bean;
2628
import org.springframework.context.annotation.EnableAspectJAutoProxy;
2729
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
@@ -39,17 +41,18 @@ public static void main(String[] args) {
3941
}
4042

4143
@Bean
44+
@ConditionalOnMissingBean
4245
public ApplicationContextProvider applicationContextProvider() {
4346
return new ApplicationContextProvider();
4447
}
4548

4649
@Bean
50+
@ConditionalOnMissingBean
4751
public ModelMapper modelMapper() {
4852
ModelMapper mapper = new ModelMapper();
4953
mapper.getConfiguration().setSourceNameTokenizer(NameTokenizers.CAMEL_CASE)
5054
.addValueReader(new RecordValueReader());
5155
mapper.addConverter(new IdsConverter());
5256
return mapper;
5357
}
54-
5558
}

demo-app/src/test/java/demo/pf4j/app/PluginIntegrationTest.java

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.context.ApplicationContext;
2828
import org.springframework.http.MediaType;
2929
import org.springframework.test.annotation.Rollback;
30+
import org.springframework.test.context.ActiveProfiles;
3031
import org.springframework.test.context.TestPropertySource;
3132
import org.springframework.test.context.junit4.SpringRunner;
3233
import org.springframework.test.web.servlet.MockMvc;
@@ -52,6 +53,7 @@
5253
"org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration")
5354
@AutoConfigureMockMvc(secure = false)
5455
@Rollback
56+
@ActiveProfiles("no_security")
5557
public class PluginIntegrationTest {
5658

5759
@Autowired

pf4j-spring-boot-starter/build.gradle

+17
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
plugins {
2+
id 'java-library'
3+
id 'maven'
4+
}
5+
6+
task sourcesJar(type: Jar) {
7+
from sourceSets.main.allJava
8+
archiveClassifier = 'sources'
9+
}
10+
11+
task javadocJar(type: Jar) {
12+
from javadoc
13+
archiveClassifier = 'javadoc'
14+
}
15+
16+
group = 'org.pf4j.spring.boot'
17+
118
dependencies {
219
compile project(':pf4j-spring-boot-support')
320

pf4j-spring-boot-starter/src/main/java/org/pf4j/spring/boot/Pf4jAutoConfiguration.java

+1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public ExceptionHandlerExceptionResolver getExceptionHandlerExceptionResolver()
8585
}
8686

8787
@Bean
88+
@ConditionalOnMissingBean
8889
public PluginManager pluginManager(Pf4jProperties properties,
8990
Pf4jPluginProperties pluginProperties) {
9091
// Setup RuntimeMode

pf4j-spring-boot-support/build.gradle

+17
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
plugins {
2+
id 'java-library'
3+
id 'maven'
4+
}
5+
6+
task sourcesJar(type: Jar) {
7+
from sourceSets.main.allJava
8+
archiveClassifier = 'sources'
9+
}
10+
11+
task javadocJar(type: Jar) {
12+
from javadoc
13+
archiveClassifier = 'javadoc'
14+
}
15+
16+
group = 'org.pf4j.spring.boot'
17+
118
dependencies {
219
implementation "org.springframework.boot:spring-boot"
320
implementation "org.springframework:spring-webmvc"

0 commit comments

Comments
 (0)