Home > Release Notes

2.7.0

Publiée le 8 septembre 2003

Evolutions et ajouts fonctionnels

EBX.Manager

  • Localisation en français et en anglais
    EBX.Manager est disponible en français et en anglais.
     
    • Page d’accueil
      La page d’accueil de EBX.Manager s’affiche par défaut dans la langue décrite dans l’adaptation.
      Elle peut être affichée dans une autre langue grâce à la requête en bas de page.
    • Langue de l’utilisateur
      Une fois connecté, l’utilisateur peut basculer dans l’autre langue grâce à la requête située en bas de page de l’onglet ACCUEIL.
    • La langue d’affichage choisie par un utilisateur est persistée.
      Cela signifie qu’à la prochaine connexion de l’utilisateur, EBX.Manager s’affichera dans cette langue (une fois la page d’accueil passée).
  • Panneau d'information
    Par rapport aux versions 2.6.x, le bouton Back to list est remplacé par le bouton Position.
    Celui-ci affiche la position de l’adaptation courante (affichée ou en cours d’édition) dans l’arbre d’adaptations.
     
    • Cas d’une adaptation
      Le bouton Position ouvre une fenêtre pop-up affichant l’arbre d’adaptations de l’application où l’adaptation courante est surlignée en jaune.
    • Cas d'un accord
      Le bouton Position ouvre une fenêtre pop-up affichant l’arbre d’adaptations de l’application où l’accord courant est surligné en jaune.
  • Contenu d’une adaptation ou d’un accord
    Le contenu d’une adaptation ou d’un accord peut être affiché dans une fenêtre séparée (pour impression).
    Pour cela, il faut afficher les détails de l’adaptation ou de l’accord, et ensuite cliquer sur le contenu de l’adaptation.
    Une nouvelle fenêtre s’affiche qui décrit l’intégralité du contenu de l’adaptation.
    Restriction : les noeuds implémentant des connecteurs d’adaptation ne sont pas affichés.

EBX.Engine

  • Localisation en français et en anglais
    EBX.Engine est disponible en français et en anglais.
    Le choix peut être fait sur la première page, ou en bas de la page de l’onglet “Accueil”.
     
  • Onglet ‘Modules’
     
    • Compilation du module
      Si le module EBX.Platform n’est pas encore compilé, un lien ‘compiler maintenant’ permet de le faire.
    • Création de l’adaptation racine
      Si le module EBX.Platform n’a pas d’adaptation racine, un lien ‘créer maintenant’ permet de la créer.

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 :

  • contenir une servlet qui enregistre le module EBX.Platform en appelant :
    com.onwbp.base.repository.ModulesRegister.registerWebApp(…).
    Voir exemple « com.foo.RegisterServlet » ci-dessous.
     
  • déclarer cette classe dans WEB-INF/web.xml (à la place de InitModuleServlet).
    Assurer que cette servlet se lance au startup : <load-on-startup>1</load-on-startup>

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 :

  • common_1.0.xsd
  • org_1.0.xsd
  • coreModel_1.0.xsd
  • session_1.0.xsd

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