4.4-00 : release note du socle technique (version 1.0)

date auteur version modif
26/11/02 TIF 1.0 · création
11/12/02 TIF 1.0 · Dérivation des API.

Objectif du document : suivre le contenu du socle technique v4.4.0 en fonction de la date de patch.

Une version "historique" des releases notes.

Chargement des fichiers statiques : 26/11/02

Besoin émis par "Etude de Solutions"

Emplacement des fichiers statiques (file system, iFS, etc.), référencement de ces emplacements (web.xml, configuration.xml, etc.) => respecter diverses contraintes :

  • assurer le fonctionnement en cluster (pas de copies multiples).
  • fonctionnement avec archi éclatées (serveur(s) http en frontal, déporté, failover, DMZ, etc.).
  • compatibilité avec les diverses cibles de déploiement (Oracle, IBM).
  • développer / compléter le site chez le client.
  • "accessibilité" de la solution (à un Web Designer par exemple).

Evolution

On définit un paramètre pour l'application web dans le fichier web.xml. Ce paramètre se nomme egx_context_url et permet de définir la racine de toutes les ressources "relatives" accédées par eGX (fichier de configuration et feuilles de style).

On donne une valeur à cette variable par l'utilisation du fichier orion-web.xml. Attention : sous OC4J exclusivement (Pour WebSphere contacter ROJ ou DHN). Ce fichier se trouve à deux endroits dans l'arborescence du serveur d'application :

  • j2ee\home\applications\egx-app\egx-webapp\WEB-INF (inutile de le modifier).
  • j2ee\home\application-deployments\egx\egx-webapp (c'est ce fichier qu'il faut modifier).

egx_context_url représente un répertoire. Une URL valide qui représente un répertoire doit toujours se terminer par un '/'.

web.xml

<web-app>

<description>web.xml pour web Application</description>

<context-param>

<param-name>egx_context_url</param-name>

<param-value></param-value>

</context-param>

<context-param>

<param-name>egx_configuration_path</param-name>

<param-value>configuration.xml</param-value>

</context-param>

<context-param>

<param-name>egx_instance_name</param-name>

<param-value>instance_de_test</param-value>

</context-param>

<servlet>

<servlet-name>ServletControl</servlet-name>

<display-name>ServletControl</display-name>

<description>Application web</description>

<servlet-class>f.g.tf.app.ServletControl</servlet-class>

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

<security-role-ref>

<description>root</description>

<role-name>root</role-name>

<role-link>super-user</role-link>

</security-role-ref>

</servlet>

<servlet-mapping>

<servlet-name>ServletControl</servlet-name>

<url-pattern>/ServletControl</url-pattern>

</servlet-mapping>

</web-app>

orion-web.xml

<orion-web-app

deployment-version="1.0.2.2.1"

jsp-cache-directory="./persistence"

temporary-directory="./temp">

<resource-ref-mapping name="jdbc/eGX-DS" location="jdbc/OracleSoc1CoreDS"/>

<context-param-mapping name="egx_configuration_path">configuration.xml</context-param-mapping>

<context-param-mapping name="egx_instance_name">instance_de_test</context-param-mapping>

<context-param-mapping name=" egx_context_url ">http://fx-tif:8440/egx/</context-param-mapping>

</orion-web-app>

Si on veut charger le fichier de configuration et les feuilles de styles à partir d'un serveur http, il suffit de donner l'url de la racine de ces fichiers par ce paramètre.

Si on désire faire référence à des fichiers sur un disque, il faut utiliser le protocole file: dans l'url à la place de http:.

Au même niveau que le nouveau paramètre egx_context_url, on trouve deux autres nouveaux paramètres :

  • egx_configuration_path : référence relative à egx_context_url pour accéder au fichier de configuration.
  • egx_instance_name (optionnel) : nom de l'instance eGX dans la gestion de cache (OCS4J).

Suppression

Cette évolution fait disparaître le paramètre egx_configuration_path de l'initialisation de la servlet. En fait, il est déplacé sur l'initialisation du contexte de l'application web.

Vous pouvez supprimer la partie en gras dans le fichier web.xml suivant :

web.xml

<web-app>

<description>web.xml pour web Application</description>

<servlet>

<servlet-name>ServletControl</servlet-name>

<display-name>ServletControl</display-name>

<description>Application web</description>

<servlet-class>fr.ACE.technicalframework.application.ServletControl</servlet-class>

<init-param>

<param-name>egx_configuration_path</param-name>

<param-value>configuration.xml</param-value>

</init-param>

<load-on-startup>0</load-on-startup>

<security-role-ref>

<description>root</description>

<role-name>root</role-name>

<role-link>super-user</role-link>

</security-role-ref>

</servlet>

</web-app>

Procédure de mise à jour

1. Editer le fichier web.xml et supprimer le nœud init-param de la servlet ServletControl .

2. Insérer le xml suivant entre le nœud description et le premier nœud servlet dans web.xml :

<context-param>

<param-name>egx_context_url</param-name>

<param-value></param-value>

</context-param>

<context-param>

<param-name>egx_configuration_path</param-name>

<param-value></param-value>

</context-param>

<context-param>

<param-name>egx_instance_name</param-name>

<param-value></param-value>

</context-param>

3. Editer orion-web.xml se trouvant dans le répertoire j2ee\home\application-deployments\egx\egx-webapp.

4. Insérer le xml suivant à la suite du nœud resource-ref-mapping :

<context-param-mapping name="egx_configuration_path">configuration.xml</context-param-mapping>

<context-param-mapping name="egx_context_url">file://E:/oc4j/j2ee/home/applications/egx-app/egx-webapp/</context-param-mapping>

Tous les context-param sont optionnels sauf egx_configuration_path.

Le paramètre egx_context_url est optionnel. Dans ce cas, il pointe sur le répertoire de l'application web (=>aucun changement).

Si renseignée, la valeur de egx_context_url doit se terminer par un '/'.

5. La partie en gras du point précédent est à adapter à votre cas particulier.

Dérivation des API : 11/12/02

Lors de l'écriture d'API spécifiques, on ne doit pas référencer en double l'AM standard et l'AM spécifique.

Dans la configuration, on ne doit plus trouver deux lignes pour un même domaine fonctionnel :

<applicationmodule name="GestionXxx" defFullName="fr.generix.metier.bc4j.truc.GestionXxx" sessionType="statefull"/>

<applicationmodule name="GestionXxxMonClient" defFullName="fr.ACE.specifiques.metier.bc4j.truc.GestionXxxMonClient" sessionType="statefull"/>

Mais seulement une ligne :

<applicationmodule name="GestionXxx" defFullName="fr.ACE.specifiques.metier.bc4j.truc.GestionXxxMonClient" sessionType="statefull"/>

Donc, dans le cas de développement spécifique, toute API standard non modifiée sera retrouvée sans écriture de code suplémentaire.

Pour cela, il faut que l'AM spécifique dérive de l'AM standard. Ce qui est déja le cas.