You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2022/06/18 11:19:26 UTC
[juneau] branch master updated: Upgrade to Spring Boot 2.7.0 and Servlet 4.0.1.
This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new 99fd248e7 Upgrade to Spring Boot 2.7.0 and Servlet 4.0.1.
99fd248e7 is described below
commit 99fd248e73ee1dcc342d772e2c5be6000db67395
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Sat Jun 18 07:18:58 2022 -0400
Upgrade to Spring Boot 2.7.0 and Servlet 4.0.1.
---
.../juneau-examples-rest-springboot.launch | 5 ++++-
.../juneau-examples-rest-springboot/pom.xml | 6 +++++-
.../juneau/examples/rest/springboot/App.java | 22 ++++++----------------
.../examples/rest/springboot/RootResources.java | 3 +++
.../src/main/resources/juneau.cfg | 2 +-
.../juneau/rest/springboot/SpringBeanStore.java | 18 +++++++++++++++++-
pom.xml | 4 ++--
7 files changed, 38 insertions(+), 22 deletions(-)
diff --git a/juneau-examples/juneau-examples-rest-springboot/juneau-examples-rest-springboot.launch b/juneau-examples/juneau-examples-rest-springboot/juneau-examples-rest-springboot.launch
index 29e66fcb9..35cab1ceb 100644
--- a/juneau-examples/juneau-examples-rest-springboot/juneau-examples-rest-springboot.launch
+++ b/juneau-examples/juneau-examples-rest-springboot/juneau-examples-rest-springboot.launch
@@ -8,10 +8,13 @@
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.debug.ui.CONSIDER_INHERITED_MAIN" value="true"/>
<booleanAttribute key="org.eclipse.jdt.debug.ui.INCLUDE_EXTERNAL_JARS" value="true"/>
+ <booleanAttribute key="org.eclipse.jdt.launching.ATTR_ATTR_USE_ARGFILE" value="false"/>
+ <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
- <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11/"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.apache.juneau.examples.rest.springboot.App"/>
+ <stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="juneau-examples-rest-springboot"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="juneau-examples-rest-springboot"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
</launchConfiguration>
diff --git a/juneau-examples/juneau-examples-rest-springboot/pom.xml b/juneau-examples/juneau-examples-rest-springboot/pom.xml
index e0b414c49..de1d2efcb 100644
--- a/juneau-examples/juneau-examples-rest-springboot/pom.xml
+++ b/juneau-examples/juneau-examples-rest-springboot/pom.xml
@@ -39,7 +39,6 @@
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
-
<dependencies>
<!-- Juneau dependencies -->
<dependency>
@@ -53,6 +52,11 @@
<artifactId>juneau-rest-server-springboot</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <scope>provided</scope>
+ </dependency>
<!-- Spring Boot dependencies -->
<dependency>
diff --git a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/App.java b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/App.java
index 5d7878e3e..ca603ee1a 100644
--- a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/App.java
+++ b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/App.java
@@ -21,7 +21,6 @@ import org.springframework.boot.builder.*;
import org.springframework.boot.web.servlet.*;
import org.springframework.context.annotation.*;
import org.springframework.stereotype.Controller;
-import org.springframework.web.filter.*;
/**
* Entry point for Examples REST application when deployed as a Spring Boot application.
@@ -41,7 +40,12 @@ public class App {
*/
@SuppressWarnings("resource")
public static void main(String[] args) {
- new SpringApplicationBuilder(App.class).run(args);
+ try {
+ new SpringApplicationBuilder(App.class).run(args);
+ System.out.println("Initialized. App available on http://localhost:5000");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
/**
@@ -87,18 +91,4 @@ public class App {
public ServletRegistrationBean<Servlet> getRootServlet(RootResources rootResources) {
return new ServletRegistrationBean<>(rootResources, "/*");
}
-
- /**
- * We want to be able to consume url-encoded-form-post bodies, but HiddenHttpMethodFilter triggers the HTTP
- * body to be consumed. So disable it.
- *
- * @param filter The filter.
- * @return Filter registration bean.
- */
- @Bean
- public FilterRegistrationBean<HiddenHttpMethodFilter> registration(HiddenHttpMethodFilter filter) {
- FilterRegistrationBean<HiddenHttpMethodFilter> registration = new FilterRegistrationBean<>(filter);
- registration.setEnabled(false);
- return registration;
- }
}
diff --git a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java
index 8eec9d63c..d24eb65c1 100644
--- a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java
+++ b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/RootResources.java
@@ -12,6 +12,7 @@
// ***************************************************************************************************************************
package org.apache.juneau.examples.rest.springboot;
+import org.apache.juneau.examples.rest.*;
import org.apache.juneau.examples.rest.dto.*;
import org.apache.juneau.html.annotation.*;
import org.apache.juneau.microservice.resources.*;
@@ -38,6 +39,8 @@ import org.apache.juneau.serializer.annotation.*;
children={
HelloWorldResource.class,
DtoExamples.class,
+ UtilityBeansResource.class,
+ HtmlBeansResource.class,
ConfigResource.class,
ShutdownResource.class
}
diff --git a/juneau-examples/juneau-examples-rest-springboot/src/main/resources/juneau.cfg b/juneau-examples/juneau-examples-rest-springboot/src/main/resources/juneau.cfg
index c18ac8cfc..6932e4b86 100755
--- a/juneau-examples/juneau-examples-rest-springboot/src/main/resources/juneau.cfg
+++ b/juneau-examples/juneau-examples-rest-springboot/src/main/resources/juneau.cfg
@@ -29,7 +29,7 @@ staticFiles = htdocs:htdocs
# Stylesheet to use for HTML views.
# Used by the BasicRestConfig interface that defines the following value:
# stylesheet="$C{REST/theme,servlet:/htdocs/themes/devops.css}"
-theme = servlet:/htdocs/themes/devops.css
+theme = servlet:/htdocs/themes/dark.css
# Various look-and-feel settings used in the BasicRestConfig interface.
headerIcon = servlet:/htdocs/images/juneau.png
diff --git a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
index dc14eb446..ee3e03e63 100644
--- a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
+++ b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringBeanStore.java
@@ -44,6 +44,21 @@ public class SpringBeanStore extends BeanStore {
this.appContext = appContext;
}
+ @Override
+ public <T> Optional<T> getBean(Class<T> c) {
+ try {
+ Optional<T> o = super.getBean(c);
+ if (o.isPresent())
+ return o;
+ if (appContext.isPresent()) {
+ return optional(appContext.get().getBeanProvider(c).getIfAvailable());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return empty();
+ }
+
@Override
public <T> Optional<T> getBean(Class<T> c, String name) {
try {
@@ -51,8 +66,9 @@ public class SpringBeanStore extends BeanStore {
if (o.isPresent())
return o;
if (appContext.isPresent()) {
+ ApplicationContext ctx = appContext.get();
if (name != null)
- return optional(appContext.get().getBean(name, c));
+ return optional(ctx.containsBean(name) ? appContext.get().getBean(name, c) : null);
return optional(appContext.get().getBean(c));
}
} catch (Exception e) {
diff --git a/pom.xml b/pom.xml
index b11ee4a89..c7bc966bd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,7 +39,7 @@
<jena.version>3.10.0</jena.version>
<junit.version>4.11</junit.version>
<jaxrs.version>1.1.1</jaxrs.version>
- <servlet.version>3.1.0</servlet.version>
+ <servlet.version>4.0.1</servlet.version>
<httpcore.version>4.4.13</httpcore.version>
<httpclient.version>4.5.6</httpclient.version>
<jetty.version>9.4.13.v20181111</jetty.version>
@@ -50,7 +50,7 @@
<derby.version>10.10.2.0</derby.version>
<hibernate.version>5.0.9.Final</hibernate.version>
<javax.inject.version>1</javax.inject.version>
- <springboot.version>2.4.2</springboot.version>
+ <springboot.version>2.7.0</springboot.version>
<xml.apis.version>1.4.01</xml.apis.version>
<javadoc.executable></javadoc.executable>
</properties>