1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package hellowicket;
- import java.io.IOException;
- import java.util.*;
- import java.util.concurrent.*;
- import org.apache.wicket.request.resource.AbstractResource;
- import com.fasterxml.jackson.databind.*;
- import org.hibernate.Session;
- import org.hibernate.Transaction;
- public class HelloDbResponse extends AbstractResource
- {
- private static final long serialVersionUID = 1L;
- private static final int DB_ROWS = 10000;
- private static final ObjectMapper mapper = new ObjectMapper();
- protected ResourceResponse newResourceResponse(Attributes attributes)
- {
- final int queries = attributes.getRequest().getQueryParameters().getParameterValue("queries").toInt(1);
- final World[] worlds = new World[queries];
- final Random random = ThreadLocalRandom.current();
- final ResourceResponse response = new ResourceResponse();
- response.setContentType("application/json");
- response.setWriteCallback(new WriteCallback() {
- public void writeData(Attributes attributes)
- {
- final Session session = HibernateUtil.getSessionFactory().openSession();
- for (int i = 0; i < queries; i++)
- {
- worlds[i] = (World)session.byId(World.class).load(random.nextInt(DB_ROWS) + 1);
- }
- session.close();
- try
- {
- attributes.getResponse().write(HelloDbResponse.mapper.writeValueAsString(worlds));
- }
- catch (IOException ex)
- {
- // do nothing
- }
- }
- });
- return response;
- }
- }
|