| /******************************************************************************* |
| * Copyright (c) 2004, 2007 Boeing. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Boeing - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.osee.ote.rest.internal; |
| |
| import java.io.File; |
| import java.util.Arrays; |
| |
| import javax.ws.rs.GET; |
| import javax.ws.rs.Path; |
| import javax.ws.rs.Produces; |
| import javax.ws.rs.core.Context; |
| import javax.ws.rs.core.MediaType; |
| import javax.ws.rs.core.Request; |
| import javax.ws.rs.core.StreamingOutput; |
| import javax.ws.rs.core.UriInfo; |
| |
| import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; |
| import org.eclipse.osee.ote.OTEApi; |
| import org.eclipse.osee.ote.core.ServiceUtility; |
| |
| /** |
| * @author Andrew M. Finkbeiner |
| */ |
| @Path("/") |
| public class OteRootResource { |
| |
| // Allows to insert contextual objects into the class, |
| // e.g. ServletContext, Request, Response, UriInfo |
| @Context |
| UriInfo uriInfo; |
| @Context |
| Request request; |
| |
| @GET |
| @Produces(MediaType.TEXT_HTML) |
| public String getConfiguration() throws OseeCoreException { |
| String url = uriInfo.getAbsolutePath().toASCIIString(); |
| OTEApi ote = ServiceUtility.getService(OTEApi.class); |
| File serverFolder = ote.getServerFolder().getRootFolder(); |
| HTMLBuilder builder = new HTMLBuilder(); |
| builder.open("OTE Server"); |
| builder.commonHeader(serverFolder); |
| builder.h2("Batch Data:"); |
| builder.addLink(url, "latestbatch", "Latest Batch"); |
| builder.br(); |
| builder.addLink(url, "batches", "Archived Batches"); |
| builder.br(); |
| builder.br(); |
| builder.h2("Server Info:"); |
| builder.addLink(url, "config", "Current Server Configuration"); |
| builder.br(); |
| builder.close(); |
| return builder.get(); |
| } |
| |
| @Path("latestbatch") |
| @GET |
| @Produces(MediaType.TEXT_HTML) |
| public String getLatestBatch() throws Exception { |
| OTEApi ote = ServiceUtility.getService(OTEApi.class); |
| File[] batches = ote.getServerFolder().getBatchesFolder().listFiles(); |
| |
| Arrays.sort(batches, new ReverseAlphabeticalSort()); |
| if(batches.length > 0){ |
| return new OteBatchResource(uriInfo, request, batches[0].getName()).getBatches(); |
| } else { |
| return new OteBatchResource().getBatches(); |
| } |
| } |
| |
| @Path("latestbatch/content.zip") |
| @GET |
| @Produces({"application/zip"}) |
| public StreamingOutput getLatestBatchContent() throws Exception { |
| OTEApi ote = ServiceUtility.getService(OTEApi.class); |
| File[] batches = ote.getServerFolder().getBatchesFolder().listFiles(); |
| |
| Arrays.sort(batches, new ReverseAlphabeticalSort()); |
| if(batches.length > 0){ |
| return new OteBatchResource(uriInfo, request, batches[0].getName()).getZip(); |
| } else { |
| return new OteBatchResource().getZip(); |
| } |
| } |
| |
| |
| } |