001: /*
002:
003: Derby - Class org.apache.derbyTesting.functionTests.tests.derbynet.getCurrentProperties
004:
005: Licensed to the Apache Software Foundation (ASF) under one or more
006: contributor license agreements. See the NOTICE file distributed with
007: this work for additional information regarding copyright ownership.
008: The ASF licenses this file to You under the Apache License, Version 2.0
009: (the "License"); you may not use this file except in compliance with
010: the License. You may obtain a copy of the License at
011:
012: http://www.apache.org/licenses/LICENSE-2.0
013:
014: Unless required by applicable law or agreed to in writing, software
015: distributed under the License is distributed on an "AS IS" BASIS,
016: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: See the License for the specific language governing permissions and
018: limitations under the License.
019:
020: */
021: package org.apache.derbyTesting.functionTests.tests.derbynet;
022:
023: import org.apache.derby.drda.NetworkServerControl;
024: import org.apache.derby.tools.ij;
025:
026: import java.util.Properties;
027: import java.sql.*;
028: import java.util.Vector;
029: import java.util.Properties;
030:
031: /**
032: This tests getCurrentProperties
033: */
034:
035: public class getCurrentProperties {
036: private static final String DERBY_SYSTEM_HOME = System
037: .getProperty("derby.system.home");
038:
039: private static Properties properties = new java.util.Properties();
040: private static Object joinsync = new Object();
041: private static boolean start = false;
042:
043: public static void main(String args[]) throws Exception {
044: try {
045: NetworkServerControl server = new NetworkServerControl();
046: Properties p = server.getCurrentProperties();
047: p.list(System.out);
048: ij.getPropertyArg(args);
049:
050: // create a connection in a different thread
051: startConnection();
052: // wait for connection
053: joinwait();
054: //server.setLogWriter(System.out);
055: // set tracing on for the waiting connection
056: server.trace(3, true);
057: //test NetworkServerControl.logConnections
058: server.logConnections(true);
059: // get properties
060: System.out.println("Properties with tracing on");
061: p = server.getCurrentProperties();
062: p.list(System.out);
063: // set tracing on for all connections
064: server.trace(true);
065: //test NetworkServerControl.setTraceDirectory
066: server.setTraceDirectory(DERBY_SYSTEM_HOME);
067: // get properties
068: System.out.println("Properties with tracing on");
069: p = server.getCurrentProperties();
070: p.list(System.out);
071: joinsignal();
072: } catch (Exception e) {
073: e.printStackTrace();
074: }
075: }
076:
077: private static void startConnection() {
078: Runnable service = new Runnable() {
079: public void run() {
080: try {
081: Connection conn = ij.startJBMS();
082:
083: // signal that connection has been established
084: joinsignal();
085: joinwait();
086: } catch (Exception e) {
087: throw new RuntimeException(e.getMessage());
088: }
089: }
090: };
091: new Thread(service).start();
092: }
093:
094: private static void joinwait() {
095: synchronized (joinsync) {
096: while (!start) {
097: try {
098: joinsync.wait();
099: } catch (InterruptedException ie) {
100: ie.printStackTrace();
101: }
102: }
103: start = false;
104: }
105: }
106:
107: private static void joinsignal() throws InterruptedException {
108: synchronized (joinsync) {
109: start = true;
110: joinsync.notifyAll();
111: }
112: Thread.yield();
113: Thread.sleep(10000);
114: }
115: }
|