1 21 22 package org.apache.derbyTesting.functionTests.tests.derbynet; 23 24 import org.apache.derby.drda.NetworkServerControl; 25 26 import org.apache.derbyTesting.functionTests.harness.jvm; 27 import org.apache.derby.tools.ij; 28 29 import java.util.Properties ; 30 31 import java.io.ByteArrayOutputStream ; 32 import java.io.OutputStream ; 33 import java.io.PrintWriter ; 34 35 import java.sql.DriverManager ; 36 import java.sql.Connection ; 37 import java.sql.DatabaseMetaData ; 38 import java.sql.ResultSet ; 39 import java.sql.SQLException ; 40 import java.sql.Statement ; 41 import org.apache.derbyTesting.functionTests.util.TestUtil; 42 43 52 53 public class DerbyNetNewServer extends Thread 54 { 55 56 private static final String DATABASE_NAME = "wombat"; 57 private static boolean passed = true; 58 private static final Properties authenticationProperties; 59 static 60 { 61 authenticationProperties = new Properties (); 62 authenticationProperties.put ("user", "admin"); 63 authenticationProperties.put ("password", "admin"); 64 } 65 66 private NetworkServerControl server; 67 68 public static void main( String [] args) 69 { 70 try 71 { 72 TestUtil.loadDriver(); 73 Class.forName( "org.apache.derby.jdbc.EmbeddedDriver").newInstance(); 74 75 ij.getPropertyArg(args); 76 77 ByteArrayOutputStream bos = new ByteArrayOutputStream (); 78 79 testServer(new NetworkServerControl(), bos, "non-null PrintWriter"); 80 testServer(new NetworkServerControl(), null, "null PrintWriter"); 81 } 82 catch( Exception e) 83 { 84 e.printStackTrace(); 85 passed = false; 86 } 87 if( passed) 88 System.out.println( "PASSED."); 89 else 90 System.out.println( "FAILED."); 91 } 92 93 private static void testServer( NetworkServerControl server, 94 ByteArrayOutputStream bos, String label) 95 throws Exception 96 { 97 PrintWriter writer = null; 98 99 System.out.println( "Testing " + label); 100 if( bos != null) 101 { 102 bos.reset(); 103 writer = new PrintWriter (bos); 107 } 108 server.start(writer); 109 Connection conn = null; 110 111 for( int ntries = 1;; ntries++) 113 { 114 try 115 { 116 Thread.sleep(500); 117 } 118 catch( InterruptedException ie){}; 119 120 try 121 { 122 conn = DriverManager.getConnection(TestUtil.getJdbcUrlPrefix() 123 + DATABASE_NAME + 124 ";create=true", 125 authenticationProperties); 126 127 break; 128 } 129 catch( SQLException sqle) 130 { 131 if( ntries > 10) 132 { 133 System.out.println( "Server start failed: " + sqle.getMessage()); 134 if( bos != null) 135 { 136 System.out.println( "Server log:"); 137 System.out.println( bos.toString()); 138 } 139 passed = false; 140 break; 141 } 142 } 143 } 144 if( conn != null) 145 { 146 try 147 { 148 conn.close(); 149 } 150 catch( SQLException sqle) 151 { 152 passed = false; 153 System.out.println( "SQLException thrown in close: " + sqle.getMessage()); 154 } 155 } 156 try 157 { 158 server.shutdown(); 159 } 160 catch( Exception e) 161 { 162 passed = false; 163 System.out.println( "Server shutdown failed: " + e.getMessage()); 164 } 165 166 if( bos != null) 167 { 168 if( bos.size() == 0) 169 { 170 passed = false; 171 System.out.println( "Nothing written to the server log."); 172 } 173 } 174 } 176 private DerbyNetNewServer( NetworkServerControl server) 177 { 178 this.server = server; 179 } 180 181 } 182 | Popular Tags |