PropertyIO Overview |
---|
PropertyIO
.AbstractPropertyIO
which I will recommend to extend see AbstractPropertyIO API Doc.
Abstract Class | Parent class | Description | Restrictions | Version | Javadoc |
---|---|---|---|---|---|
AbstractPropertyIO | PropertyIO | Implements the method that stored the cached values in a hashTable. This included the method for reload and the attributes for caching and readonly. |
- | 1.0 (1.9) | API Doc |
AbstractHttpPropertyIO | AbstractPropertyIO | Abstract class for handling properties via HttpServletRequest. | - | 1.8 | API Doc |
AbstractJDBCPropertyIO | AbstractPropertyIO | This handles all the SQL generation and for the tables and fields provided. The only thing missing is the getConnection() method and getName() . |
- | 1.0 | API Doc |
AbstractURLPropertyIO | AbstractPropertyIO | Abstract PropertyIO which gets Properties from an URL location. | - | 1.9 | API Doc |
AbstractXMLInputStreamPropertyIO | AbstractPropertyIO | Abstract input stream class for loading properties stored somewhere in a XML file. | Readonly | 1.3 | API Doc |
AbstractFilePropertyIO | AbstractPropertyIO | Abstract PropertyIO which gets Properties from an file location. | - | 2.0 | API Doc |
AbstractXMLFilePropertyIO | AbstractFilePropertyIO | Abstract file class for loading and saving properties stored somewhere in a XML file. This included the method for reload and the attributes for caching and readonly. |
- | 1.9 | API Doc |
Abstract Class | Parent class | Description | Restrictions | Version | Javadoc |
Concrete Class | Parent class | Description | Restrictions | Version | Javadoc | Example |
---|---|---|---|---|---|---|
CompositePropertyIO | AbstractPropertyIO | Implements the Composite pattern and gets properties from multiple PropertyIO's. The CompositePropertyIOFactory can assist in construction. |
- | 1.0 | API Doc | Examples |
FilePropertyIO | AbstractFilePropertyIO | Load and saves the property to a file which is provided in the constructor. |
- | 1.0 | API Doc | Examples |
InputStreamPropertyIO | AbstractPropertyIO | Loads the properties for an InputStream. | Readonly | 1.3 | API Doc | Examples |
JBossSystemPropertiesPropertyIO | AbstractPropertyIO | Specialized IO - Implements the AbstractPropertyIO class and gets properties from the <system-properties> which is standard in fx. JBoss standalone.xml. | - | 1.3 (1.9) | API Doc | Examples |
ManifestPropertyIO | AbstractPropertyIO | Loads simple properties from a MANIFEST.MF file. Either from resource, file, jar, war, ear, zip or url. | Readonly | 1.9 | API Doc | Examples |
MemoryPropertyIO | AbstractPropertyIO |
This implementation can be base on another PropertyIO or java.util.Properties . This is mainly used for testing purposes. But there is potential use in several other places for this IO. |
- | 1.0 | API Doc | Examples |
ResourceBundlePropertyIO | AbstractPropertyIO | Gets the properties using the class loader ResourceBundle.getBundle() which is transfered to Properties. Locale can be provided as well in constructor. |
Readonly | 2.0 | API Doc | Examples |
ResourceStreamPropertyIO | AbstractPropertyIO | Gets the properties using the class loader getResourceAsStream() . This can be provided in several ways in the constructor. |
Readonly | 1.0 (2.0) | API Doc | Examples |
ServletContextPropertyIO | AbstractPropertyIO | Loads the property file from a file, resolving the path with getServletContext().getRealPath(getResourceName()) . |
- | 1.0 | API Doc | Examples |
WebContextParamsPropertyIO | AbstractPropertyIO | Loads the InitParameters defined by the ServletContext.getInitParameterNames() into a memory stored Properties instance. |
Readonly | 1.1 | API Doc | Examples |
HttpCookiesPropertyIO | AbstractHttpPropertyIO | Communicate with Cookie data from the HttpServletRequest and HttpServletResponse. | - | 1.6 (1.8) | API Doc | Examples |
HttpRequestParamsPropertyIO | AbstractHttpPropertyIO | Loads the properties for HttpServletRequest parameters. | Readonly | 1.8 | API Doc | Examples |
HttpRequestHeadersPropertyIO | AbstractHttpPropertyIO | Loads the properties for HttpServletRequest headers. | Readonly | 1.8 | API Doc | Examples |
HttpRequestPropertyIO | AbstractHttpPropertyIO | Loads the properties for HttpServletRequest headers and HttpServletRequest parameters. | Readonly | 1.8 | API Doc | Examples |
HttpResponseHeadersPropertyIO | AbstractHttpPropertyIO | Load and writes the properties for HttpServletResponse headers. | - | 1.8 | API Doc | Examples |
DatasourceJDBCPropertyIO | AbstractJDBCPropertyIO | Gets the connection by a datasource name which is provided in the constructor. |
- | 1.0 | API Doc | Examples |
UrlJDBCPropertyIO | AbstractJDBCPropertyIO | Gets the connection by a driver, url, username and password which is provided in the constructor. |
- | 1.0 | API Doc | Examples |
XMLParsedFilePropertyIO | AbstractXMLFilePropertyIO | Loads and saves via a XMLPropertiesParser implementation. | - | 1.9 | API Doc | Examples |
Concrete Class | Parent class | Description | Restrictions | Version | Javadoc | Example |
Examples |
---|
public class CompositeDemoProperties extends PropertyStaticCollection implements DemoProperties { private CompositeDemoProperties(PropertyIO[] ios) { super(new CompositePropertyIO(ios); } static { PropertyIO[] ios = { new MemoryPropertyIO(System.getProperties(),true), new ResourceStreamPropertyIO(ResourceStreamProperties.class) }; new CompositeDemoProperties(ios); } }
public class FileDemoProperties extends PropertyStaticCollection implements DemoProperties { private FileDemoProperties(boolean readonly, boolean cached) { super(new FilePropertyIO(new File("c:/app/resources/properties/app.properties",readonly,cached)); } static { new FileDemoProperties(false, true); } }
public class InputStreamPropertiesDemoProperties extends PropertyStaticCollection implements DemoProperties { private JBossSystemPropertiesDemoProperties() { super(new InputStreamPropertyIO(new FileInputStream(new File("c:/app/resources/properties/standalone.xml"))); } static { new InputStreamPropertiesDemoProperties(); } }
public class JBossSystemPropertiesDemoProperties extends PropertyStaticCollection implements DemoProperties { private JBossSystemPropertiesDemoProperties(boolean readonly, boolean cached) { super(new JBossSystemPropertiesPropertyIO(new File("c:/app/resources/properties/standalone.xml",readonly,cached)); } static { new JBossSystemPropertiesDemoProperties(false, true); } }
public class MyManifestCollection extends ManifestMainCollection { private MyManifestCollection(ManifestPropertyIO io) { super(io); } public static ManifestMainCollection getInstance(ManifestPropertyIO io) { ManifestMainCollection collection = new ManifestMainCollection(io); PropertyFieldCollection.initialize(collection); return collection; } public static ManifestMainCollection getInstance() { return getInstance(new ManifestPropertyIO); } }
public class MemoryDemoProperties extends PropertyStaticCollection implements DemoProperties { private MemoryDemoProperties(boolean readonly) { super(new MemoryPropertyIO(System.getProperties(),readonly)); } static { new MemoryDemoProperties(true); } }
public class ResourceBundleDemoProperties extends PropertyStaticCollection implements DemoProperties { private ResourceBundleDemoProperties(boolean readonly) { super(new ResourceBundlePropertyIO("resourcebundle.properties")); } static { new ResourceBundleDemoProperties(true); } }
public class ResourceBundleDemoProperties extends PropertyStaticCollection implements DemoProperties { private ResourceBundleDemoProperties(boolean readonly) { super(new ResourceBundlePropertyIO("properties/Horse",Locale.FRENCH)); } static { new ResourceBundleDemoProperties(true); } }
public class ResourceStreamDemoProperties extends PropertyStaticCollection implements DemoProperties { private ResourceStreamDemoProperties(boolean readonly) { super(new ResourceStreamPropertyIO("dk/heick/properties/io/demo/resourcefile.properties"); } static { new ResourceStreamDemoProperties(true); } }
public class ResourceStreamDemoProperties extends PropertyStaticCollection implements DemoProperties { private ResourceStreamDemoProperties(boolean readonly) { super(new ResourceStreamPropertyIO(ResourceFileProperties.class); } static { new ResourceStreamDemoProperties(true); } }
public class WebContext implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent arg0) { // } @Override public void contextInitialized(ServletContextEvent context) { WebDemoProperties.getInstance(context.getServletContext()); } }Configure it in "web.xml".
<listener> <listener-class>dk.heick.properties.webdemo.WebContext</listener-class> </listener>Your properties file is stored in your WAR file in
[WAR_File.war]/config/demo.app.propertiesDefine your properties and your initialization.
public class WebDemoProperties extends PropertyStaticCollection implements MarkerNoPropertyCollectionRegistry { //your property final static definitions private static WebDemoProperties instance = null; private final static String FILENAME_PROPERTIES="config/demo.app.properties"; public WebDemoProperties(ServletContext context) { super(new ServletContextPropertyIO(context,FILENAME_PROPERTIES)); } public static WebDemoProperties getInstance(ServletContext context) { if (instance==null) { try { instance = new WebDemoProperties(context); } catch (Throwable t) { t.printStackTrace(); } } return instance; } public static WebDemoProperties getInstance() { return instance; } }
public class WebContextParamsDemoProperties extends PropertyStaticCollection implements DemoProperties,MarkerNoPropertyCollectionRegistry { public WebContextParamsDemoProperties(ServletContext servletContext) { super(new WebContextParamsPropertyIO(servletContext); } }
public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //Will properly only load this one time an store in HttpSession. Property<String> name1 = new Property<String>("name1",new StringPropertyType()); Property<Double> name2 = new Property<Double>("name2",new DoublePropertyType()); Property<Date> name3 = new Property<Date>("name3",new DateTimePropertyType()); // Log log = LogFactory.getLog(MyServlet.class); HttpCookiesPropertyIO io = new HttpCookiesPropertyIO(request,response); PropertyListCollection collection = new PropertyListCollection(io, log, new LoggingPropertyValidationHandler(), name1,name2,name3); String value1 = name1.getTypedValue(); Double value2 = name2.getTypedValue(); Date value3 = name3.getTypedValue(); // value3.setTypedValue(new Date()); // Cookie cookie2 = io.getCookie(name2); // Cookie cookie1 = io.getCookieForUpdate("name1"); cookie1.setMaxAge(60*60*24*365); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response) } }Alternative
public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Property<String> name1 = new Property<String>("name1",new StringPropertyType()); Property<Double> name2 = new Property<Double>("name2",new DoublePropertyType()); Property<Date> name3 = new Property<Date>("name3",new DateTimePropertyType()); // HttpCookiesPropertyIO io = HttpPropertyIOFactory.constructForCookies(request,response,name1,name2,name3); // String value1 = name1.getTypedValue(); Double value2 = name2.getTypedValue(); Date value3 = name3.getTypedValue(); // value3.setTypedValue(new Date()); // Cookie cookie2 = io.getCookie(name2); // Cookie cookie1 = io.getCookieForUpdate("name1"); cookie1.setMaxAge(60*60*24*365); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response) } }
HttpRequestParamsPropertyIO io = new HttpRequestParamsPropertyIO(httpServletRequest);
public class HttpRequestHeadersProperties extends PropertyExposedFinalFieldCollection implements MarkerNoPropertyCollectionRegistry { public final Property<String> HOST = new Property<String>("host",new StringPropertyType()); public final Property<String> CONNECTION = new Property<String>("connection",new StringPropertyType()); public final Property<String> ACCEPT = new Property<String>("accept",new StringPropertyType()); public final Property<String> USER_AGENT = new Property<String>("user-agent",new StringPropertyType()); public final Property<URL> REFERER = new Property<URL>("referer",new URLPropertyType(URLPropertyType.NO_URL_TEST)); public final Property<String> ACCEPT_LANGUAGE = new Property<String>("accept-language",new StringPropertyType()); private HttpRequestProperties(HttpServletRequest request) { super(new HttpRequestHeadersPropertyIO(request)); } public static HttpRequestProperties getInstance(HttpServletRequest request) { HttpRequestProperties collection = new HttpRequestProperties(request); PropertyFieldCollection.initialize(collection); return collection; } } public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpRequestHeadersProperties headers = HttpRequestHeadersProperties.getInstance(request); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response) } }
HttpRequestPropertyIO io = new HttpRequestPropertyIO(httpServletRequest);
HttpResponseHeadersPropertyIO io = new HttpResponseHeadersPropertyIO(httpServletRequest,httpServletResponse);
public class DatasourceJDBCDemoProperties extends PropertyStaticCollection implements DemoProperties { public static String JNDI_NAME="java:/comp/env/jdbc/nameofmyjdbcresource"; private DatasourceJDBCDemoProperties(boolean readonly, boolean cached) { super(new DatasourceJDBCPropertyIO( JNDI_NAME, "MYCONFIG", "NAME", "VALUE", readonly, cached)); } static { new DatasourceJDBCDemoProperties(false, true); } }
public class UrlJDBCDemoProperties extends PropertyStaticCollection implements DemoProperties { private UrlJDBCDemoProperties(boolean readonly,boolean cached) { super(new UrlJDBCPropertyIO( DaoTestingFramework.DRIVER, DaoTestingFramework.URL, DaoTestingFramework.USER, DaoTestingFramework.PASS, "MYCONFIG", "NAME", "VALUE", readonly, cached) ); } static { new UrlJDBCDemoProperties(false,true); } }
public class XmlFileDemoProperties extends PropertyStaticCollection implements DemoProperties { private XmlFileDemoProperties (boolean readonly,boolean cached) { super(new XMLParsedFilePropertyIO(new File ("src/test/resources/jboss_expected.xml"),new JBossSystemPropertiesXMLParser())); } static { new XmlFileDemoProperties (false,true); } }