testsystemserviceconnectionlistener.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 175 行
JAVA
175 行
/* * * * Copyright 1990-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */package com.sun.midp.services;import com.sun.midp.security.*;import com.sun.midp.links.*;import java.io.*;import java.util.*;import com.sun.cldc.isolate.*;import com.sun.midp.i3test.TestCase;/** * Tests for system service requesting functionality */public class TestSystemServiceConnectionListener extends TestCase { public final static String SERVICE_ID = "42"; static private class SecurityTrusted implements ImplicitlyTrustedClass {}; private static SecurityToken token = SecurityInitializer.requestToken(new SecurityTrusted()); class SimpleSystemService implements SystemService, Runnable { private final static String testString = "just a test string"; Thread serviceThread = null; SystemServiceConnection con = null; boolean stringsMatch = false; public String getServiceID() { return SERVICE_ID; } public void start() { } public void stop() { try { serviceThread.join(); } catch (InterruptedException e) { } } public void acceptConnection(SystemServiceConnection con) { this.con = con; serviceThread = new Thread(this); serviceThread.start(); } public void run() { try { // send test string to client SystemServiceDataMessage msg = SystemServiceMessage.newDataMessage(); msg.getDataOutput().writeUTF(testString); con.send(msg); // get a response string from client msg = (SystemServiceDataMessage)con.receive(); String responseString = msg.getDataInput().readUTF(); // compare strings stringsMatch = testString.toUpperCase().equals(responseString); } catch (Throwable t) { } } } void testRemote() throws IsolateStartupException, InterruptedIOException, IOException, ClosedLinkException { SystemServiceManager manager = SystemServiceManager.getInstance(token); SimpleSystemService service = new SimpleSystemService(); manager.registerService(service); SystemServiceRequestHandler requestHandler = new SystemServiceRequestHandler(manager); Isolate serviceIsolate = Isolate.currentIsolate(); Isolate clientIsolate = new Isolate( "com.sun.midp.services.SystemServiceIsolate", null); clientIsolate.start(); IsolateSystemServiceRequestHandler isolateRequestHandler = requestHandler.newIsolateRequestHandler(clientIsolate); Link namedPortalLink = Link.newLink(serviceIsolate, clientIsolate); Link[] clientLinks = { namedPortalLink }; LinkPortal.setLinks(clientIsolate, clientLinks); SystemServiceLinkPortal.sendLinks(namedPortalLink); requestHandler.handleIsolateRequests(isolateRequestHandler); clientIsolate.waitForExit(); manager.shutdown(); assertTrue("Strings match", service.stringsMatch); } void testLocal() { SystemServiceManager manager = SystemServiceManager.getInstance(token); SimpleSystemService service = new SimpleSystemService(); manager.registerService(service); SystemServiceRequestor serviceRequestor = SystemServiceRequestor.getInstance(token); SystemServiceConnection con = null; con = serviceRequestor.requestService( TestSystemService.SERVICE_ID); try { // receive string from service SystemServiceDataMessage msg = (SystemServiceDataMessage)con.receive(); String testString = msg.getDataInput().readUTF(); // convert string to upper case and sent it back to service msg = SystemServiceMessage.newDataMessage(); msg.getDataOutput().writeUTF(testString.toUpperCase()); con.send(msg); } catch (Throwable t) { System.err.println("Exception: " + t); } manager.shutdown(); assertTrue("Strings match", service.stringsMatch); } /** * Runs all tests. */ public void runTests() throws InterruptedIOException, IsolateStartupException, ClosedLinkException, IOException { declare("testRemote"); testRemote(); declare("testLocal"); testLocal(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?