package org.fcrepo.server.rest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.fcrepo.server.Server;
import org.springframework.stereotype.Component;
@Path("/")
@Component
public class SchemaResource extends BaseRestResource {
private final File schemaDir;
public SchemaResource(Server server) {
super(server);
schemaDir = new File(server.getHomeDir(),"xsd");
}
@GET
@Path("/{schema : \\w+\\.((dtd)|(xsd))}")
public Response getSchema(@PathParam("schema") String schemaName) {
File schema = new File(schemaDir, schemaName);
if (schema.exists()){
String mime = (schemaName.endsWith("xsd"))? MediaType.TEXT_XML : MediaType.TEXT_PLAIN;
try{
return Response.ok(new FileInputStream(schema), mime).build();
} catch (IOException ioe) {
return handleException(ioe, false);
}
} else {
return Response.status(404).build();
}
}
}