org.odata4j.examples.producer.inmemory.RoundtripExample Maven / Gradle / Ivy
The newest version!
package org.odata4j.examples.producer.inmemory;
import static org.odata4j.examples.JaxRsImplementation.JERSEY;
import java.util.ArrayList;
import java.util.List;
import org.core4j.Func;
import org.odata4j.consumer.ODataConsumer;
import org.odata4j.consumer.ODataConsumers;
import org.odata4j.examples.AbstractExample;
import org.odata4j.examples.ODataServerFactory;
import org.odata4j.producer.inmemory.InMemoryProducer;
import org.odata4j.producer.resources.DefaultODataProducerProvider;
import org.odata4j.producer.server.ODataServer;
public class RoundtripExample extends AbstractExample {
public class Customer {
private int id;
private String name;
public Customer() {}
public Customer(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return String.format("Customer[Id=%s,Name=%s]", id, name);
}
}
public static void main(String[] args) {
RoundtripExample example = new RoundtripExample();
example.run(args);
}
private void run(String[] args) {
// create/start the server
String endpointUri = "http://localhost:8885/RoundtripExample.svc/";
InMemoryProducer producer = new InMemoryProducer("RoundtripExample");
producer.register(Customer.class, "Customers", new Func>() {
public Iterable apply() {
List customers = new ArrayList();
customers.add(new Customer(1, "John"));
return customers;
}
}, "Id");
DefaultODataProducerProvider.setInstance(producer);
ODataServer server = new ODataServerFactory(JERSEY).startODataServer(endpointUri);
// create the client
ODataConsumer.dump.responseHeaders(true);
ODataConsumer consumer = ODataConsumers.create(endpointUri);
reportEntities("Customers", consumer.getEntities("Customers").execute());
for (Customer customer : consumer.getEntities(Customer.class, "Customers").execute())
report(customer.toString());
// stop the server
server.stop();
}
}