From bfc9888bc95e567d7c1a02306254099283827988 Mon Sep 17 00:00:00 2001 From: sg481n Date: Thu, 24 Aug 2017 00:58:40 -0400 Subject: Update project structure to org.onap.aaf Update package structure from com.att to org.onap.aaf and add distribution management and repositories. Issue-id: AAF-23 Change-Id: I1b2381a58b08d147a0dfffd086aabd37ecfc3090 Signed-off-by: sg481n --- .../main/java/com/att/inno/env/APIException.java | 89 ---- .../java/com/att/inno/env/BaseDataFactory.java | 462 --------------------- env/src/main/java/com/att/inno/env/Creatable.java | 52 --- env/src/main/java/com/att/inno/env/Data.java | 113 ----- .../main/java/com/att/inno/env/DataFactory.java | 31 -- env/src/main/java/com/att/inno/env/Decryptor.java | 35 -- env/src/main/java/com/att/inno/env/Encryptor.java | 35 -- env/src/main/java/com/att/inno/env/Env.java | 136 ------ env/src/main/java/com/att/inno/env/EnvJAXB.java | 53 --- .../main/java/com/att/inno/env/EnvJAXBProps.java | 31 -- env/src/main/java/com/att/inno/env/EnvProps.java | 81 ---- env/src/main/java/com/att/inno/env/EnvStore.java | 28 -- .../main/java/com/att/inno/env/IOObjectifier.java | 55 --- .../main/java/com/att/inno/env/IOStringifier.java | 75 ---- env/src/main/java/com/att/inno/env/LifeCycle.java | 123 ------ env/src/main/java/com/att/inno/env/LogTarget.java | 142 ------- .../main/java/com/att/inno/env/Objectifier.java | 58 --- env/src/main/java/com/att/inno/env/Slot.java | 103 ----- env/src/main/java/com/att/inno/env/StaticSlot.java | 86 ---- env/src/main/java/com/att/inno/env/Store.java | 109 ----- env/src/main/java/com/att/inno/env/StoreImpl.java | 237 ----------- .../main/java/com/att/inno/env/Stringifier.java | 46 -- env/src/main/java/com/att/inno/env/TimeTaken.java | 116 ------ env/src/main/java/com/att/inno/env/Trans.java | 74 ---- .../main/java/com/att/inno/env/TransCreate.java | 27 -- env/src/main/java/com/att/inno/env/TransJAXB.java | 27 -- env/src/main/java/com/att/inno/env/TransStore.java | 58 --- .../main/java/com/att/inno/env/impl/AbsTrans.java | 215 ---------- .../java/com/att/inno/env/impl/AbsTransJAXB.java | 58 --- .../main/java/com/att/inno/env/impl/BasicEnv.java | 336 --------------- .../java/com/att/inno/env/impl/BasicTrans.java | 82 ---- .../java/com/att/inno/env/impl/EnvFactory.java | 67 --- .../com/att/inno/env/impl/JavaUtilLogTarget.java | 90 ---- .../java/com/att/inno/env/impl/Log4JLogTarget.java | 110 ----- .../java/com/att/inno/env/impl/NullLifeCycle.java | 59 --- .../main/java/com/att/inno/env/jaxb/JAXBDF.java | 310 -------------- .../main/java/com/att/inno/env/jaxb/JAXBData.java | 321 -------------- .../com/att/inno/env/jaxb/JAXBObjectifier.java | 136 ------ .../com/att/inno/env/jaxb/JAXBStringifier.java | 138 ------ .../main/java/com/att/inno/env/jaxb/JAXBmar.java | 253 ----------- .../main/java/com/att/inno/env/jaxb/JAXBumar.java | 243 ----------- .../java/com/att/inno/env/old/IOObjectifier.java | 58 --- .../java/com/att/inno/env/old/IOStringifier.java | 78 ---- .../java/com/att/inno/env/old/Objectifier.java | 61 --- .../java/com/att/inno/env/old/OldDataFactory.java | 48 --- .../java/com/att/inno/env/old/Stringifier.java | 49 --- .../main/java/com/att/inno/env/util/Chrono.java | 307 -------------- .../com/att/inno/env/util/DoubleOutputStream.java | 98 ----- .../com/att/inno/env/util/IndentPrintWriter.java | 114 ----- env/src/main/java/com/att/inno/env/util/Pool.java | 395 ------------------ .../att/inno/env/util/RefreshableThreadObject.java | 125 ------ env/src/main/java/com/att/inno/env/util/Split.java | 90 ---- .../inno/env/util/StringBuilderOutputStream.java | 179 -------- .../com/att/inno/env/util/StringBuilderWriter.java | 173 -------- 54 files changed, 6675 deletions(-) delete mode 100644 env/src/main/java/com/att/inno/env/APIException.java delete mode 100644 env/src/main/java/com/att/inno/env/BaseDataFactory.java delete mode 100644 env/src/main/java/com/att/inno/env/Creatable.java delete mode 100644 env/src/main/java/com/att/inno/env/Data.java delete mode 100644 env/src/main/java/com/att/inno/env/DataFactory.java delete mode 100644 env/src/main/java/com/att/inno/env/Decryptor.java delete mode 100644 env/src/main/java/com/att/inno/env/Encryptor.java delete mode 100644 env/src/main/java/com/att/inno/env/Env.java delete mode 100644 env/src/main/java/com/att/inno/env/EnvJAXB.java delete mode 100644 env/src/main/java/com/att/inno/env/EnvJAXBProps.java delete mode 100644 env/src/main/java/com/att/inno/env/EnvProps.java delete mode 100644 env/src/main/java/com/att/inno/env/EnvStore.java delete mode 100644 env/src/main/java/com/att/inno/env/IOObjectifier.java delete mode 100644 env/src/main/java/com/att/inno/env/IOStringifier.java delete mode 100644 env/src/main/java/com/att/inno/env/LifeCycle.java delete mode 100644 env/src/main/java/com/att/inno/env/LogTarget.java delete mode 100644 env/src/main/java/com/att/inno/env/Objectifier.java delete mode 100644 env/src/main/java/com/att/inno/env/Slot.java delete mode 100644 env/src/main/java/com/att/inno/env/StaticSlot.java delete mode 100644 env/src/main/java/com/att/inno/env/Store.java delete mode 100644 env/src/main/java/com/att/inno/env/StoreImpl.java delete mode 100644 env/src/main/java/com/att/inno/env/Stringifier.java delete mode 100644 env/src/main/java/com/att/inno/env/TimeTaken.java delete mode 100644 env/src/main/java/com/att/inno/env/Trans.java delete mode 100644 env/src/main/java/com/att/inno/env/TransCreate.java delete mode 100644 env/src/main/java/com/att/inno/env/TransJAXB.java delete mode 100644 env/src/main/java/com/att/inno/env/TransStore.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/AbsTrans.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/AbsTransJAXB.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/BasicEnv.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/BasicTrans.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/EnvFactory.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/JavaUtilLogTarget.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/Log4JLogTarget.java delete mode 100644 env/src/main/java/com/att/inno/env/impl/NullLifeCycle.java delete mode 100644 env/src/main/java/com/att/inno/env/jaxb/JAXBDF.java delete mode 100644 env/src/main/java/com/att/inno/env/jaxb/JAXBData.java delete mode 100644 env/src/main/java/com/att/inno/env/jaxb/JAXBObjectifier.java delete mode 100644 env/src/main/java/com/att/inno/env/jaxb/JAXBStringifier.java delete mode 100644 env/src/main/java/com/att/inno/env/jaxb/JAXBmar.java delete mode 100644 env/src/main/java/com/att/inno/env/jaxb/JAXBumar.java delete mode 100644 env/src/main/java/com/att/inno/env/old/IOObjectifier.java delete mode 100644 env/src/main/java/com/att/inno/env/old/IOStringifier.java delete mode 100644 env/src/main/java/com/att/inno/env/old/Objectifier.java delete mode 100644 env/src/main/java/com/att/inno/env/old/OldDataFactory.java delete mode 100644 env/src/main/java/com/att/inno/env/old/Stringifier.java delete mode 100644 env/src/main/java/com/att/inno/env/util/Chrono.java delete mode 100644 env/src/main/java/com/att/inno/env/util/DoubleOutputStream.java delete mode 100644 env/src/main/java/com/att/inno/env/util/IndentPrintWriter.java delete mode 100644 env/src/main/java/com/att/inno/env/util/Pool.java delete mode 100644 env/src/main/java/com/att/inno/env/util/RefreshableThreadObject.java delete mode 100644 env/src/main/java/com/att/inno/env/util/Split.java delete mode 100644 env/src/main/java/com/att/inno/env/util/StringBuilderOutputStream.java delete mode 100644 env/src/main/java/com/att/inno/env/util/StringBuilderWriter.java (limited to 'env/src/main/java/com/att') diff --git a/env/src/main/java/com/att/inno/env/APIException.java b/env/src/main/java/com/att/inno/env/APIException.java deleted file mode 100644 index 677513b..0000000 --- a/env/src/main/java/com/att/inno/env/APIException.java +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - -/** - * An Exception with the ability to hold a payload.

- * - * This is important, because sometimes, the output of a Framework - * may be a descriptive object which doesn't inherit from Throwable - * and thus cannot be attached in "initCause".

- * - * Examples may be a SOAP Fault. - * - * - */ -public class APIException extends Exception { - - private Object payload = null; - - /** - * @param t - */ - public APIException(Throwable t) { - super(t); - } - - /** - * @param string - */ - public APIException(String string) { - super(string); - } - - /** - * @param errorMessage - * @param t - */ - public APIException(String errorMessage, Throwable t) { - super(errorMessage,t); - } - - /** - * Return payload, or null if none was set. Type is up to the calling - * System. - * - * @return Object - */ - public Object getPayload() { - return payload; - } - - /** - * Set a specific payload into this Exception, which doesn't necessarily - * inherit from Throwable. - * - * @param payload - * @return APIException - */ - public APIException setPayload(Object payload) { - this.payload = payload; - return this; - } - - /** - * Java expected serial ID - */ - private static final long serialVersionUID = 3505343458251445169L; -} diff --git a/env/src/main/java/com/att/inno/env/BaseDataFactory.java b/env/src/main/java/com/att/inno/env/BaseDataFactory.java deleted file mode 100644 index b04f115..0000000 --- a/env/src/main/java/com/att/inno/env/BaseDataFactory.java +++ /dev/null @@ -1,462 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; - -import javax.xml.XMLConstants; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSchema; -import javax.xml.namespace.QName; -import javax.xml.transform.Source; -import javax.xml.transform.stream.StreamSource; -import javax.xml.validation.Schema; -import javax.xml.validation.SchemaFactory; - -import org.xml.sax.SAXException; - -import com.att.inno.env.impl.EnvFactory; - - - -/** - * DataFactory Constructor will create the Stringifiers and Objectifiers necessary - * by Type and store the Class of the Type for quick creation of Data Objects - * with reused (and thread safe) components - * s - * Native Types are included. - * Those types covered by Env Implementation are covered dynamically. - * Types outside of Env mechanism can be added with "add" function - * - * - * @param - */ -public class BaseDataFactory { - - /** - * Generate a Schema Object for use in validation based on FileNames. - * - * WARNING: The java.xml.binding code requires YOU to figure out what order the - * files go in. If there is an import from A in B, then you must list A first. - * - * @param err - * @param filenames - * @return - * @throws APIException - */ - public static Schema genSchema(Store env, String ... filenames) throws APIException { - String schemaDir = env.get( - env.staticSlot(EnvFactory.SCHEMA_DIR), - EnvFactory.DEFAULT_SCHEMA_DIR); - File dir = new File(schemaDir); - if(!dir.exists())throw new APIException("Schema Directory " + schemaDir + " does not exist. You can set this with " + EnvFactory.SCHEMA_DIR + " property"); - FileInputStream[] fis = new FileInputStream[filenames.length]; - Source[] sources = new Source[filenames.length]; - File f; - for(int i=0; i clss) throws APIException { - // Obtain the Necessary info for QName from Requirement - XmlRootElement xre = clss.getAnnotation(XmlRootElement.class); - if(xre==null)throw new APIException(clss.getName() + " does not have an XmlRootElement annotation"); - Package pkg = clss.getPackage(); - XmlSchema xs = pkg.getAnnotation(XmlSchema.class); - if(xs==null) throw new APIException(clss.getName() + " package-info does not have an XmlSchema annotation"); - return new QName(xs.namespace(),xre.name()); - } - - ///////////////////////////////////////////// - // Native Type Converters - ///////////////////////////////////////////// -// /** -// * StringStringifier -// * -// * Support the Native Type String.. just return it back -// * -// * -// */ -// public static class StringStringifier extends NullLifeCycle implements Stringifier { -// /* (non-Javadoc) -// * @see com.att.env.Stringifier#stringify(com.att.env.Env, java.lang.Object) -// */ -// public String stringify(Env env, String input) throws APIException { -// return input; -// } -// }; -// -// /** -// * StringObjectifier -// * -// * Support the Native Type String.. just return it back -// * -// * -// */ -// public static class StringObjectifier extends NullLifeCycle implements Objectifier { -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#objectify(com.att.env.Env, java.lang.String) -// */ -// public String objectify(Env env, String input) throws APIException { -// return input; -// } -// -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#newObject() -// */ -// public String newInstance() throws APIException { -// return ""; -// } -// }; -// -// /** -// * LongStringifier -// * -// * Support the Native Type Long.. use Long parse functions -// * -// * -// */ -// public static class LongStringifier extends NullLifeCycle implements Stringifier { -// public String stringify(Env env, Long input) throws APIException { -// return input.toString(); -// } -// } -// -// /** -// * LongObjectifier -// * -// * Support the Native Type Long.. use Long parse functions -// * -// * -// */ -// public static class LongObjectifier extends NullLifeCycle implements Objectifier { -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#objectify(com.att.env.Env, java.lang.String) -// */ -// public Long objectify(Env env, String input) throws APIException { -// try { -// return new Long(input); -// } catch (Exception e) { -// APIException ae = new APIException("Cannot create a \"Long\" from [" + input + ']'); -// ae.initCause(e); -// throw ae; -// } -// } -// -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#newObject() -// */ -// public Long newInstance() throws APIException { -// return 0L; -// } -// } -// -// /** -// * IntegerStringifier -// * -// * Support the Native Integer.. use Integer parse functions -// * -// * -// */ -// public static class IntegerStringifier extends NullLifeCycle implements Stringifier { -// /* (non-Javadoc) -// * @see com.att.env.Stringifier#stringify(com.att.env.Env, java.lang.Object) -// */ -// public String stringify(Env env, Integer input) throws APIException { -// return input.toString(); -// } -// } -// -// /** -// * IntegerObjectifier -// * -// * Support the Native Integer.. use Integer parse functions -// * -// * -// */ -// public static class IntegerObjectifier extends NullLifeCycle implements Objectifier { -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#objectify(com.att.env.Env, java.lang.String) -// */ -// public Integer objectify(Env env, String input) throws APIException { -// try { -// return new Integer(input); -// } catch (Exception e) { -// APIException ae = new APIException("Cannot create a \"Integer\" from [" + input + ']'); -// ae.initCause(e); -// throw ae; -// } -// } -// -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#newObject() -// */ -// public Integer newInstance() throws APIException { -// return 0; -// } -// } -// -// /** -// * ShortStringifier -// * -// * Support the Native Short.. use Short parse functions -// * -// * -// */ -// public static class ShortStringifier extends NullLifeCycle implements Stringifier { -// public String stringify(Env env, Short input) throws APIException { -// return input.toString(); -// } -// } -// -// /** -// * ShortObjectifier -// * -// * Support the Native Short.. use Short parse functions -// * -// * -// */ -// public static class ShortObjectifier extends NullLifeCycle implements Objectifier { -// public Short objectify(Env env, String input) throws APIException { -// try { -// return new Short(input); -// } catch (Exception e) { -// APIException ae = new APIException("Cannot create a \"Short\" from [" + input + ']'); -// ae.initCause(e); -// throw ae; -// } -// } -// -// public Short newInstance() throws APIException { -// return 0; -// } -// } -// -// /** -// * ByteStringifier -// * -// * Support the Native Byte.. use Byte parse functions -// * -// * -// */ -// public static class ByteStringifier extends NullLifeCycle implements Stringifier { -// /* (non-Javadoc) -// * @see com.att.env.Stringifier#stringify(com.att.env.Env, java.lang.Object) -// */ -// public String stringify(Env env, Byte input) throws APIException { -// return input.toString(); -// } -// } -// -// /** -// * ByteObjectifier -// * -// * Support the Native Byte.. use Byte parse functions -// * -// * -// */ -// public static class ByteObjectifier extends NullLifeCycle implements Objectifier { -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#objectify(com.att.env.Env, java.lang.String) -// */ -// public Byte objectify(Env env, String input) throws APIException { -// try { -// return new Byte(input); -// } catch (Exception e) { -// APIException ae = new APIException("Cannot create a \"Byte\" from [" + input + ']'); -// ae.initCause(e); -// throw ae; -// } -// } -// -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#newObject() -// */ -// public Byte newInstance() throws APIException { -// return 0; -// } -// } -// -// /** -// * CharacterStringifier -// * -// * Support the Native Character.. use Character parse functions -// * -// * -// */ -// public static class CharacterStringifier extends NullLifeCycle implements Stringifier { -// /* (non-Javadoc) -// * @see com.att.env.Stringifier#stringify(com.att.env.Env, java.lang.Object) -// */ -// public String stringify(Env env, Character input) throws APIException { -// return input.toString(); -// } -// } -// -// /** -// * CharacterObjectifier -// * -// * Support the Native Character.. use Character parse functions -// * -// * -// */ -// public static class CharacterObjectifier extends NullLifeCycle implements Objectifier { -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#objectify(com.att.env.Env, java.lang.String) -// */ -// public Character objectify(Env env, String input) throws APIException { -// int length = input.length(); -// if(length<1 || length>1) { -// throw new APIException("String [" + input + "] does not represent a single Character"); -// } -// return input.charAt(0); -// } -// -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#newObject() -// */ -// public Character newInstance() throws APIException { -// return 0; -// } -// } -// -// /** -// * FloatStringifier -// * -// * Support the Native Float.. use Float parse functions -// * -// * -// */ -// public static class FloatStringifier extends NullLifeCycle implements Stringifier { -// /* (non-Javadoc) -// * @see com.att.env.Stringifier#stringify(com.att.env.Env, java.lang.Object) -// */ -// public String stringify(Env env, Float input) throws APIException { -// return input.toString(); -// } -// } -// -// /** -// * FloatObjectifier -// * -// * Support the Native Float.. use Float parse functions -// * -// * -// */ -// public static class FloatObjectifier extends NullLifeCycle implements Objectifier { -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#objectify(com.att.env.Env, java.lang.String) -// */ -// public Float objectify(Env env, String input) throws APIException { -// try { -// return new Float(input); -// } catch (Exception e) { -// APIException ae = new APIException("Cannot create a \"Float\" from [" + input + ']'); -// ae.initCause(e); -// throw ae; -// } -// } -// -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#newObject() -// */ -// public Float newInstance() throws APIException { -// return 0.0f; -// } -// } -// -// /** -// * DoubleStringifier -// * -// * Support the Native Double.. use Double parse functions -// * -// */ -// public static class DoubleStringifier extends NullLifeCycle implements Stringifier { -// /* (non-Javadoc) -// * @see com.att.env.Stringifier#stringify(com.att.env.Env, java.lang.Object) -// */ -// public String stringify(Env env, Double input) throws APIException { -// return input.toString(); -// } -// } -// -// /** -// * DoubleObjectifier -// * -// * Support the Native Double.. use Double parse functions -// * -// * -// */ -// public static class DoubleObjectifier extends NullLifeCycle implements Objectifier { -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#objectify(com.att.env.Env, java.lang.String) -// */ -// public Double objectify(Env env, String input) throws APIException { -// try { -// return new Double(input); -// } catch (Exception e) { -// APIException ae = new APIException("Cannot create a \"Double\" from [" + input + ']'); -// ae.initCause(e); -// throw ae; -// } -// } -// -// /* (non-Javadoc) -// * @see com.att.env.Objectifier#newObject() -// */ -// public Double newInstance() throws APIException { -// return 0.0; -// } -// } - -} diff --git a/env/src/main/java/com/att/inno/env/Creatable.java b/env/src/main/java/com/att/inno/env/Creatable.java deleted file mode 100644 index e7d7907..0000000 --- a/env/src/main/java/com/att/inno/env/Creatable.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - -/** - *

Creatable

- * **Must implement constructor T(ENV env, long currentTimeMillis);**

- * - * This interface exists to cover basic LifeCycle semantics so that Objects - * can be created dynamically and managed at a basic level (destroy(env)). - * - * - * @param - */ -public interface Creatable { - /** - * Return the timestamp (Unix long) when this object was created.

- * This can be used to see if the object is out of date in certain - * circumstances, or perhaps has already been notified in others. - * - * @return long - */ - public abstract long created(); - - /** - * Allow LifeCycle aware process to signal this element as destroyed. - * - * @param env - */ - public abstract void destroy(Env env); -} diff --git a/env/src/main/java/com/att/inno/env/Data.java b/env/src/main/java/com/att/inno/env/Data.java deleted file mode 100644 index f52eec3..0000000 --- a/env/src/main/java/com/att/inno/env/Data.java +++ /dev/null @@ -1,113 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Reader; -import java.io.Writer; -/** - *

Data

- * Data facilitates lazy marshaling of data with a pre-determined - * marshaling mechanism.

- * - * It stores either Object (defined by Generic {@literal }) or String.

- * - * On asking for Object of type {@literal }, it will respond with the object - * if it exists, or unmarshal the string and pass the result back.

- * - * On asking for String, it will respond with the String - * if it exists, or marshal the String and pass the result back.

- * - * the "options" available on several functions control the output of this particular call. When - * blank, they will default to the DataFactory defaults. When present, they override this - * particular call. - * The available options are "pretty" (for XML and JSON) and "fragment" (XML only concept), which drops - * the "" header so you can create larger XML documents from the output. - * - * - * @param - */ -public interface Data { - static enum TYPE {XML,JSON,JAXB,RAW,DEFAULT}; - // can & with 0xFFFF; -// public static final int XML = 0x1; -// public static final int JSON = 0x2; -// public static final int JAXB = 0x4; -// public static final int RAW = 0x1000; - - // can & with 0xF00000; - public static final int PRETTY = 0x100000; - public static final int FRAGMENT = 0x200000; - - /** - * Respond with the String if it exists, or marshal the String and pass the result back. - * - * However, use the Env the Data Object was created with. - * - * @return String - * @throws APIException - */ - public String asString() throws APIException; - - /** - * Respond with the Object of type {@literal } if it exists, or unmarshal from String - * and pass the result back.

- * - * However, use the Env the Data Object was created with. - * - * @return T - * @throws APIException - */ - public T asObject() throws APIException; - - /** - * Set a particular option on an existing Out - * - * if int is negative, it should remove the option - * @param option - */ - public Data option(int option); - - public Data to(OutputStream os) throws APIException, IOException; - public Data to(Writer writer) throws APIException, IOException; - - public Data load(T t) throws APIException; - public Data load(String str) throws APIException; - public Data load(InputStream is) throws APIException; - public Data load(Reader rdr) throws APIException; - - public Data in(TYPE type); - public Data out(TYPE type); - /** - * Return the Class Type supported by this DataObject - * - * @return {@literal Class} - */ - public Class getTypeClass(); - - public void direct(InputStream input, OutputStream output) throws APIException, IOException; - - -} diff --git a/env/src/main/java/com/att/inno/env/DataFactory.java b/env/src/main/java/com/att/inno/env/DataFactory.java deleted file mode 100644 index 5243ec9..0000000 --- a/env/src/main/java/com/att/inno/env/DataFactory.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - -public interface DataFactory { - public abstract Data newData(); - public abstract Data newData(Env trans); // and Env or Trans object - public abstract Class getTypeClass(); -} - diff --git a/env/src/main/java/com/att/inno/env/Decryptor.java b/env/src/main/java/com/att/inno/env/Decryptor.java deleted file mode 100644 index 13e0270..0000000 --- a/env/src/main/java/com/att/inno/env/Decryptor.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - -public interface Decryptor { - public String decrypt(String tag); - - public static final Decryptor NULL = new Decryptor() { - @Override - public String decrypt(String tag) { - return tag; - } - }; -} diff --git a/env/src/main/java/com/att/inno/env/Encryptor.java b/env/src/main/java/com/att/inno/env/Encryptor.java deleted file mode 100644 index 8f3877b..0000000 --- a/env/src/main/java/com/att/inno/env/Encryptor.java +++ /dev/null @@ -1,35 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - -public interface Encryptor { - public String encrypt(String data); - - public static final Encryptor NULL = new Encryptor() { - @Override - public String encrypt(String data) { - return data; - } - }; -} diff --git a/env/src/main/java/com/att/inno/env/Env.java b/env/src/main/java/com/att/inno/env/Env.java deleted file mode 100644 index aa71709..0000000 --- a/env/src/main/java/com/att/inno/env/Env.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - -/** - *

Env

- * Env is the basic representation of what can be obtained from the - * Environment. Environments also need the ability to Log and Track Time, so - * to keep the interfaces clean, Env Interface inherits from Trans. This does NOT - * mean that all Environments are Transactions... It only means Environments need - * to Log and Track Times. - * .

- * - * Using this abstraction, Components can be built on a modular basis, - * and still have the essentials of functioning within the service mechanism.

- * - * Thus, for instance, an Module could be made to work in two separate - * service types, with substantial differences in choices of logging, or auditing, - * and still have reasonably deep insight, such as the exact time a - * remote service was invoked.

- * - * There is a bit of an assumption corresponding to the reality of the 2000s that - * XML plays a part in most service work. - * - * - */ -public interface Env { - /** - * Very Severe Error may cause program to abort - */ - public LogTarget fatal(); - - /** - * Severe Error, but program might continue running - */ - public LogTarget error(); - - /** - * Required Audit statements - * @return - */ - public LogTarget audit(); - - /** - * Initialization steps... Allows a Logger to separate startup info - * @return - */ - public LogTarget init(); - - /** - * Potentially harmful situations - * @return - */ - public LogTarget warn(); - - /** - * Course Grained highlights of program progress - * @return - */ - public LogTarget info(); - - /** - * Fine-grained informational events useful for debugging - * @return - */ - public LogTarget debug(); - - /** - * Finest grained Informational events... more detailed than Debug - * @return - */ - public LogTarget trace(); - - - /** - * Basic and Common Audit info... - * - * Note Apps can define, but should use Integers after 0x1F. They can combine with "&" - */ - public static final int REMOTE = 0x01; - public static final int XML = 0x02; - public static final int JSON = 0x04; - public static final int SUB = 0x08; - public static final int CHECKPOINT = 0x10; - public static final int ALWAYS = 0x20; // Mark as a line to print, even in WARN+ mode - - - - /** - * Start a Time Trail with differentiation by flag. This can be Defined By above flags or combined with - * app flag definitions - * - * @param string - * @param flag - * @return - */ - public TimeTaken start(String name, int flag); - - public String setProperty(String tag, String value); - public String getProperty(String tag); - public String getProperty(String tag, String deflt); - - /** - * Passwords should be encrypted on the disk. Use this method to apply decryption before - * using. The Implementation should give ways to decrypt - * - * @param tag - * @return - */ - public Decryptor decryptor(); - - public Encryptor encryptor(); - -} - diff --git a/env/src/main/java/com/att/inno/env/EnvJAXB.java b/env/src/main/java/com/att/inno/env/EnvJAXB.java deleted file mode 100644 index f75203c..0000000 --- a/env/src/main/java/com/att/inno/env/EnvJAXB.java +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import javax.xml.namespace.QName; -import javax.xml.validation.Schema; - -public interface EnvJAXB extends EnvStore { - /** - * Obtain a DataInterface from this Environment - * - * @param - * @param classes - * @return - * @throws APIException - */ - public DataFactory newDataFactory(Class... classes) throws APIException; - - /** - * Obtain a DataInterface from this Environment, with Validating Schema - * - * @param - * @param classes - * @return - * @throws APIException - */ - public DataFactory newDataFactory(Schema schema, Class... classes) throws APIException; - - public DataFactory newDataFactory(QName qName, Class ... classes) throws APIException; - - public DataFactory newDataFactory(Schema schema, QName qName, Class ... classes) throws APIException; - -} diff --git a/env/src/main/java/com/att/inno/env/EnvJAXBProps.java b/env/src/main/java/com/att/inno/env/EnvJAXBProps.java deleted file mode 100644 index 2e0f977..0000000 --- a/env/src/main/java/com/att/inno/env/EnvJAXBProps.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -/** - * An interface to express both JAXB and Property elements of Env - * - */ -public interface EnvJAXBProps extends EnvJAXB, EnvProps { - -} diff --git a/env/src/main/java/com/att/inno/env/EnvProps.java b/env/src/main/java/com/att/inno/env/EnvProps.java deleted file mode 100644 index e18787a..0000000 --- a/env/src/main/java/com/att/inno/env/EnvProps.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.util.Map; - -public interface EnvProps extends Env { - public interface EnvProperty { - public String getProperty(String input); - }; - - /** - * Obtain a Property (String) based on a Key. Implementor decides how - * that works, i.e. from a complex set of Configurations, or just - * "System" (Java standard) - * - * @param key - * @return APIException - */ - public String getProperty(String key); - - /** - * Obtain a Property (String) based on a Key. Implementor decides how - * that works, i.e. from a complex set of Configurations, or just - * "System" (Java standard) - * - * If Property Value is null, then default will be used. - * @param key - * @return APIException - */ - public String getProperty(String tag, String defaultValue); - - /** - * Set a Property (String) based on a Key accessible to all in Env. Implementor decides how - * that works, i.e. from a complex set of Configurations, or just - * "System" (Java standard) - * - * @param key - * @return APIException - */ - public String setProperty(String key, String value); - - /** - * Get the SubProperties based on key. - * - * use "false" to remove prefix, "true" to leave prefix in. - * - * @param key - * @return APIException - * Given a known property set (or in this case, properties starting with key), - * return map of all properties with appropriate key names - */ - public Map getSubProperties(String key, boolean includePrefix); - - /** - * Get all of the properties in the Environment - * @return - */ - public Map getProperties(); - -} diff --git a/env/src/main/java/com/att/inno/env/EnvStore.java b/env/src/main/java/com/att/inno/env/EnvStore.java deleted file mode 100644 index 5872a3e..0000000 --- a/env/src/main/java/com/att/inno/env/EnvStore.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - -public interface EnvStore extends Env, Store, TransCreate{ - -} diff --git a/env/src/main/java/com/att/inno/env/IOObjectifier.java b/env/src/main/java/com/att/inno/env/IOObjectifier.java deleted file mode 100644 index 35358aa..0000000 --- a/env/src/main/java/com/att/inno/env/IOObjectifier.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.io.InputStream; -import java.io.Reader; - -public interface IOObjectifier extends Objectifier { - /** - * Marshal to Object T from a Reader, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return T - * @throws APIException - */ - public abstract T objectify(Env env, Reader rdr) throws APIException; - - /** - * Marshal to Object T from an InputStream, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return T - * @throws APIException - */ - public abstract T objectify(Env env, InputStream is) throws APIException; - -} diff --git a/env/src/main/java/com/att/inno/env/IOStringifier.java b/env/src/main/java/com/att/inno/env/IOStringifier.java deleted file mode 100644 index c1dccce..0000000 --- a/env/src/main/java/com/att/inno/env/IOStringifier.java +++ /dev/null @@ -1,75 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.io.OutputStream; -import java.io.Writer; - -/** - * Allow Extended IO interface usage without muddying up the Stringifier Interface - */ -public interface IOStringifier extends Stringifier { - /** - * Marshal from an Object T onto a Writer, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startTime(, Env.XML)" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return String - * @throws APIException - */ - public abstract void stringify(Env env, T input, Writer writer, boolean ... options) throws APIException; - - /** - * Marshal from a String to an Object T, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return String - * @throws APIException - */ - public abstract void stringify(Env env, T input, OutputStream os, boolean ... options) throws APIException; - - /** - * Set Pretty XML, where possible - * - * @param pretty - * @throws APIException - */ - public abstract IOStringifier pretty(boolean pretty); - - /** - * Set Generate Fragment - * - * @param fragment - * @throws APIException - */ - public abstract IOStringifier asFragment(boolean fragment); - - -} diff --git a/env/src/main/java/com/att/inno/env/LifeCycle.java b/env/src/main/java/com/att/inno/env/LifeCycle.java deleted file mode 100644 index 7a359bd..0000000 --- a/env/src/main/java/com/att/inno/env/LifeCycle.java +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * - * Created on: Aug 19, 2009 - * Created by: - * - * (c) 2009 SBC Knowledge Ventures, L.P. All rights reserved. - ******************************************************************* - * RESTRICTED - PROPRIETARY INFORMATION The Information contained - * herein is for use only by authorized employees of AT&T Services, - * Inc., and authorized Affiliates of AT&T Services, Inc., and is - * not for general distribution within or outside the respective - * companies. - ******************************************************************* - */ -package com.att.inno.env; - -import com.att.inno.env.util.RefreshableThreadObject; - - -/** - * - */ -public interface LifeCycle { - /** - * The Service using LifeCycle Elements is required to call this method at - * the appropriate startup time. This is better for services than a simple - * static call, because the exact moment of starting can be determined - * programatically. - *

- * - * An excellent use is to establish security credentials with a backend - * after appropriate configurations have been read and available as part of - * the {@link Env} Object. - * - * @param env - * @throws APIException - */ - public abstract void servicePrestart(Env env) throws APIException; - - /** - * Many cases of implementations are not thread safe, and mechanisms must be - * derived to accomodate them by holding per Thread. - *

- * - * {@link ThreadLocal} is a valuable resource, but start up times within the - * thread, depending on what it is, can be substantial. - *

- * - * Use ThreadPrestart to do all that is possible before actually performing - * work, i.e. inside of a client transaction. - * - * @param env - * @throws APIException - */ - public abstract void threadPrestart(Env env) throws APIException; - - /** - * The Service will call this when (service-defined) configurations change. - *

- * - * This mechanism allows the Service to recognize events, such as file - * changes, and pass on the event to all LifeCycle implementors. - *

- * - * The code should take the opportunity to evaluate configuration and change - * as necessary. - *

- * - *

IMPORTANT:

- * The LifeCycle implementor cannot guarantee it will not be in the middle - * of a transaction, so it would behoove the implementor to construct - * content that does not affect anything until finished, then apply to an - * appropriate atomic action (i.e. setting an Object to a field), or even - * synchronizing. - * - * If you are using Java's "ThreadLocal", consider - * {@link RefreshableThreadObject}, because it implements LifeCycle, and - * responds to the refresh command. - * - * @param env - * @throws APIException - */ - public abstract void refresh(Env env) throws APIException; - - /** - * Parallel to threadPrestart, threadDestroy tells the implementor that the - * service is ending this particular thread, and to take this opportunity to - * close out any content specific to this thread that can be closed. - * - * @param env - * @throws APIException - */ - public abstract void threadDestroy(Env env) throws APIException; - - /** - * Parallel to servicePrestart, serviceDestroy tells the implementor that - * the service is ending, and to take this opportunity to close out any - * content under it's control that can or should be closed explicitly. - */ - public abstract void serviceDestroy(Env env) throws APIException; -} diff --git a/env/src/main/java/com/att/inno/env/LogTarget.java b/env/src/main/java/com/att/inno/env/LogTarget.java deleted file mode 100644 index ca4f8b3..0000000 --- a/env/src/main/java/com/att/inno/env/LogTarget.java +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.io.PrintStream; -import java.util.Date; - -import com.att.inno.env.util.Chrono; - -/** - * LogTarget is the interface with which to assign any kind of Logging Implementations. - * - * Implement for any Logging Library of your choice, and for any logging string Format desired. - * - * Included are several Static Implementations for various uses: - * NULL: Does nothing with Logging Messages - * SYSOUT: Writes messages in general form to System Out - * SYSERR: Writes messages in general form to System Err - * - * - */ -public interface LogTarget { - public abstract void log(Object... msgs); - public abstract void log(Throwable e, Object ... msgs); - public abstract boolean isLoggable(); - public abstract void printf(String fmt, Object ... vars); - - // A Convenient LogTarget to insert when a NO-OP is desired. - public static final LogTarget NULL = new LogTarget() { - public void log(Object ... msgs) { - } - - public void log(Throwable t, Object ... msgs) { - } - - public boolean isLoggable() { - return false; - } - - @Override - public void printf(String fmt, Object ... vars) { - } - }; - - // A Convenient LogTarget to write to the Console - public static final LogTarget SYSOUT = new LogTarget() { - public void log(Object ... msgs) { - PrintStream out = System.out; - out.print(com.att.inno.env.util.Chrono.dateFmt.format(new Date())); - out.print(": "); - for(Object str : msgs) { - if(str!=null) { - out.print(str.toString()); - out.print(' '); - } else { - out.print("null "); - } - } - out.println(); - } - - public void log(Throwable t, Object ... msgs) { - PrintStream out = System.out; - out.print(Chrono.dateFmt.format(new Date())); - out.print(": "); - for(Object str : msgs) { - out.print(str.toString()); - out.print(' '); - } - out.println(); - t.printStackTrace(out); - out.println(); - } - - public boolean isLoggable() { - return true; - } - - @Override - public void printf(String fmt, Object ... vars) { - log(String.format(fmt,vars)); - } - }; - - // A Convenient LogTarget to write to the Console - public static final LogTarget SYSERR = new LogTarget() { - public void log(Object ... msgs) { - PrintStream out = System.err; - out.print(Chrono.dateFmt.format(new Date())); - out.print(": "); - for(Object str : msgs) { - out.print(str.toString()); - out.print(' '); - } - out.println(); - out.flush(); - } - - public void log(Throwable t, Object ... msgs) { - PrintStream out = System.err; - out.print(Chrono.dateFmt.format(new Date())); - out.print(": "); - for(Object str : msgs) { - out.print(str.toString()); - out.print(' '); - } - out.println(); - t.printStackTrace(out); - } - - public boolean isLoggable() { - return true; - } - @Override - public void printf(String fmt, Object ... vars) { - log(String.format(fmt,vars)); - } - - }; - - -}; diff --git a/env/src/main/java/com/att/inno/env/Objectifier.java b/env/src/main/java/com/att/inno/env/Objectifier.java deleted file mode 100644 index ed3c38e..0000000 --- a/env/src/main/java/com/att/inno/env/Objectifier.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * - */ -package com.att.inno.env; - - - -/** - *

Objectifier

- * Objectifier abstracts the unmarshaling of an Object from a String, and - * the creation of an uninitialized object. - */ -public interface Objectifier extends LifeCycle { - /** - * Marshal to Object T from a String, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return T - * @throws APIException - */ - public abstract T objectify(Env env, String input) throws APIException; - - /** - * Create a new object of type T. This is often more efficiently done with - * the underlying XML (or other) Library. - * @return T - * @throws APIException - */ - public abstract T newInstance() throws APIException; - - -} diff --git a/env/src/main/java/com/att/inno/env/Slot.java b/env/src/main/java/com/att/inno/env/Slot.java deleted file mode 100644 index 8f976d8..0000000 --- a/env/src/main/java/com/att/inno/env/Slot.java +++ /dev/null @@ -1,103 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * Slot.java - * - * Created on: Dec 5, 2008 - * Created by: - * - * (c) 2008 SBC Knowledge Ventures, L.P. All rights reserved. - ******************************************************************* - * RESTRICTED - PROPRIETARY INFORMATION The Information contained - * herein is for use only by authorized employees of AT&T Services, - * Inc., and authorized Affiliates of AT&T Services, Inc., and is - * not for general distribution within or outside the respective - * companies. - ******************************************************************* - */ -package com.att.inno.env; - -/** - * Slot's are used to store and retrieve data in the transaction's State object. - */ -public final class Slot { - - /* - * The name of the Slot. - */ - private final String key; - - /* - * The index of the State's local map associated with this Slot. - */ - final int slot; - - /** - * Constructs a new Slot. - * - * @param index - * The index of State's local map this Slot is associated with. - * @param name - * The name of the Slot's key. - */ - Slot(int index, String name) { - slot = index; - key = name; - } - - /** - * Debug method only to print key=slot pairs. - */ - public String toString() { - return key + '=' + slot; - } - - /** - * Returns the name of this Slot's key. - * - * @return - * The name of this Slot's key. - */ - public String getKey() { - return key; - } - - /** - * Put an Object into the slot on the State - * @param state - * @param obj - */ - public void put(Object[] state, Object obj) { - state[slot]=obj; - } - - /** - * Get an Object from the slot on the State - * @param state - * @param obj - */ - public Object get(Object[] state) { - return state[slot]; - } - -} diff --git a/env/src/main/java/com/att/inno/env/StaticSlot.java b/env/src/main/java/com/att/inno/env/StaticSlot.java deleted file mode 100644 index 0fe8f36..0000000 --- a/env/src/main/java/com/att/inno/env/StaticSlot.java +++ /dev/null @@ -1,86 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * Slot.java - * - * Created on: Dec 5, 2008 - * Created by: - * - * (c)2008 SBC Knowledge Ventures, L.P. All rights reserved. - ******************************************************************* - * RESTRICTED - PROPRIETARY INFORMATION The Information contained - * herein is for use only by authorized employees of AT&T Services, - * Inc., and authorized Affiliates of AT&T Services, Inc., and is - * not for general distribution within or outside the respective - * companies. - ******************************************************************* - */ -package com.att.inno.env; - -/** - * StaticSlot's are used to store and retrieve data from the Organizer that does not change. - */ -public final class StaticSlot { - - /* - * The name of the StaticSlot. - */ - private final String key; - - /* - * The index of the Organizer's static map associated with this StaticSlot. - */ - final int slot; - - /** - * Constructs a new StaticSlot. - * - * @param index - * The index of Organizer's static map this StaticSlot is associated with. - * @param name - * The name of the StaticSlot's key. - */ - StaticSlot(int index, String name) { - slot = index; - key = name; - } - - /** - * Debug method only to print key=slot pairs. - */ - public String toString() { - return key + '=' + slot; - } - - /** - * Returns the name of this StaticSlot's key. - * - * @return - * The name of this StaticSlot's key. - */ - public String getKey() { - return key; - } - -} - diff --git a/env/src/main/java/com/att/inno/env/Store.java b/env/src/main/java/com/att/inno/env/Store.java deleted file mode 100644 index fa7e339..0000000 --- a/env/src/main/java/com/att/inno/env/Store.java +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.util.List; - -public interface Store { - /** - * Returns the Slot assigned to the supplied name. - * - * @param name - * The name of the Slot to acquire. - * @return - * The Slot associated with the supplied name. - */ - public abstract Slot slot(String name); - - /** - * Returns the existing Slot associated with the supplied name, or null if it doesn't exist. - * - * @param name - * The name of the Slot to get. - * @return - * The Slot assigned to the supplied name, or null if it doesn't exist. - * - */ - public abstract Slot existingSlot(String name); - - /** - * Returns the names used while creating Slots in a List - * - * @return - */ - public abstract List existingSlotNames(); - - /** - * Returns the StaticSlot assigned to the supplied name. - * - * @param name - * The name of the StaticSlot to acquire. - * @return - * The StaticSlot associated with the supplied name. - */ - public abstract StaticSlot staticSlot(String name); - - /** - * Returns the names used while creating Static Slots in a List - * - * @return - */ - public abstract List existingStaticSlotNames(); - - /** - * Store the supplied value in the StaticSlot of the Organizer's static state. - * - * @param slot - * The StaticSlot used to store the object. - * @param value - * The object to store. - */ - public abstract void put(StaticSlot slot, Object value); - - /** - * Returns an Object from the Organizer's static state, or the Default if null - * - * @param slot - * The StaticSlot to retrieve the data from. - * @return - * The Object located in the supplied StaticSlot of the Organizer's static state. - */ - public abstract T get(StaticSlot slot, T dflt); - - /** - * Returns an Object from the Organizer's static state - * - * @param slot - * The StaticSlot to retrieve the data from. - * @return - * The Object located in the supplied StaticSlot of the Organizer's static state. - */ - public abstract T get(StaticSlot slot); - -// /** -// * Transfer (targeted) Args to Slots -// * -// * Transfer Strings with format "tag=value" into Static Slots -// */ -// public abstract void transfer(String args[], String ... tagss); -} diff --git a/env/src/main/java/com/att/inno/env/StoreImpl.java b/env/src/main/java/com/att/inno/env/StoreImpl.java deleted file mode 100644 index 482d0d6..0000000 --- a/env/src/main/java/com/att/inno/env/StoreImpl.java +++ /dev/null @@ -1,237 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map.Entry; -import java.util.Properties; - -import com.att.inno.env.util.Split; - - -public class StoreImpl implements Store { - /* - * The re-adjustment factor for growing the Static State array. - */ - private static final int growSize = 10; - - /* - * The index reference for Slot assignment. - */ - private int local; - - /* - * The index reference for StaticSlot assignment. - */ - private int stat; - - /* - * The name/slot map for local (transaction specific) State. - */ - private HashMap localMap; - - /* - * The name/slot map for Static State. - */ - private HashMap staticMap; - - private Object[] staticState; - - public StoreImpl() { - staticState = new Object[growSize]; - staticMap = new HashMap(); - localMap = new HashMap(); - } - - public StoreImpl(String tag) { - staticState = new Object[growSize]; - staticMap = new HashMap(); - localMap = new HashMap(); - } - - - public StoreImpl(String tag, String[] args) { - staticState = new Object[growSize]; - staticMap = new HashMap(); - localMap = new HashMap(); - - if(tag!=null) { - String tequals = tag + '='; - for(String arg : args) { - if(arg.startsWith(tequals) && !arg.equals(tequals)) { // needs to have something after = - Properties props = new Properties(); - for(String f : Split.split(File.pathSeparatorChar,arg.substring(tequals.length()))) { - moreProps(new File(f),props); - } - for(Entry es : props.entrySet()) { - put(staticSlot(es.getKey().toString()),es.getValue()); - } - } - } - } - - // Make sure properties on command line override those in Props - propsFromArgs(tag,args); - } - - public StoreImpl(String tag, Properties props) { - staticState = new Object[growSize]; - staticMap = new HashMap(); - localMap = new HashMap(); - - if(tag!=null) { - String fname = props.getProperty(tag); - if(fname!=null) { - for(String f : Split.split(File.pathSeparatorChar,fname)) { - if(!moreProps(new File(f),props)) { - System.err.println("Unable to load Properties from " + f); - } - } - } - } - - for(Entry es : props.entrySet()) { - put(staticSlot(es.getKey().toString()),es.getValue()); - } - } - - public void propsFromArgs(String tag, String[] args) { - for(String arg : args) { - String sarg[] = Split.split('=',arg); - if(sarg.length==2) { - if(tag.equals(sarg[0])) { - for(String fname : Split.split(File.pathSeparatorChar,sarg[1])) { - moreProps(new File(fname),null /* no target */); - } - } - put(staticSlot(sarg[0]),sarg[1]); - } - } - } - - private boolean moreProps(File f, Properties target) { - if(f.exists()) { - Properties props = new Properties(); - try { - FileInputStream fis = new FileInputStream(f); - try { - props.load(fis); - if(target!=null) { - target.load(fis); - } - } finally { - fis.close(); - } - } catch(IOException e) { - System.err.println(e); - } - for(Entry es : props.entrySet()) { - put(staticSlot(es.getKey().toString()),es.getValue()); - } - return true; - } else { - return false; - } - } - - public Object[] newTransState() { - return new Object[local]; - } - - /* (non-Javadoc) - * @see com.att.env.Store#slot(java.lang.String) - */ - public synchronized Slot slot(String name) { - name = name == null ? "" : name.trim(); - Slot slot = localMap.get(name); - if (slot == null) { - slot = new Slot(local++, name); - localMap.put(name, slot); - } - return slot; - } - - - /* (non-Javadoc) - * @see com.att.env.Store#existingSlot(java.lang.String) - */ - public Slot existingSlot(String name) { - return localMap.get(name); - } - - /* (non-Javadoc) - * @see com.att.env.Store#existingSlotNames() - */ - public List existingSlotNames() { - return new ArrayList(localMap.keySet()); - } - - /* (non-Javadoc) - * @see com.att.env.Store#staticSlot(java.lang.String) - */ - public synchronized StaticSlot staticSlot(String name) { - name = name == null ? "" : name.trim(); - StaticSlot slot = staticMap.get(name); - if (slot == null) { - if (stat%growSize == 0) { - Object[] temp = staticState; - staticState = new Object[temp.length+growSize]; - System.arraycopy(temp, 0, staticState, 0, temp.length); - } - slot = new StaticSlot(stat++, name); - staticMap.put(name, slot); - } - return slot; - } - - /* (non-Javadoc) - * @see com.att.env.Store#put(com.att.env.StaticSlot, java.lang.Object) - */ - public void put(StaticSlot slot, Object value) { - staticState[slot.slot] = value; - } - - /* (non-Javadoc) - * @see com.att.env.Store#get(com.att.env.StaticSlot T defaultObject) - */ - @SuppressWarnings("unchecked") - public T get(StaticSlot sslot,T dflt) { - T t = (T)staticState[sslot.slot]; - return t==null?dflt:t; - } - - @SuppressWarnings("unchecked") - public T get(StaticSlot sslot) { - return (T)staticState[sslot.slot]; - } - - public List existingStaticSlotNames() { - return new ArrayList(staticMap.keySet()); - } -} - diff --git a/env/src/main/java/com/att/inno/env/Stringifier.java b/env/src/main/java/com/att/inno/env/Stringifier.java deleted file mode 100644 index 3d3f43c..0000000 --- a/env/src/main/java/com/att/inno/env/Stringifier.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - - -/** - *

Stringifier

- * Stringifier abstracts the marshaling of a String to an Object - */ -public interface Stringifier extends LifeCycle { - - /** - * Marshal from a String to an Object T, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return String - * @throws APIException - */ - public abstract String stringify(Env env, T input, boolean ... options) throws APIException; - -} diff --git a/env/src/main/java/com/att/inno/env/TimeTaken.java b/env/src/main/java/com/att/inno/env/TimeTaken.java deleted file mode 100644 index 5bdaa1b..0000000 --- a/env/src/main/java/com/att/inno/env/TimeTaken.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -/** - *

TimeTaken

- * This simple interface allows for many different kinds of - * Audit Logs to be accomplished, by assuming that the creation - * of this object indicates "start", and the calling of "done" - * ends. - * - * The implementor of this class can easily be stored in efficient - * mechanisms to minimize impact of Auditing on performance. - * - * - */ -public abstract class TimeTaken { - public final long start; - protected long end, size; - public final int flag; - public final String name; - - /** - * The name is as it will appear when written to output (abstract method) - * - * The flag is an integer which can be System type (XML, REMOTE, etc), or End User defined for reporting purposes - * - * @param name - * @param flag - */ - public TimeTaken(String name, int flag) { - start = System.nanoTime(); - this.flag = flag; - this.name = name; - size = -1; - } - - - /** - * Call this when process is done to state ending time.

- * - * It is exceedingly prudent to wrap the process called with a try-finally:

- * - *

-	 *   TimeTaken tt = env.startSubTime();
-	 *   try {
-	 *       process.me(); // code to be timed.
-	 *   } finally {
-	 *   	 tt.done();
-	 *   }
-	 * 
- */ - public void done() { - end = System.nanoTime(); - } - - - /** - * For sizable contents, set the size. Implementations can simply write a no-op if they don't wish to - * store the size. - * - * @param size - */ - public void size(long theSize) { - size = theSize; - } - - /** - * Give readonly access to End, which isn't final - * @return - */ - public long end() { - return end; - } - - /** - * Time is taken in NanoSeconds. This method converts to decimals of Milliseconds - * @return - */ - public float millis() { - return (end-start)/1000000f; - } - /** - * Write self to a String Builder (for making Audits) - * @param sb - */ - public abstract void output(StringBuilder sb); - - /** - * For Debugging - */ - public String toString() { - return name + ' ' + millis() + "ms " + (size>0?Long.toString(size):""); - } - -} diff --git a/env/src/main/java/com/att/inno/env/Trans.java b/env/src/main/java/com/att/inno/env/Trans.java deleted file mode 100644 index 2e584c1..0000000 --- a/env/src/main/java/com/att/inno/env/Trans.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - - - - -/** - * A Trans is like an Env, however, it's purpose it to track the Transient - * Data associated with Transactions, or other short term elements. - * - * Any Object implementing Trans should expect to go in an out of scope quickly - * - * Implementations should also overload the concepts of "Start", etc and build up - * and Audit Log, so it can implement "metric" below - * - * All Transactions (i.e. a call to a service) will need these items. - * - * - */ -public interface Trans extends Env { - /** - * Add a completed entry in the Audit Trail for tracking purposes. - * - * @param text - */ - public void checkpoint(String text); - - /** - * Add a completed entry in the Audit Trail for tracking purposes, and combine flag with "CHECKPOINT" - * - * @param text - */ - public void checkpoint(String text, int additionalFlag); - - /** - * Output an Audit Trail onto the StringBuilder - * - * Load metrics into an array of floats from passed in Flags - * - * @param flag - * @param sb - * @return - */ - public Metric auditTrail(LogTarget lt, int indent, StringBuilder sb, int ... flag); - - public Metric auditTrail(int indent, StringBuilder sb, int ... flag); - - public class Metric { - public float[] buckets; - public float total; - public int entries; - } -} diff --git a/env/src/main/java/com/att/inno/env/TransCreate.java b/env/src/main/java/com/att/inno/env/TransCreate.java deleted file mode 100644 index b6db5b4..0000000 --- a/env/src/main/java/com/att/inno/env/TransCreate.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -public interface TransCreate { - public TRANS newTrans(); -} diff --git a/env/src/main/java/com/att/inno/env/TransJAXB.java b/env/src/main/java/com/att/inno/env/TransJAXB.java deleted file mode 100644 index ffd25d7..0000000 --- a/env/src/main/java/com/att/inno/env/TransJAXB.java +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -public interface TransJAXB extends Trans, TransStore { - -} diff --git a/env/src/main/java/com/att/inno/env/TransStore.java b/env/src/main/java/com/att/inno/env/TransStore.java deleted file mode 100644 index acfcf47..0000000 --- a/env/src/main/java/com/att/inno/env/TransStore.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env; - -public interface TransStore extends Trans { - /** - * Returns the Slot assigned to the supplied name. - * - * @param name - * The name of the Slot to acquire. - * @return - * The Slot associated with the supplied name. - */ - public abstract Slot slot(String name); - - /** - * Put data into the right slot - */ - public void put(Slot slot, Object value); - - /** - * Get data from the right slot - * - * This will do a cast to the expected type derived from Default - */ - public T get(Slot slot, T deflt); - - /** - * Returns an Object from the Organizer's static state, or the Default if null - * - * @param slot - * The StaticSlot to retrieve the data from. - * @return - * The Object located in the supplied StaticSlot of the Organizer's static state. - */ - public abstract T get(StaticSlot slot, T dflt); - -} diff --git a/env/src/main/java/com/att/inno/env/impl/AbsTrans.java b/env/src/main/java/com/att/inno/env/impl/AbsTrans.java deleted file mode 100644 index 4f370c7..0000000 --- a/env/src/main/java/com/att/inno/env/impl/AbsTrans.java +++ /dev/null @@ -1,215 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Stack; - -import com.att.inno.env.Env; -import com.att.inno.env.LogTarget; -import com.att.inno.env.Slot; -import com.att.inno.env.StoreImpl; -import com.att.inno.env.TimeTaken; -import com.att.inno.env.TransStore; - -public abstract class AbsTrans implements TransStore { - private static final float[] EMPTYF = new float[0]; - private static final Object[] EMPTYO = new Object[0]; - - protected ENV delegate; - protected List trail = new ArrayList(30); - private Object[] state; - - - public AbsTrans(ENV delegate) { - this.delegate = delegate; - state = delegate instanceof StoreImpl?((StoreImpl) delegate).newTransState():EMPTYO; - } - - // @Override - public LogTarget fatal() { - return delegate.fatal(); - } - -// @Override - public LogTarget error() { - return delegate.error(); - } - -// @Override - public LogTarget audit() { - return delegate.audit(); - } - -// @Override - public LogTarget init() { - return delegate.init(); - } - -// @Override - public LogTarget warn() { - return delegate.warn(); - } - -// @Override - public LogTarget info() { - return delegate.info(); - } - -// @Override - public LogTarget debug() { - return delegate.debug(); - } - -// @Override - public LogTarget trace() { - return delegate.trace(); - } - - /** - * Let the final Trans Implementation choose the exact kind of TimeTaken to use - * @param name - * @param flag - * @return - */ - protected abstract TimeTaken newTimeTaken(String name, int flag); - -// @Override - public final TimeTaken start(String name, int flag) { - TimeTaken tt = newTimeTaken(name,flag); - trail.add(tt); - return tt; - } - -// @Override - public final void checkpoint(String name) { - TimeTaken tt = newTimeTaken(name,CHECKPOINT); - tt.done(); - trail.add(tt); - } - - public final void checkpoint(String name, int additionalFlag) { - TimeTaken tt = newTimeTaken(name,CHECKPOINT|additionalFlag); - tt.done(); - trail.add(tt); - } - - @Override - public Metric auditTrail(int indent, StringBuilder sb, int ... flags) { - return auditTrail(info(),indent,sb,flags); - } - - @Override - public Metric auditTrail(LogTarget lt, int indent, StringBuilder sb, int ... flags) { - Metric metric = new Metric(); - int last = (metric.entries = trail.size()) -1; - metric.buckets = flags.length==0?EMPTYF:new float[flags.length]; - if(last>=0) { - TimeTaken first = trail.get(0); - // If first entry is sub, then it's actually the last "end" as well - // otherwise, check end - //long end = (first.flag&SUB)==SUB?first.end():trail.get(last).end(); - long end = trail.get(last).end(); - metric.total = (end - first.start) / 1000000f; - } - - if(sb==null) { - for(TimeTaken tt : trail) { - float ms = tt.millis(); - for(int i=0;i stack = new Stack(); - for(TimeTaken tt : trail) { - // Create Indentation based on SUB - while(!stack.isEmpty() && tt.end()>stack.peek()) { - --indent; - stack.pop(); - } - for(int i=0;i T get(Slot slot, T deflt) { - Object o; - try { - o = slot.get(state); - } catch(ArrayIndexOutOfBoundsException e) { - // Env State Size has changed because of dynamic Object creation... Rare event, but needs to be covered - Object[] temp = ((StoreImpl) delegate).newTransState(); - System.arraycopy(state, 0, temp, 0, state.length); - state = temp; - o=null; - } - return o==null?deflt:(T)o; - } - - -} diff --git a/env/src/main/java/com/att/inno/env/impl/AbsTransJAXB.java b/env/src/main/java/com/att/inno/env/impl/AbsTransJAXB.java deleted file mode 100644 index 186d0af..0000000 --- a/env/src/main/java/com/att/inno/env/impl/AbsTransJAXB.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.impl; - -import javax.xml.namespace.QName; -import javax.xml.validation.Schema; - -import com.att.inno.env.APIException; -import com.att.inno.env.DataFactory; -import com.att.inno.env.EnvJAXB; -import com.att.inno.env.TransJAXB; - -public abstract class AbsTransJAXB extends AbsTrans implements TransJAXB { - public AbsTransJAXB(EnvJAXB env) { - super(env); - } - -// @Override - public DataFactory newDataFactory(Class... classes) throws APIException { - return delegate.newDataFactory(classes); - } - -// @Override - public DataFactory newDataFactory(Schema schema, Class... classes) throws APIException { - return delegate.newDataFactory(schema, classes); - } - -// @Override - public DataFactory newDataFactory(QName qName, Class... classes) throws APIException { - return delegate.newDataFactory(qName, classes); - } - -// @Override - public DataFactory newDataFactory(Schema schema, QName qName, Class... classes) throws APIException { - return delegate.newDataFactory(schema, qName, classes); - } - -} diff --git a/env/src/main/java/com/att/inno/env/impl/BasicEnv.java b/env/src/main/java/com/att/inno/env/impl/BasicEnv.java deleted file mode 100644 index af2f103..0000000 --- a/env/src/main/java/com/att/inno/env/impl/BasicEnv.java +++ /dev/null @@ -1,336 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.impl; - -import java.applet.Applet; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.Properties; - -import javax.xml.namespace.QName; -import javax.xml.validation.Schema; - -import com.att.inno.env.APIException; -import com.att.inno.env.DataFactory; -import com.att.inno.env.Decryptor; -import com.att.inno.env.Encryptor; -import com.att.inno.env.Env; -import com.att.inno.env.EnvJAXB; -import com.att.inno.env.LogTarget; -import com.att.inno.env.StoreImpl; -import com.att.inno.env.TimeTaken; -import com.att.inno.env.TransCreate; -import com.att.inno.env.TransJAXB; -import com.att.inno.env.jaxb.JAXBDF; -import com.att.inno.env.util.Split; - -/** - * An essential Implementation of Env, which will fully function, without any sort - * of configuration. - * - * Use as a basis for Group level Env, just overriding where needed. - * - */ -public class BasicEnv extends StoreImpl implements EnvJAXB, TransCreate{ - protected LogTarget fatal=LogTarget.SYSERR; - protected LogTarget error=LogTarget.SYSERR; - protected LogTarget audit=LogTarget.SYSOUT; - protected LogTarget init=LogTarget.SYSOUT; - protected LogTarget warn=LogTarget.SYSERR; - protected LogTarget info=LogTarget.SYSOUT; - protected LogTarget debug=LogTarget.NULL; - protected LogTarget trace=LogTarget.NULL; -// protected Map props; - -// private boolean sysprops; - - public BasicEnv(String ... args) { - super(null,args); - } - - public BasicEnv(String tag, String[] args) { - super(tag, args); - } - - - /** - * Suitable for use in Applets... obtain all the values - * listed for the variable String arg "tags" - */ - public BasicEnv(Applet applet, String ... tags) { - super(null, tags); -// props = new HashMap(); -// String value; -// for(int i=0;i=0) { - sb.append(" size: "); - sb.append(Long.toString(size)); - } - } - } - }; - } - - // @Override - public String getProperty(String key) { - return get(staticSlot(key),null); - } - - public Properties getProperties(String ... filter) { - Properties props = new Properties(); - boolean yes; - for(String key : existingStaticSlotNames()) { - if(filter.length>0) { - yes = false; - for(String f : filter) { - if(key.startsWith(f)) { - yes = true; - break; - } - } - } else { - yes = true; - } - if(yes) { - String value = getProperty(key); - if(value!=null) { - props.put(key, value); - } - } - } - return props; - } - - // @Override - public String getProperty(String key, String defaultValue) { - return get(staticSlot(key),defaultValue); - } - - // @Override - public String setProperty(String key, String value) { - put(staticSlot(key),value==null?null:value.trim()); - return value; - } - - protected Decryptor decryptor = Decryptor.NULL; - protected Encryptor encryptor = Encryptor.NULL; - - - public Decryptor decryptor() { - return decryptor; - } - - public void set(Decryptor newDecryptor) { - decryptor = newDecryptor; - } - - public Encryptor encryptor() { - return encryptor; - } - - public void set(Encryptor newEncryptor) { - encryptor = newEncryptor; - } - - -// @SuppressWarnings("unchecked") - // @Override - public DataFactory newDataFactory(Class... classes) throws APIException { -// if(String.class.isAssignableFrom(classes[0])) -// return (DataFactory) new StringDF(this); - return new JAXBDF(this,classes); - } - -// @SuppressWarnings("unchecked") - // @Override - public DataFactory newDataFactory(Schema schema, Class... classes) throws APIException { -// if(String.class.isAssignableFrom(classes[0])) -// return (DataFactory) new StringDF(this); - return new JAXBDF(this, schema, classes); - } - -// @SuppressWarnings("unchecked") - // @Override - public DataFactory newDataFactory(QName qName, Class ... classes) throws APIException { -// if(String.class.isAssignableFrom(classes[0])) -// return (DataFactory) new StringDF(this); - return new JAXBDF(this, qName, classes); - } - - // @Override - public DataFactory newDataFactory(Schema schema, QName qName, Class ... classes) throws APIException { - return new JAXBDF(this, schema, qName, classes); - } - - // @Override - public BasicTrans newTrans() { - return new BasicTrans(this); - } - - public void loadFromSystemPropsStartsWith(String ... str) { - for(String name : System.getProperties().stringPropertyNames()) { - for(String s : str) { - if(name.startsWith(s)) { - setProperty(name, System.getProperty(name)); - } - } - } - } - - /** - * - * - */ - public void loadToSystemPropsStartsWith(String ... str) { - String value; - for(String name : existingStaticSlotNames()) { - for(String s : str) { - if(name.startsWith(s)) { - if((value = getProperty(name))!=null) - System.setProperty(name,value); - } - } - } - } - - public void loadPropFiles(String tag, ClassLoader classloader) throws IOException { - String propfiles = getProperty(tag); - if(propfiles!=null) { - for(String pf : Split.splitTrim(File.pathSeparatorChar, propfiles)) { - InputStream is = classloader==null?null:classloader.getResourceAsStream(pf); - if(is==null) { - File f = new File(pf); - if(f.exists()) { - is = new FileInputStream(f); - } - } - if(is!=null) { - BufferedReader br = new BufferedReader(new InputStreamReader(is)); - try { - String line; - while((line=br.readLine())!=null) { - line = line.trim(); - if(!line.startsWith("#")) { - String[] tv = Split.splitTrim('=', line); - if(tv.length==2) { - setProperty(tv[0],tv[1]); - } - } - } - } finally { - try { - br.close(); - } catch (IOException e) { - error().log(e); - } - } - } - } - } - } -} diff --git a/env/src/main/java/com/att/inno/env/impl/BasicTrans.java b/env/src/main/java/com/att/inno/env/impl/BasicTrans.java deleted file mode 100644 index ec36b57..0000000 --- a/env/src/main/java/com/att/inno/env/impl/BasicTrans.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.impl; - -import com.att.inno.env.Decryptor; -import com.att.inno.env.Encryptor; -import com.att.inno.env.EnvJAXB; -import com.att.inno.env.Slot; -import com.att.inno.env.StaticSlot; -import com.att.inno.env.TimeTaken; - - -public class BasicTrans extends AbsTransJAXB { - - public BasicTrans(EnvJAXB env) { - super(env); - } - - @Override - protected TimeTaken newTimeTaken(String name, int flag) { - /** - * Note: could have created a different format for Time Taken, but using BasicEnv's instead - */ - return delegate.start(name, flag); - } - - public Slot slot(String name) { - return delegate.slot(name); - } - - public T get(StaticSlot slot) { - return delegate.get(slot); - } - - public T get(StaticSlot slot, T dflt) { - return delegate.get(slot,dflt); - } - - public String setProperty(String tag, String value) { - delegate.setProperty(tag, value); - return value; - } - - public String getProperty(String tag) { - return delegate.getProperty(tag); - } - - public String getProperty(String tag, String deflt) { - return delegate.getProperty(tag, deflt); - } - - @Override - public Decryptor decryptor() { - return delegate.decryptor(); - } - - @Override - public Encryptor encryptor() { - return delegate.encryptor(); - } - -} diff --git a/env/src/main/java/com/att/inno/env/impl/EnvFactory.java b/env/src/main/java/com/att/inno/env/impl/EnvFactory.java deleted file mode 100644 index 1826265..0000000 --- a/env/src/main/java/com/att/inno/env/impl/EnvFactory.java +++ /dev/null @@ -1,67 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.impl; - -import com.att.inno.env.EnvJAXB; -import com.att.inno.env.TransCreate; -import com.att.inno.env.TransJAXB; - -/** - * EnvFactory - * - */ -public class EnvFactory { - - public static final String SCHEMA_DIR = "env-schema_dir"; - public static final String DEFAULT_SCHEMA_DIR = "src/main/xsd"; - static BasicEnv singleton; - - static { - singleton = new BasicEnv(); - } - public static BasicEnv singleton() { - return singleton; - } - - public static void setSingleton(BasicEnv be) { - singleton = be; - } - - public static TransJAXB newTrans() { - return new BasicTrans(singleton); - } - - public static TransJAXB newTrans(EnvJAXB env) { - return new BasicTrans(env); - } - - public static TransCreate transCreator() { - return new TransCreate() { - // @Override - public BasicTrans newTrans() { - return singleton.newTrans(); - } - }; - } -} - diff --git a/env/src/main/java/com/att/inno/env/impl/JavaUtilLogTarget.java b/env/src/main/java/com/att/inno/env/impl/JavaUtilLogTarget.java deleted file mode 100644 index 87a1b64..0000000 --- a/env/src/main/java/com/att/inno/env/impl/JavaUtilLogTarget.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.impl; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.att.inno.env.LogTarget; - -/** - * This LogTarget Implementation is included mostly because the JavaUtil based logging is included in the - * JDK. This makes the default implementation independent of any external Jars. - * - * Log4j is often considered more Enterprise capable. See Log4JLogTarget for that implementation - * - * - */ -public class JavaUtilLogTarget implements LogTarget { - private Level level; - private Logger log; - - public JavaUtilLogTarget(Logger logger, Level theLevel) { - log = logger; - level = theLevel; - } - - public boolean isLoggable() { - return log.isLoggable(level); - } - - public void log(Object ... msgs) { - if(log.isLoggable(level)) { - StringBuilder sb = new StringBuilder(); - String msg; - for(int i=0;i0) { - int sbl = sb.length(); - if(sbl>0) { - char last = sb.charAt(sbl-1); - if(" (.".indexOf(last)<0 && "().".indexOf(msg.charAt(0))<0)sb.append(' '); - } - sb.append(msg); - } - } - log.log(level, sb.toString()); - } - } - - public void log(Throwable e, Object ... msgs) { - String str = e.getLocalizedMessage(); - if(str==null) { - str = e.getMessage(); - } - if(str==null) { - str = e.getClass().getName(); - } - log.log(level,str,msgs); - } - - /* (non-Javadoc) - * @see com.att.inno.env.LogTarget#printf(java.lang.String, java.lang.String[]) - */ - @Override - public void printf(String fmt, Object ... vars) { - if(log.isLoggable(level)) { - log.log(level,String.format(fmt,vars)); - } - } -} diff --git a/env/src/main/java/com/att/inno/env/impl/Log4JLogTarget.java b/env/src/main/java/com/att/inno/env/impl/Log4JLogTarget.java deleted file mode 100644 index d176cd6..0000000 --- a/env/src/main/java/com/att/inno/env/impl/Log4JLogTarget.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.impl; - -import java.io.PrintWriter; - -import org.apache.log4j.Level; -import org.apache.log4j.Logger; - -import com.att.inno.env.APIException; -import com.att.inno.env.LogTarget; -import com.att.inno.env.util.StringBuilderWriter; - -/** - * Many services have chosen to use Log4J for their lower level Logging Implementation. This LogTarget will allow - * any of the messages sent to be set to the appropriate Log4J level. - * - * - */ -public class Log4JLogTarget implements LogTarget { - private Level level; - private Logger log; - - public Log4JLogTarget(String loggerName, Level level) throws APIException { - this.level = level; - if (loggerName != null && loggerName.length() > 0) { - log = Logger.getLogger(loggerName); - } else { - log = Logger.getRootLogger(); - } - } - - // @Override - public boolean isLoggable() { - return log.isEnabledFor(level); - } - - // @Override - public void log(Object... msgs) { - log(null, msgs); - } - - // @Override - public void log(Throwable e, Object... msgs) { - if (log.isEnabledFor(level)) { - StringBuilder sb = new StringBuilder(); - - String msg; - if (e != null) { - e.printStackTrace(new PrintWriter(new StringBuilderWriter(sb))); - } - for (int i = 0; i < msgs.length; ++i) { - if(msgs[i]!=null) { - msg = msgs[i].toString(); - if (msg != null && msg.length() > 0) { - int sbl = sb.length(); - if (sbl > 0) { - char last = sb.charAt(sbl - 1); - if (" (.".indexOf(last) < 0 - && "().".indexOf(msg.charAt(0)) < 0) - sb.append(' '); - } - sb.append(msg); - } - } - } - log.log(level, sb.toString()); - } - } - - /* (non-Javadoc) - * @see com.att.inno.env.LogTarget#printf(java.lang.String, java.lang.String[]) - */ - @Override - public void printf(String fmt, Object ... vars) { - if(log.isEnabledFor(level)) { - log.log(level,String.format(fmt,vars)); - } - } - - public static void setLog4JEnv(String loggerName, BasicEnv env) throws APIException { - env.fatal = new Log4JLogTarget(loggerName,Level.FATAL); - env.error = new Log4JLogTarget(loggerName,Level.ERROR); - env.warn = env.audit = env.init = new Log4JLogTarget(loggerName,Level.WARN); - env.info = new Log4JLogTarget(loggerName,Level.INFO); - env.debug = new Log4JLogTarget(loggerName,Level.DEBUG); - env.trace = new Log4JLogTarget(loggerName,Level.TRACE); - } - -} diff --git a/env/src/main/java/com/att/inno/env/impl/NullLifeCycle.java b/env/src/main/java/com/att/inno/env/impl/NullLifeCycle.java deleted file mode 100644 index 1897195..0000000 --- a/env/src/main/java/com/att/inno/env/impl/NullLifeCycle.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * - */ -package com.att.inno.env.impl; - -import com.att.inno.env.APIException; -import com.att.inno.env.Env; -import com.att.inno.env.LifeCycle; - - - -/** - *

NullLifeCycle

- * - * This is a convenience class for those Objects which should - * implement LifeCycle, but don't have anything to do in any of the - * LifeCycle methods defined. Extending - * NullLifeCycle reduces the required methods for the class by 5. - * Any one or two of them can be overloaded.

- * - * If more are overloaded, it is - * recommended just to implement LifeCycle. - *

- * - * This only works, though, if the Object doesn't need to extend something - * else, due to Java's Single Extension policy. In other cases, just - * implement LifeCycle, and leave them empty. - * - * - */ -public class NullLifeCycle implements LifeCycle { - public void servicePrestart(Env env) throws APIException {} - public void threadPrestart(Env env) throws APIException {} - public void refresh(Env env) throws APIException {} - public void threadDestroy(Env env) throws APIException {} - public void serviceDestroy(Env env) throws APIException {} -} diff --git a/env/src/main/java/com/att/inno/env/jaxb/JAXBDF.java b/env/src/main/java/com/att/inno/env/jaxb/JAXBDF.java deleted file mode 100644 index d2ef3c6..0000000 --- a/env/src/main/java/com/att/inno/env/jaxb/JAXBDF.java +++ /dev/null @@ -1,310 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.jaxb; - -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Reader; -import java.io.StringWriter; -import java.io.Writer; - -import javax.xml.bind.JAXBException; -import javax.xml.namespace.QName; -import javax.xml.validation.Schema; - -import com.att.inno.env.APIException; -import com.att.inno.env.BaseDataFactory; -import com.att.inno.env.Data; -import com.att.inno.env.Env; -import com.att.inno.env.EnvJAXB; -import com.att.inno.env.TimeTaken; -import com.att.inno.env.old.IOObjectifier; -import com.att.inno.env.old.IOStringifier; -import com.att.inno.env.old.OldDataFactory; - -public class JAXBDF extends BaseDataFactory implements OldDataFactory,IOObjectifier, IOStringifier { - // Package on purpose - EnvJAXB primaryEnv; - JAXBumar jumar; - JAXBmar jmar; - - public JAXBDF(EnvJAXB env, Class ... classes) throws APIException { - try { - primaryEnv = env; - jumar = new JAXBumar(classes); - jmar = new JAXBmar(classes) ; - } catch (JAXBException e) { - throw new APIException(e); - } - } - - public JAXBDF(EnvJAXB env, Schema schema, Class ... classes) throws APIException { - try { - primaryEnv = env; - jumar = new JAXBumar(schema, classes); - jmar = new JAXBmar(classes); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - public JAXBDF(EnvJAXB env, QName qname, Class ... classes) throws APIException { - try { - primaryEnv = env; - jumar = new JAXBumar(classes); - jmar = new JAXBmar(qname, classes); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - public JAXBDF(EnvJAXB env, Schema schema, QName qname, Class ... classes) throws APIException { - try { - primaryEnv = env; - jumar = new JAXBumar(schema, classes); - jmar = new JAXBmar(qname, classes); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // @Override - public T newInstance() throws APIException { - try { - return jumar.newInstance(); - } catch (Exception e) { - throw new APIException(e); - } - } - - // @Override - public IOStringifier pretty(boolean pretty) { - jmar.pretty(pretty); - return this; - } - - // @Override - public IOStringifier asFragment(boolean fragment) { - jmar.asFragment(fragment); - return this; - } - - // @Override - public void servicePrestart(Env env) throws APIException { - } - - // @Override - public void threadPrestart(Env env) throws APIException { - } - - // @Override - public void refresh(Env env) throws APIException { - } - - // @Override - public void threadDestroy(Env env) throws APIException { - } - - // @Override - public void serviceDestroy(Env env) throws APIException { - } - - @SuppressWarnings("unchecked") - // @Override - public Data newData() { - return new JAXBData(primaryEnv, this, new JAXBStringifier(jmar), new JAXBObjectifier(jumar),"",(Class)jmar.getMarshalClass()); - } - - @SuppressWarnings("unchecked") - // @Override - public Data newData(Env env) { - return new JAXBData(env, this,new JAXBStringifier(jmar), new JAXBObjectifier(jumar),"",(Class)jmar.getMarshalClass()); - } - - // @Override - public Data newData(T type) { - return new JAXBData(primaryEnv, this, new JAXBStringifier(jmar), new JAXBObjectifier(jumar), type); - } - - // @Override - public Data newDataFromStream(Env env, InputStream input) throws APIException { - //TODO Write an unvalidated String using STAX checking for end of Doc? - // perhaps key evaluation as well. - try { - T t = jumar.unmarshal(env.debug(), input); - return new JAXBData(primaryEnv, this, new JAXBStringifier(jmar), new JAXBObjectifier(jumar),t); - } catch(JAXBException e) { - throw new APIException(e); - } - } - - @SuppressWarnings("unchecked") - // @Override - public Data newDataFromString(String string) { - return new JAXBData(primaryEnv, this,new JAXBStringifier(jmar), new JAXBObjectifier(jumar), string,(Class)jmar.getMarshalClass()); - } - - /////////// Old DataFactory Interface - // @Override - public String stringify(T type) throws APIException { - try { - StringWriter sw = new StringWriter(); - jmar.marshal(primaryEnv.debug(), type, sw); - return sw.toString(); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // @Override - public void stringify(T type, Writer writer) throws APIException { - try { - jmar.marshal(primaryEnv.debug(), type, writer); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // @Override - public void stringify(T type, OutputStream os) throws APIException { - try { - jmar.marshal(primaryEnv.debug(), type, os); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - /////////// New DataFactory Interface - // @Override - public String stringify(Env env, T input, boolean ... options) throws APIException { - try { - StringWriter sw = new StringWriter(); - TimeTaken tt = env.start("JAXB Stringify", Env.XML); - try { - jmar.marshal(env.debug(), input, sw, options); - } finally { - tt.done(); - } - String str = sw.toString(); - tt.size(str.getBytes().length); - return str; - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // @Override - public void stringify(Env env, T input, Writer writer, boolean ... options) throws APIException { - TimeTaken tt = env.start("JAXB Stringify", Env.XML); - try { - jmar.marshal(env.debug(), input, writer, options); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - // @Override - public void stringify(Env env, T input, OutputStream os, boolean ... options) throws APIException { - TimeTaken tt = env.start("JAXB Stringify", Env.XML); - try { - jmar.marshal(env.debug(), input, os, options); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - // @Override - public T objectify(Env env, Reader rdr) throws APIException { - TimeTaken tt = env.start("JAXB Objectify", Env.XML); - try { - return jumar.unmarshal(env.debug(), rdr); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - // @Override - public T objectify(Reader rdr) throws APIException { - try { - return jumar.unmarshal(primaryEnv.debug(), rdr); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // @Override - public T objectify(Env env, InputStream is) throws APIException { - TimeTaken tt = env.start("JAXB Objectify", Env.XML); - try { - return jumar.unmarshal(env.debug(), is); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - // @Override - public T objectify(InputStream is) throws APIException { - try { - return jumar.unmarshal(primaryEnv.debug(), is); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // @Override - public T objectify(Env env, String input) throws APIException { - TimeTaken tt = env.start("JAXB Objectify", Env.XML); - tt.size(input.getBytes().length); - try { - return jumar.unmarshal(env.debug(), input); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - // @Override - public T objectify(String text) throws APIException { - try { - return jumar.unmarshal(primaryEnv.debug(), text); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - @SuppressWarnings("unchecked") - // @Override - public Class getTypeClass() { - return (Class)jmar.getMarshalClass(); - } - -} diff --git a/env/src/main/java/com/att/inno/env/jaxb/JAXBData.java b/env/src/main/java/com/att/inno/env/jaxb/JAXBData.java deleted file mode 100644 index 9f51edb..0000000 --- a/env/src/main/java/com/att/inno/env/jaxb/JAXBData.java +++ /dev/null @@ -1,321 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.jaxb; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Reader; -import java.io.Writer; - -import javax.xml.bind.JAXBException; - -import com.att.inno.env.APIException; -import com.att.inno.env.Data; -import com.att.inno.env.Env; -import com.att.inno.env.EnvJAXB; -import com.att.inno.env.old.IOStringifier; -import com.att.inno.env.old.Objectifier; -import com.att.inno.env.old.Stringifier; -/** - *

Data

- * Data facilitates lazy marshaling of data with a pre-determined - * marshaling mechanism.

- * - * It stores either Object (defined by Generic {@literal }) or String.

- * - * On asking for Object of type {@literal }, it will respond with the object - * if it exists, or unmarshal the string and pass the result back.

- * - * On asking for String, it will respond with the String - * if it exists, or marshal the String and pass the result back.

- * - * - * @param - */ -public final class JAXBData implements Data{ - private Stringifier stringifier; - private Objectifier objectifier; - private String dataAsString; - private T dataAsObject; - private Class tclass; - private JAXBDF df; - private Env creatingEnv; - private boolean options[] = new boolean[] {false, false}; - - /** - * Construct a Data Object with an appropriate Stringifier, Objectifier and Class to support - * - * @param env - * @param strfr - * @param objfr - * @param text - * @param typeClass - */ - JAXBData(Env env, JAXBDF df, Stringifier strfr, Objectifier objfr, String text, Class typeClass) { - dataAsString = text; - dataAsObject = null; - stringifier = strfr; - objectifier = objfr; - tclass = typeClass; - creatingEnv = env; - this.df = df; - } - - - /** - * Construct a Data Object with an appropriate Stringifier, Objectifier and Object (which will - * yield it's class) - * - * @param env - * @param strfr - * @param objfr - * @param object - */ - @SuppressWarnings("unchecked") - JAXBData(Env env, JAXBDF df, Stringifier strfr, Objectifier objfr, T object) { - dataAsString = null; - dataAsObject = object; - stringifier = strfr; - objectifier = objfr; - tclass = (Class) object.getClass(); - creatingEnv = env; - this.df = df; - } - - /** - * Respond with the String if it exists, or marshal the String and pass the result back.

- * - * Explicitly use a specific Env for logging purposes - * - * @param env - * @return String - * @throws APIException - */ - public String asString(EnvJAXB env) throws APIException { - if(dataAsString!=null) { - return dataAsString; - } else { - return dataAsString = stringifier.stringify(env, dataAsObject); - } - } - - /** - * Respond with the String if it exists, or marshal the String and pass the result back. - * - * However, use the Env the Data Object was created with. - * - * @return String - * @throws APIException - */ - // @Override - public String asString() throws APIException { - if(dataAsString!=null) { - return dataAsString; - } else { - return dataAsString = stringifier.stringify(creatingEnv, dataAsObject,options); - } - } - - public Data to(OutputStream os) throws APIException, IOException { - if(dataAsString!=null) { - os.write(dataAsString.getBytes()); - } else if (stringifier instanceof IOStringifier){ - ((IOStringifier)stringifier).stringify(creatingEnv, dataAsObject, os, options); - } else { - dataAsString = stringifier.stringify(creatingEnv, dataAsObject, options); - os.write(dataAsString.getBytes()); - } - return this; - } - - - // @Override - public JAXBData to(Writer writer) throws APIException, IOException { - if(dataAsString!=null) { - writer.write(dataAsString); - } else if (stringifier instanceof IOStringifier){ - ((IOStringifier)stringifier).stringify(creatingEnv, dataAsObject, writer, options); - } else { - dataAsString = stringifier.stringify(creatingEnv, dataAsObject, options); - writer.write(dataAsString); - } - return this; - } - - - public InputStream getInputStream() throws APIException { - if(dataAsString==null) { - dataAsString = stringifier.stringify(creatingEnv,dataAsObject,options); - } - return new ByteArrayInputStream(dataAsString.getBytes()); - } - - /** - * Respond with the Object of type {@literal } if it exists, or unmarshal from String - * and pass the result back.

- * - * Explicitly use a specific Env for logging purposes - * - * @param env - * @return T - * @throws APIException - */ - - public T asObject(EnvJAXB env) throws APIException { - if(dataAsObject !=null) { - return dataAsObject; - } else { - // Some Java compilers need two statements here - dataAsObject = objectifier.objectify(env, dataAsString); - return dataAsObject; - } - } - - /** - * Respond with the Object of type {@literal } if it exists, or unmarshal from String - * and pass the result back.

- * - * However, use the Env the Data Object was created with. - * - * @return T - * @throws APIException - */ - // @Override - public T asObject() throws APIException { - if(dataAsObject !=null) { - return dataAsObject; - } else { - // Some Java compilers need two statements here - dataAsObject = objectifier.objectify(creatingEnv, dataAsString); - return dataAsObject; - } - } - - - /** - * Return the Class Type supported by this DataObject - * - * @return {@literal Class} - */ - // @Override - public Class getTypeClass() { - return tclass; - } - - - /** - * For Debugging Convenience, we marshal to String if possible. - * - * Behavior is essentially the same as asString(), except asString() throws - * an APIException.

- * Since toString() must not throw exceptions, the function just catches and prints an - * error, which is probably not the behavior desired.

- * - * Therefore, use "asString()" where possible in actual Transactional code. - * - * @see java.lang.Object#toString() - */ - // @Override - public String toString() { - if(dataAsString!=null) { - return dataAsString; - } else { - try { - return dataAsString = stringifier.stringify(creatingEnv, dataAsObject); - } catch (APIException e) { - return "ERROR - Can't Stringify from Object " + e.getLocalizedMessage(); - } - } - } - - public Data load(T t) throws APIException { - dataAsObject = t; - dataAsString = null; - return this; - } - - - public Data load(String str) throws APIException { - dataAsObject = null; - dataAsString = str; - return this; - } - - - public Data load(InputStream is) throws APIException { - try { - dataAsObject = df.jumar.unmarshal(creatingEnv.debug(),is); - dataAsString = null; - } catch (JAXBException e) { - throw new APIException(e); - } - return this; - } - - - public Data load(Reader rdr) throws APIException { - try { - dataAsObject = df.jumar.unmarshal(creatingEnv.debug(),rdr); - dataAsString = null; - } catch (JAXBException e) { - throw new APIException(e); - } - return this; - } - - - // @Override - public void direct(InputStream input, OutputStream output) throws APIException, IOException { - byte b[] = new byte[128]; - int count; - do { - count = input.read(b); - if(count>0)output.write(b, 0, count); - } while(count>=0); - } - - - // @Override - public Data out(TYPE type) { - // it's going to be XML regardless... - return this; - } - - - // @Override - public Data in(TYPE type) { - // Not Supported... will still be XML - return this; - } - - - // @Override - public Data option(int option) { - options[0] = (option&Data.PRETTY)==Data.PRETTY; - options[1] = (option&Data.FRAGMENT)==Data.FRAGMENT; - return this; - } - -} diff --git a/env/src/main/java/com/att/inno/env/jaxb/JAXBObjectifier.java b/env/src/main/java/com/att/inno/env/jaxb/JAXBObjectifier.java deleted file mode 100644 index c311c9f..0000000 --- a/env/src/main/java/com/att/inno/env/jaxb/JAXBObjectifier.java +++ /dev/null @@ -1,136 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.jaxb; - -import java.io.InputStream; -import java.io.Reader; - -import javax.xml.bind.JAXBException; -import javax.xml.validation.Schema; - -import com.att.inno.env.APIException; -import com.att.inno.env.Env; -import com.att.inno.env.TimeTaken; -import com.att.inno.env.old.IOObjectifier; - -/** - * Allow Extended IO interface usage without muddying up the Stringifier Interface - */ -public class JAXBObjectifier implements IOObjectifier { - private JAXBumar jumar; - - public JAXBObjectifier(Schema schema, Class... classes) throws APIException { - try { - jumar = new JAXBumar(schema, classes); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - public JAXBObjectifier(Class... classes) throws APIException { - try { - jumar = new JAXBumar(classes); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // package on purpose - JAXBObjectifier(JAXBumar jumar) { - this.jumar = jumar; - } - - @SuppressWarnings("unchecked") - // @Override - public T objectify(Env env, String input) throws APIException { - TimeTaken tt = env.start("JAXB Unmarshal", Env.XML); - try { - tt.size(input.length()); - return (T)jumar.unmarshal(env.debug(), input); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - @SuppressWarnings("unchecked") - // @Override - public T objectify(Env env, Reader rdr) throws APIException { - //TODO create a Reader that Counts? - TimeTaken tt = env.start("JAXB Unmarshal", Env.XML); - try { - return (T)jumar.unmarshal(env.debug(), rdr); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - - @SuppressWarnings("unchecked") - // @Override - public T objectify(Env env, InputStream is) throws APIException { - //TODO create a Reader that Counts? - TimeTaken tt = env.start("JAXB Unmarshal", Env.XML); - try { - return (T)jumar.unmarshal(env.debug(), is); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - - public void servicePrestart(Env env) throws APIException { - } - - public void threadPrestart(Env env) throws APIException { - } - - // // @Override - public void refresh(Env env) throws APIException { - } - - // // @Override - public void threadDestroy(Env env) throws APIException { - } - - // // @Override - public void serviceDestroy(Env env) throws APIException { - } - - - @SuppressWarnings("unchecked") - public T newInstance() throws APIException { - try { - return (T)jumar.newInstance(); - } catch (Exception e) { - throw new APIException(e); - } - } - -} - diff --git a/env/src/main/java/com/att/inno/env/jaxb/JAXBStringifier.java b/env/src/main/java/com/att/inno/env/jaxb/JAXBStringifier.java deleted file mode 100644 index c98214b..0000000 --- a/env/src/main/java/com/att/inno/env/jaxb/JAXBStringifier.java +++ /dev/null @@ -1,138 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.jaxb; - -import java.io.OutputStream; -import java.io.StringWriter; -import java.io.Writer; - -import javax.xml.bind.JAXBException; -import javax.xml.namespace.QName; - -import com.att.inno.env.APIException; -import com.att.inno.env.Env; -import com.att.inno.env.TimeTaken; -import com.att.inno.env.old.IOStringifier; - -public class JAXBStringifier implements IOStringifier { - private JAXBmar jmar; - - public JAXBStringifier(Class... classes) throws APIException { - try { - jmar = new JAXBmar(classes); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - public JAXBStringifier(QName qname, Class... classes) - throws APIException { - try { - jmar = new JAXBmar(qname, classes); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - // package on purpose - JAXBStringifier(JAXBmar jmar) { - this.jmar = jmar; - } - - // // @Override - public void stringify(Env env, T input, Writer writer, boolean ... options) - throws APIException { - TimeTaken tt = env.start("JAXB Marshal", Env.XML); - try { - jmar.marshal(env.debug(), input, writer, options); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - // @Override - public void stringify(Env env, T input, OutputStream os, boolean ... options) - throws APIException { - // TODO create an OutputStream that Counts? - TimeTaken tt = env.start("JAXB Marshal", Env.XML); - try { - jmar.marshal(env.debug(), input, os, options); - } catch (JAXBException e) { - throw new APIException(e); - } finally { - tt.done(); - } - } - - // @Override - public String stringify(Env env, T input, boolean ... options) throws APIException { - TimeTaken tt = env.start("JAXB Marshal", Env.XML); - StringWriter sw = new StringWriter(); - try { - jmar.marshal(env.debug(), input, sw, options); - String rv = sw.toString(); - tt.size(rv.length()); - return rv; - } catch (JAXBException e) { - tt.size(0); - throw new APIException(e); - } finally { - tt.done(); - } - } - - // // @Override - public void servicePrestart(Env env) throws APIException { - } - - // // @Override - public void threadPrestart(Env env) throws APIException { - } - - // // @Override - public void refresh(Env env) throws APIException { - } - - // // @Override - public void threadDestroy(Env env) throws APIException { - } - - // // @Override - public void serviceDestroy(Env env) throws APIException { - } - - // @Override - public JAXBStringifier pretty(boolean pretty) { - jmar.pretty(pretty); - return this; - } - - // @Override - public JAXBStringifier asFragment(boolean fragment) { - jmar.asFragment(fragment); - return this; - } - -} diff --git a/env/src/main/java/com/att/inno/env/jaxb/JAXBmar.java b/env/src/main/java/com/att/inno/env/jaxb/JAXBmar.java deleted file mode 100644 index dbdf092..0000000 --- a/env/src/main/java/com/att/inno/env/jaxb/JAXBmar.java +++ /dev/null @@ -1,253 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * JAXBumar.java - * - * Created on: Apr 10, 2009 - * Created by: - * - * Revamped to do away with ThreadLocal 5/27/2011, - * - * (c) 2009 SBC Knowledge Ventures, L.P. All rights reserved. - ******************************************************************* - * RESTRICTED - PROPRIETARY INFORMATION The Information contained - * herein is for use only by authorized employees of AT&T Services, - * Inc., and authorized Affiliates of AT&T Services, Inc., and is - * not for general distribution within or outside the respective - * companies. - ******************************************************************* - */ -package com.att.inno.env.jaxb; - -import java.io.OutputStream; -import java.io.StringWriter; -import java.io.Writer; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Marshaller; -import javax.xml.namespace.QName; - -import com.att.inno.env.APIException; -import com.att.inno.env.LogTarget; -import com.att.inno.env.util.Pool; -import com.att.inno.env.util.Pool.Pooled; - -/** - * JAXBmar classes are inexpensive for going in and out of scope - * and have been made thread safe via Pooling - - * - */ -public class JAXBmar { - // Need to store off possible JAXBContexts based on Class, which will be stored in Creator - private static Map[],Pool> pools = new HashMap[], Pool>(); - - // Handle Marshaller class setting of properties only when needed - private class PMarshaller { - private Marshaller m; - private boolean p; - private boolean f; - - public PMarshaller(Marshaller marshaller) throws JAXBException { - m = marshaller; - m.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); - m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, p = false); - m.setProperty(Marshaller.JAXB_FRAGMENT, f = false); - } - - public Marshaller get(boolean pretty, boolean fragment) throws JAXBException { - if(pretty != p) { - m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, p = pretty); - } - if(fragment != f) { - m.setProperty(Marshaller.JAXB_FRAGMENT, f = fragment); - } - return m; - } - } - - private class Creator implements Pool.Creator { - private JAXBContext jc; - private String name; - public Creator(Class[] classes) throws JAXBException { - jc = JAXBContext.newInstance(classes); - name = "JAXBmar: " + classes[0].getName(); - } - - // @Override - public PMarshaller create() throws APIException { - try { - return new PMarshaller(jc.createMarshaller()); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - public String toString() { - return name; - } - - // @Override - public void reuse(PMarshaller pm) { - // Nothing to do - } - - // @Override - public void destroy(PMarshaller pm) { - // Nothing to do - } - - // @Override - public boolean isValid(PMarshaller t) { - return true; - } - } - - //TODO isn't UTF-8 a standard string somewhere for encoding? - private boolean fragment= false; - private boolean pretty=false; - private QName qname; - - private Pool mpool; // specific Pool associated with constructed Classes - private Class cls; - - private Pool getPool(Class ... classes) throws JAXBException { - Pool mp; - synchronized(pools) { - mp = pools.get(classes); - if(mp==null) { - pools.put(classes,mp = new Pool(new Creator(classes))); - } - } - return mp; - } - - public JAXBmar(Class... classes) throws JAXBException { - cls = classes[0]; - mpool = getPool(classes); - qname = null; - } - - public JAXBmar(QName theQname, Class... classes) throws JAXBException { - cls = classes[0]; - mpool = getPool(classes); - qname = theQname; - } - - @SuppressWarnings("unchecked") - public O marshal(LogTarget lt,O o, Writer writer, boolean ... options) throws JAXBException, APIException { - boolean pretty, fragment; - pretty = options.length>0?options[0]:this.pretty; - fragment = options.length>1?options[1]:this.fragment; - Pooled m = mpool.get(lt); - try { - if(qname==null) { - m.content.get(pretty,fragment).marshal(o, writer); - } else { - m.content.get(pretty,fragment).marshal( - new JAXBElement(qname, (Class)cls, o ), - writer); - } - return o; - } finally { - m.done(); - } - } - - @SuppressWarnings("unchecked") - public O marshal(LogTarget lt, O o, OutputStream os, boolean ... options) throws JAXBException, APIException { - boolean pretty, fragment; - pretty = options.length>0?options[0]:this.pretty; - fragment = options.length>1?options[1]:this.fragment; - Pooled m = mpool.get(lt); - try { - if(qname==null) { - m.content.get(pretty,fragment).marshal(o, os); - } else { - m.content.get(pretty,fragment).marshal( - new JAXBElement(qname, (Class)cls, o ),os); - } - return o; - } finally { - m.done(); - } - } - - public O marshal(LogTarget lt, O o, Writer writer, Class clss) throws JAXBException, APIException { - Pooled m = mpool.get(lt); - try { - if(qname==null) { - m.content.get(pretty,fragment).marshal(o, writer); - } else { - m.content.get(pretty,fragment).marshal( - new JAXBElement(qname, clss, o),writer); - } - return o; - } finally { - m.done(); - } - - } - - public O marshal(LogTarget lt, O o, OutputStream os, Class clss) throws JAXBException, APIException { - Pooled m = mpool.get(lt); - try { - if(qname==null) { - m.content.get(pretty,fragment).marshal(o, os); - } else { - m.content.get(pretty,fragment).marshal( - new JAXBElement(qname, clss, o ),os); - } - return o; - } finally { - m.done(); - } - } - - /** - * @return - */ - public Class getMarshalClass() { - return cls; - } - - public String stringify(LogTarget lt, O o) throws JAXBException, APIException { - StringWriter sw = new StringWriter(); - marshal(lt,o,sw); - return sw.toString(); - } - - public JAXBmar pretty(boolean pretty) { - this.pretty = pretty; - return this; - } - - public JAXBmar asFragment(boolean fragment) { - this.fragment = fragment; - return this; - } -} diff --git a/env/src/main/java/com/att/inno/env/jaxb/JAXBumar.java b/env/src/main/java/com/att/inno/env/jaxb/JAXBumar.java deleted file mode 100644 index eab30e6..0000000 --- a/env/src/main/java/com/att/inno/env/jaxb/JAXBumar.java +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * JAXBumar.java - * - * Created on: Apr 10, 2009 - * Created by: - * - * Revamped to do away with ThreadLocal 5/27/2011, - * - * (c) 2009 SBC Knowledge Ventures, L.P. All rights reserved. - ******************************************************************* - * RESTRICTED - PROPRIETARY INFORMATION The Information contained - * herein is for use only by authorized employees of AT&T Services, - * Inc., and authorized Affiliates of AT&T Services, Inc., and is - * not for general distribution within or outside the respective - * companies. - ******************************************************************* - */ -package com.att.inno.env.jaxb; - -import java.io.File; -import java.io.InputStream; -import java.io.Reader; -import java.io.StringReader; -import java.util.HashMap; -import java.util.Map; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; -import javax.xml.stream.XMLEventReader; -import javax.xml.stream.XMLStreamReader; -import javax.xml.transform.stream.StreamSource; -import javax.xml.validation.Schema; - -import org.w3c.dom.Node; - -import com.att.inno.env.APIException; -import com.att.inno.env.LogTarget; -import com.att.inno.env.util.Pool; -import com.att.inno.env.util.Pool.Pooled; - -/** - * JAXBumar classes are inexpensive for going in and out of scope - * and have been made thread safe via Pooling - * - */ -public class JAXBumar { - // Need to store off possible JAXBContexts based on Class, which will be stored in Creator - private static Map[],Pool> pools = new HashMap[], Pool>(); - - private Class cls; - private Schema schema; - private Pool mpool;; - - // Handle Marshaller class setting of properties only when needed - private class SUnmarshaller { - private Unmarshaller u; - private Schema s; - - public SUnmarshaller(Unmarshaller unmarshaller) throws JAXBException { - u = unmarshaller; - s = null; - } - - public Unmarshaller get(Schema schema) throws JAXBException { - if(s != schema) { - u.setSchema(s = schema); - } - return u; - } - } - - private class Creator implements Pool.Creator { - private JAXBContext jc; - private String name; - - public Creator(Class[] classes) throws JAXBException { - jc = JAXBContext.newInstance(classes); - name = "JAXBumar: " + classes[0].getName(); - } - - // @Override - public SUnmarshaller create() throws APIException { - try { - return new SUnmarshaller(jc.createUnmarshaller()); - } catch (JAXBException e) { - throw new APIException(e); - } - } - - public String toString() { - return name; - } - - // @Override - public void destroy(SUnmarshaller sui) { - // Nothing to do - } - - // @Override - public boolean isValid(SUnmarshaller t) { - return true; - } - - // @Override - public void reuse(SUnmarshaller t) { - // Nothing to do here - } - - } - - private Pool getPool(Class ... classes) throws JAXBException { - Pool mp; - synchronized(pools) { - mp = pools.get(classes); - if(mp==null) { - pools.put(classes,mp = new Pool(new Creator(classes))); - } - } - return mp; - } - - public JAXBumar(Class ... classes) throws JAXBException { - cls = classes[0]; - mpool = getPool(classes); - schema = null; - } - - /** - * Constructs a new JAXBumar with schema validation enabled. - * - * @param schema - * @param theClass - * @throws JAXBException - */ - public JAXBumar(Schema schema, Class ... classes) throws JAXBException { - cls = classes[0]; - mpool = getPool(classes); - this.schema = schema; - } - - @SuppressWarnings("unchecked") - public O unmarshal(LogTarget env, Node node) throws JAXBException, APIException { - Pooled s = mpool.get(env); - try { - return s.content.get(schema).unmarshal(node,(Class)cls).getValue(); - } finally { - s.done(); - } - - } - - @SuppressWarnings("unchecked") - public O unmarshal(LogTarget env, String xml) throws JAXBException, APIException { - if(xml==null) throw new JAXBException("Null Input for String unmarshal"); - Pooled s = mpool.get(env); - try { - return (O)s.content.get(schema).unmarshal( - new StreamSource(new StringReader(xml)) - ,(Class)cls).getValue(); - } finally { - s.done(); - } - } - - @SuppressWarnings("unchecked") - public O unmarshal(LogTarget env, File xmlFile) throws JAXBException, APIException { - Pooled s = mpool.get(env); - try { - return (O)s.content.get(schema).unmarshal(xmlFile); - } finally { - s.done(); - } - - } - - @SuppressWarnings("unchecked") - public O unmarshal(LogTarget env,InputStream is) throws JAXBException, APIException { - Pooled s = mpool.get(env); - try { - return (O)s.content.get(schema).unmarshal(is); - } finally { - s.done(); - } - } - - @SuppressWarnings("unchecked") - public O unmarshal(LogTarget env, Reader rdr) throws JAXBException, APIException { - Pooled s = mpool.get(env); - try { - return (O)s.content.get(schema).unmarshal(rdr); - } finally { - s.done(); - } - } - - @SuppressWarnings("unchecked") - public O unmarshal(LogTarget env, XMLStreamReader xsr) throws JAXBException, APIException { - Pooled s = mpool.get(env); - try { - return (O)s.content.get(schema).unmarshal(xsr,(Class)cls).getValue(); - } finally { - s.done(); - } - } - - @SuppressWarnings("unchecked") - public O unmarshal(LogTarget env, XMLEventReader xer) throws JAXBException, APIException { - Pooled s = mpool.get(env); - try { - return (O)s.content.get(schema).unmarshal(xer,(Class)cls).getValue(); - } finally { - s.done(); - } - } - - @SuppressWarnings("unchecked") - public O newInstance() throws InstantiationException, IllegalAccessException{ - return ((Class)cls).newInstance(); - } -} diff --git a/env/src/main/java/com/att/inno/env/old/IOObjectifier.java b/env/src/main/java/com/att/inno/env/old/IOObjectifier.java deleted file mode 100644 index 9932e20..0000000 --- a/env/src/main/java/com/att/inno/env/old/IOObjectifier.java +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.old; - -import java.io.InputStream; -import java.io.Reader; - -import com.att.inno.env.APIException; -import com.att.inno.env.Env; - -public interface IOObjectifier extends Objectifier { - /** - * Marshal to Object T from a Reader, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return T - * @throws APIException - */ - public abstract T objectify(Env env, Reader rdr) throws APIException; - - /** - * Marshal to Object T from an InputStream, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return T - * @throws APIException - */ - public abstract T objectify(Env env, InputStream is) throws APIException; - -} diff --git a/env/src/main/java/com/att/inno/env/old/IOStringifier.java b/env/src/main/java/com/att/inno/env/old/IOStringifier.java deleted file mode 100644 index 18ef170..0000000 --- a/env/src/main/java/com/att/inno/env/old/IOStringifier.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.old; - -import java.io.OutputStream; -import java.io.Writer; - -import com.att.inno.env.APIException; -import com.att.inno.env.Env; - -/** - * Allow Extended IO interface usage without muddying up the Stringifier Interface - */ -public interface IOStringifier extends Stringifier { - /** - * Marshal from an Object T onto a Writer, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startTime(, Env.XML)" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return String - * @throws APIException - */ - public abstract void stringify(Env env, T input, Writer writer, boolean ... options) throws APIException; - - /** - * Marshal from a String to an Object T, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return String - * @throws APIException - */ - public abstract void stringify(Env env, T input, OutputStream os, boolean ... options) throws APIException; - - /** - * Set Pretty XML, where possible - * - * @param pretty - * @throws APIException - */ - public abstract IOStringifier pretty(boolean pretty); - - /** - * Set Generate Fragment - * - * @param fragment - * @throws APIException - */ - public abstract IOStringifier asFragment(boolean fragment); - - -} diff --git a/env/src/main/java/com/att/inno/env/old/Objectifier.java b/env/src/main/java/com/att/inno/env/old/Objectifier.java deleted file mode 100644 index 55e9685..0000000 --- a/env/src/main/java/com/att/inno/env/old/Objectifier.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/** - * - */ -package com.att.inno.env.old; - -import com.att.inno.env.APIException; -import com.att.inno.env.Env; -import com.att.inno.env.LifeCycle; - - -/** - *

Objectifier

- * Objectifier abstracts the unmarshaling of an Object from a String, and - * the creation of an uninitialized object. - */ -public interface Objectifier extends LifeCycle { - /** - * Marshal to Object T from a String, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return T - * @throws APIException - */ - public abstract T objectify(Env env, String input) throws APIException; - - /** - * Create a new object of type T. This is often more efficiently done with - * the underlying XML (or other) Library. - * @return T - * @throws APIException - */ - public abstract T newInstance() throws APIException; - - -} diff --git a/env/src/main/java/com/att/inno/env/old/OldDataFactory.java b/env/src/main/java/com/att/inno/env/old/OldDataFactory.java deleted file mode 100644 index 6bf0995..0000000 --- a/env/src/main/java/com/att/inno/env/old/OldDataFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.old; - -import java.io.InputStream; -import java.io.OutputStream; -import java.io.Reader; -import java.io.Writer; - -import com.att.inno.env.APIException; -import com.att.inno.env.Data; -import com.att.inno.env.DataFactory; -import com.att.inno.env.Env; - -public interface OldDataFactory extends DataFactory { - public abstract String stringify(T type) throws APIException; - public abstract void stringify(T type, OutputStream os) throws APIException; - public abstract void stringify(T type, Writer writer) throws APIException; - public abstract T objectify(InputStream is) throws APIException; - public abstract T objectify(Reader rdr) throws APIException; - public abstract T objectify(String text) throws APIException; - public abstract T newInstance() throws APIException; - public abstract Data newData(T type); - public abstract Data newDataFromStream(Env env, InputStream input) throws APIException; - public abstract Data newDataFromString(String string); - -} - diff --git a/env/src/main/java/com/att/inno/env/old/Stringifier.java b/env/src/main/java/com/att/inno/env/old/Stringifier.java deleted file mode 100644 index db9401f..0000000 --- a/env/src/main/java/com/att/inno/env/old/Stringifier.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.old; - -import com.att.inno.env.APIException; -import com.att.inno.env.Env; -import com.att.inno.env.LifeCycle; - - -/** - *

Stringifier

- * Stringifier abstracts the marshaling of a String to an Object - */ -public interface Stringifier extends LifeCycle { - - /** - * Marshal from a String to an Object T, using contents from Env as necessary.

- * - * Implementations should use the {@link Env} to call "env.startXMLTime()" to mark - * XML time, since this is often a costly process. - * - * @param env - * @param input - * @return String - * @throws APIException - */ - public abstract String stringify(Env env, T input, boolean ... options) throws APIException; - -} diff --git a/env/src/main/java/com/att/inno/env/util/Chrono.java b/env/src/main/java/com/att/inno/env/util/Chrono.java deleted file mode 100644 index 8b840d0..0000000 --- a/env/src/main/java/com/att/inno/env/util/Chrono.java +++ /dev/null @@ -1,307 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.util; - -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.GregorianCalendar; -import java.security.SecureRandom; -import java.util.TimeZone; -import java.util.UUID; -import java.util.logging.Formatter; -import java.util.logging.LogRecord; - -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; -import javax.xml.datatype.XMLGregorianCalendar; - -public class Chrono { - private static final long NUM_100NS_INTERVALS_SINCE_UUID_EPOCH = 0x01b21dd213814000L; - - public final static DateFormat dateFmt, dateOnlyFmt, niceDateFmt, utcFmt; - // Give general access to XML DataType Factory, since it's pretty common - public static final DatatypeFactory xmlDatatypeFactory; - - static { - try { - xmlDatatypeFactory = DatatypeFactory.newInstance(); - } catch (DatatypeConfigurationException e) { - throw new RuntimeException(e); - } - dateOnlyFmt = new SimpleDateFormat("yyyy-MM-dd"); - niceDateFmt = new SimpleDateFormat("yyyy/MM/dd HH:mm zzz"); - dateFmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); - utcFmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); - utcFmt.setTimeZone(TimeZone.getTimeZone("UTC")); - } - - - public static class Formatter8601 extends Formatter { - - @Override - public String format(LogRecord r) { - StringBuilder sb = new StringBuilder(); - sb.append(dateFmt.format(new Date(r.getMillis()))); - sb.append(' '); - sb.append(r.getThreadID()); - sb.append(' '); - sb.append(r.getLevel()); - sb.append(": "); - sb.append(r.getMessage()); - sb.append('\n'); - return sb.toString(); - } - - } - - /** - * timeStamp - * - * Convenience method to setup an XML dateTime (XMLGregorianCalendar) with "now" - * @return - */ - public static XMLGregorianCalendar timeStamp() { - return xmlDatatypeFactory.newXMLGregorianCalendar(new GregorianCalendar()); - } - - /** - * timestamp - * - * Convenience method to setup an XML dateTime (XMLGregorianCalendar) with passed in Date - * @param date - * @return - */ - public static XMLGregorianCalendar timeStamp(Date date) { - GregorianCalendar gc = new GregorianCalendar(); - gc.setTime(date); - return xmlDatatypeFactory.newXMLGregorianCalendar(gc); - } - - public static XMLGregorianCalendar timeStamp(GregorianCalendar gc) { - return xmlDatatypeFactory.newXMLGregorianCalendar(gc); - } - - public static String utcStamp() { - return utcFmt.format(new Date()); - } - - public static String utcStamp(Date date) { - if(date==null)return ""; - return utcFmt.format(date); - } - - public static String utcStamp(GregorianCalendar gc) { - if(gc==null)return ""; - return utcFmt.format(gc.getTime()); - } - - public static String utcStamp(XMLGregorianCalendar xgc) { - if(xgc==null)return ""; - return utcFmt.format(xgc.toGregorianCalendar().getTime()); - } - - public static String dateStamp() { - return dateFmt.format(new Date()); - } - - public static String dateStamp(GregorianCalendar gc) { - if(gc == null)return ""; - return dateFmt.format(gc.getTime()); - } - - public static String dateStamp(Date date) { - if(date == null)return ""; - return dateFmt.format(date); - } - - public static String dateStamp(XMLGregorianCalendar xgc) { - if(xgc==null)return ""; - return dateFmt.format(xgc.toGregorianCalendar().getTime()); - } - - /** - * JAXB compatible dataTime Stamp - * - * Java 6 does not format Timezone with -05:00 format, and JAXB XML breaks without it. - * - * @return - */ - public static String dateTime() { - return dateTime(new GregorianCalendar()); - } - - /** - * JAXB compatible dataTime Stamp - * - * Java 6 does not format Timezone with -05:00 format, and JAXB XML breaks without it. - * - * @return - */ - public static String dateTime(Date date) { - GregorianCalendar gc = new GregorianCalendar(); - gc.setTime(date); - return dateTime(gc); - } - - /** - * JAXB compatible dataTime Stamp - * - * Java 6 does not format Timezone with -05:00 format, and JAXB XML breaks without it. - * - * @return - */ - public static String dateTime(GregorianCalendar gc) { - if(gc == null)return ""; - TimeZone tz = gc.getTimeZone(); - int tz1 = (tz.getRawOffset()+tz.getDSTSavings())/0x8CA0; - int tz1abs = Math.abs(tz1); - return String.format("%04d-%02d-%02dT%02d:%02d:%02d.%03d%c%02d:%02d", - gc.get(GregorianCalendar.YEAR), - gc.get(GregorianCalendar.MONTH)+1, - gc.get(GregorianCalendar.DAY_OF_MONTH), - gc.get(GregorianCalendar.HOUR), - gc.get(GregorianCalendar.MINUTE), - gc.get(GregorianCalendar.SECOND), - gc.get(GregorianCalendar.MILLISECOND), - tz1==tz1abs?'+':'-', - tz1abs/100, - ((tz1abs-(tz1abs/100)*100)*6)/10 // Get the "10s", then convert to mins (without losing int place) - ); - } - - /** - * JAXB compatible dataTime Stamp - * - * Java 6 does not format Timezone with -05:00 format, and JAXB XML breaks without it. - * - * @return - */ - public static String dateTime(XMLGregorianCalendar xgc) { - return xgc==null?"":dateTime(xgc.toGregorianCalendar()); - } - - public static String dateOnlyStamp() { - return dateOnlyFmt.format(new Date()); - } - - public static String dateOnlyStamp(GregorianCalendar gc) { - return gc == null?"":dateOnlyFmt.format(gc.getTime()); - } - - public static String dateOnlyStamp(Date date) { - return date == null?"":dateOnlyFmt.format(date); - } - - public static String dateOnlyStamp(XMLGregorianCalendar xgc) { - return xgc==null?"":dateOnlyFmt.format(xgc.toGregorianCalendar().getTime()); - } - - public static String niceDateStamp() { - return niceDateFmt.format(new Date()); - } - - public static String niceDateStamp(Date date) { - return date==null?"":niceDateFmt.format(date); - } - - public static String niceDateStamp(GregorianCalendar gc) { - return gc==null?"":niceDateFmt.format(gc.getTime()); - } - - public static String niceDateStamp(XMLGregorianCalendar xgc) { - return xgc==null?"":niceDateFmt.format(xgc.toGregorianCalendar().getTime()); - } - - - ////////////////////// HELPFUL Strings - public static final String BAD_DIR_CHARS_REGEX = "[/:\\;.]"; - public static final String SPLIT_DIR_REGEX = "/"; - - public static long firstMomentOfDay(long utc) { - GregorianCalendar begin = new GregorianCalendar(); - begin.setTimeInMillis(utc); - return firstMomentOfDay(begin).getTimeInMillis(); - } - - public static long lastMomentOfDay(long utc) { - GregorianCalendar end = new GregorianCalendar(); - end.setTimeInMillis(utc); - return lastMomentOfDay(end).getTimeInMillis(); - } - - public static GregorianCalendar firstMomentOfDay(GregorianCalendar begin) { - if(begin==null)begin = new GregorianCalendar(); - begin.set(GregorianCalendar.HOUR, 0); - begin.set(GregorianCalendar.AM_PM, GregorianCalendar.AM); - begin.set(GregorianCalendar.MINUTE, 0); - begin.set(GregorianCalendar.SECOND, 0); - begin.set(GregorianCalendar.MILLISECOND, 0); - return begin; - } - - public static GregorianCalendar lastMomentOfDay(GregorianCalendar end) { - if(end==null)end = new GregorianCalendar(); - end.set(GregorianCalendar.HOUR, 11); - end.set(GregorianCalendar.MINUTE, 59); - end.set(GregorianCalendar.SECOND, 59); - end.set(GregorianCalendar.MILLISECOND, 999); - end.set(GregorianCalendar.AM_PM, GregorianCalendar.PM); - return end; - } - - // UUID needs to be converted from UUID Epoch - public static final Date uuidToDate(UUID id) { - return new Date((id.timestamp() - NUM_100NS_INTERVALS_SINCE_UUID_EPOCH)/10000); - } - - public static final long uuidToUnix(UUID id) { - return (id.timestamp() - NUM_100NS_INTERVALS_SINCE_UUID_EPOCH)/10000; - } - - public static float millisFromNanos(long start, long end) { - return (end - start) / 1000000f; - } - - - private static long sequence = new SecureRandom().nextInt(); - private static synchronized long sequence() { - return ++sequence; - } - public static final UUID dateToUUID(Date d) { - /* - * From Cassandra : http://wiki.apache.org/cassandra/FAQ - Magic number obtained from #cassandra's thobbs, who - claims to have stolen it from a Python library. - */ - - long origTime = d.getTime(); - long time = origTime * 10000 + NUM_100NS_INTERVALS_SINCE_UUID_EPOCH; - long timeLow = time & 0xffffffffL; - long timeMid = time & 0xffff00000000L; - long timeHi = time & 0xfff000000000000L; - long upperLong = (timeLow << 32) | (timeMid >> 16) | (1 << 12) | (timeHi >> 48) ; - return new java.util.UUID(upperLong, (0xC000000000000000L | sequence())); - } - -} diff --git a/env/src/main/java/com/att/inno/env/util/DoubleOutputStream.java b/env/src/main/java/com/att/inno/env/util/DoubleOutputStream.java deleted file mode 100644 index eab33b1..0000000 --- a/env/src/main/java/com/att/inno/env/util/DoubleOutputStream.java +++ /dev/null @@ -1,98 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.util; - -import java.io.IOException; -import java.io.OutputStream; - -public class DoubleOutputStream extends OutputStream { - private OutputStream[] oss; - private boolean[] close; - - /** - * Create a Double Stream Writer - * Some Streams should not be closed by this object (i.e. System.out), therefore, mark them with booleans - */ - public DoubleOutputStream(OutputStream a, boolean closeA, OutputStream b, boolean closeB) { - oss = new OutputStream[] {a,b}; - close = new boolean[] {closeA,closeB}; - } - - /** - * Write a single character. - * @throws IOException - */ - @Override - public void write(int c) throws IOException { - for(OutputStream os : oss) { - os.write(c); - } - } - - /** - * Write a portion of an array of characters. - * - * @param bbuf Array of characters - * @param off Offset from which to start writing characters - * @param len Number of characters to write - * @throws IOException - */ - @Override - public void write(byte bbuf[], int off, int len) throws IOException { - for(OutputStream os : oss) { - os.write(bbuf,off,len); - } - } - - @Override - public void write(byte[] b) throws IOException { - for(OutputStream os : oss) { - os.write(b); - } - } - - /* (non-Javadoc) - * @see java.io.OutputStream#close() - */ - @Override - public void close() throws IOException { - for(int i=0;icol++)super.write((int)' '); - } - - public int getIndent() { - return indent; - } - - public void toIndent() { - int end = indent * INDENT; - for (int i = 0; i < end; ++i) { - super.write((int) ' '); - } - col = end; - } -} diff --git a/env/src/main/java/com/att/inno/env/util/Pool.java b/env/src/main/java/com/att/inno/env/util/Pool.java deleted file mode 100644 index e8ba8ce..0000000 --- a/env/src/main/java/com/att/inno/env/util/Pool.java +++ /dev/null @@ -1,395 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -/* - * Pool - * - * 5/27/2011 - */ -package com.att.inno.env.util; - -import java.util.LinkedList; - -import com.att.inno.env.APIException; -import com.att.inno.env.LogTarget; - -/** - * This Class pools on an As-Needed-Basis any particular kind of class, which is - * quite suitable for expensive operations. - * - * The user calls "get" on a Pool, and if a waiting resource (T) is available, - * it will be returned. Otherwise, one will be created with the "Creator" class - * (must be defined for (T)). - * - * You can Prime the instances to avoid huge startup costs - * - * The returned "Pooled" object simply has to call "done()" and the object is - * returned to the pool. If the developer does not return the object, a memory - * leak does not occur. There are no references to the object once "get" is - * called. However, the developer who does not return the object when done - * obviates the point of the pool, as new Objects are created in place of the - * Object not returned when another call to "get" is made. - * - * There is a cushion of extra objects, currently defaulted to MAX_RANGE. If the - * items returned become higher than the MAX_RANGE, the object is allowed to go - * out of scope, and be cleaned up. the default can be changed on a per-pool - * basis. - * - * - * - * @param - */ -public class Pool { - /** - * This is a constant which specified the default maximum number of unused - * objects to be held at any given time. - */ - private static final int MAX_RANGE = 6; // safety - - /** - * only Simple List needed. - * - * NOTE TO MAINTAINERS: THIS OBJECT DOES IT'S OWN SYNCHRONIZATION. All - * changes that touch list must account for correctly synchronizing list. - */ - private LinkedList> list; - - /** - * keep track of how many elements exist, to avoid asking list. - */ - private int count; - - /** - * Spares are those Object that are primed and ready to go. - */ - private int spares; - - /** - * Actual MAX number of spares allowed to hang around. Can be set to - * something besides the default MAX_RANGE. - */ - private int max_range = MAX_RANGE; - - /** - * The Creator for this particular pool. It must work for type T. - */ - private Creator creator; - - /** - * Create a new Pool, given the implementation of Creator, which must be - * able to create/destroy T objects at will. - * - * @param creator - */ - public Pool(Creator creator) { - count = spares = 0; - this.creator = creator; - list = new LinkedList>(); - } - - /** - * Preallocate a certain number of T Objects. Useful for services so that - * the first transactions don't get hit with all the Object creation costs - * - * @param lt - * @param prime - * @throws APIException - */ - public void prime(LogTarget lt, int prime) throws APIException { - for (int i = 0; i < prime; ++i) { - Pooled pt = new Pooled(creator.create(), this, lt); - synchronized (list) { - list.addFirst(pt); - ++count; - } - } - - } - - /** - * Destroy and remove all remaining objects. This is valuable for closing - * down all Allocated objects cleanly for exiting. It is also a good method - * for removing objects when, for instance, all Objects are invalid because - * of broken connections, etc. - */ - public void drain() { - synchronized (list) { - for (int i = 0; i < list.size(); ++i) { - Pooled pt = list.remove(); - creator.destroy(pt.content); - pt.logTarget.log("Pool drained ", creator.toString()); - } - count = spares = 0; - } - - } - - /** - * This is the essential function for Pool. Get an Object "T" inside a - * "Pooled" object. If there is a spare Object, then use it. If not, then - * create and pass back. - * - * This one uses a Null LogTarget - * - * IMPORTANT: When the use of this object is done (and the object is still - * in a valid state), then "done()" should be called immediately to allow - * the object to be reused. That is the point of the Pool... - * - * If the Object is in an invalid state, then "toss()" should be used so the - * Pool doesn't pass on invalid objects to others. - * - * @param lt - * @return - * @throws APIException - */ - public Pooled get() throws APIException { - Pooled pt; - synchronized (list) { - if (list.isEmpty()) { - pt = null; - } else { - pt = list.removeLast(); - --count; - creator.reuse(pt.content); - } - } - if (pt == null) { - if (spares < max_range) - ++spares; - pt = new Pooled(creator.create(), this, LogTarget.NULL); - } else { - if (spares > 1) - --spares; - } - return pt; - } - - /** - * This is the essential function for Pool. Get an Object "T" inside a - * "Pooled" object. If there is a spare Object, then use it. If not, then - * create and pass back. - * - * If you don't have access to a LogTarget from Env, use LogTarget.NULL - * - * IMPORTANT: When the use of this object is done (and the object is still - * in a valid state), then "done()" should be called immediately to allow - * the object to be reused. That is the point of the Pool... - * - * If the Object is in an invalid state, then "toss()" should be used so the - * Pool doesn't pass on invalid objects to others. - * - * @param lt - * @return - * @throws APIException - */ - public Pooled get(LogTarget lt) throws APIException { - Pooled pt; - synchronized (list) { - if (list.isEmpty()) { - pt = null; - } else { - pt = list.remove(); - --count; - creator.reuse(pt.content); - } - } - if (pt == null) { - if (spares < max_range) - ++spares; - pt = new Pooled(creator.create(), this, lt); - lt.log("Pool created ", creator.toString()); - } else { - if (spares > 1) - --spares; - } - return pt; - } - - /** - * This function will validate whether the Objects are still in a usable - * state. If not, they are tossed from the Pool. This is valuable to have - * when Remote Connections go down, and there is a question on whether the - * Pooled Objects are still functional. - * - * @return - */ - public boolean validate() { - boolean rv = true; - synchronized (list) { - for (Pooled t : list) { - if (!creator.isValid(t.content)) { - rv = false; - t.toss(); - list.remove(t); - } - } - } - return rv; - } - - /** - * This is an internal method, used only by the Internal Pooled class. - * - * The Pooled class "offers" it's Object back after use. It is an - * "offer", because Pool will simply destroy and remove the object if it has - * more than enough spares. - * - * @param lt - * @param used - * @return - */ - // Used only by Pooled - private boolean offer(LogTarget lt, Pooled used) { - if (count < spares) { - synchronized (list) { - list.addFirst(used); - ++count; - } - lt.log("Pool recovered ", creator.toString()); - } else { - lt.log("Pool destroyed ", creator.toString()); - creator.destroy(used.content); - } - return false; - } - - /** - * The Creator Interface give the Pool the ability to Create, Destroy and - * Validate the Objects it is maintaining. Thus, it is a specially written - * Implementation for each type. - * - * - * @param - */ - public interface Creator { - public T create() throws APIException; - - public void destroy(T t); - - public boolean isValid(T t); - - public void reuse(T t); - } - - /** - * The "Pooled" class is the transient class that wraps the actual Object - * T for API use/ It gives the ability to return ("done()", or "toss()") the - * Object to the Pool when processing is finished. - * - * For Safety, i.e. to avoid memory leaks and invalid Object States, there - * is a "finalize" method. It is strictly for when coder forgets to return - * the object, or perhaps hasn't covered the case during Exceptions or - * Runtime Exceptions with finally (preferred). This should not be - * considered normal procedure, as finalize() is called at an undetermined - * time during garbage collection, and is thus rather useless for a Pool. - * However, we don't want Coding Mistakes to put the whole program in an - * invalid state, so if something happened such that "done()" or "toss()" - * were not called, the resource is still cleaned up as well as possible. - * - * - * @param - */ - public static class Pooled { - public final T content; - private Pool pool; - protected LogTarget logTarget; - - /** - * Create the Wrapping Object Pooled. - * - * @param t - * @param pool - * @param logTarget - */ - public Pooled(T t, Pool pool, LogTarget logTarget) { - content = t; - this.pool = pool; - this.logTarget = logTarget; - } - - /** - * This is the key API for the Pool, as calling "done()" offers this - * object back to the Pool for reuse. - * - * Do not use the Pooled object again after calling "done()". - */ - public void done() { - if (pool != null) { - pool.offer(logTarget, this); - } - } - - /** - * The user of the Object may discover that the Object t is no longer in - * a valid state. Don't put Garbage back in the Refrigerator... Toss it, - * if it's no longer valid. - * - * toss() is also used for draining the Pool, etc. - * - * toss() will attempt to destroy the Object by using the Creator - * Interface. - * - */ - public void toss() { - if (pool != null) { - pool.creator.destroy(content); - } - // Don't allow finalize to put it back in. - pool = null; - } - - /** - * Just in case someone neglected to offer back object... Do not rely on - * this, as there is no specific time when finalize is called, which - * rather defeats the purpose of a Pool. - */ - @Override - protected void finalize() throws Throwable { - if (pool != null) { - done(); - pool = null; - } - } - } - - /** - * Get the maximum number of spare objects allowed at any moment - * - * @return - */ - public int getMaxRange() { - return max_range; - } - - /** - * Set a Max Range for numbers of spare objects waiting to be used. - * - * No negative numbers are allowed - * - * @return - */ - public void setMaxRange(int max_range) { - // Do not allow negative numbers - this.max_range = Math.max(0, max_range); - } - -} diff --git a/env/src/main/java/com/att/inno/env/util/RefreshableThreadObject.java b/env/src/main/java/com/att/inno/env/util/RefreshableThreadObject.java deleted file mode 100644 index 10bb8aa..0000000 --- a/env/src/main/java/com/att/inno/env/util/RefreshableThreadObject.java +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.util; - -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import com.att.inno.env.APIException; -import com.att.inno.env.Creatable; -import com.att.inno.env.Env; -import com.att.inno.env.LifeCycle; - - -/** - *

RefreshableThreadObject

- * This is a ThreadLocal like implementation, but it responds to - * the {@link LifeCycle} mechanism for configuration refreshes, and - * implements {@link Creatable} (for use in destroy, etc).

- * - * In addition to the Thread instance semantics, it compares when the object - * was created versus the last "refresh(env)" call when getting, for the - * thread, and if necessary to replace the created object, destroying the - * previous.

- * - * In most cases, it's better to use the new "Pool" mechanism, as it deals with - * gaining and returning resources on an as needed basis. This, however, remains - * in the cases where specific Objects need to be retained to specific Threads.

- * - * There is no way to do this kind of specialized behavior in ThreadLocal. - * - * - * @param - */ -public class RefreshableThreadObject> { - private Map objs; - private long refreshed; - private Constructor cnst; - - /** - * The passed in class must implement the constructor - *

-	 *   public MyClass(Env env) {
-	 *     ...
-	 *   }
-	 * 
- * @param clss - * @throws APIException - */ - public RefreshableThreadObject(Class clss) throws APIException { - objs = Collections.synchronizedMap(new HashMap()); - try { - cnst = clss.getConstructor(new Class[]{Env.class} ); - } catch (Exception e) { - throw new APIException(e); - } - } - - /** - * Get the "T" class from the current thread - * - * @param env - * @return T - * @throws APIException - */ - public T get(Env env) throws APIException { - Thread t = Thread.currentThread(); - T obj = objs.get(t); - if(obj==null || refreshed>obj.created()) { - try { - obj = cnst.newInstance(new Object[]{env}); - } catch (InvocationTargetException e) { - throw new APIException(e.getTargetException()); - } catch (Exception e) { - throw new APIException(e); - } - T destroyMe = objs.put(t,obj); - if(destroyMe!=null) { - destroyMe.destroy(env); - } - } - return obj; - } - - /** - * Mark the timestamp of refreshed. - * - * @param env - */ - public void refresh(Env env) { - refreshed = System.currentTimeMillis(); - } - - /** - * Remove the object from the Thread instances - * @param env - */ - public void remove(Env env) { - T obj = objs.remove(Thread.currentThread()); - if(obj!=null) - obj.destroy(env); - } -} diff --git a/env/src/main/java/com/att/inno/env/util/Split.java b/env/src/main/java/com/att/inno/env/util/Split.java deleted file mode 100644 index b813ac0..0000000 --- a/env/src/main/java/com/att/inno/env/util/Split.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.util; - -/** - * Split by Char, optional Trim - * - * Note: I read the String split and Pattern split code, and we can do this more efficiently for a single Character - * - * 8/20/2015 - */ - -public class Split { - public static String[] split(char c, String value) { - // Count items to preallocate Array (memory alloc is more expensive than counting twice) - int count,idx; - for(count=1,idx=value.indexOf(c);idx>=0;idx=value.indexOf(c,++idx),++count); - String[] rv = new String[count]; - if(count==1) { - rv[0]=value; - } else { - int last=0; - count=-1; - for(idx=value.indexOf(c);idx>=0;idx=value.indexOf(c,idx)) { - rv[++count]=value.substring(last,idx); - last = ++idx; - } - rv[++count]=value.substring(last); - } - return rv; - } - - public static String[] splitTrim(char c, String value) { - // Count items to preallocate Array (memory alloc is more expensive than counting twice) - int count,idx; - for(count=1,idx=value.indexOf(c);idx>=0;idx=value.indexOf(c,++idx),++count); - String[] rv = new String[count]; - if(count==1) { - rv[0]=value.trim(); - } else { - int last=0; - count=-1; - for(idx=value.indexOf(c);idx>=0;idx=value.indexOf(c,idx)) { - rv[++count]=value.substring(last,idx).trim(); - last = ++idx; - } - rv[++count]=value.substring(last).trim(); - } - return rv; - } - - public static String[] splitTrim(char c, String value, int size) { - int idx; - String[] rv = new String[size]; - if(size==1) { - rv[0]=value.trim(); - } else { - int last=0; - int count=-1; - size-=2; - for(idx=value.indexOf(c);idx>=0 && countbyte values that will fit into this buffer - * before it is automatically expanded - * - * @throws IllegalArgumentException - * If initialSize is negative - */ - public StringBuilderOutputStream(int initialSize) { - if (initialSize < 0) { - throw new IllegalArgumentException("Negative buffer size"); - } - buf = new StringBuilder(initialSize); - } - - /** - * Write a single character. - */ - public void write(int c) { - buf.append((byte) c); - } - - /** - * Write a portion of an array of characters. - * - * @param bbuf Array of characters - * @param off Offset from which to start writing characters - * @param len Number of characters to write - */ - - public void write(byte bbuf[], int off, int len) { - if ((off < 0) || (off > bbuf.length) || (len < 0) || - ((off + len) > bbuf.length) || ((off + len) < 0)) { - throw new IndexOutOfBoundsException(); - } else if (len == 0) { - return; - } - buf.append(new String(bbuf, off, len)); - } - - @Override - public void write(byte[] b) throws IOException { - buf.append(new String(b)); - } - - /** - * Write a string. - */ - public void write(String str) { - buf.append(str); - } - - /** - * Write a portion of a string. - * - * @param str String to be written - * @param off Offset from which to start writing characters - * @param len Number of characters to write - */ - public void write(String str, int off, int len) { - buf.append(str,off,len); - } - - public StringBuilderOutputStream append(CharSequence csq) { - if (csq == null) { - write("null"); - } else { - for(int i = 0;i An invocation of this method of the form out.append(c) - * behaves in exactly the same way as the invocation - * - *
-     *     out.write(c) 
- * - * @param c - * The 16-bit character to append - * - * @return This writer - * - * @since 1.5 - */ - public StringBuilderOutputStream append(byte c) { - buf.append(c); - return this; - } - - /** - * Return the buffer's current value as a string. - */ - public String toString() { - return buf.toString(); - } - - /** - * Return the string buffer itself. - * - * @return StringBuffer holding the current buffer value. - */ - public StringBuilder getBuffer() { - return buf; - } - - public void reset() { - buf.setLength(0); - } - - @Override - public void flush() throws IOException { - } - - @Override - public void close() throws IOException { - } - -} diff --git a/env/src/main/java/com/att/inno/env/util/StringBuilderWriter.java b/env/src/main/java/com/att/inno/env/util/StringBuilderWriter.java deleted file mode 100644 index 632ff60..0000000 --- a/env/src/main/java/com/att/inno/env/util/StringBuilderWriter.java +++ /dev/null @@ -1,173 +0,0 @@ -/******************************************************************************* - * ============LICENSE_START==================================================== - * * org.onap.aaf - * * =========================================================================== - * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * * =========================================================================== - * * Licensed under the Apache License, Version 2.0 (the "License"); - * * you may not use this file except in compliance with the License. - * * You may obtain a copy of the License at - * * - * * http://www.apache.org/licenses/LICENSE-2.0 - * * - * * Unless required by applicable law or agreed to in writing, software - * * distributed under the License is distributed on an "AS IS" BASIS, - * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * * See the License for the specific language governing permissions and - * * limitations under the License. - * * ============LICENSE_END==================================================== - * * - * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * * - ******************************************************************************/ -package com.att.inno.env.util; - -import java.io.IOException; -import java.io.Writer; - -public class StringBuilderWriter extends Writer { - private StringBuilder buf; - - - /** - * Create a new string writer using the default initial string-buffer - * size. - */ - public StringBuilderWriter() { - buf = new StringBuilder(); - } - - /** - * Create a new string writer using a passed in StringBuilder - * size. - */ - public StringBuilderWriter(StringBuilder sb) { - buf = sb; - } - - /** - * Create a new string writer using the specified initial string-buffer - * size. - * - * @param initialSize - * The number of char values that will fit into this buffer - * before it is automatically expanded - * - * @throws IllegalArgumentException - * If initialSize is negative - */ - public StringBuilderWriter(int initialSize) { - if (initialSize < 0) { - throw new IllegalArgumentException("Negative buffer size"); - } - buf = new StringBuilder(initialSize); - } - - /** - * Write a single character. - */ - public void write(int c) { - buf.append((char) c); - } - - /** - * Write a portion of an array of characters. - * - * @param cbuf Array of characters - * @param off Offset from which to start writing characters - * @param len Number of characters to write - */ - public void write(char cbuf[], int off, int len) { - if ((off < 0) || (off > cbuf.length) || (len < 0) || - ((off + len) > cbuf.length) || ((off + len) < 0)) { - throw new IndexOutOfBoundsException(); - } else if (len == 0) { - return; - } - buf.append(cbuf, off, len); - } - - /** - * Write a string. - */ - public void write(String str) { - buf.append(str); - } - - /** - * Write a portion of a string. - * - * @param str String to be written - * @param off Offset from which to start writing characters - * @param len Number of characters to write - */ - public void write(String str, int off, int len) { - char[] chars = new char[len]; - str.getChars(off, off+len, chars, 0); - buf.append(chars); - } - - public StringBuilderWriter append(CharSequence csq) { - if (csq == null) { - write("null"); - } else { - buf.append(csq); - } - return this; - } - - public StringBuilderWriter append(CharSequence csq, int start, int end) { - CharSequence cs = (csq == null ? "null" : csq); - return append(cs.subSequence(start, end)); - } - - /** - * Appends the specified character to this writer. - * - *

An invocation of this method of the form out.append(c) - * behaves in exactly the same way as the invocation - * - *

-     *     out.write(c) 
- * - * @param c - * The 16-bit character to append - * - * @return This writer - * - * @since 1.5 - */ - public StringBuilderWriter append(char c) { - buf.append(c); - return this; - } - - /** - * Return the buffer's current value as a string. - */ - public String toString() { - return buf.toString(); - } - - /** - * Return the string buffer itself. - * - * @return StringBuffer holding the current buffer value. - */ - public StringBuilder getBuffer() { - return buf; - } - - public void reset() { - buf.setLength(0); - } - - @Override - public void flush() throws IOException { - } - - @Override - public void close() throws IOException { - } - -} -- cgit 1.2.3-korg