JDeveloper et Coherence /*+ Premier pas */

Tangosol Coherence permet de mettre en Grid les données utilisées par les applications Java (et .Net). Un intérêt immédiat pour les applications JavaEE et de permettre de stocker et distribuer les informations de sessions entre plusieurs serveurs d’applications Java. Pour en savoir plus sur le rachat de Tangosol par Oracle, cliquez ici ! Dans ce qui suit, nous allons créer rapidement un programme qui bénéficie des qualités de Cohérence :

Installer Tangosol Coherence…
Pour télécharger une version de démonstration de Coherence, créez un compte gratuit sur leur site web puis cliquez sur le lien suivant pour télécharger la version qui vous convient : http://www.tangosol.com/product-downloads.jsp.
a) Décompresser la distribution dans un répertoire de votre choix.
b) Installer et configurer Java 5.0
c) Tester l’installation de Coherence, en tapant : « java -jar coherence.jar », comme dans l’écran ci-dessous.


Créer un projet et ajouter les JAR coherence
Pour en savoir plus reportez-vous à la page correspondante sur le site de Tangosol. Dans un premier temps, lancez JDeveloper et ajouter les libraries Coherence à l’outils et à un nouveau projet.
a) Sélectionner le menu « Tools… -> Manage Libraries… »
b) Sélectionner le dossier User et cliquez sur « New… »
c) Donner lui le nom « Coherence » et ajoutez au CLASSPATH les entrées lib/coherence.jar et lib/tangosol.jar.
d) Ajouter une Application (Menu File -> New… -> General -> Application). Utiliser « No Template [All Technologies] ». Donnez lui un nom ainsi qu’un nom au projet qui constitue cette application.
e) Cliquer avec le bouton droit sur le projet et sélectionner « Projet Properties.. ». Sélectionner « Libraries », cliquez sur « Add Library ». Ajouter la librairie créée précédemment au projet !


Créer une classe Java qui utilise Coherence
Ajouter une classe Java au projet. Sélectionner le menu : File -> New… -> General -> Java Class. Appelez-là démo et ajouter lui les lignes qui suivent :

  • Pour pouvoir utiliser les classes de cohérence, importez les 2 classes suivantes :
    import com.tangosol.net.CacheFactory;
    import com.tangosol.net.NamedCache;
  • Pour initialiser le cache cohérence, tapez la ligne suivante :
    NamedCache cache = CacheFactory.getCache(« VirtualCache »);
  • Pour mettre une chaine de caractère dans le cache et l’identifier avec la clé key, tapez :
    cache.put(key, « hello »);
  • Pour récupérer une donnée dans le cache qui a la clé key, tapez :
    (String)cache.get(« demo »);

Le résultat attendu ressemble à la classe ci-dessous :

import com.tangosol.net.CacheFactory;
import com.tangosol.net.NamedCache;

public class Demo {
public Demo() {
NamedCache cache = CacheFactory.getCache(« VirtualCache »);
String key = « demo »;
cache.put(key, « hello »);
System.out.println(« Le résultat du cache est : « + (String)cache.get(« demo »));
}

public static void main(String[] args) {
Demo demo = new Demo();
}
}

Créer un fichier XML de configuration du cache.
Ajouter un fichier XML au projet en sélectionnant le menu : File -> New… -> General -> XML -> XML Document. Appeler le fichier my-config.xml par exemple et ajouter le contenu inclus dans le fichier attaché ici.

Une fois le fichier ajouté au projet, ajoutez la référence à ce fichier dans la ligne d’exécution de l’application. Si vous voulez l’ajouter dans JDeveloper, sélectionner le projet et avec le bouton droit, sélectionner « Project Properties ». Sélectionner « Run/Debug », Selectionner la configuration utilisée (e.g. default) et cliquer sur « Edit… ». Dans la zone de texte Java Options, taper : « -Dtangosol.coherence.cacheconfig=[path-to-file]/my-config.xml ». comme dans l’écran ci-dessous :

Exécuter l’application…
Sélectionner la classe Demo et sélectionner « Run » sur le bouton contextuel (bouton droit de la souris). Le texte qui suit s’affiche dans la fenêtre de Log de JDeveloper :

D:jdevjdevstudio10132jdkbinjavaw.exe -client -classpath D:jdevjdevstudio10132jdevmyworkApplication1Project1classes;D:coherence-322b371tangosollibcoherence.jar;D:coherence-322b371tangosollibtangosol.jar -Dtangosol.coherence.cacheconfig=D:jdevjdevstudio10132jdevmyworkApplication1Project1my-config.xml Demo

Tangosol Coherence Version 3.2.2/371

2007-03-31 19:02:00.562 Tangosol Coherence 3.2.2/371 (thread=main, member=n/a): Loaded operational configuration from resource « jar:file:/D:/coherence-322b371/tangosol/lib/coherence.jar!/tangosol-coherence.xml »
2007-03-31 19:02:00.562 Tangosol Coherence 3.2.2/371 (thread=main, member=n/a): Loaded license data from « jar:file:/D:/coherence-322b371/tangosol/lib/tangosol.jar!/tangosol-license.xml »

******************************************************************************
*
* Tangosol Coherence is licensed by Tangosol, Inc.
*
* Licensed for evaluation use from 2007-03-19 until 2007-05-01 (30 days
* remaining)
* Tangosol Coherence: DataGrid Edition
* Tangosol Coherence: Caching Edition
* Tangosol Coherence: Data Client
* Tangosol Coherence: Application Edition
* Tangosol Coherence: Real-Time Client
* Tangosol Coherence: Compute Client
*
* A production license is required for production use. For more information,
* see http://www.tangosol.com/license.jsp.
*
* Copyright (c) 2000-2006 Tangosol, Inc.
*
******************************************************************************

2007-03-31 19:02:00.843 Tangosol Coherence DGE 3.2.2/371 (thread=main, member=n/a): Loaded operational overrides from resource « jar:file:/D:/coherence-322b371/tangosol/lib/coherence.jar!/tangosol-coherence-override-eval.xml »
2007-03-31 19:02:00.937 Tangosol Coherence DGE 3.2.2/371 (thread=main, member=n/a): Loaded cache configuration from file « D:jdevjdevstudio10132jdevmyworkApplication1Project1my-config.xml »
2007-03-31 19:02:02.109 Tangosol Coherence DGE 3.2.2/371 (thread=Cluster, member=n/a): This Member(Id=2, Timestamp=2007-03-31 19:02:01.914, Address=192.168.1.10:8089, MachineId=26890, Edition=DataGrid Edition, Mode=Evaluation, CpuCount=2, SocketCount=1) joined cluster with senior Member(Id=1, Timestamp=2007-03-31 17:11:46.718, Address=192.168.1.10:8088, MachineId=26890, Edition=DataGrid Edition, Mode=Evaluation, CpuCount=2, SocketCount=1)
Le résultat du cache est : hello
Process exited with exit code 0.

GarK!

PS: Vous pouvez télécharger le projet Jdeveloper 10.1.3.2 ici. Vous devrez encore, (1) installer Coherence, (2) ajouter les .jar au projet et (3) changer le répertoire du fichier XML dans les options d’exécution de la classe Demo.