Changeset 2119 for trunk/java-client/org/nzdl/gsdl
- Timestamp:
- 2001-03-05T19:25:43+13:00 (23 years ago)
- Location:
- trunk/java-client/org/nzdl/gsdl
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/java-client/org/nzdl/gsdl/SearchAllCollections.java
r2103 r2119 71 71 * @see org.nzdl.gsdl.service.NzdlService 72 72 * @see org.nzdl.gsdl.service.NzdlServiceClient 73 * @see gnu.getopt.Getopt ;74 * @see gnu.getopt.LongOpt ;73 * @see gnu.getopt.Getopt 74 * @see gnu.getopt.LongOpt 75 75 */ 76 76 -
trunk/java-client/org/nzdl/gsdl/SimpleClient.java
r2116 r2119 64 64 * @author Gordon Paynter ([email protected]) 65 65 * @version $Revision$ 66 * @see org.nzdl.gsdl.SimpleServer 66 67 * @see org.nzdl.gsdl.service.NzdlCollectionInfo 67 68 * @see org.nzdl.gsdl.service.NzdlQuery … … 70 71 * @see org.nzdl.gsdl.service.NzdlResultSet 71 72 * @see org.nzdl.gsdl.service.NzdlService 72 * @see org.nzdl.gsdl.service.NzdlServiceImpl 73 * @see gnu.getopt.Getopt; 74 * @see gnu.getopt.LongOpt; 73 * @see org.nzdl.gsdl.service.NzdlServiceClient 74 * @see gnu.getopt.Getopt 75 * @see gnu.getopt.LongOpt 76 * @see <a href="http://www.nzdl.org/">The New Zealand Digital Library Project</a> 77 * @see <a href="http://www.nzdl.org/fast-cgi-bin/library?&a=p&p=gsdl">Greenstone Digital Library Software</a> 75 78 */ 76 79 … … 102 105 int verbosity = 2; 103 106 104 SimpleClient() { 107 /** 108 * Basic no-args constructor. Not recommended for normal use, 109 * but necessary if we want to create beans ... 110 */ 111 protected SimpleClient() { 105 112 init(null); 106 113 } 107 114 115 /** 116 * Normal constructor. the args are passed into the orb 117 * initialisation code so they can extract obscure args ... 118 */ 108 119 SimpleClient(String [] args) { 109 120 parseArgs(args); … … 111 122 } 112 123 113 void init(String [] args) { 124 /** 125 * 126 */ 127 protected void init(String [] args) { 114 128 115 129 // read our prevously seed IORs ... -
trunk/java-client/org/nzdl/gsdl/SimpleServer.java
r2098 r2119 22 22 23 23 // java standard library classes used 24 import java.io.IOException;25 24 import java.io.Serializable; 26 import java.lang.Cloneable; 27 import java.util.*; 25 //import java.util.*; 28 26 29 // HelloServer will use the naming service.30 27 import org.omg.CosNaming.*; 31 // The package containing special exceptions thrown by the name service.32 //import org.omg.CosNaming.NamingContextPackage.*;33 // All CORBA applications need these classes.34 28 import org.omg.CORBA.ORB; 35 29 … … 48 42 49 43 /** 50 * SimpleServer 51 * 52 * Based on algorithms in ... 44 * SimpleServer A very basic Greenstoen server (not yet complete). 53 45 * 54 46 * @author stuart yeates ([email protected]) 55 47 * @version $Revision$ 56 * @see 57 * @see 58 * @see 59 * 48 * @see org.nzdl.gsdl.SimpleClient 49 * @see org.nzdl.gsdl.service.NzdlServiceServer 50 * @see org.omg.CORBA.ORB 51 * @see <a href="http://www.nzdl.org/">The New Zealand Digital Library Project</a> 52 * @see <a href="http://www.nzdl.org/fast-cgi-bin/library?&a=p&p=gsdl">Greenstone Digital Library Software</a> 60 53 */ 61 54 62 55 63 public class SimpleServer 56 public class SimpleServer implements Serializable, Cloneable 64 57 { 65 58 /** 66 * Tests...59 * Starts up a trivial server. 67 60 * 68 * 69 * @exception java.io.IOException when ... 70 * @param args the arguments ... 61 * @param args the arguments passed through to the orb initialisation code... 71 62 */ 72 63 public static void main(String args[]) … … 101 92 } 102 93 } 103 104 /**105 * Tests...106 *107 *108 * @exception java.io.IOException when ...109 * @param args the arguments ...110 */ -
trunk/java-client/org/nzdl/gsdl/ptp/Makefile
r2111 r2119 18 18 Poller.class \ 19 19 Connection.class \ 20 Listener.class \ 20 21 Node.class 21 22 -
trunk/java-client/org/nzdl/gsdl/ptp/Node.java
r2109 r2119 36 36 37 37 /** 38 * Class ...38 * Class representing a Node in a Peer-To-Peer (PTP) network. 39 39 * 40 * Based on algorithms in ... 40 * Does very little actual work, but maintains a number of important 41 * statics and contains the command-line parsing and initialisation 42 * code (or it will). 43 * 44 * Unlike PTP networks as Napster and Gnutella queries are not 45 * propogated, only knowledge about servers. 41 46 * 42 47 * @author stuart yeates ([email protected]) 43 48 * @version $Revision$ 44 * @see 45 * @see 46 * @see 49 * @see Poller 50 * @see <a href="http://www.napster.com/">Napster</a> 51 * @see <a href="http://gnutella.wego.com/">Gnutella</a> 47 52 * 48 53 */ … … 50 55 public class Node { 51 56 57 /** A list of Locators which we know. */ 52 58 static Properties knownList = new Properties(); 53 59 60 /** Our IOR string*/ 54 61 static String identityIOR = "IOR:123456789012345678901234567890123456789012345678901234567890"; 55 62 63 /** Our HTTP string */ 56 64 static String identityHTTP = "http://www.nzdl.org"; 57 65 66 /** The port we listen on */ 58 67 static int identityPort = 4567; 68 /** Our host name */ 59 69 static String identityHost = null; //= InetAddress.getLocalHost().getHostName(); 60 static String identityP2P = identityHost + ":" + identityPort; 70 /** Our PTP object ...*/ 71 static String identityPTP = identityHost + ":" + identityPort; 61 72 73 /** Initialise the static variables */ 62 74 void init(){ 63 75 if (identityHost == null) { 64 76 try { 65 77 identityHost = InetAddress.getLocalHost().getHostName(); 66 identityP 2P = identityHost + ":" + identityPort;78 identityPTP = identityHost + ":" + identityPort; 67 79 } catch (Exception exception) { 68 80 System.err.println("caught exception: "+exception); … … 72 84 } 73 85 74 75 Node() { 86 /** 87 * Construct and rung a Node ... 88 */ 89 public Node() { 76 90 77 91 init(); 78 92 79 80 93 // start the server ... 81 94 Listener listener = new Listener(); 95 listener.run(); 82 96 83 97 // start the poller ... 84 98 Poller poller = new Poller(); 85 poller.run(); 99 poller.run(); 86 100 87 101 } 88 89 90 91 92 102 93 103 … … 102 112 public static void main(String args[]) throws IOException 103 113 { 104 114 Node node = new Node(); 105 115 } 106 116 } 107 117 118 -
trunk/java-client/org/nzdl/gsdl/ptp/PTP.java
r2110 r2119 35 35 36 36 /** 37 * Class ...37 * Class PTP represents a URL-like connection information to a remote Peer 38 38 * 39 * Based on algorithms in ... 39 * PTP's and connections initiated based on them form the backbone 40 * of the Peer-To-Peer network. 40 41 * 41 42 * @author stuart yeates ([email protected]) 42 43 * @version $Revision$ 43 * @see 44 * @see 45 * @see 44 * @see org.nzdl.gsdl.ptp.Connection 45 * @see Locator 46 * @see HTTP 47 * @see IOR 46 48 * 47 49 */ 48 50 49 public class PTP extends Locator{ 51 public class PTP extends Locator { 52 /** The remote port at which the peer is listening */ 50 53 int port; 54 /** The host on which the peer is resident */ 51 55 String host; 52 56 57 /** The basic constructor */ 53 58 PTP(String host, int port) { 54 59 this.host = host; 55 60 this.port = port; 56 61 } 62 /** the no-arguments constructor */ 63 protected PTP() { 64 this.host = ""; 65 this.port = 0; 66 } 67 68 /** convert the PTP to a string suitable for parsing later on ...*/ 57 69 public String toString() { 58 70 return "PTP:" + host + ":" + port; 59 }60 61 62 /**63 * Tests...64 *65 *66 * @exception java.io.IOException when ...67 * @param args the arguments ...68 */69 70 public static void main(String args[]) throws IOException71 {72 73 71 } 74 72 -
trunk/java-client/org/nzdl/gsdl/ptp/Poller.java
r2110 r2119 35 35 36 36 /** 37 * Class ...37 * Class Poller polls a group of peers periodically. 38 38 * 39 * Based on algorithms in ... 39 * Poller exists in it's own Thread so it is asynchronous with 40 * the rest of the program. The Connections to peers are also in 41 * seperate Threads, but only one run at once. 42 * 43 * The static Node.knownList is consulted about which peers to 44 * poll. 40 45 * 41 46 * @author stuart yeates ([email protected]) 42 47 * @version $Revision$ 43 * @see 44 * @see 45 * @see 46 * 48 * @see org.nzdl.gsdl.ptp.PTP 49 * @see org.nzdl.gsdl.ptp.Connection 50 * @see org.nzdl.gsdl.ptp.Node 51 * @see org.nzdl.gsdl.ptp.Node#knownList 52 * @see java.lang.Thread 47 53 */ 48 54 49 55 public class Poller extends Thread { 56 /** How often should we poll our peers? */ 50 57 int secondsBetweenPollCycles = 60; 51 58 59 /** The no-args constructor */ 52 60 public Poller() { 53 61 54 62 } 55 63 64 /** 65 * Start the poller. 66 * 67 * Only returns if interrupted or an Error is thrown. 68 */ 56 69 public void run() { 57 70 while (true) { … … 66 79 } 67 80 68 void poll() { 81 /** 82 * Poll each peer once, waiting for the Connections to terminate 83 * between each. 84 * 85 * Returns when all peer has been polled. 86 */ 87 void poll() { 69 88 Enumeration e = Node.knownList.propertyNames(); 70 89 while (e.hasMoreElements()) { … … 88 107 } 89 108 90 /**91 * Tests...92 *93 *94 * @exception java.io.IOException when ...95 * @param args the arguments ...96 */97 98 public static void main(String args[]) throws IOException99 {100 101 }102 109 103 110 } -
trunk/java-client/org/nzdl/gsdl/service/NzdlServiceClient.java
r2098 r2119 17 17 18 18 public NzdlServiceClient( String [] _args, Properties _props, String _IOR) { 19 corbaComErrorHolder error = new corbaComErrorHolder(); 19 20 try { 20 21 System.err.println("before ORB.init"); … … 29 30 m_nzdlServer = corbaifaceHelper.narrow(obj); 30 31 System.err.println("after .narrow"); 32 31 33 // basic setup 32 if (m_nzdlServer.initialise( )) {34 if (m_nzdlServer.initialise(error)) { 33 35 System.err.println("Nzdl init ... YES"); 34 36 } … … 44 46 System.exit(1); 45 47 } 48 if (error.value.value() != corbaComError._corbaNoError) { 49 System.err.println("CORBA error:" + error.value.value()); 50 } 46 51 47 52 System.err.println("Service init ... YES"); … … 49 54 50 55 public void configure( String _key, Set _values ) { 56 corbaComErrorHolder error = new corbaComErrorHolder(); 51 57 m_nzdlServer.configure( NzdlCorbaFactory.toCorbaText( _key ), 52 NzdlCorbaFactory.toCorbaTextArray( _values )); 58 NzdlCorbaFactory.toCorbaTextArray( _values ), 59 error); 60 if (error.value.value() != corbaComError._corbaNoError) { 61 System.err.println("CORBA error:" + error.value.value()); 62 } 53 63 } 54 64 55 65 public Set getCollectionSet( ) { 66 corbaComErrorHolder error = new corbaComErrorHolder(); 56 67 corbatext_tarrayHolder c_collSet = NzdlCorbaFactory.createCorbaTextArrayHolder(); 57 m_nzdlServer.collectionList(c_collSet );68 m_nzdlServer.collectionList(c_collSet, error); 58 69 Set collSet = new HashSet(); 59 70 for (int i=0; i<c_collSet.value.length; i++) { 60 71 collSet.add( NzdlCorbaFactory.toString( c_collSet.value[i] ) ); 72 } 73 if (error.value.value() != corbaComError._corbaNoError) { 74 System.err.println("CORBA error:" + error.value.value()); 61 75 } 62 76 return collSet ; -
trunk/java-client/org/nzdl/gsdl/service/NzdlServiceServer.java
r2108 r2119 69 69 } 70 70 71 public boolean initialise ( ) {71 public boolean initialise (corbaComErrorHolder error) { 72 72 // TODO should map the anything in NzdlService? 73 73 if (nzdl == null) 74 74 throw new Error ("NzdlServer needs a NzdlService to foward calls to ..."); 75 error.value = corbaComError.from_int(corbaComError._corbaNoError); 75 76 return true; 76 77 } 77 78 public void configure (corbatext_t key, 78 corbatext_t[] cfgline) { 79 // m_nzdlServer.configure( NzdlCorbaFactory.toCorbaText( _key ), 80 // NzdlCorbaFactory.toCorbaTextArray( _values )); 79 corbatext_t[] cfgline, 80 corbaComErrorHolder error) { 81 // m_nzdlServer.configure( NzdlCorbaFactory.toCorbaText( _key ), 82 // NzdlCorbaFactory.toCorbaTextArray( _values )); 81 83 82 84 nzdl.configure( NzdlCorbaFactory.toString(key), 83 85 NzdlCorbaFactory.toSet(cfgline)); 84 } 85 86 public void collectionList (corbatext_tarrayHolder collist) { 86 error.value = corbaComError.from_int(corbaComError._corbaNoError); 87 } 88 89 public void collectionList (corbatext_tarrayHolder collist, 90 corbaComErrorHolder error) { 87 91 //corbatext_tarrayHolder c_collSet = NzdlCorbaFactory.createCorbaTextArrayHolder(); 88 92 //m_nzdlServer.collectionList(c_collSet); … … 98 102 while (itr.hasNext()) { 99 103 String s = (String) itr.next(); 100 104 collist.value[i++] = NzdlCorbaFactory.toCorbaText(s); 101 105 } 106 error.value = corbaComError.from_int(corbaComError._corbaNoError); 102 107 103 108 return; 104 109 } 105 110 public void hasCollection (corbatext_t corbaCollection, 106 107 108 // corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();109 // org.omg.CORBA.BooleanHolder c_has = new org.omg.CORBA.BooleanHolder();110 // m_nzdlServer.hasCollection( NzdlCorbaFactory.toCorbaText(_name), c_has, c_err );111 // if (c_err.value.value() != 0)112 // System.err.println("hasCollection error " + c_err.value.value());113 // return c_has.value;111 org.omg.CORBA.BooleanHolder has, 112 corbaComErrorHolder error) { 113 // corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder(); 114 // org.omg.CORBA.BooleanHolder c_has = new org.omg.CORBA.BooleanHolder(); 115 // m_nzdlServer.hasCollection( NzdlCorbaFactory.toCorbaText(_name), c_has, c_err ); 116 // if (c_err.value.value() != 0) 117 // System.err.println("hasCollection error " + c_err.value.value()); 118 // return c_has.value; 114 119 String name = NzdlCorbaFactory.toString(corbaCollection); 115 120 has.value = nzdl.hasCollection(name); 121 error.value = corbaComError.from_int(corbaComError._corbaNoError); 116 122 return; 117 123 } 118 124 public boolean ping (corbatext_t collection, 119 corbaComErrorHolder error) {125 corbaComErrorHolder error) { 120 126 String name = NzdlCorbaFactory.toString(collection); 121 127 return nzdl.hasCollection(name); 122 128 } 123 129 public void getDocument (corbatext_t collection, 124 125 126 127 // corbatext_t c_name = NzdlCorbaFactory.toCorbaText( _name );128 // corbaDocRequestHolder c_request = NzdlCorbaFactory.createDocRequestHolder( _docID );129 // corbaDocResponseHolder c_response = NzdlCorbaFactory.createDocResponseHolder( );130 // corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();131 // m_nzdlServer.getDocument( c_name, c_request, c_response, c_err );132 // if (c_err.value.value() != 0)133 // System.err.println("getDocument() error " + c_err.value.value());134 // return NzdlCorbaFactory.toString( c_response.value.doc );130 corbaDocRequestHolder request, 131 corbaDocResponseHolder response, 132 corbaComErrorHolder error) { 133 // corbatext_t c_name = NzdlCorbaFactory.toCorbaText( _name ); 134 // corbaDocRequestHolder c_request = NzdlCorbaFactory.createDocRequestHolder( _docID ); 135 // corbaDocResponseHolder c_response = NzdlCorbaFactory.createDocResponseHolder( ); 136 // corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder(); 137 // m_nzdlServer.getDocument( c_name, c_request, c_response, c_err ); 138 // if (c_err.value.value() != 0) 139 // System.err.println("getDocument() error " + c_err.value.value()); 140 // return NzdlCorbaFactory.toString( c_response.value.doc ); 135 141 String collectionName = NzdlCorbaFactory.toString(collection); 136 142 String documentID = NzdlCorbaFactory.toString(request.value.OID); 137 143 String doc = nzdl.getDocument( collectionName, documentID ); 138 144 response.value.doc = NzdlCorbaFactory.toCorbaText(doc); 145 error.value = corbaComError.from_int(corbaComError._corbaNoError); 139 146 return; 140 147 } 141 148 public void getCollectInfo (corbatext_t collection, 142 143 144 // corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder();145 // corbaColInfoResponseHolder c_info = NzdlCorbaFactory.createColInfoResponseHolder();146 // m_nzdlServer.getCollectInfo( NzdlCorbaFactory.toCorbaText(_name), c_info, c_err );147 // if (c_err.value.value() != 0)148 // System.err.println("getCollectionInfo() error " + c_err.value.value());149 // return new NzdlCollectionInfo( c_info.value );149 corbaColInfoResponseHolder response, 150 corbaComErrorHolder error) { 151 // corbaComErrorHolder c_err = NzdlCorbaFactory.createComErrorHolder(); 152 // corbaColInfoResponseHolder c_info = NzdlCorbaFactory.createColInfoResponseHolder(); 153 // m_nzdlServer.getCollectInfo( NzdlCorbaFactory.toCorbaText(_name), c_info, c_err ); 154 // if (c_err.value.value() != 0) 155 // System.err.println("getCollectionInfo() error " + c_err.value.value()); 156 // return new NzdlCollectionInfo( c_info.value ); 150 157 String collectionName = NzdlCorbaFactory.toString(collection); 151 158 NzdlCollectionInfo info = nzdl.getCollectionInfo( collectionName ); 152 159 response.value = info.getInfo(); 160 error.value = corbaComError.from_int(corbaComError._corbaNoError); 153 161 return; 154 162 } 155 163 public void getFilterInfo (corbatext_t collection, 156 157 164 corbatext_tarrayHolder filterNames, 165 corbaComErrorHolder error) { 158 166 String collectionName = NzdlCorbaFactory.toString(collection); 159 167 … … 164 172 while (itr.hasNext()) { 165 173 String s = (String) itr.next(); 166 174 filterNames.value[i++] = NzdlCorbaFactory.toCorbaText(s); 167 175 } 168 176 177 error.value = corbaComError.from_int(corbaComError._corbaNoError); 169 178 return; 170 179 } 171 180 public void getFilterOptions (corbatext_t collection, 172 corbatext_t option, 173 corbaFilterOptionsResponseHolder response, 174 corbaComErrorHolder error) { 175 String collectionName = NzdlCorbaFactory.toString(collection); 176 System.err.println("TO BE IMPLEMENTED: DON'T KNOW HOW YET !!!"); 177 178 return; 179 } 181 corbatext_t option, 182 corbaFilterOptionsResponseHolder response, 183 corbaComErrorHolder error) { 184 String collectionName = NzdlCorbaFactory.toString(collection); 185 System.err.println("TO BE IMPLEMENTED: DON'T KNOW HOW YET !!!"); 186 187 error.value = corbaComError.from_int(corbaComError._corbaProtocolError); 188 return; 189 } 180 190 public void filter (corbatext_t collection, 181 corbaFilterRequest request,182 corbaFilterResponseHolder response,183 corbaComErrorHolder error) {191 corbaFilterRequest request, 192 corbaFilterResponseHolder response, 193 corbaComErrorHolder error) { 184 194 String collectionName = NzdlCorbaFactory.toString(collection); 185 195 System.err.println("TO BE IMPLEMENTED: DON'T KNOW HOW YET !!!"); 196 error.value = corbaComError.from_int(corbaComError. _corbaProtocolError); 186 197 return; 187 198 }
Note:
See TracChangeset
for help on using the changeset viewer.