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/07/11 11:54:21 UTC

[juneau] branch jbFixRestNpe updated: Remote javax.inject dependency

This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch jbFixRestNpe
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/jbFixRestNpe by this push:
     new 7d096f056 Remote javax.inject dependency
7d096f056 is described below

commit 7d096f056bc598165deecd0d189d7502db17afde
Author: JamesBognar <ja...@salesforce.com>
AuthorDate: Mon Jul 11 07:54:01 2022 -0400

    Remote javax.inject dependency
---
 .../01.jrss.Overview.html                           |  2 +-
 .../04.jp.juneau-petstore-server.html               |  2 +-
 .../build-overlay/pom.xml                           |  7 -------
 .../build-overlay/pom.xml                           |  6 ------
 .../rest/springboot/HelloWorldResource.java         |  5 ++---
 juneau-examples/juneau-examples-rest/pom.xml        |  7 -------
 .../springboot/template/HelloWorldResource.java     |  5 ++---
 .../juneau/rest/springboot/SpringRestServlet.java   | 14 ++++++++++----
 juneau-rest/juneau-rest-server/pom.xml              |  5 -----
 .../java/org/apache/juneau/rest/RestContext.java    |  4 ++--
 .../org/apache/juneau/rest/servlet/RestServlet.java | 21 ++++++++++-----------
 .../java/org/apache/juneau/cp/BeanStore_Test.java   | 13 +++++++++++--
 pom.xml                                             |  1 -
 13 files changed, 39 insertions(+), 53 deletions(-)

