/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * */ /********************************************************************* * Uses reflection to access JNLP services. * * @see * <a target="_blank" * href="http://croftsoft.com/library/tutorials/browser/"> * Launching a Browser from Java</a> * * @version * 2001-10-23 * @since * 2001-08-31 * @author * <a href="http://croftsoft.com/">David Wallace Croft</a> *********************************************************************/ package org.biojava.nbio.structure.align.webstart; import java.lang.reflect.Method; import java.net.URL; public final class JNLPProxy ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// { private static final Object basicServiceObject = getBasicServiceObject ( ); @SuppressWarnings("rawtypes") private static final Class basicServiceClass = getBasicServiceClass ( ); ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// public static void main ( String [ ] args ) throws Exception ////////////////////////////////////////////////////////////////////// { showDocument ( new URL ( args [ 0 ] ) ); } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// @SuppressWarnings("unchecked") public static boolean showDocument ( URL url ) ////////////////////////////////////////////////////////////////////// { if ( basicServiceObject == null ) { System.out.println("basisServiceObject = null"); return false; } try { Method method = basicServiceClass.getMethod ( "showDocument", new Class [ ] { URL.class } ); Boolean resultBoolean = ( Boolean ) method.invoke ( basicServiceObject, new Object [ ] { url } ); boolean success = resultBoolean.booleanValue ( ); if ( ! success ) System.out.println("invocation of method failed!"); return success; } catch ( Exception ex ) { ex.printStackTrace ( ); throw new RuntimeException ( ex.getMessage ( ) ); } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// @SuppressWarnings({ "unchecked" }) private static Object getBasicServiceObject ( ) ////////////////////////////////////////////////////////////////////// { try { Class serviceManagerClass = Class.forName ( "javax.jnlp.ServiceManager" ); Method lookupMethod = serviceManagerClass.getMethod ( "lookup", new Class [ ] { String.class } ); return lookupMethod.invoke ( null, new Object [ ] { "javax.jnlp.BasicService" } ); } catch ( Exception ex ) { return null; } } @SuppressWarnings("rawtypes") private static Class getBasicServiceClass ( ) ////////////////////////////////////////////////////////////////////// { try { return Class.forName ( "javax.jnlp.BasicService" ); } catch ( Exception ex ) { return null; } } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// private JNLPProxy ( ) { } ////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////// }