package ru.myCompany.neo4j.auto;
import org.neo4j.graphdb.*;
import org.neo4j.tooling.GlobalGraphOperations;
import java.util.Iterator;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.Produces;
@Path( "/auto_warmup" )
public class autoWarmUp {
private final GraphDatabaseService graphDb;
public autoWarmUp(final GraphDatabaseService gdb) {
graphDb = gdb;
}
@GET
@Produces( MediaType.TEXT_PLAIN )
@Path( "/warmup" )
public Response warmup()
{
GlobalGraphOperations gg = GlobalGraphOperations.at(graphDb);
Iterator<Node> iter = gg.getAllNodes().iterator();
Node node;
int relCount = 0;
int nCount = 0;
while ( iter.hasNext() ) {
node = iter.next();
nCount++;
for ( Relationship rel: node.getRelationships() ) {
if ( rel.hasProperty("type") ) {
relCount++;
}
}
}
return Response.status( Status.OK ).entity(
( "WARM UP: " + nCount + " nodes and " + relCount + " relationships." ).getBytes() ).build();
}
}