sysmodelmgr/com.symbian.pde.test.utils/src/com/symbian/pde/test/utils/PDETestPortLocator.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysmodelmgr/com.symbian.pde.test.utils/src/com/symbian/pde/test/utils/PDETestPortLocator.java Thu Mar 11 19:08:43 2010 +0200
@@ -0,0 +1,71 @@
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+package com.symbian.pde.test.utils;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.ServerSocket;
+
+public class PDETestPortLocator {
+
+ public static void main(String[] args) {
+ new PDETestPortLocator().savePortToFile();
+ }
+
+ public void savePortToFile() {
+ int port = locatePDETestPortNumber();
+ File propsFile = new File("pde_test_port.properties");
+ System.out.println("PDE Test port: " + port);
+ OutputStream os = null;
+ try {
+ os = new FileOutputStream(propsFile);
+ os.write(new String("pde.test.port=" + port).getBytes());
+ os.flush();
+ System.out.println("PDE Test port saved to file " + propsFile.getAbsolutePath());
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ } finally {
+ if (os != null) {
+ try {
+ os.close();
+ } catch (IOException ioe) {
+ // ignore
+ }
+ }
+ os = null;
+ }
+ }
+
+ private int locatePDETestPortNumber() {
+ ServerSocket socket = null;
+ try {
+ socket = new ServerSocket(0);
+ return socket.getLocalPort();
+ } catch (IOException e) {
+ // ignore
+ } finally {
+ if (socket != null) {
+ try {
+ socket.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ }
+ return -1;
+ }
+}