/*******************************************************************************
* /***
* *
* * Copyright 2013 Netflix, Inc.
* *
* * Licensed under the Apache License, Version 2.0 (the "License");
* * you may not use this file except in compliance with the License.
* * You may obtain a copy of the License at
* *
* * http://www.apache.org/licenses/LICENSE-2.0
* *
* * Unless required by applicable law or agreed to in writing, software
* * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* * See the License for the specific language governing permissions and
* * limitations under the License.
* *
******************************************************************************/
package com.netflix.paas.ptp;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import com.netflix.staash.mesh.InstanceRegistry;
import com.netflix.staash.mesh.client.ClientFactory;
import com.netflix.staash.mesh.client.memory.MemoryClientFactory;
import com.netflix.staash.mesh.db.Entry;
import com.netflix.staash.mesh.db.TopicRegistry;
import com.netflix.staash.mesh.db.memory.MemoryTopicFactory;
import com.netflix.staash.mesh.endpoints.ChordEndpointPolicy;
import com.netflix.staash.mesh.endpoints.EndpointPolicy;
import com.netflix.staash.mesh.server.Server;
public class TestDriver {
public static void main(String[] args) {
final ScheduledExecutorService executor = Executors.newScheduledThreadPool(10);
final TopicRegistry topics = new TopicRegistry(new MemoryTopicFactory());
final InstanceRegistry registry = new InstanceRegistry();
final ClientFactory factory = new MemoryClientFactory();
final EndpointPolicy endpointPolicy = new ChordEndpointPolicy();
topics.createTopic("test");
topics.addEntry("test", new Entry("Key1", "Value1", System.currentTimeMillis()));
topics.addEntry("test", new Entry("Key2", "Value2", System.currentTimeMillis()));
final AtomicInteger counter = new AtomicInteger();
final int instanceCount = 10;
final int asgCount = 10;
final long asgCreateDelay = 5;
// // Thread to add random server
// executor.execute(new Runnable() {
// @Override
// public void run() {
// long id = counter.incrementAndGet();
// if (id < asgCount) {
// for (int i = 0; i < instanceCount; i++) {
// try {
// Server server = new Server(registry, factory, endpointPolicy, "" + (id * instanceCount + i));
// server.start();
// }
// catch (Exception e) {
// e.printStackTrace();
// }
// }
// executor.schedule(this, asgCreateDelay, TimeUnit.SECONDS);
// }
// }
// });
//
// executor.scheduleAtFixedRate(new Runnable() {
// @Override
// public void run() {
// }
// }, 10, 10, TimeUnit.SECONDS);
//
// try {
// Thread.sleep(100000);
// } catch (InterruptedException e) {
// }
}
}