You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/12/03 16:37:53 UTC

[27/50] tomee git commit: TOMEE-1957 adding @Args for tomee embedded

TOMEE-1957 adding @Args for tomee embedded


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/14c7483b
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/14c7483b
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/14c7483b

Branch: refs/heads/tomee-1.7.x
Commit: 14c7483b9a972a4b60795c5c3cde363061abc4dd
Parents: fb54561
Author: rmannibucau <rm...@apache.org>
Authored: Sun Oct 9 18:23:09 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Sun Oct 9 18:23:09 2016 +0200

----------------------------------------------------------------------
 .../embedded/TomEEEmbeddedApplicationRunner.java      | 14 ++++++++++++++
 .../tomee/embedded/NoScannerSingleRunnerTest.java     |  4 ++++
 2 files changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/14c7483b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
index ffc4dcd..62f305d 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/TomEEEmbeddedApplicationRunner.java
@@ -445,6 +445,15 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
                     final Class type = f.getType();
                     final Object taskByType = accessor.getTaskByType(type);
                     f.set(target, taskByType);
+                } else if (f.isAnnotationPresent(Args.class)) {
+                    if (String[].class != f.getType()) {
+                        throw new IllegalArgumentException("@Args can only be used for String[] field, not on " + f.getType());
+                    }
+                    if (!f.isAccessible()) {
+                        f.setAccessible(true);
+                    }
+                    final TomEEEmbeddedArgs args = SystemInstance.get().getComponent(TomEEEmbeddedArgs.class);
+                    f.set(target, args == null ? new String[0] : args.getArgs());
                 }
             }
             aClass = aClass.getSuperclass();
@@ -465,6 +474,11 @@ public class TomEEEmbeddedApplicationRunner implements AutoCloseable {
     }
 
     @Retention(RUNTIME)
+    @Target(FIELD)
+    public @interface Args {
+    }
+
+    @Retention(RUNTIME)
     @Target(TYPE)
     public @interface Configurers {
         Class<? extends Configurer>[] value();

http://git-wip-us.apache.org/repos/asf/tomee/blob/14c7483b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
index 570f88a..78927db 100644
--- a/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
+++ b/tomee/tomee-embedded/src/test/java/org/apache/tomee/embedded/NoScannerSingleRunnerTest.java
@@ -37,8 +37,12 @@ public class NoScannerSingleRunnerTest {
     @Application // app can have several injections/helpers
     private ScanApp app;
 
+    @TomEEEmbeddedApplicationRunner.Args
+    private String[] args;
+
     @Test
     public void run() {
+        assertNotNull(app);
         app.check();
     }