From a7802a2ab90a68ecbba962149a335f975fce24e7 Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Fri, 14 Jun 2013 04:40:39 +0200
Subject: GlueGen (Compile Time): Add 'CStruct' Annotation Processor (APT) to
 'gluegen' C Structs on-the-fly (2-pass actually).

Convenient annotation processing (APT) hooked to 'javac' (1.6) via gluegen.jar META-INF
service provider 'javax.annotation.processing.Processor' -> 'com.jogamp.gluegen.structgen.CStructAnnotationProcessor'.

Am implicit APT / JAVAC would be possible, however - to have a proper process
the unit test utilizes an explicit 2 pass run:

        <!-- Annotation Processor Only - First -->
        <javac destdir="${build_t.java}">
            <classpath refid="junit.compile.classpath"/>
            <compilerarg value="-proc:only"/>
            <compilerarg value="-J-Djogamp.gluegen.structgen.debug"/>
            <compilerarg value="-J-Djogamp.gluegen.structgen.output=${build_t.gen}/classes"/>
            <src path="${test.base.dir}/com/jogamp/gluegen/test/junit/structgen"/>
        </javac>

        <!-- Javac Only - Second -->
        <javac destdir="${build_t.java}">
            <classpath refid="junit.compile.classpath"/>
            <compilerarg value="-proc:none"/>
            <src path="${test.base.dir}"/>
            <src path="${build_t.gen}" />
        </javac>

Original code from Michael Bien's 'superglue' git://github.com/mbien/superglue.git,
finally merged to GlueGen (as once intended).

Note: The APT javac pass requires to use 'gluegen.jar' instead of 'gluegen-rt.jar' !
      The 2-pass process also alows using the runtime gluegen-rt.jar and hence ensures
      clean namespace check at compilation.
---
 src/java/com/jogamp/common/util/PropertyAccess.java | 11 +++++++++++
 1 file changed, 11 insertions(+)

(limited to 'src/java/com/jogamp/common/util')

diff --git a/src/java/com/jogamp/common/util/PropertyAccess.java b/src/java/com/jogamp/common/util/PropertyAccess.java
index dde6b50..1a4bc7e 100644
--- a/src/java/com/jogamp/common/util/PropertyAccess.java
+++ b/src/java/com/jogamp/common/util/PropertyAccess.java
@@ -156,6 +156,17 @@ public class PropertyAccess {
     return s;
   }
   
+  /** See {@link #getProperty(String, boolean)}, additionally allows a <code>defaultValue</code> if property value is <code>null</code>. */
+  public static final String getProperty(final String propertyKey, final boolean jnlpAlias, String defaultValue) 
+      throws SecurityException, NullPointerException, IllegalArgumentException {
+    final String s = PropertyAccess.getProperty(propertyKey, jnlpAlias);
+    if( null != s ) {
+        return s;
+    } else {
+        return defaultValue;
+    }
+  }
+  
   private static final String getTrustedPropKey(final String propertyKey) {
     return AccessController.doPrivileged(new PrivilegedAction<String>() {
         public String run() {
-- 
cgit v1.2.3