シェルを立ち上げたら、シェルスクリプトを実行するためにsourceRelative("aop.bsh");とタイプします。aop.bsh はキャッシュのインスタンス化、設定、各エントリの生成のステップを説明してくれます。 以下はコードの一部です。
import org.jboss.cache.PropertyConfigurator;
import org.jboss.cache.aop.PojoCache;
import org.jboss.cache.aop.test.Person;
import org.jboss.cache.aop.test.Address;
show(); // bean shellをverbose モードでmode for bean shell
PojoCache tree = new PojoCache();
PropertyConfigurator config = new PropertyConfigurator(); // tree cacheの設定.
config.configure(tree, "META-INF/replSync-service.xml");
Person joe = new Person(); // joeという名のPersonオブジェクトをインスタンス化
joe.setName("Joe Black");
joe.setAge(31);
Address addr = new Address(); // addという名のAddressオブジェクトをインスタンス化
addr.setCity("Sunnyvale");
addr.setStreet("123 Albert Ave");
addr.setZip(94086); joe.setAddress(addr); // address参照をセット
tree.startService(); // tree cacheを起動
tree.putObject("/aop/joe", joe);
// aop 適用オブジェクト(とそのサブオブジェクト)をキャッシュに追加します。
// aop 適用されたので、get/set メソッドの呼び出しは自動的に // キャッシュの内容に反映されます。
joe.setAge(41);
オブジェクト(および、その依存オブジェクト)をキャッシュに入れるために必要なAPIはputObjectであることに留意ください。 です。 2つ目のウィンドウの実行が終了したら、1つ目のGUI ウィンドウに /aop/joe/address というエントリが現れたことを確認してください。ツリーのノードをクリックすると、そのノードに関連付けられた値が表示されます。
AOPの動作を見るための次のステップとして、キャッシュにそれを入れたことをまったく気にせずに get/set メソッドの実行が可能です。例えば、シェル上で joe.setAge(20); とすることが可能で、GUI上のageフィールドの表示が自動的に更新されることが確認できます。もしそうでないなら、クリックして、GUI内容をリフレッシュします。次にオブジェクトグラフのレプリケーションのデモです。 Joeのaddressは変更可能で、キャッシュは自動的にその内容を変更することがわかります。例えば、addr.setCity("San Jose");と対話シェル上でタイプすればGUI上でaddressが変更されたことを見ることができます。
最後に PojoCacheがコレクションクラス(List、 Map、 Setなど)の get/set にも対応しています。例えば、シェルコマンドライン上で以下をタイプします。
ArrayList lang = new ArrayList();
lang.add("Ensligh");
lang.add("Mandarin");
joe.setLanguages(lang);