diff --git a/juneau-doc/docs/Topics/11.juneau-rest-server-springboot/01.jrss.Overview.html b/juneau-doc/docs/Topics/11.juneau-rest-server-springboot/01.jrss.Overview.html
index dfa69c487..1c1582732 100644
--- a/juneau-doc/docs/Topics/11.juneau-rest-server-springboot/01.jrss.Overview.html
+++ b/juneau-doc/docs/Topics/11.juneau-rest-server-springboot/01.jrss.Overview.html
@@ -146,7 +146,7 @@
 		|	)
 		|	<jk>public class</jk> HelloWorldResource <jk>extends</jk> BasicRestObject <jk>implements</jk> BasicUniversalConfig {
 		|	
-		|		<ja>@Inject</ja>
+		|		<ja>@Autowired</ja>
 		|		<jk>private</jk> HelloWorldMessageProvider <jf>messageProvider</jf>;
 		|	
 		|		<ja>@RestGet</ja>(path=<js>"/*"</js>, summary=<js>"Responds with injected message"</js>)
diff --git a/juneau-doc/docs/Topics/18.juneau-petstore/04.jp.juneau-petstore-server.html b/juneau-doc/docs/Topics/18.juneau-petstore/04.jp.juneau-petstore-server.html
index 99f51c13c..c57ed0e3c 100644
--- a/juneau-doc/docs/Topics/18.juneau-petstore/04.jp.juneau-petstore-server.html
+++ b/juneau-doc/docs/Topics/18.juneau-petstore/04.jp.juneau-petstore-server.html
@@ -209,7 +209,7 @@
 		|	)
 		|	<jk>public class</jk> PetStoreResource <jk>extends</jk> BasicRestObject <jk>implements</jk> BasicUniversalConfig, PetStore {
 		|	
-		|		<ja>@Inject</ja>
+		|		<ja>@Autowired</ja>
 		|		<jk>private</jk> PetStoreService <jf>store</jf>;
 		|	
 		|		<jd>/**
diff --git a/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml b/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml
index cdd10787b..1650f8b03 100644
--- a/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml
+++ b/juneau-examples/juneau-examples-rest-jetty/build-overlay/pom.xml
@@ -41,7 +41,6 @@
 		<maven.javadoc.skip>true</maven.javadoc.skip>
 		<derby.version>${derby.version}</derby.version>
 		<springboot.version>${springboot.version}</springboot.version>
-		<javax.inject.version>1</javax.inject.version>
 		<juneau.version>${version}</juneau.version>
 		<jena.version>${jena.version}</jena.version>
 		<junit.version>${junit.version}</junit.version>
@@ -65,12 +64,6 @@
 			<version>\${juneau.version}</version>
 		</dependency>
 
-		<dependency>
-			<groupId>javax.inject</groupId>
-			<artifactId>javax.inject</artifactId>
-			<version>\${javax.inject.version}</version>
-		</dependency>
-
 		<!-- Used for JPA persistence of beans -->
 		<dependency>
 			<groupId>org.apache.derby</groupId>
diff --git a/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml b/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml
index ee67ba8f7..b55f48849 100644
--- a/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml
+++ b/juneau-examples/juneau-examples-rest-springboot/build-overlay/pom.xml
@@ -49,7 +49,6 @@
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
 		<maven.javadoc.skip>true</maven.javadoc.skip>
-		<javax.inject.version>${javax.inject.version}</javax.inject.version>
 		<juneau.version>${version}</juneau.version>
 		<jena.version>${jena.version}</jena.version>
 		<springboot.version>2.4.2</springboot.version>
@@ -90,11 +89,6 @@
 				</exclusion>
 			</exclusions>
 		</dependency>
-		<dependency>
-			<groupId>javax.inject</groupId>
-			<artifactId>javax.inject</artifactId>
-			<version>\${javax.inject.version}</version>
-		</dependency>
 
 		<!-- Used for JPA persistence of beans -->
 		<dependency>
diff --git a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java
index ee1775904..4ebdaf1ff 100644
--- a/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java
+++ b/juneau-examples/juneau-examples-rest-springboot/src/main/java/org/apache/juneau/examples/rest/springboot/HelloWorldResource.java
@@ -12,12 +12,11 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.examples.rest.springboot;
 
-import javax.inject.*;
-
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.config.*;
 import org.apache.juneau.rest.servlet.*;
+import org.springframework.beans.factory.annotation.*;
 
 /**
  * Sample REST resource that prints out a simple "Hello world!" message.
@@ -42,7 +41,7 @@ import org.apache.juneau.rest.servlet.*;
 )
 public class HelloWorldResource extends BasicRestObject implements BasicUniversalConfig {
 
-	@Inject
+	@Autowired
 	private HelloWorldMessageProvider messageProvider;
 
 	/**
diff --git a/juneau-examples/juneau-examples-rest/pom.xml b/juneau-examples/juneau-examples-rest/pom.xml
index 7df9346e9..d8cd94eb2 100644
--- a/juneau-examples/juneau-examples-rest/pom.xml
+++ b/juneau-examples/juneau-examples-rest/pom.xml
@@ -86,13 +86,6 @@
 			<scope>compile</scope>
 		</dependency>
 
-		<dependency>
-			<groupId>javax.inject</groupId>
-			<artifactId>javax.inject</artifactId>
-			<scope>compile</scope>
-			<version>${javax.inject.version}</version>
-		</dependency>
-
 	</dependencies>
 
 	<build>
diff --git a/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java b/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java
index c4359f620..0e02bc730 100644
--- a/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java
+++ b/juneau-microservice/juneau-my-springboot-microservice/src/main/java/org/apache/juneau/microservice/springboot/template/HelloWorldResource.java
@@ -14,12 +14,11 @@ package org.apache.juneau.microservice.springboot.template;
 
 import java.util.*;
 
-import javax.inject.*;
-
 import org.apache.juneau.html.annotation.*;
 import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.config.BasicUniversalConfig;
 import org.apache.juneau.rest.servlet.BasicRestObject;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * Sample REST resource that prints out a simple "Hello world!" message.
@@ -49,7 +48,7 @@ public class HelloWorldResource extends BasicRestObject implements BasicUniversa
 	/**
 	 * Optional message provider that can be injected into this object.
 	 */
-	@Inject
+	@Autowired
 	private Optional<HelloWorldMessageProvider> messageProvider;
 
 	/**
diff --git a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
index 7a9659505..057df3b74 100644
--- a/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
+++ b/juneau-rest/juneau-rest-server-springboot/src/main/java/org/apache/juneau/rest/springboot/SpringRestServlet.java
@@ -14,10 +14,10 @@ package org.apache.juneau.rest.springboot;
 
 import java.util.*;
 
-import javax.inject.*;
-
 import org.apache.juneau.cp.*;
+import org.apache.juneau.rest.annotation.*;
 import org.apache.juneau.rest.servlet.*;
+import org.springframework.beans.factory.annotation.*;
 import org.springframework.context.*;
 
 /**
@@ -41,10 +41,16 @@ public abstract class SpringRestServlet extends RestServlet {
 
 	private static final long serialVersionUID = 1L;
 
-	@Inject
+	@Autowired
 	private Optional<ApplicationContext> appContext;
 
-	@Override /* RestServlet */
+	/**
+	 * Hook into Spring bean injection framework.
+	 *
+	 * @param parent Optional parent resource.
+	 * @return A BeanStore that retrieves beans from the Spring Boot app context.
+	 */
+	@RestBean
 	public BeanStore createBeanStore(Optional<BeanStore> parent) {
 		return new SpringBeanStore(appContext, parent, this);
 	}
diff --git a/juneau-rest/juneau-rest-server/pom.xml b/juneau-rest/juneau-rest-server/pom.xml
index 1a226e2d3..86565cd38 100644
--- a/juneau-rest/juneau-rest-server/pom.xml
+++ b/juneau-rest/juneau-rest-server/pom.xml
@@ -48,11 +48,6 @@
 			<groupId>javax.servlet</groupId>
 			<artifactId>javax.servlet-api</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>javax.inject</groupId>
-			<artifactId>javax.inject</artifactId>
-			<version>1</version>
-		</dependency>
 		<dependency>
 			<groupId>javax.xml.bind</groupId>
 			<artifactId>jaxb-api</artifactId>
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 30b2f5c52..e9233a5df 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -588,13 +588,13 @@ public class RestContext extends Context {
 			// Replace with builder from:  public [static] BeanStore.Builder createBeanStore(<args>)
 			v.get().build()
 				.createMethodFinder(BeanStore.Builder.class)
-				.find("createBeanStore")
+				.find(x -> x.hasAnnotation(RestBean.class))
 				.run(x -> v.set(x));
 
 			// Replace with bean from:  public [static] BeanStore createBeanStore(<args>)
 			v.get().build()
 				.createMethodFinder(BeanStore.class)
-				.find("createBeanStore")
+				.find(x -> x.hasAnnotation(RestBean.class))
 				.run(x -> v.get().impl(x));
 
 			return v.get();
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
index 88c1ff71b..a37cceb22 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/servlet/RestServlet.java
@@ -21,7 +21,6 @@ import static org.apache.juneau.rest.annotation.HookEvent.*;
 
 import java.io.*;
 import java.text.*;
-import java.util.*;
 import java.util.concurrent.atomic.*;
 import java.util.function.*;
 import java.util.logging.*;
@@ -37,7 +36,6 @@ import org.apache.juneau.rest.converter.*;
 import org.apache.juneau.rest.guard.*;
 import org.apache.juneau.rest.matcher.*;
 import org.apache.juneau.*;
-import org.apache.juneau.cp.*;
 import org.apache.juneau.http.response.*;
 
 /**
@@ -93,15 +91,16 @@ public abstract class RestServlet extends HttpServlet {
 		}
 	}
 
-	/**
-	 * Instantiates the bean store to use for creating beans for this servlet.
-	 *
-	 * @param parent The parent bean store.
-	 * @return A new bean store.
-	 */
-	public BeanStore createBeanStore(Optional<BeanStore> parent) {
-		return BeanStore.of(parent.orElse(null), this);
-	}
+//	/**
+//	 * Instantiates the bean store to use for creating beans for this servlet.
+//	 *
+//	 * @param parent The parent bean store.
+//	 * @return A new bean store.
+//	 */
+//	@Rest
+//	public BeanStore createBeanStore(Optional<BeanStore> parent) {
+//		return BeanStore.of(parent.orElse(null), this);
+//	}
 
 	/**
 	 * Sets the context object for this servlet.
diff --git a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
index ae278522f..0cb2dd0d7 100644
--- a/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
+++ b/juneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java
@@ -12,16 +12,17 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.cp;
 
+import static java.lang.annotation.ElementType.*;
+import static java.lang.annotation.RetentionPolicy.*;
 import static org.apache.juneau.assertions.Assertions.*;
 import static org.apache.juneau.internal.ObjectUtils.*;
 import static org.junit.Assert.*;
 import static org.junit.runners.MethodSorters.*;
 
+import java.lang.annotation.*;
 import java.util.*;
 import java.util.function.*;
 
-import javax.inject.*;
-
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.reflect.*;
 import org.junit.*;
@@ -29,6 +30,14 @@ import org.junit.*;
 @FixMethodOrder(NAME_ASCENDING)
 public class BeanStore_Test {
 
+	@Documented
+	@Target({PARAMETER})
+	@Retention(RUNTIME)
+	@Inherited
+	public @interface Named {
+		String value();
+	}
+
 	//-----------------------------------------------------------------------------------------------------------------
 	// Basic tests
 	//-----------------------------------------------------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index f25360217..2aef6479d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,7 +49,6 @@
 		<juneauVersionNext>9.0.1</juneauVersionNext>
 		<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.7.0</springboot.version>
 		<xml.apis.version>1.4.01</xml.apis.version>
 		<javadoc.executable />