Home > Module EBX.Platform

Module EBX.Platform

Un module EBX.Platform permet de "packager" un modèle d'adaptation avec ses ressources : documents XML Schema inclus, classes Java, etc.

Sur un serveur d'application J2EE, un module EBX.Platform est équivalent à une application Web J2EE standard. Cela permet de bénéficier des caractéristiques de ce type d’applications : isolation du class-loading, packaging WAR ou EAR, exposition des ressources Web, redéploiement à chaud. Par ailleurs, si l’application utilisatrice est une application Web, il est tout à fait possible de fusionner le module EBX.Platform et cette application afin d’en simplifier le déploiement.

Structure

Un module contient les fichiers suivants :

  1. /WEB-INF/web.xml  : 

    Il s'agit du descripteur de déploiement standard J2EE. Il doit assurer l'enregistrement du module au lancement du serveur d'application (voir section Enregistrement ).

  2. /WEB-INF/ebx/module.xml  : 

    Ce fichier définit les propriétés générales du module EBX.

  3. /www/  : 

    Ce répertoire optionnel contient les ressources externes qui sont accessibles par une URL publique. Ce répertoire est localisé et structuré par type de ressource (html, images, jscripts, stylesheet). Les ressources externes contenues dans ce répertoire sont référençables dans les modèles d'adaptation (pour les paramètres de type osd;ressource ).

Vue d’ensemble du module EBX.Platform intégré à une application Web :

Déclaration

Un module EBX.Platform est déclaré via le fichier /WEB-INF/ebx/module.xml . Par exemple : 

<?xml version="1.0encoding="UTF-8"?>
<module xmlns="urn:ebx-schemas:module_2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ebx-schemas:module_2.2 http://schema.orchestranetworks.com/module_2.2.xsd">
              <name>moduleTest</name>
              <locales>
                            <locale isDefault="true">it</locale>
                            <locale>en-US</locale>
              </locales>
</module>

Le schéma associé fournit une documentation pour chaque propriété. Voici un résumé des principales : 

Element

Description

Required

name

Définit l'identifiant unique du module sur l'instance du serveur d'application. Le nom du module correspond au nom de l'application Web (nom du répertoire).

Oui.

publicPath

Si un chemin spécifique (différent du nom de module ci-dessus) identifie l'application Web dans les URLs publiques, cette propriété doit définir ce chemin. Ce chemin est ajouté à l'URL d'une ressource externe du module en cas de calcul absolu de l'URL. Si ce champ n'est pas renseigné, le nom public est le même que le nom du module défini ci-dessus.

Non.

locales

Spécifie quelles sont les langues supportées par les schémas du module. Cette liste doit contenir toutes les langues que l'on peut trouver dans les schémas du module et que l'on souhaite exposer à l'utilisateur (tout libellé ou message dans une langue non incluse dans cette liste ne sera pas affichable dans EBX.Manager). Si le champ n'est pas renseigné, le module est considéré comme régionalisé en "en-US".

Non.

services

Déclare les Services IU. Pour plus d'information, consulter la section Services IU .

Non.

beans

Déclare les composants réutilisables de type "Java beans". Pour plus d'information, consulter le package workflow .

Non.

Enregistrement

Afin que le module soit identifié sur EBX.Platform, il est nécessaire qu'il soit enregistré à l'exécution, lorsque le serveur d'application est démarré. Dans le cadre J2EE, chaque module EBX.Platform doit :

  1. contenir une servlet dont la méthode standard init invoque ModulesRegister.registerWebApp(…) , voir l'exemple de code Java à la fin de cette section ; 

  2. déclarer cette servlet dans le descripteur de déploiement /WEB-INF/web.xml , de manière standard;

  3. assurer que cette servlet sera initialisée au démarrage du serveur d'application en ajoutant l'élément standard qui suit au descripteur de déploiement :  <load-on-startup>1</load-on-startup> .

Exemple d'un descripteur de déploiement J2EE (fichier /WEB-INF/web.xml ):

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC 
   "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
   "http://java.sun.com/dtd/web-app_2_3.dtd">
<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>

Remarques:

Exemple de code Java d'une servlet qui enregistre et désinscrit le module :

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);
              }
              public void destroy()
              {
                            ModulesRegister.unregisterWebApp(thisthis.getServletConfig());
              }
}

Home > Module EBX.Platform