+ if (services == null)
+ {
+ services = new Vector<String>();
+ try
+ {
+ for (RestServiceDescription descr : RestServiceDescription
+ .parseDescriptions(jalview.bin.Cache.getDefault(
+ RSBS_SERVICES,
+ makeShmmrRestClient().service.toString())))
+ {
+ services.add(descr.toString());
+ }
+ } catch (Exception ex)
+ {
+ System.err
+ .println("Serious - RSBS descriptions in user preferences are corrupt!");
+ ex.printStackTrace();
+ }
+
+ }
+ RestClient[] lst = new RestClient[services.size()];
+ int i = 0;
+ for (String svc : services)
+ {
+ lst[i++] = new RestClient(new RestServiceDescription(svc));
+ }
+ return lst;
+ }
+
+ public static void main(String args[])
+ {
+ try
+ {
+ RestClient[] clients = getRestClients();
+ System.out.println("Got " + clients.length + " clients.");
+ int i = 0;
+ Vector<String> urls = new Vector<String>();
+ for (RestClient cl : clients)
+ {
+ System.out.println("" + (++i) + ": " + cl.service.toString());
+ urls.add(cl.service.toString());
+ }
+ setRsbsServices(urls);
+ if (clients.length != getRestClients().length)
+ {
+ System.err
+ .println("Failed. Differing numbers of clients when stringified and parsed again.");
+ }
+
+ } catch (Throwable x)
+ {
+ System.err.println("Failed. Unexpected exception.");
+ x.printStackTrace();
+ }