Home > Release Notes

2.7.0

Publiée le 8 septembre 2003

Evolutions et ajouts fonctionnels

EBX.Manager

EBX.Engine

Tâche Ant

Ant est un outil d’assemblage Java basé sur des scripts qui suivent une syntaxe XML (voir http://ant.apache.org/).

EBX.Platform intègre à partir de la version 2.7.0 une tâche Ant:  generate-paths.xml

Cette tâche permet de générer l’interface Java déclarant les chemins des noeuds du modèle de données /WEB-INF/ebx/dataModel.xsd de l’application web.

Voir un paramétrage type de la tâche Ant.

<?xml version="1.0"?>

<project name="generatePathConstants" default="generateAll">

<!-- ======================================================= -->

<property name="target.dir" value="../source/"/>

<property name="ebx.lib" value="../../270_ebxEAR/lib"/>

<property name="ebx.classpath" value="${ebx.lib}/ebx.jar:${ebx.lib}/activationFramework-1.0.1.jar:${ebx.lib}/javamail-1.2.jar:${ebx.lib}/jsp-1.2.jar:${ebx.lib}/junit-3.8.1.jar:${ebx.lib}/servlet-2.2.jar"/>

<property name="extra.classpath" value="../webApplication/WEB-INF/lib/anyLib.jar"/>

<property name="full.classpath" value="${ebx.classpath}:${extra.classpath}"/>

<taskdef name="ebx.batch" classname="com.onwbp.tools.ant.EbxBatchTask" classpath="${full.classpath}"/>

<!-- ======================================================= -->

<!-- this task generates Java interface 'com.foo.TestSchemaConstants0' containing data node paths of /WEB-INF/ebx/dataModel.xsd -->

<target name="generateAll">

<ebx.batch>

<!-- Set System Properties for EBX-->

<sysproperty key="ebx.properties" file="../../270_ebx/webApplication/WEB-INF/ebx.properties"/>

<sysproperty key="ebx.home" file="../../ebx-run"/>

<sysproperty key="ebx.dummy" value="abcdef"/>

<!-- Register EBX.Platform modules -->

<moduleset dir="../..">

<include name="*/webApplication"/>

</moduleset>

<!-- Generate Java path constants -->

<schema schemaModule="myModuleName" schemaPathInModule="/WEB-INF/ebx/dataModel.xsd">

<!-- example 1: TestSchemaConstants0 is created, it will contain all dataPath within /domain/SubTreeAddress -->

<generateJavaPathConstants targetDirectory="${target.dir}" targetClass="com.foo.TestSchemaConstants0" rootPaths="/domain/SubTreeAddress"/>

<!-- example 1 : TestSchemaConstants1 is created, it will contain all dataPath within /domain/Tree1 and /domain/Tree2 -->

<!-- several sub trees can be set. They must be separated by: -->

<generateJavaPathConstants targetDirectory="${target.dir}" targetClass="com.foo.TestSchemaConstants1" rootPaths="/domain/Tree1:/domain/Tree2"/>

</schema>

</ebx.batch>

</target>

</project>

Modification des APIs

Fichier ‘WEB-INF/web.xml’: servlet d’initialisation

Dans les versions 2.6.x, il fallait recopier la classe Java com.onwbp.front.InitModuleServlet, et la déclarer dans le fichier WEB-INF/web.xml :

<web-app>

<servlet>

<servlet-name>InitModuleServlet</servlet-name>

<servlet-class>com.onwbp.front.InitModuleServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

</web-app>

Dans la version présente, com.onwbp.front.InitModuleServlet a disparu.

Tout module EBX.Platform doit :

Exemple de classe Java : com.foo.RegisterServlet

package com.foo;

import javax.servlet.*;

import javax.servlet.http.*;

import com.onwbp.base.repository.*;

/**

*/ public class RegisterServlet extends HttpServlet {

public void init(ServletConfig config) throws ServletException

{

super.init(config);

ModulesRegister.registerWebApp(this, config);

}

}

Exemple de fichier WEB-INF/web.xml :

<web-app>

<servlet>

<servlet-name>InitEbxServlet</servlet-name>

<servlet-class>com.foo.RegisterServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

</web-app>

Classe d’installation, fichier ‘WEB-INF/ebx/module.xml’

Il est possible d’associer au module une classe d’installation et de services additionnels.

Cette association n’est plus obligatoire à partir de la version 2.7.0. Une implémentation par défaut de l’interface ServiceInstaller est en effet fournie par la plate-forme (ses trois méthodes sont vides).

La classe d’installation fournie doit :

  1. être publique ;

  2. implémenter l’interface com.onwbp.core.service.ServiceInstaller ;

  3. posséder un constructeur publique sans arguments.

Cette classe peut aussi implémenter l’interface com.onwbp.adaptation.AdaptationCompiler.

L’association entre la classe Java et le module est déclarée dans le fichier ‘WEB-INF/ebx/module.xml’ .

Exemple de déclaration dans le fichier ‘WEB-INF/ebx/module.xml’ :

< installerClassName > com.onwbp.wbp.testorg.unit0.Unit0Installer </ installerClassName >

Optimisation mémoire

Un meilleur partage des informations liées aux nœuds d’adaptation permet de réduire de manière significative l’occupation mémoire.

La réduction mémoire est d’autant plus grande que le nombre d’adaptations est élevé.

Déploiement

Fichiers JAR

En version 2.6.x, 2 fichiers jar étaient fournis:  ebx.jar et ebxResources.jar

Dans la présente version, seul ebx.jar est nécessaire.

Applications Web

Les webApps fournies ne contiennent plus le fichier /WEB-INF/ebx/build-id.properties.

Fichier de propriété ‘ebx.properties’

Rajout de la propriété suivante.

Elle permet de filtrer un certain nombre de fichiers et répertoires dans le contenu des répertoires de ressource (ci-après, le répertoire CVS doit pouvoir être omis en environnement de développement).

#################################################

## list (separated by comma) of regexps excluding resource

## the regexp must be of type "m:[pattern]:[options]".

## the list can be void

#################################################

ebx.resource.exclude=m:CVS/*:

La propriété suivante devient dépréciée.

#################################################

## Deprecated.

## Default root path for modules.

## It is used only when EBX.Platform is not running in a servlet container

## Usually, it is the 'webapps' directory.

## This property is required but it may have a void value.

#################################################

ebx.modules.directory=

Schémas avec noms réservés

Un certain nombre de schémas ont des noms réservés sur la plate-forme EBX.

Est considérée comme réservée, toute référence à un autre schéma (attribut schemaLocation d’une des balises import, include ou redefine) qui se termine par l’une des chaines de caractères suivantes :

En ce cas, les fichiers indiqués doivent correspondre aux schémas fournis sous l’application Web "ebx-root-1.0", chemin /WEB-INF/ebx/schemas. Plus précisément, l’attribut schemaLocation peut référencer ces fichiers à ce même emplacement ou bien en référencer une copie, la condition étant que le nom du fichier reste le même.

Pour plus de sécurité, EBX.Platform reprend une définition interne protégée de ces schémas (au cas où par inadvertance un de ces fichiers aurait été modifié).

Home > Release Notes