summaryrefslogtreecommitdiff
path: root/java/test/Ice/location/ServerManagerI.java
blob: eed1a9a244b1fc4e2ddd03384d41575fc253cfdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
// **********************************************************************
//
// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

import Test.*;

public class ServerManagerI extends _ServerManagerDisp
{
    ServerManagerI(Ice.ObjectAdapter adapter, ServerLocatorRegistry registry, Ice.InitializationData initData)
    {
	_adapter = adapter;
	_registry = registry;
	_communicators = new java.util.ArrayList();
	_initData = initData;

	_initData.properties.setProperty("Ice.OA.TestAdapter.Endpoints", "default");
	_initData.properties.setProperty("Ice.OA.TestAdapter.AdapterId", "TestAdapter");
	_initData.properties.setProperty("Ice.OA.TestAdapter.ReplicaGroupId", "ReplicatedAdapter");
	_initData.properties.setProperty("Ice.OA.TestAdapter2.Endpoints", "default");
	_initData.properties.setProperty("Ice.OA.TestAdapter2.AdapterId", "TestAdapter2");
    }

    public void
    startServer(Ice.Current current)
    {
        java.util.Iterator i = _communicators.iterator();
	while(i.hasNext())
	{
	    Ice.Communicator c = (Ice.Communicator)i.next();
	    c.waitForShutdown();
	    c.destroy();
	}
	_communicators.clear();

	//
	// Simulate a server: create a new communicator and object
	// adapter. The object adapter is started on a system allocated
	// port. The configuration used here contains the Ice.Locator
	// configuration variable. The new object adapter will register
	// its endpoints with the locator and create references containing
	// the adapter id instead of the endpoints.
	//
	Ice.Communicator serverCommunicator = Ice.Util.initialize(_initData);
	_communicators.add(serverCommunicator);

	Ice.ObjectAdapter adapter = serverCommunicator.createObjectAdapter("TestAdapter");

	Ice.ObjectAdapter adapter2 = serverCommunicator.createObjectAdapter("TestAdapter2");

	Ice.ObjectPrx locator = serverCommunicator.stringToProxy("locator:default -p 12010 -t 30000");
	adapter.setLocator(Ice.LocatorPrxHelper.uncheckedCast(locator));
	adapter2.setLocator(Ice.LocatorPrxHelper.uncheckedCast(locator));

	Ice.Object object = new TestI(adapter, adapter2, _registry);
	_registry.addObject(adapter.add(object, serverCommunicator.stringToIdentity("test")));
	_registry.addObject(adapter.add(object, serverCommunicator.stringToIdentity("test2")));

	adapter.activate();
	adapter2.activate();
    }

    public void
    shutdown(Ice.Current current)
    {
        java.util.Iterator i = _communicators.iterator();
	while(i.hasNext())
	{
	    ((Ice.Communicator)i.next()).destroy();
	}
	_adapter.getCommunicator().shutdown();
    }

    private Ice.ObjectAdapter _adapter;
    private ServerLocatorRegistry _registry;
    private java.util.ArrayList _communicators;
    private Ice.InitializationData _initData;
}