駅長/JXTA勉強会/外野から攻めてみる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*外野から攻めてみる [#f9c71262]
JXTAについて調べているときに、[[IBMの記事>http://www-6.ib...
この記事の中で、サイレントスタートのための仕組みが解説さ...
複雑な設定処理を回避するために、この記事では初期設定ファ...
‥‥しかしこれ、最新のJXTA APIではさっぱり動きません(ーー;。...
ということで、APIのソースコードをデバッグでステップ実行し...
*初期設定の自動生成サンプル [#d4d88b9c]
001: /*
002: * ShellStarter.java
003: *
004: * Copyright 2004 どっとステーション駅長
005: */
006:
007: package com.ibm.devworks.jxta2.shell;
008:
009: import java.io.File;
010: import java.net.URI;
011: import java.net.URISyntaxException;
012:
013: import net.jxta.exception.ConfiguratorException;
014: import net.jxta.ext.config.Configurator;
015: import net.jxta.ext.config.Profile;
016: import net.jxta.impl.peergroup.Boot;
017:
018: /**
019: * 自動構成機能を付加したシェルスターター。
020: *
021: * @author どっとステーション駅長
022: * @see <a
023: * href="http://www-6.ibm.com/jp/developerwork...
024: * DevloperWorks記事 </a>
025: * @see <a
026: * href="http://ssp.shillest.net/specwiki/puki...
027: * </a>
028: */
029: public class ShellStarter {
030: private static final String JXTA_HOME_PROP = "JXT...
031: private static final String TLS_PRINCIPAL_PROP = ...
032: private static final String TLS_PASSWORD_PROP = "...
033: private static final String ADDR_SEP = ":";
034: private static final String PORT_PRE = "97";
035: private static final String PORT_POST_TCP = "1";
036: private static final String PORT_POST_HTTP = "0";
037: private static final String TCP_PRE = "tcp://";
038: private static final String USER_NAME = "dwuser";
039: private static final String USER_PASS = "dwuser12...
040:
041:
042: public ShellStarter() {
043: }
044:
045: /**
046: * JXTAの構成を自動作成します。
047: *
048: * @param pearName
049: * このpearの名前。
050: * @param tcpAddress
051: * @param tcpPort
052: * @param httpPort
053: * @param rdvNode
054: * @param isRdv
055: */
056: public void configure(String pearName, String tcp...
057: int httpPort, String rdvNode, boolean isRdv) ...
058: // 環境変数設定
059: String JXTA_HOME =".jxtashell_" +pearName +File...
060: System.setProperty(JXTA_HOME_PROP, JXTA_HOME); ...
061: System.setProperty(TLS_PRINCIPAL_PROP, USER_NAM...
062: System.setProperty(TLS_PASSWORD_PROP, USER_PASS...
063:
064: // 設定が既に存在すれば何もせずに終了
065: File jxtaHome =new File(JXTA_HOME);
066: Configurator.setHome(jxtaHome);
067: System.out.println("JXTAHOME:" +jxtaHome);
068: System.out.println("JXTAHOME:isDirectory:" +jxt...
069: System.out.println("JXTAHOME:exists:" +jxtaHome...
070: if(jxtaHome.exists()) return;
071:
072: // JXTA設定オブジェクトの作成
073: Configurator conf;
074: if (isRdv){
075: // ランデブーピアのデフォルト定義
076: conf = new Configurator(Profile.RENDEZVOUS); ...
077: }
078: else{
079: // エッジピアのデフォルト定義
080: conf = new Configurator(Profile.EDGE);
081: }
082:
083: // ピア名・ユーザー名・パスワードを設定
084: conf.setName(pearName);
085: conf.setDescription("ShellStarter-Sample");
086: conf.setSecurity(USER_NAME, USER_PASS);
087:
088: // 初期ランデブーノードの登録
089: int rdvNodeNum = Integer.parseInt(rdvNode);
090: if (rdvNodeNum < 10) {
091: try {
092: URI u = new URI(TCP_PRE + tcpAddress + ADDR...
093: + PORT_POST_TCP);
094: conf.addRendezVous(u);
095: } catch (URISyntaxException e) {
096: throw new ConfiguratorException(e);
097: }
098: }
099:
100: // TODO マルチキャストを無効にする
101:
102: // 設定の保管
103: conf.save();
104: }
105:
106: public static void main(String[] args) throws Exc...
107: ShellStarter starter = new ShellStarter();
108: boolean isRdv = false;
109:
110: // 引数解析
111: if ((args.length == 5) && (args[4].equalsIgnore...
112: isRdv = true;
113: else if (args.length != 5) {
114: System.out
115: .println("Usage: ShellStarter <peer name>...
116: +" <node number> <rdv node n...
117: System.exit(1);
118: }
119:
120: // JXTA構成処理を呼び出す
121: int tcpPort = Integer.parseInt(PORT_PRE + args[...
122: int httpPort = Integer.parseInt(PORT_PRE + args...
123: String pearName = args[0];
124: String tcpAddress = args[1];
125: String rdvNode = args[3];
126: starter.configure(pearName, tcpAddress, tcpPort...
127:
128: // シェルの起動
129: Boot.main(args);
130: }
131:
132: }
*初期化処理の概要 [#p75d00c1]
えーと、オリジナルソースの影響をそこかしこに受けている初...
初期化処理は以下のパートに分かれます。
-JXTA設定ファイルを読み込むための環境変数を設定する。
-JXTA設定ファイルの場所をJXTA APIに通知する。
-JXTA設定ファイルの存在を確認し、存在しなければ以下の処理...
--定義の基礎プロファイルから設定オブジェクトを作成する。
--足りない設定を定義する。
--設定オブジェクトよりJXTA設定ファイルをセーブする。
APIと環境変数両方使って、設定ファイルの場所を通知してやら...
設定情報の作成で重要なのは、定義作成クラスであるnet.jxta....
唯一元IBMの記事にある「マルチキャストの無効化」の方法が掴...
*さて次は [#yc330e63]
「ハローワールドはしない」と言いましたが、そう言いつつや...
*参考URL [#e94def03]
http://www-6.ibm.com/jp/developerworks/java/040514/j_j-jx...
*コメント欄 [#x9d06e4b]
#comment(below)
*作業用 [#w4d09006]
#newpage(駅長/)
#norelated
[[駅長/JXTA勉強会]]
終了行:
*外野から攻めてみる [#f9c71262]
JXTAについて調べているときに、[[IBMの記事>http://www-6.ib...
この記事の中で、サイレントスタートのための仕組みが解説さ...
複雑な設定処理を回避するために、この記事では初期設定ファ...
‥‥しかしこれ、最新のJXTA APIではさっぱり動きません(ーー;。...
ということで、APIのソースコードをデバッグでステップ実行し...
*初期設定の自動生成サンプル [#d4d88b9c]
001: /*
002: * ShellStarter.java
003: *
004: * Copyright 2004 どっとステーション駅長
005: */
006:
007: package com.ibm.devworks.jxta2.shell;
008:
009: import java.io.File;
010: import java.net.URI;
011: import java.net.URISyntaxException;
012:
013: import net.jxta.exception.ConfiguratorException;
014: import net.jxta.ext.config.Configurator;
015: import net.jxta.ext.config.Profile;
016: import net.jxta.impl.peergroup.Boot;
017:
018: /**
019: * 自動構成機能を付加したシェルスターター。
020: *
021: * @author どっとステーション駅長
022: * @see <a
023: * href="http://www-6.ibm.com/jp/developerwork...
024: * DevloperWorks記事 </a>
025: * @see <a
026: * href="http://ssp.shillest.net/specwiki/puki...
027: * </a>
028: */
029: public class ShellStarter {
030: private static final String JXTA_HOME_PROP = "JXT...
031: private static final String TLS_PRINCIPAL_PROP = ...
032: private static final String TLS_PASSWORD_PROP = "...
033: private static final String ADDR_SEP = ":";
034: private static final String PORT_PRE = "97";
035: private static final String PORT_POST_TCP = "1";
036: private static final String PORT_POST_HTTP = "0";
037: private static final String TCP_PRE = "tcp://";
038: private static final String USER_NAME = "dwuser";
039: private static final String USER_PASS = "dwuser12...
040:
041:
042: public ShellStarter() {
043: }
044:
045: /**
046: * JXTAの構成を自動作成します。
047: *
048: * @param pearName
049: * このpearの名前。
050: * @param tcpAddress
051: * @param tcpPort
052: * @param httpPort
053: * @param rdvNode
054: * @param isRdv
055: */
056: public void configure(String pearName, String tcp...
057: int httpPort, String rdvNode, boolean isRdv) ...
058: // 環境変数設定
059: String JXTA_HOME =".jxtashell_" +pearName +File...
060: System.setProperty(JXTA_HOME_PROP, JXTA_HOME); ...
061: System.setProperty(TLS_PRINCIPAL_PROP, USER_NAM...
062: System.setProperty(TLS_PASSWORD_PROP, USER_PASS...
063:
064: // 設定が既に存在すれば何もせずに終了
065: File jxtaHome =new File(JXTA_HOME);
066: Configurator.setHome(jxtaHome);
067: System.out.println("JXTAHOME:" +jxtaHome);
068: System.out.println("JXTAHOME:isDirectory:" +jxt...
069: System.out.println("JXTAHOME:exists:" +jxtaHome...
070: if(jxtaHome.exists()) return;
071:
072: // JXTA設定オブジェクトの作成
073: Configurator conf;
074: if (isRdv){
075: // ランデブーピアのデフォルト定義
076: conf = new Configurator(Profile.RENDEZVOUS); ...
077: }
078: else{
079: // エッジピアのデフォルト定義
080: conf = new Configurator(Profile.EDGE);
081: }
082:
083: // ピア名・ユーザー名・パスワードを設定
084: conf.setName(pearName);
085: conf.setDescription("ShellStarter-Sample");
086: conf.setSecurity(USER_NAME, USER_PASS);
087:
088: // 初期ランデブーノードの登録
089: int rdvNodeNum = Integer.parseInt(rdvNode);
090: if (rdvNodeNum < 10) {
091: try {
092: URI u = new URI(TCP_PRE + tcpAddress + ADDR...
093: + PORT_POST_TCP);
094: conf.addRendezVous(u);
095: } catch (URISyntaxException e) {
096: throw new ConfiguratorException(e);
097: }
098: }
099:
100: // TODO マルチキャストを無効にする
101:
102: // 設定の保管
103: conf.save();
104: }
105:
106: public static void main(String[] args) throws Exc...
107: ShellStarter starter = new ShellStarter();
108: boolean isRdv = false;
109:
110: // 引数解析
111: if ((args.length == 5) && (args[4].equalsIgnore...
112: isRdv = true;
113: else if (args.length != 5) {
114: System.out
115: .println("Usage: ShellStarter <peer name>...
116: +" <node number> <rdv node n...
117: System.exit(1);
118: }
119:
120: // JXTA構成処理を呼び出す
121: int tcpPort = Integer.parseInt(PORT_PRE + args[...
122: int httpPort = Integer.parseInt(PORT_PRE + args...
123: String pearName = args[0];
124: String tcpAddress = args[1];
125: String rdvNode = args[3];
126: starter.configure(pearName, tcpAddress, tcpPort...
127:
128: // シェルの起動
129: Boot.main(args);
130: }
131:
132: }
*初期化処理の概要 [#p75d00c1]
えーと、オリジナルソースの影響をそこかしこに受けている初...
初期化処理は以下のパートに分かれます。
-JXTA設定ファイルを読み込むための環境変数を設定する。
-JXTA設定ファイルの場所をJXTA APIに通知する。
-JXTA設定ファイルの存在を確認し、存在しなければ以下の処理...
--定義の基礎プロファイルから設定オブジェクトを作成する。
--足りない設定を定義する。
--設定オブジェクトよりJXTA設定ファイルをセーブする。
APIと環境変数両方使って、設定ファイルの場所を通知してやら...
設定情報の作成で重要なのは、定義作成クラスであるnet.jxta....
唯一元IBMの記事にある「マルチキャストの無効化」の方法が掴...
*さて次は [#yc330e63]
「ハローワールドはしない」と言いましたが、そう言いつつや...
*参考URL [#e94def03]
http://www-6.ibm.com/jp/developerworks/java/040514/j_j-jx...
*コメント欄 [#x9d06e4b]
#comment(below)
*作業用 [#w4d09006]
#newpage(駅長/)
#norelated
[[駅長/JXTA勉強会]]
ページ名: