Introduced new module due to BAEL-598

This commit is contained in:
Victor Mosin
2017-02-01 20:45:21 +01:00
committed by Victor Mosin
parent 5c85259243
commit d8efbb5c75
11 changed files with 5033 additions and 0 deletions
@@ -0,0 +1,9 @@
package com.baeldung.thrift;
public class Application {
public static void main(String[] args) {
CrossPlatformServiceServer server = new CrossPlatformServiceServer();
server.start();
}
}
@@ -0,0 +1,41 @@
package com.baeldung.thrift;
import com.baeldung.thrift.impl.CrossPlatformService;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
import org.apache.thrift.transport.TTransportException;
public class CrossPlatformServiceClient {
public boolean ping() {
try {
TTransport transport;
transport = new TSocket("localhost", 9090);
transport.open();
TProtocol protocol = new TBinaryProtocol(transport);
CrossPlatformService.Client client = new CrossPlatformService.Client(protocol);
System.out.print("Calling remote method...");
boolean result = client.ping();
System.out.println("done.");
transport.close();
return result;
} catch (TTransportException e) {
e.printStackTrace();
} catch (TException x) {
x.printStackTrace();
}
return false;
}
}
@@ -0,0 +1,35 @@
package com.baeldung.thrift;
import com.baeldung.thrift.impl.CrossPlatformResource;
import com.baeldung.thrift.impl.CrossPlatformService;
import com.baeldung.thrift.impl.InvalidOperationException;
import org.apache.thrift.TException;
import java.util.Collections;
import java.util.List;
public class CrossPlatformServiceImpl implements CrossPlatformService.Iface {
@Override
public CrossPlatformResource get(final int id) throws InvalidOperationException, TException {
// add some action
return new CrossPlatformResource();
}
@Override
public void save(final CrossPlatformResource resource) throws InvalidOperationException, TException {
// add some action
}
@Override
public List<CrossPlatformResource> getList() throws InvalidOperationException, TException {
// add some action
return Collections.emptyList();
}
@Override
public boolean ping() throws InvalidOperationException, TException {
return true;
}
}
@@ -0,0 +1,39 @@
package com.baeldung.thrift;
import com.baeldung.thrift.impl.CrossPlatformService;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TSimpleServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport;
public class CrossPlatformServiceServer {
private TServer server;
public void start() {
try {
TServerTransport serverTransport = new TServerSocket(9090);
server = new TSimpleServer(new TServer.Args(serverTransport)
.processor(new CrossPlatformService.Processor<>(new CrossPlatformServiceImpl())));
System.out.print("Starting the server... ");
server.serve();
System.out.println("done.");
} catch (Exception e) {
e.printStackTrace();
}
}
public void stop() {
if (server != null && server.isServing()) {
System.out.print("Stopping the server... ");
server.stop();
System.out.println("done.");
}
}
}