Improve Pool
[aaf/authz.git] / misc / env / src / main / java / org / onap / aaf / misc / env / impl / BasicEnv.java
index 2a3628d..8128856 100644 (file)
@@ -57,296 +57,321 @@ import org.onap.aaf.misc.env.util.Split;
  *\r
  */\r
 public class BasicEnv extends StoreImpl implements EnvJAXB, TransCreate<TransJAXB>{\r
-       protected LogTarget fatal=LogTarget.SYSERR;\r
-       protected LogTarget error=LogTarget.SYSERR;\r
-       protected LogTarget audit=LogTarget.SYSOUT;\r
-       protected LogTarget init=LogTarget.SYSOUT;\r
-       protected LogTarget warn=LogTarget.SYSERR;\r
-       protected LogTarget info=LogTarget.SYSOUT;\r
-       protected LogTarget debug=LogTarget.NULL;\r
-       protected LogTarget trace=LogTarget.NULL;\r
-//     protected Map<String, String> props;\r
-       \r
-//     private boolean sysprops;\r
-\r
-       public BasicEnv(String ... args) {\r
-               super(null,args);\r
-       }\r
-\r
-       public BasicEnv(String tag, String[] args) {\r
-               super(tag, args);\r
-       }\r
-       \r
-\r
-       /**\r
-        * Suitable for use in Applets... obtain all the values \r
-        * listed for the variable String arg "tags"\r
-        */\r
-       public BasicEnv(Applet applet, String ... tags) {\r
-               super(null, tags);\r
-//             props = new HashMap<String, String>();\r
-//             String value;\r
-//             for(int i=0;i<tags.length;++i) {\r
-//                     value = applet.getParameter(tags[i]);\r
-//                     if(value!=null) {\r
-//                             props.put(tags[i], value);\r
-//                     }\r
-//             }\r
-       }\r
-\r
-       public BasicEnv(Properties props) {\r
-               super(null, props);\r
-       }\r
-\r
-       public BasicEnv(String tag, Properties props) {\r
-               super(tag, props);\r
-       }\r
-\r
-\r
-\r
-       // @Override\r
-       public LogTarget fatal() {\r
-               return fatal;\r
-       }\r
-\r
-       // @Override\r
-       public LogTarget error() {\r
-               return error;\r
-       }\r
-\r
-       \r
-       // @Override\r
-       public LogTarget audit() {\r
-               return audit;\r
-       }\r
-\r
-       // @Override\r
-       public LogTarget init() {\r
-               return init;\r
-       }\r
-\r
-       // @Override\r
-       public LogTarget warn() {\r
-               return warn;\r
-       }\r
-\r
-       // @Override\r
-       public LogTarget info() {\r
-               return info;\r
-       }\r
-\r
-       // @Override\r
-       public LogTarget debug() {\r
-               return debug;\r
-       }\r
-\r
-       public void debug(LogTarget lt) {\r
-               debug = lt;\r
-       }\r
-\r
-       // @Override\r
-       public LogTarget trace() {\r
-               return trace;\r
-       }\r
-\r
-       // @Override\r
-       public TimeTaken start(String name, int flag) {\r
-               return new TimeTaken(name, flag) {\r
-                       /**\r
-                        * Format to be printed when called upon\r
-                        */\r
-                       // @Override\r
-                       public void output(StringBuilder sb) {\r
-       \r
-                               switch(flag) {\r
-                                       case Env.XML: sb.append("XML "); break;\r
-                                       case Env.JSON: sb.append("JSON "); break;\r
-                                       case Env.REMOTE: sb.append("REMOTE "); break;\r
-                               }\r
-                               sb.append(name);\r
-                               if(flag != Env.CHECKPOINT) {\r
-                                       sb.append(' ');\r
-                                       sb.append((end-start)/1000000f);\r
-                                       sb.append("ms");\r
-                                       if(size>=0) {\r
-                                               sb.append(" size: ");\r
-                                               sb.append(Long.toString(size));\r
-                                       }\r
-                               }\r
-                       }\r
-               };\r
-       }\r
-\r
-       // @Override\r
-       public String getProperty(String key) {\r
-               return get(staticSlot(key),null);\r
-       }\r
-       \r
-       public Properties getProperties(String ... filter) {\r
-               Properties props = new Properties();\r
-               boolean yes;\r
-               for(String key : existingStaticSlotNames()) {\r
-                       if(filter.length>0) {\r
-                               yes = false;\r
-                               for(String f : filter) {\r
-                                       if(key.startsWith(f)) {\r
-                                               yes = true;\r
-                                               break;\r
-                                       }\r
-                               }\r
-                       } else {\r
-                               yes = true;\r
-                       }\r
-                       if(yes) {\r
-                               String value = getProperty(key);\r
-                               if(value!=null) {\r
-                                       props.put(key, value);\r
-                               }\r
-                       }\r
-               }\r
-               return props;\r
-       }\r
-       \r
-       // @Override\r
-       public String getProperty(String key, String defaultValue) {\r
-               return get(staticSlot(key),defaultValue);\r
-       }\r
-\r
-       // @Override\r
-       public String setProperty(String key, String value) {\r
-               put(staticSlot(key),value==null?null:value.trim());\r
-               return value;\r
-       }\r
-       \r
-       protected Decryptor decryptor = Decryptor.NULL;\r
-       protected Encryptor encryptor = Encryptor.NULL;\r
-\r
-       \r
-       public Decryptor decryptor() {\r
-               return decryptor; \r
-       }\r
-       \r
-       public void set(Decryptor newDecryptor) {\r
-               decryptor = newDecryptor;\r
-       }\r
-       \r
-       public Encryptor encryptor() {\r
-               return encryptor; \r
-       }\r
-       \r
-       public void set(Encryptor newEncryptor) {\r
-               encryptor = newEncryptor;\r
-       }\r
-\r
-       \r
-//     @SuppressWarnings("unchecked")\r
-       // @Override\r
-       public <T> DataFactory<T> newDataFactory(Class<?>... classes) throws APIException {\r
-//             if(String.class.isAssignableFrom(classes[0])) \r
-//                     return (DataFactory<T>) new StringDF(this);\r
-               return new JAXBDF<T>(this,classes);\r
-       }\r
-\r
-//     @SuppressWarnings("unchecked")\r
-       // @Override\r
-       public <T> DataFactory<T> newDataFactory(Schema schema, Class<?>... classes) throws APIException {\r
-//             if(String.class.isAssignableFrom(classes[0])) \r
-//                     return (DataFactory<T>) new StringDF(this);\r
-               return new JAXBDF<T>(this, schema, classes);\r
-       }\r
-\r
-//     @SuppressWarnings("unchecked")\r
-       // @Override\r
-       public<T> DataFactory<T> newDataFactory(QName qName, Class<?> ... classes) throws APIException {\r
-//             if(String.class.isAssignableFrom(classes[0])) \r
-//                     return (DataFactory<T>) new StringDF(this);\r
-               return new JAXBDF<T>(this, qName, classes);\r
-       }\r
-\r
-       // @Override\r
-       public<T> DataFactory<T> newDataFactory(Schema schema, QName qName, Class<?> ... classes) throws APIException {\r
-               return new JAXBDF<T>(this, schema, qName, classes);\r
-       }\r
-\r
-       // @Override\r
-       public BasicTrans newTrans() {\r
-               return new BasicTrans(this);\r
-       }\r
-\r
-       public void loadFromSystemPropsStartsWith(String ... str) {\r
-                for(String name : System.getProperties().stringPropertyNames()) {\r
-                       for(String s : str) {\r
-                               if(name.startsWith(s)) {\r
-                                       setProperty(name, System.getProperty(name));\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-\r
-       /**\r
-        * \r
-        * \r
-        */\r
-       public void loadToSystemPropsStartsWith(String ... str) {\r
-               String value;\r
-               for(String name : existingStaticSlotNames()) {\r
-                       for(String s : str) {\r
-                               if(name.startsWith(s)) {\r
-                                       if((value = getProperty(name))!=null)\r
-                                               System.setProperty(name,value);\r
-                               }\r
-                       }\r
-                }\r
-       }\r
-       \r
-       public void loadPropFiles(String tag, ClassLoader classloader) throws IOException {\r
-               String propfiles = getProperty(tag);\r
-               if(propfiles!=null) {\r
-                       for(String pf : Split.splitTrim(File.pathSeparatorChar, propfiles)) {\r
-                               InputStream is = classloader==null?null:classloader.getResourceAsStream(pf);\r
-                               if(is==null) {\r
-                                       File f = new File(pf);\r
-                                       if(f.exists()) {\r
-                                               is = new FileInputStream(f);\r
-                                       }\r
-                               }\r
-                               if(is!=null) {\r
-                                       BufferedReader br = new BufferedReader(new InputStreamReader(is));\r
-                                       try {\r
-                                               String line;\r
-                                               while((line=br.readLine())!=null) {\r
-                                                       line = line.trim();\r
-                                                       if(!line.startsWith("#")) {\r
-                                                               String[] tv = Split.splitTrim('=', line);\r
-                                                               if(tv.length==2) {\r
-                                                                       setProperty(tv[0],tv[1]);\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                       } finally {\r
-                                               try {\r
-                                                       br.close();\r
-                                               } catch (IOException e) {\r
-                                                       error().log(e);\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-               }\r
-       }\r
-       \r
-       /**\r
-        * Create a StaticSlot, and load it from existing Properties\r
-        * \r
-        * @param name\r
-        * @param propName\r
-        * @return\r
-        */\r
-       public synchronized StaticSlot staticSlot(String name, final String propName) {\r
-               StaticSlot ss = staticSlot(name);\r
-               put(ss,getProperty(propName));\r
-               return ss;\r
-       }\r
+    protected LogTarget fatal=LogTarget.SYSERR;\r
+    protected LogTarget error=LogTarget.SYSERR;\r
+    protected LogTarget audit=LogTarget.SYSOUT;\r
+    protected LogTarget init=LogTarget.SYSOUT;\r
+    protected LogTarget warn=LogTarget.SYSERR;\r
+    protected LogTarget info=LogTarget.SYSOUT;\r
+    protected LogTarget debug=LogTarget.NULL;\r
+    protected LogTarget trace=LogTarget.NULL;\r
+//    protected Map<String, String> props;\r
+    \r
+//    private boolean sysprops;\r
+\r
+    public BasicEnv(String ... args) {\r
+        super(null,args);\r
+    }\r
+\r
+    public BasicEnv(String tag, String[] args) {\r
+        super(tag, args);\r
+    }\r
+    \r
+\r
+    /**\r
+     * Suitable for use in Applets... obtain all the values \r
+     * listed for the variable String arg "tags"\r
+     */\r
+    public BasicEnv(Applet applet, String ... tags) {\r
+        super(null, tags);\r
+//        props = new HashMap<>();\r
+//        String value;\r
+//        for (int i=0;i<tags.length;++i) {\r
+//            value = applet.getParameter(tags[i]);\r
+//            if (value!=null) {\r
+//                props.put(tags[i], value);\r
+//            }\r
+//        }\r
+    }\r
+\r
+    public BasicEnv(Properties props) {\r
+        super(null, props);\r
+    }\r
+\r
+    public BasicEnv(String tag, Properties props) {\r
+        super(tag, props);\r
+    }\r
+\r
+    @Override\r
+    public LogTarget fatal() {\r
+        return fatal;\r
+    }\r
+\r
+    public void fatal(LogTarget lt) {\r
+        fatal = lt;\r
+    }\r
+\r
+    @Override\r
+    public LogTarget error() {\r
+        return error;\r
+    }\r
+\r
+    public void error(LogTarget lt) {\r
+        error = lt;\r
+    }\r
+    \r
+    @Override\r
+    public LogTarget audit() {\r
+        return audit;\r
+    }\r
+\r
+    public void audit(LogTarget lt) {\r
+        audit = lt;\r
+    }\r
+\r
+    @Override\r
+    public LogTarget init() {\r
+        return init;\r
+    }\r
+\r
+    public void init(LogTarget lt) {\r
+        init = lt;\r
+    }\r
+\r
+    @Override\r
+    public LogTarget warn() {\r
+        return warn;\r
+    }\r
+\r
+    public void warn(LogTarget lt) {\r
+        warn = lt;\r
+    }\r
+\r
+    @Override\r
+    public LogTarget info() {\r
+        return info;\r
+    }\r
+\r
+    public void info(LogTarget lt) {\r
+        info = lt;\r
+    }\r
+\r
+    @Override\r
+    public LogTarget debug() {\r
+        return debug;\r
+    }\r
+\r
+    public void debug(LogTarget lt) {\r
+        debug = lt;\r
+    }\r
+\r
+    @Override\r
+    public LogTarget trace() {\r
+        return trace;\r
+    }\r
+\r
+    public void trace(LogTarget lt) {\r
+        trace = lt;\r
+    }\r
+\r
+    @Override\r
+    public TimeTaken start(String name, int flag, Object ... values) {\r
+        return new TimeTaken(name, flag, values) {\r
+            /**\r
+             * Format to be printed when called upon\r
+             */\r
+            // @Override\r
+            public void output(StringBuilder sb) {\r
+    \r
+                switch(flag) {\r
+                    case Env.XML: sb.append("XML "); break;\r
+                    case Env.JSON: sb.append("JSON "); break;\r
+                    case Env.REMOTE: sb.append("REMOTE "); break;\r
+                }\r
+                sb.append(String.format(name, values));\r
+                if ((flag & Env.CHECKPOINT) != Env.CHECKPOINT) {\r
+                    sb.append(' ');\r
+                    sb.append((end-start)/1000000f);\r
+                    sb.append("ms");\r
+                    if (size>=0) {\r
+                        sb.append(" size: ");\r
+                        sb.append(Long.toString(size));\r
+                    }\r
+                }\r
+            }\r
+        };\r
+    }\r
+\r
+    // @Override\r
+    public String getProperty(String key) {\r
+        return get(staticSlot(key),null);\r
+    }\r
+    \r
+    public Properties getProperties(String ... filter) {\r
+        Properties props = new Properties();\r
+        boolean yes;\r
+        for (String key : existingStaticSlotNames()) {\r
+            if (filter.length>0) {\r
+                yes = false;\r
+                for (String f : filter) {\r
+                    if (key.startsWith(f)) {\r
+                        yes = true;\r
+                        break;\r
+                    }\r
+                }\r
+            } else {\r
+                yes = true;\r
+            }\r
+            if (yes) {\r
+                String value = getProperty(key);\r
+                if (value!=null) {\r
+                    props.put(key, value);\r
+                }\r
+            }\r
+        }\r
+        return props;\r
+    }\r
+    \r
+    // @Override\r
+    public String getProperty(String key, String defaultValue) {\r
+        return get(staticSlot(key),defaultValue);\r
+    }\r
+\r
+    // @Override\r
+    public String setProperty(String key, String value) {\r
+        put(staticSlot(key),value==null?null:value.trim());\r
+        return value;\r
+    }\r
+    \r
+    protected Decryptor decryptor = Decryptor.NULL;\r
+    protected Encryptor encryptor = Encryptor.NULL;\r
+\r
+    \r
+    public Decryptor decryptor() {\r
+        return decryptor; \r
+    }\r
+    \r
+    public void set(Decryptor newDecryptor) {\r
+        decryptor = newDecryptor;\r
+    }\r
+    \r
+    public Encryptor encryptor() {\r
+        return encryptor; \r
+    }\r
+    \r
+    public void set(Encryptor newEncryptor) {\r
+        encryptor = newEncryptor;\r
+    }\r
+\r
+    \r
+//    @SuppressWarnings("unchecked")\r
+    // @Override\r
+    public <T> DataFactory<T> newDataFactory(Class<?>... classes) throws APIException {\r
+//        if (String.class.isAssignableFrom(classes[0])) \r
+//            return (DataFactory<T>) new StringDF(this);\r
+        return new JAXBDF<T>(this,classes);\r
+    }\r
+\r
+//    @SuppressWarnings("unchecked")\r
+    // @Override\r
+    public <T> DataFactory<T> newDataFactory(Schema schema, Class<?>... classes) throws APIException {\r
+//        if (String.class.isAssignableFrom(classes[0])) \r
+//            return (DataFactory<T>) new StringDF(this);\r
+        return new JAXBDF<T>(this, schema, classes);\r
+    }\r
+\r
+//    @SuppressWarnings("unchecked")\r
+    // @Override\r
+    public<T> DataFactory<T> newDataFactory(QName qName, Class<?> ... classes) throws APIException {\r
+//        if (String.class.isAssignableFrom(classes[0])) \r
+//            return (DataFactory<T>) new StringDF(this);\r
+        return new JAXBDF<T>(this, qName, classes);\r
+    }\r
+\r
+    // @Override\r
+    public<T> DataFactory<T> newDataFactory(Schema schema, QName qName, Class<?> ... classes) throws APIException {\r
+        return new JAXBDF<T>(this, schema, qName, classes);\r
+    }\r
+\r
+    // @Override\r
+    public BasicTrans newTrans() {\r
+        return new BasicTrans(this);\r
+    }\r
+\r
+    public void loadFromSystemPropsStartsWith(String ... str) {\r
+         for (String name : System.getProperties().stringPropertyNames()) {\r
+            for (String s : str) {\r
+                if (name.startsWith(s)) {\r
+                    setProperty(name, System.getProperty(name));\r
+                }\r
+            }\r
+        }\r
+    }\r
+\r
+    /**\r
+     * \r
+     * \r
+     */\r
+    public void loadToSystemPropsStartsWith(String ... str) {\r
+        String value;\r
+        for (String name : existingStaticSlotNames()) {\r
+            for (String s : str) {\r
+                if (name.startsWith(s)) {\r
+                    if ((value = getProperty(name))!=null)\r
+                        System.setProperty(name,value);\r
+                }\r
+            }\r
+         }\r
+    }\r
+    \r
+    public void loadPropFiles(String tag, ClassLoader classloader) throws IOException {\r
+        String propfiles = getProperty(tag);\r
+        if (propfiles!=null) {\r
+            for (String pf : Split.splitTrim(File.pathSeparatorChar, propfiles)) {\r
+                InputStream is = classloader==null?null:classloader.getResourceAsStream(pf);\r
+                if (is==null) {\r
+                    File f = new File(pf);\r
+                    if (f.exists()) {\r
+                        is = new FileInputStream(f);\r
+                    }\r
+                }\r
+                if (is!=null) {\r
+                    BufferedReader br = new BufferedReader(new InputStreamReader(is));\r
+                    try {\r
+                        String line;\r
+                        while ((line=br.readLine())!=null) {\r
+                            line = line.trim();\r
+                            if (!line.startsWith("#")) {\r
+                                String[] tv = Split.splitTrim('=', line);\r
+                                if (tv.length==2) {\r
+                                    setProperty(tv[0],tv[1]);\r
+                                }\r
+                            }\r
+                        }\r
+                    } finally {\r
+                        try {\r
+                            br.close();\r
+                        } catch (IOException e) {\r
+                            error().log(e);\r
+                        }\r
+                    }\r
+                }\r
+            }\r
+        }\r
+    }\r
+    \r
+    /**\r
+     * Create a StaticSlot, and load it from existing Properties\r
+     * \r
+     * @param name\r
+     * @param propName\r
+     * @return\r
+     */\r
+    public synchronized StaticSlot staticSlot(String name, final String propName) {\r
+        StaticSlot ss = staticSlot(name);\r
+        put(ss,getProperty(propName));\r
+        return ss;\r
+    }\r
 \r
 \r
 }\r