|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectr01f.xmlproperties.XMLPropertiesManager
public final class XMLPropertiesManager
XMLProperties.java Las propiedades se cargan dinámicamente, de forma que las propiedades de una
aplicacion no se cargan hasta que no se acceden por primera vez. Para consultar las propiedades, se utiliza el metodo getProperty al que se
pasa el codigo de aplicacion y una ruta XPath del nodo a obtener relativa a la aplicación. Es importante señalar que antes de utilizar la clase hay que establecer:
Clase wrapper para ficheros de propiedades en XML. Es un singleton que se
encarga de acceder a los ficheros de propiedades bajo demanda.
Normalmente los ficheros properties de cada aplicación se encuentran en
/config/aplic/
<properties>
---- Aqui van las propiedades en XML ----
</properties>
Una vez cargadas, permanencen en memoria.
Tambien se ofrecen otros metodos auxiliares como getInt, getList, etc.
Ejemplo: XMLProperties.getProperty("p03","database/driver");
Maneja las properties del sistema.
Las propiedades se definen en ficheros xml con cualquier estructura.
Ejemplo:
el valor
value1
value2
Las propiedades se consultan utilizando sentencias XPath.
Por ejemplo:
props.of("componente").at("misProps/miProp").asString();
props.of("componente").at("miOtraProp/@value").asString();
Las propiedades se cargan y cachean por CODIGO DE APLICACION y COMPONENTE.CARGA DE PROPIEDADES (ver clase XMLPropertiesForComponentContainer)
---------------------------------------------------------------------------
Esta clase en sí mismo se puede utilizar para acceder a las propiedades de una aplicación, aunque NO se suele utilizar así:
// Crear el propertiesManager... la instancia debería ser UNICA ya que contiene la cache
XMLPropertiesCacheFactory cacheFactory = new XMLPropertiesCacheFactoryImpl();
ResourcesLoaderFactory resourcesLoaderFactory = new ResourcesLoaderFactoryImpl();
XMLPropertiesManager props = new XMLPropertiesManager(cacheFactory,resourcesLoaderFactory,
appCode,10);
// Crear un wrapper de una propiedad para acceder a ella
XMLPropertyWrapper prop = new XMLPropertyWrapper(props.of(component),xPath);
prop.asString();
// o bien, acceder a la propiedad directamente...
props.of(component).getString(xPath);
Lo lógico sería CACHEAR los objetos XMLPropertiesManager por aplicación, y para esto se
utiliza la clase XMLProperties, ver el JavaDoc de esta clase para ver su uso.
XMLPropertiesForComponentContainer| Nested Class Summary | |
|---|---|
class |
XMLPropertiesManager.ComponentProperties
Encapsula el acceso a las propiedades de un componente. |
| Field Summary | |
|---|---|
private java.lang.String |
_appCode
Código de aplicación |
(package private) XMLPropertiesCache |
_cache
Objeto que maneja el acceso a las properties |
private boolean |
_useCache
Utilizar cache o no |
| Constructor Summary | |
|---|---|
XMLPropertiesManager(XMLPropertiesCacheFactory cacheFactory,
ResourcesLoaderFactory resourcesLoaderFactory,
java.lang.String appCode,
int componentsNumberEstimation)
Constructor en base al tamaño de la caché y al modo de depuración. |
|
| Method Summary | |
|---|---|
java.lang.String |
cacheStatsDebugInfo()
Devuelve la información de uso de la cache en formato imprimible. |
XMLPropertiesManager.ComponentProperties |
of(java.lang.String component)
Encapsula los métodos que devuelven las propiedades. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
XMLPropertiesCache _cache
private java.lang.String _appCode
private boolean _useCache
| Constructor Detail |
|---|
public XMLPropertiesManager(XMLPropertiesCacheFactory cacheFactory,
ResourcesLoaderFactory resourcesLoaderFactory,
java.lang.String appCode,
int componentsNumberEstimation)
cacheFactory - Factoría de la caché de propiedades.resourcesLoaderFactory - Factoría de los ResourcesLoaders responsables de cargar los xmls de propiedades.ResourcesLoader concreto a utilizar se indica en el fichero de configuración del
componente que SIEMPRE se carga desde el classPath (ver XMLPropertiesForComponentContainer).appCode - Código de aplicación.componentsNumberEstimation - Tamaño de la cache de apps/components.| Method Detail |
|---|
public java.lang.String cacheStatsDebugInfo()
stats - La informacion de uso de la cache.
public XMLPropertiesManager.ComponentProperties of(java.lang.String component)
component - Componente de la aplicacion.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||