Ubicar un .jar con las clases en /ServidorOXP/lib/plugins y reconfigurar (respetando ubicación de package). Esto creará el OXP.jar conteniendo las redefinidas en el .jar previamente mencionado.
Tal como se hizo para el pisado de clases que van a OXP.jar se requiere ampliar el build.xml para que pueda determinar que ciertas clases en realidad deben ir a parar al OXPRoot.jar.
Para ello se define un nuevo directorio dentro de la estructura de un componente el cual deberá contener todas las clases que sean del servidor de aplicaciones (normalmente clases del procesador contable).
Dentro del directorio raiz del jar se debe crear el directorio: serverRoot
Dentro de ese directorio deberán estar las clases a “pisar” y que sean del servidor de aplicaciones. Por ejemplo, para pisar la clase que contabiliza las facturas tendremos:
serverRoot/org/openXpertya/acct/Doc_Invoice.class
En el build.xml del Configurar entonces hay que tener en cuenta este nuevo directorio que puede tener el componente y de existir debe copiar las clases contenidas dentro del OXPRoot.jar en vez de OXP.jar (la lógica es similar a lo que actualmente hace).
Para modificaciones del contenido OXPRootBase.war (por ejemplo cambios en libertya.html, o standard.css), se debe incorporar un directorio adicional:
Dentro del directorio raiz del jar se debe crear el directorio: oxpRootBase
Dentro de ese directorio deberán estar las clases a “pisar”. Por ejemplo, para pisar el archivo favicon.png:
oxpRootBase/favicon.png
Este soporte se encuentra disponible a partir de la revisión r2596 de LY CORE
Tal como se hizo para el pisado de clases que van a OXP.jar se requiere ampliar el build.xml para que pueda determinar que ciertas clases en realidad deben ir a parar al webui.war.
Para ello se define un nuevo directorio dentro de la estructura de un componente el cual deberá contener todos los arhivos que sean del cliente Web (clases y demás archivos).
Dentro del directorio raiz del jar se debe crear el directorio: webui
Dentro de ese directorio deberán estar los archivos a “pisar” y que sean del servidor de aplicaciones. Por ejemplo, para pisar la clase de Orden de Pago:
webui/WEB-INF/classes/org/adempiere/webui/apps/form/WOrdenPago.class
Notar que debe incluirse la ruta completa, incluyendo WEB-INF/clases dado que podrían incluirse otro tipo de archivos que no sean clases Java.
En ciertas ocasiones es posible que un componente utilice librerías adicionales para su correcta ejecución.
A partir de la revision r1425, es posible embeber las clases de estas librerías dentro del OXP.jar.
Para realizar ésto, dentro del .jar del componente debe existir un directorio /lib conteniendo todas las librerías que dicho componente require.
Luego al ejecutar Configurar.sh o ConfigurarAuto.sh, las clases allí contenidas seran incorporadas a OXP.jar. Cabe mencionar que en estos casos - y de manera similar que en el pisado de clases de LY CORE - la preponderancia la tendrán los componentes, con lo cual las clases contenidas en estas librerías podrían llegar a pisar eventuales clases con igual nombre (por ejemplo una librería más antigua existente en LY CORE).