public ExplicitConnectionSourceImpl(List/* <InetSocketAddress> */ contacts) { ArrayList serverList = new ArrayList(contacts.size()); for (int i = 0; i < contacts.size(); i++) { InetSocketAddress addr = (InetSocketAddress) contacts.get(i); serverList.add(new ServerLocation(addr.getHostName(), addr.getPort())); } shuffle(serverList); this.serverList = Collections.unmodifiableList(serverList); }
public static HashSet/* <ServerLocation> */ readServerLocationSet(DataInput in) throws IOException, ClassNotFoundException { int size = in.readInt(); if (size < 0) { return null; } HashSet serverLocations = new HashSet(size); for (int i = 0; i < size; i++) { ServerLocation next = new ServerLocation(); InternalDataSerializer.invokeFromData(next, in); serverLocations.add(next); } return serverLocations; }
public static ArrayList/* <ServerLocation> */ readServerLocationList(DataInput in) throws IOException, ClassNotFoundException { int size = in.readInt(); if (size < 0) { return null; } ArrayList serverLocations = new ArrayList(size); for (int i = 0; i < size; i++) { ServerLocation next = new ServerLocation(); InternalDataSerializer.invokeFromData(next, in); serverLocations.add(next); } return serverLocations; }
private List<ServerLocation> getLocators() { if (cachedLocators != null) { return cachedLocators; } else { synchronized (cachedLocatorsLock) { List<ControllerProfile> profiles = advisor.fetchControllers(); List<ServerLocation> result = new ArrayList<>(profiles.size() + 1); for (ControllerProfile profile : profiles) { result.add(buildServerLocation(profile)); } result.add(new ServerLocation(hostNameForClients, port)); cachedLocators = result; return result; } } }
static List constructGetAllTasks(String region, final Map<ServerLocation, HashSet> serverToFilterMap, final PoolImpl pool, final Object callback) { final List<SingleHopOperationCallable> tasks = new ArrayList<SingleHopOperationCallable>(); ArrayList<ServerLocation> servers = new ArrayList<ServerLocation>(serverToFilterMap.keySet()); if (logger.isDebugEnabled()) { logger.debug("Constructing tasks for the servers {}", servers); } for (ServerLocation server : servers) { Set filterSet = serverToFilterMap.get(server); AbstractOp getAllOp = new GetAllOpImpl(region, new ArrayList(filterSet), callback); SingleHopOperationCallable task = new SingleHopOperationCallable(new ServerLocation(server.getHostName(), server.getPort()), pool, getAllOp, UserAttributes.userAttributes.get()); tasks.add(task); } return tasks; }
static List constructAndGetRemoveAllTasks(Region region, final EventID eventId, final Map<ServerLocation, HashSet> serverToFilterMap, final PoolImpl pool, Object callbackArg) { final List<SingleHopOperationCallable> tasks = new ArrayList<SingleHopOperationCallable>(); ArrayList<ServerLocation> servers = new ArrayList<ServerLocation>(serverToFilterMap.keySet()); if (logger.isDebugEnabled()) { logger.debug("Constructing tasks for the servers{}", servers); } for (ServerLocation server : servers) { AbstractOp RemoveAllOp = new RemoveAllOpImpl(region, serverToFilterMap.get(server), eventId, true, callbackArg); SingleHopOperationCallable task = new SingleHopOperationCallable(new ServerLocation(server.getHostName(), server.getPort()), pool, RemoveAllOp, UserAttributes.userAttributes.get()); tasks.add(task); } return tasks; }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { this.serverFound = DataSerializer.readPrimitiveBoolean(in); if (this.serverFound) { server = new ServerLocation(); server.fromData(in); } }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { super.fromData(in); this.currentServer = new ServerLocation(); InternalDataSerializer.invokeFromData(this.currentServer, in); }
@Override public Connection borrowConnection(long aquireTimeout) { borrows++; return new DummyConnection(new ServerLocation("localhost", currentServer++ % numServers)); }
@Override public Connection getPrimary() { getPrimary++; return new DummyConnection(new ServerLocation("localhost", currentServer++)); }
protected static ServerLocation buildServerLocation(GridProfile p) { return new ServerLocation(p.getHost(), p.getPort()); }
@Override public List getBackups() { getBackups++; ArrayList result = new ArrayList(backups); for (int i = 0; i < backups; i++) { result.add(new DummyConnection(new ServerLocation("localhost", currentServer++))); } return result; }
private void setClientProxyMembershipId() { ServerLocation serverLocation = new ServerLocation( ((InetSocketAddress) this.getSocket().getRemoteSocketAddress()).getHostName(), this.getSocketPort()); DistributedMember distributedMember = new InternalDistributedMember(serverLocation); // no handshake for new client protocol. clientProxyMembershipID = new ClientProxyMembershipID(distributedMember); }
@Override public Connection exchangeConnection(Connection conn, Set excludedServers, long aquireTimeout) { if (excludedServers.size() >= numServers) { throw new NoAvailableServersException(); } exchanges++; return new DummyConnection(new ServerLocation("localhost", currentServer++ % numServers)); }
private static void findLocalDurableQueues(ClientProxyMembershipID proxyId, ArrayList<ServerLocation> matches) { InternalCache cache = GemFireCacheImpl.getInstance(); if (cache != null) { List l = cache.getCacheServers(); if (l != null) { Iterator i = l.iterator(); while (i.hasNext()) { CacheServerImpl bs = (CacheServerImpl) i.next(); if (bs.getAcceptor().getCacheClientNotifier().getClientProxy(proxyId) != null) { ServerLocation loc = new ServerLocation(bs.getExternalAddress(), bs.getPort()); matches.add(loc); } } } } }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { super.fromData(in); load = new ServerLoad(); InternalDataSerializer.invokeFromData(load, in); location = new ServerLocation(); InternalDataSerializer.invokeFromData(location, in); this.clientIds = DataSerializer.readArrayList(in); }
@Test public void testServerReturnedFromHandler() throws Exception { when(serverLocatorAdviseeMock.processRequest(any(Object.class))) .thenReturn(new ClientConnectionResponse(new ServerLocation(HOSTNAME, PORT))); LocatorAPI.GetServerRequest getServerRequest = ProtobufRequestUtilities.createGetServerRequest(); Result operationHandlerResult = getOperationHandlerResult(getServerRequest); assertTrue(operationHandlerResult instanceof Success); validateGetServerResponse((GetServerResponse) operationHandlerResult.getMessage()); }
@Test public void testServerReturnedForExistentGroup() throws Exception { when( serverLocatorAdviseeMock.processRequest(new ClientConnectionRequest(any(), EXISTENT_GROUP))) .thenReturn(new ClientConnectionResponse(new ServerLocation(HOSTNAME, PORT))); LocatorAPI.GetServerRequest getServerRequest = ProtobufRequestUtilities.createGetServerRequest(EXISTENT_GROUP); Result operationHandlerResult = getOperationHandlerResult(getServerRequest); assertTrue(operationHandlerResult instanceof Success); validateGetServerResponse((GetServerResponse) operationHandlerResult.getMessage()); }
@Test public void testDenyListing() throws Exception { ServerLocation location1 = new ServerLocation("localhost", 1); FailureTracker tracker1 = denyList.getFailureTracker(location1); tracker1.addFailure(); tracker1.addFailure(); assertEquals(Collections.EMPTY_SET, denyList.getBadServers()); tracker1.addFailure(); assertEquals(Collections.singleton(location1), denyList.getBadServers()); boolean done = false; for (StopWatch time = new StopWatch(true); !done && time.elapsedTimeMillis() < 10000; done = (denyList.getBadServers().size() == 0)) { Thread.sleep(200); } assertTrue("denyList still has bad servers", done); assertEquals(Collections.EMPTY_SET, denyList.getBadServers()); }
/** * Test the updateLoad method. The snapshot should use the new load when choosing a server. */ @Test public void testUpdateLoad() { LocatorLoadSnapshot sn = new LocatorLoadSnapshot(); ServerLocation l1 = new ServerLocation("localhost", 1); ServerLocation l2 = new ServerLocation("localhost", 2); sn.addServer(l1, new String[0], new ServerLoad(1, 1, 1, 1)); sn.addServer(l2, new String[0], new ServerLoad(100, .2f, 1, .2f)); assertEquals(l1, sn.getServerForConnection(null, Collections.EMPTY_SET)); assertEquals(l1, sn.getServerForConnection(null, Collections.EMPTY_SET)); sn.updateLoad(l1, new ServerLoad(200, 1, 1, 1)); assertEquals(l2, sn.getServerForConnection(null, Collections.EMPTY_SET)); assertEquals(l2, sn.getServerForConnection(null, Collections.EMPTY_SET)); }