diff options
Diffstat (limited to 'plugins/org.eclipse.osee.framework.manager.servlet')
53 files changed, 5348 insertions, 5348 deletions
diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/.classpath b/plugins/org.eclipse.osee.framework.manager.servlet/.classpath index 8a8f1668cdc..ad32c83a788 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/.classpath +++ b/plugins/org.eclipse.osee.framework.manager.servlet/.classpath @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/.project b/plugins/org.eclipse.osee.framework.manager.servlet/.project index b16c5a926b2..8a1f6b54b3e 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/.project +++ b/plugins/org.eclipse.osee.framework.manager.servlet/.project @@ -1,33 +1,33 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.osee.framework.manager.servlet</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ds.core.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.osee.framework.manager.servlet</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ds.core.builder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/build.properties b/plugins/org.eclipse.osee.framework.manager.servlet/build.properties index 057468c8f16..8a44ba09d21 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/build.properties +++ b/plugins/org.eclipse.osee.framework.manager.servlet/build.properties @@ -1,6 +1,6 @@ -source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .,\
- OSGI-INF/,\
- templates/
+source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + OSGI-INF/,\ + templates/ diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java index 491650d7faf..8236cfb21e0 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ArtifactFileServlet.java @@ -1,152 +1,152 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.ArtifactUtil;
-import org.eclipse.osee.framework.manager.servlet.data.DefaultOseeArtifact;
-import org.eclipse.osee.framework.manager.servlet.data.HttpArtifactFileInfo;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-import org.eclipse.osee.framework.resource.management.Options;
-import org.eclipse.osee.framework.resource.management.StandardOptions;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ArtifactFileServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = -6334080268467740905L;
-
- private final IResourceLocatorManager locatorManager;
- private final IResourceManager resourceManager;
-
- public ArtifactFileServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
- super();
- this.locatorManager = locatorManager;
- this.resourceManager = resourceManager;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- try {
- HttpArtifactFileInfo artifactFileInfo = null;
-
- String servletPath = request.getServletPath();
- // System.out.println("servletPath: " + servletPath);
- if (!Strings.isValid(servletPath) || "/".equals(servletPath) || "/index".equals(servletPath)) {
- // Enumeration<?> enumeration = request.getHeaderNames();
- // while (enumeration.hasMoreElements()) {
- // String headerField = (String) enumeration.nextElement();
- // String value = request.getHeader(headerField);
- // System.out.println(String.format("%s: %s", headerField, value));
- // }
-
- Pair<String, String> defaultArtifact = DefaultOseeArtifact.get();
- if (defaultArtifact != null) {
- artifactFileInfo =
- new HttpArtifactFileInfo(defaultArtifact.getFirst(), null, defaultArtifact.getSecond());
- }
- } else {
- artifactFileInfo = new HttpArtifactFileInfo(request);
- }
-
- String uri = null;
- if (artifactFileInfo != null) {
- if (artifactFileInfo.isBranchNameValid()) {
- uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getBranchName());
- } else {
- uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getId());
- }
- }
- handleArtifactUri(locatorManager, resourceManager, request.getQueryString(), uri, response);
- } catch (NumberFormatException ex) {
- handleError(response, HttpServletResponse.SC_BAD_REQUEST,
- String.format("Invalid Branch Id: [%s]", request.getQueryString()), ex);
- } catch (Exception ex) {
- handleError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- String.format("Unable to acquire resource: [%s]", request.getQueryString()), ex);
- } finally {
- response.flushBuffer();
- }
- }
-
- public static void handleArtifactUri(IResourceLocatorManager locatorManager, IResourceManager resourceManager, String request, String uri, HttpServletResponse response) throws OseeCoreException {
- boolean wasProcessed = false;
- if (Strings.isValid(uri)) {
- IResourceLocator locator = locatorManager.getResourceLocator(uri);
- Options options = new Options();
- options.put(StandardOptions.DecompressOnAquire.name(), true);
- IResource resource = resourceManager.acquire(locator, options);
-
- if (resource != null) {
- wasProcessed = true;
-
- InputStream inputStream = null;
- try {
- inputStream = resource.getContent();
-
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentLength(inputStream.available());
- response.setCharacterEncoding("ISO-8859-1");
- String mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream);
- if (mimeType == null) {
- mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString());
- if (mimeType == null) {
- mimeType = "application/*";
- }
- }
- response.setContentType(mimeType);
- if (!mimeType.equals("text/html")) {
- response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName());
- }
- Lib.inputStreamToOutputStream(inputStream, response.getOutputStream());
- response.flushBuffer();
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- } finally {
- Lib.close(inputStream);
- }
- }
- }
- if (!wasProcessed) {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- response.setContentType("text/plain");
- try {
- response.getWriter().write(String.format("Unable to find resource: [%s]", request));
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- }
- }
-
- private void handleError(HttpServletResponse response, int status, String message, Throwable ex) throws IOException {
- response.setStatus(status);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE, message, ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.util.logging.Level; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeExceptions; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.jdk.core.type.Pair; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.data.ArtifactUtil; +import org.eclipse.osee.framework.manager.servlet.data.DefaultOseeArtifact; +import org.eclipse.osee.framework.manager.servlet.data.HttpArtifactFileInfo; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.IResourceLocator; +import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; +import org.eclipse.osee.framework.resource.management.IResourceManager; +import org.eclipse.osee.framework.resource.management.Options; +import org.eclipse.osee.framework.resource.management.StandardOptions; + +/** + * @author Roberto E. Escobar + */ +public class ArtifactFileServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = -6334080268467740905L; + + private final IResourceLocatorManager locatorManager; + private final IResourceManager resourceManager; + + public ArtifactFileServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) { + super(); + this.locatorManager = locatorManager; + this.resourceManager = resourceManager; + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + try { + HttpArtifactFileInfo artifactFileInfo = null; + + String servletPath = request.getServletPath(); + // System.out.println("servletPath: " + servletPath); + if (!Strings.isValid(servletPath) || "/".equals(servletPath) || "/index".equals(servletPath)) { + // Enumeration<?> enumeration = request.getHeaderNames(); + // while (enumeration.hasMoreElements()) { + // String headerField = (String) enumeration.nextElement(); + // String value = request.getHeader(headerField); + // System.out.println(String.format("%s: %s", headerField, value)); + // } + + Pair<String, String> defaultArtifact = DefaultOseeArtifact.get(); + if (defaultArtifact != null) { + artifactFileInfo = + new HttpArtifactFileInfo(defaultArtifact.getFirst(), null, defaultArtifact.getSecond()); + } + } else { + artifactFileInfo = new HttpArtifactFileInfo(request); + } + + String uri = null; + if (artifactFileInfo != null) { + if (artifactFileInfo.isBranchNameValid()) { + uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getBranchName()); + } else { + uri = ArtifactUtil.getUri(artifactFileInfo.getGuid(), artifactFileInfo.getId()); + } + } + handleArtifactUri(locatorManager, resourceManager, request.getQueryString(), uri, response); + } catch (NumberFormatException ex) { + handleError(response, HttpServletResponse.SC_BAD_REQUEST, + String.format("Invalid Branch Id: [%s]", request.getQueryString()), ex); + } catch (Exception ex) { + handleError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + String.format("Unable to acquire resource: [%s]", request.getQueryString()), ex); + } finally { + response.flushBuffer(); + } + } + + public static void handleArtifactUri(IResourceLocatorManager locatorManager, IResourceManager resourceManager, String request, String uri, HttpServletResponse response) throws OseeCoreException { + boolean wasProcessed = false; + if (Strings.isValid(uri)) { + IResourceLocator locator = locatorManager.getResourceLocator(uri); + Options options = new Options(); + options.put(StandardOptions.DecompressOnAquire.name(), true); + IResource resource = resourceManager.acquire(locator, options); + + if (resource != null) { + wasProcessed = true; + + InputStream inputStream = null; + try { + inputStream = resource.getContent(); + + response.setStatus(HttpServletResponse.SC_OK); + response.setContentLength(inputStream.available()); + response.setCharacterEncoding("ISO-8859-1"); + String mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream); + if (mimeType == null) { + mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString()); + if (mimeType == null) { + mimeType = "application/*"; + } + } + response.setContentType(mimeType); + if (!mimeType.equals("text/html")) { + response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName()); + } + Lib.inputStreamToOutputStream(inputStream, response.getOutputStream()); + response.flushBuffer(); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } finally { + Lib.close(inputStream); + } + } + } + if (!wasProcessed) { + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + response.setContentType("text/plain"); + try { + response.getWriter().write(String.format("Unable to find resource: [%s]", request)); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } + } + } + + private void handleError(HttpServletResponse response, int status, String message, Throwable ex) throws IOException { + response.setStatus(status); + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, message, ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/AtsServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/AtsServlet.java index c116dafc2e8..ad8f10682b3 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/AtsServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/AtsServlet.java @@ -1,91 +1,91 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.net.URI;
-import java.net.URL;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.manager.servlet.ats.AtsService;
-import org.eclipse.osee.framework.manager.servlet.ats.AtsXmlMessages;
-import org.eclipse.osee.framework.manager.servlet.ats.AtsXmlSearch;
-import org.eclipse.osee.framework.manager.servlet.ats.XmlMessage;
-import org.eclipse.osee.framework.manager.servlet.data.ServletResourceBridge;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-import org.eclipse.osee.framework.resource.management.Options;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AtsServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = -9064467328387640427L;
-
- private final AtsService atsService;
-
- private final IResourceLocatorManager locatorManager;
- private final IResourceManager resourceManager;
-
- public AtsServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
- super();
- this.locatorManager = locatorManager;
- this.resourceManager = resourceManager;
- AtsService.IResourceProvider provider = new ResourceProvider();
- AtsXmlSearch xmlSearch = new AtsXmlSearch();
- AtsXmlMessages messages = new AtsXmlMessages(new XmlMessage());
- this.atsService = new AtsService(provider, xmlSearch, messages, locatorManager, resourceManager);
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) {
- atsService.sendClient(request, response);
- }
-
- @Override
- protected void doPost(final HttpServletRequest request, HttpServletResponse response) {
- IResourceLocator locator = new IResourceLocator() {
-
- @Override
- public String getRawPath() {
- return request.getRequestURL().toString();
- }
-
- @Override
- public String getProtocol() {
- return request.getProtocol();
- }
-
- @Override
- public URI getLocation() {
- try {
- return new URL(request.getRequestURL().toString()).toURI();
- } catch (Exception ex) {
- return null;
- }
- }
- };
- atsService.performOperation(new ServletResourceBridge(request, locator), response);
- }
-
- private final class ResourceProvider implements AtsService.IResourceProvider {
- @Override
- public IResource getResource(String path) throws OseeCoreException {
- IResourceLocator locator = locatorManager.getResourceLocator(path);
- return resourceManager.acquire(locator, new Options());
- }
- }
-
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.net.URI; +import java.net.URL; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.manager.servlet.ats.AtsService; +import org.eclipse.osee.framework.manager.servlet.ats.AtsXmlMessages; +import org.eclipse.osee.framework.manager.servlet.ats.AtsXmlSearch; +import org.eclipse.osee.framework.manager.servlet.ats.XmlMessage; +import org.eclipse.osee.framework.manager.servlet.data.ServletResourceBridge; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.IResourceLocator; +import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; +import org.eclipse.osee.framework.resource.management.IResourceManager; +import org.eclipse.osee.framework.resource.management.Options; + +/** + * @author Roberto E. Escobar + */ +public class AtsServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = -9064467328387640427L; + + private final AtsService atsService; + + private final IResourceLocatorManager locatorManager; + private final IResourceManager resourceManager; + + public AtsServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) { + super(); + this.locatorManager = locatorManager; + this.resourceManager = resourceManager; + AtsService.IResourceProvider provider = new ResourceProvider(); + AtsXmlSearch xmlSearch = new AtsXmlSearch(); + AtsXmlMessages messages = new AtsXmlMessages(new XmlMessage()); + this.atsService = new AtsService(provider, xmlSearch, messages, locatorManager, resourceManager); + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) { + atsService.sendClient(request, response); + } + + @Override + protected void doPost(final HttpServletRequest request, HttpServletResponse response) { + IResourceLocator locator = new IResourceLocator() { + + @Override + public String getRawPath() { + return request.getRequestURL().toString(); + } + + @Override + public String getProtocol() { + return request.getProtocol(); + } + + @Override + public URI getLocation() { + try { + return new URL(request.getRequestURL().toString()).toURI(); + } catch (Exception ex) { + return null; + } + } + }; + atsService.performOperation(new ServletResourceBridge(request, locator), response); + } + + private final class ResourceProvider implements AtsService.IResourceProvider { + @Override + public IResource getResource(String path) throws OseeCoreException { + IResourceLocator locator = locatorManager.getResourceLocator(path); + return resourceManager.acquire(locator, new Options()); + } + } + +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchExchangeServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchExchangeServlet.java index 3c27ec06016..3f3d89ad1bd 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchExchangeServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchExchangeServlet.java @@ -1,148 +1,148 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.branch.management.IBranchExchange;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.HttpBranchExchangeInfo;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-import org.eclipse.osee.framework.resource.management.Options;
-
-/**
- * @author Roberto E. Escobar
- */
-public class BranchExchangeServlet extends SecureOseeHttpServlet {
-
- private static final long serialVersionUID = -1642995618810911260L;
-
- private final IBranchExchange branchExchangeService;
- private final IResourceLocatorManager locatorManager;
- private final IResourceManager resourceManager;
-
- public BranchExchangeServlet(ISessionManager sessionManager, IBranchExchange branchExchangeService, IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
- super(sessionManager);
- this.branchExchangeService = branchExchangeService;
- this.locatorManager = locatorManager;
- this.resourceManager = resourceManager;
- }
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse response) throws IOException {
- try {
- HttpBranchExchangeInfo exchangeInfo = new HttpBranchExchangeInfo(req);
- switch (exchangeInfo.getFunction()) {
- case exportBranch:
- executeExport(exchangeInfo, response);
- break;
- case importBranch:
- executeImport(exchangeInfo, response);
- break;
- case checkExchange:
- executeCheckExchange(exchangeInfo, response);
- default:
- break;
- }
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE, String.format("Error processing [%s]", req.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- }
- response.getWriter().flush();
- response.getWriter().close();
- }
-
- private void executeCheckExchange(HttpBranchExchangeInfo exchangeInfo, HttpServletResponse response) throws Exception {
- int status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
- StringBuffer message = new StringBuffer();
-
- String path = exchangeInfo.getPath();
- IResourceLocator exchangeLocator = locatorManager.getResourceLocator(path);
- IResourceLocator verifyLocator = branchExchangeService.checkIntegrity(exchangeLocator);
- status = HttpServletResponse.SC_ACCEPTED;
- message.append(String.format("Verification at: [%s]", verifyLocator.getLocation().toASCIIString()));
-
- response.setStatus(status);
- response.setContentType("text/plain");
- response.getWriter().write(message.toString());
- }
-
- private void executeExport(HttpBranchExchangeInfo exchangeInfo, HttpServletResponse response) throws Exception {
- int status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
- StringBuffer message = new StringBuffer();
- IResourceLocator exchangeLocator =
- branchExchangeService.exportBranch(exchangeInfo.getExchangeFileName(), exchangeInfo.getOptions(),
- exchangeInfo.getSelectedBranchIds());
- status = HttpServletResponse.SC_ACCEPTED;
- message.append(String.format("Exported: [%s]", exchangeLocator.getLocation().toASCIIString()));
-
- if (exchangeInfo.isSendExportFile()) {
- InputStream exportFileStream = null;
- try {
- IResource resource = resourceManager.acquire(exchangeLocator, new Options());
- exportFileStream = resource.getContent();
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentLength(exportFileStream.available());
- response.setCharacterEncoding("ISO-8859-1");
- response.setContentType("application/zip");
- response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName());
- Lib.inputStreamToOutputStream(exportFileStream, response.getOutputStream());
- } finally {
- if (exportFileStream != null) {
- exportFileStream.close();
- }
- }
- }
-
- if (exchangeInfo.isDeleteExportFile()) {
- int deleteResult = resourceManager.delete(exchangeLocator);
- if (deleteResult == IResourceManager.OK) {
- status = HttpServletResponse.SC_ACCEPTED;
- } else {
- status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
- message.append(String.format("Error during deletion of: [%s]",
- exchangeLocator.getLocation().toASCIIString()));
- }
- }
- response.setStatus(status);
- response.setContentType("text/plain");
- response.getWriter().write(message.toString());
- }
-
- private void executeImport(HttpBranchExchangeInfo exchangeInfo, HttpServletResponse response) throws Exception {
- IResourceLocator locator = locatorManager.getResourceLocator(exchangeInfo.getPath());
- branchExchangeService.importBranch(locator, exchangeInfo.getOptions(), exchangeInfo.getSelectedBranchIds());
-
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
- response.setContentType("text/plain");
- response.getWriter().write(String.format("Successfully imported: [%s]", exchangeInfo.getPath()));
- }
-
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doGet(req, resp);
- // Get available export files.
- // Get export file metadata for options.
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.branch.management.IBranchExchange; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.data.HttpBranchExchangeInfo; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.IResourceLocator; +import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; +import org.eclipse.osee.framework.resource.management.IResourceManager; +import org.eclipse.osee.framework.resource.management.Options; + +/** + * @author Roberto E. Escobar + */ +public class BranchExchangeServlet extends SecureOseeHttpServlet { + + private static final long serialVersionUID = -1642995618810911260L; + + private final IBranchExchange branchExchangeService; + private final IResourceLocatorManager locatorManager; + private final IResourceManager resourceManager; + + public BranchExchangeServlet(ISessionManager sessionManager, IBranchExchange branchExchangeService, IResourceLocatorManager locatorManager, IResourceManager resourceManager) { + super(sessionManager); + this.branchExchangeService = branchExchangeService; + this.locatorManager = locatorManager; + this.resourceManager = resourceManager; + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse response) throws IOException { + try { + HttpBranchExchangeInfo exchangeInfo = new HttpBranchExchangeInfo(req); + switch (exchangeInfo.getFunction()) { + case exportBranch: + executeExport(exchangeInfo, response); + break; + case importBranch: + executeImport(exchangeInfo, response); + break; + case checkExchange: + executeCheckExchange(exchangeInfo, response); + default: + break; + } + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, String.format("Error processing [%s]", req.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } + response.getWriter().flush(); + response.getWriter().close(); + } + + private void executeCheckExchange(HttpBranchExchangeInfo exchangeInfo, HttpServletResponse response) throws Exception { + int status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + StringBuffer message = new StringBuffer(); + + String path = exchangeInfo.getPath(); + IResourceLocator exchangeLocator = locatorManager.getResourceLocator(path); + IResourceLocator verifyLocator = branchExchangeService.checkIntegrity(exchangeLocator); + status = HttpServletResponse.SC_ACCEPTED; + message.append(String.format("Verification at: [%s]", verifyLocator.getLocation().toASCIIString())); + + response.setStatus(status); + response.setContentType("text/plain"); + response.getWriter().write(message.toString()); + } + + private void executeExport(HttpBranchExchangeInfo exchangeInfo, HttpServletResponse response) throws Exception { + int status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + StringBuffer message = new StringBuffer(); + IResourceLocator exchangeLocator = + branchExchangeService.exportBranch(exchangeInfo.getExchangeFileName(), exchangeInfo.getOptions(), + exchangeInfo.getSelectedBranchIds()); + status = HttpServletResponse.SC_ACCEPTED; + message.append(String.format("Exported: [%s]", exchangeLocator.getLocation().toASCIIString())); + + if (exchangeInfo.isSendExportFile()) { + InputStream exportFileStream = null; + try { + IResource resource = resourceManager.acquire(exchangeLocator, new Options()); + exportFileStream = resource.getContent(); + response.setStatus(HttpServletResponse.SC_OK); + response.setContentLength(exportFileStream.available()); + response.setCharacterEncoding("ISO-8859-1"); + response.setContentType("application/zip"); + response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName()); + Lib.inputStreamToOutputStream(exportFileStream, response.getOutputStream()); + } finally { + if (exportFileStream != null) { + exportFileStream.close(); + } + } + } + + if (exchangeInfo.isDeleteExportFile()) { + int deleteResult = resourceManager.delete(exchangeLocator); + if (deleteResult == IResourceManager.OK) { + status = HttpServletResponse.SC_ACCEPTED; + } else { + status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + message.append(String.format("Error during deletion of: [%s]", + exchangeLocator.getLocation().toASCIIString())); + } + } + response.setStatus(status); + response.setContentType("text/plain"); + response.getWriter().write(message.toString()); + } + + private void executeImport(HttpBranchExchangeInfo exchangeInfo, HttpServletResponse response) throws Exception { + IResourceLocator locator = locatorManager.getResourceLocator(exchangeInfo.getPath()); + branchExchangeService.importBranch(locator, exchangeInfo.getOptions(), exchangeInfo.getSelectedBranchIds()); + + response.setStatus(HttpServletResponse.SC_ACCEPTED); + response.setContentType("text/plain"); + response.getWriter().write(String.format("Successfully imported: [%s]", exchangeInfo.getPath())); + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doGet(req, resp); + // Get available export files. + // Get export file metadata for options. + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchManagerServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchManagerServlet.java index 6455923f7ca..b6abf5742c6 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchManagerServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/BranchManagerServlet.java @@ -1,97 +1,97 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.Function;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.operation.LogProgressMonitor;
-import org.eclipse.osee.framework.core.operation.Operations;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.function.ChangeBranchArchiveStateFunction;
-import org.eclipse.osee.framework.manager.servlet.function.ChangeBranchStateFunction;
-import org.eclipse.osee.framework.manager.servlet.function.ChangeBranchTypeFunction;
-import org.eclipse.osee.framework.manager.servlet.function.ChangeReportFunction;
-import org.eclipse.osee.framework.manager.servlet.function.CreateBranchFunction;
-import org.eclipse.osee.framework.manager.servlet.function.CreateCommitFunction;
-import org.eclipse.osee.framework.manager.servlet.function.PurgeBranchFunction;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Andrew M Finkbeiner
- */
-public class BranchManagerServlet extends SecureOseeHttpServlet {
-
- private static final long serialVersionUID = 226986283540461526L;
-
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public BranchManagerServlet(ISessionManager sessionManager, IOseeBranchService branchService, IDataTranslationService translationService) {
- super(sessionManager);
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- try {
- String rawFunction = req.getParameter("function");
- Function function = Function.fromString(rawFunction);
- IOperation op = null;
- switch (function) {
- case BRANCH_COMMIT:
- op = new CreateCommitFunction(req, resp, branchService, translationService);
- break;
- case CREATE_BRANCH:
- op = new CreateBranchFunction(req, resp, branchService, translationService);
- break;
- case CHANGE_REPORT:
- op = new ChangeReportFunction(req, resp, branchService, translationService);
- break;
- case PURGE_BRANCH:
- op = new PurgeBranchFunction(req, resp, branchService, translationService);
- break;
- case UPDATE_BRANCH_TYPE:
- op = new ChangeBranchTypeFunction(req, resp, branchService, translationService);
- break;
- case UPDATE_BRANCH_STATE:
- op = new ChangeBranchStateFunction(req, resp, branchService, translationService);
- break;
- case UPDATE_ARCHIVE_STATE:
- op = new ChangeBranchArchiveStateFunction(req, resp, branchService, translationService);
- break;
- default:
- throw new UnsupportedOperationException();
- }
- Operations.executeWorkAndCheckStatus(op, new LogProgressMonitor(), -1.0);
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Branch servlet request error: [%s]", req.toString()), ex);
- resp.setStatus(HttpURLConnection.HTTP_INTERNAL_ERROR);
- resp.setContentType("text/plain");
- resp.getWriter().write(Lib.exceptionToString(ex));
- resp.getWriter().flush();
- resp.getWriter().close();
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.Function; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.LogProgressMonitor; +import org.eclipse.osee.framework.core.operation.Operations; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.function.ChangeBranchArchiveStateFunction; +import org.eclipse.osee.framework.manager.servlet.function.ChangeBranchStateFunction; +import org.eclipse.osee.framework.manager.servlet.function.ChangeBranchTypeFunction; +import org.eclipse.osee.framework.manager.servlet.function.ChangeReportFunction; +import org.eclipse.osee.framework.manager.servlet.function.CreateBranchFunction; +import org.eclipse.osee.framework.manager.servlet.function.CreateCommitFunction; +import org.eclipse.osee.framework.manager.servlet.function.PurgeBranchFunction; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Andrew M Finkbeiner + */ +public class BranchManagerServlet extends SecureOseeHttpServlet { + + private static final long serialVersionUID = 226986283540461526L; + + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public BranchManagerServlet(ISessionManager sessionManager, IOseeBranchService branchService, IDataTranslationService translationService) { + super(sessionManager); + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + try { + String rawFunction = req.getParameter("function"); + Function function = Function.fromString(rawFunction); + IOperation op = null; + switch (function) { + case BRANCH_COMMIT: + op = new CreateCommitFunction(req, resp, branchService, translationService); + break; + case CREATE_BRANCH: + op = new CreateBranchFunction(req, resp, branchService, translationService); + break; + case CHANGE_REPORT: + op = new ChangeReportFunction(req, resp, branchService, translationService); + break; + case PURGE_BRANCH: + op = new PurgeBranchFunction(req, resp, branchService, translationService); + break; + case UPDATE_BRANCH_TYPE: + op = new ChangeBranchTypeFunction(req, resp, branchService, translationService); + break; + case UPDATE_BRANCH_STATE: + op = new ChangeBranchStateFunction(req, resp, branchService, translationService); + break; + case UPDATE_ARCHIVE_STATE: + op = new ChangeBranchArchiveStateFunction(req, resp, branchService, translationService); + break; + default: + throw new UnsupportedOperationException(); + } + Operations.executeWorkAndCheckStatus(op, new LogProgressMonitor(), -1.0); + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Branch servlet request error: [%s]", req.toString()), ex); + resp.setStatus(HttpURLConnection.HTTP_INTERNAL_ERROR); + resp.setContentType("text/plain"); + resp.getWriter().write(Lib.exceptionToString(ex)); + resp.getWriter().flush(); + resp.getWriter().close(); + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfo.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfo.java index 8fe952934bd..a2a8aa9dbcf 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfo.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfo.java @@ -1,123 +1,123 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.StringReader;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.io.xml.AbstractSaxHandler;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * @author Roberto E. Escobar
- */
-class ClientInstallInfo {
- private final static String XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
- private final static String EMPTY_STRING = "";
-
- private final String name;
- private String os;
- private boolean isActive;
- private String execPath;
- private String comment;
-
- private ClientInstallInfo(String name) {
- this.name = name;
- this.os = null;
- this.execPath = EMPTY_STRING;
- this.isActive = false;
- this.comment = EMPTY_STRING;
- }
-
- public String getName() {
- return name;
- }
-
- public String getOs() {
- return os;
- }
-
- public String getExecPath() {
- return execPath;
- }
-
- public boolean isActive() {
- return this.isActive;
- }
-
- public String getComment() {
- return comment;
- }
-
- @Override
- public String toString() {
- return String.format("name:[%s] os:[%s] isActive:[%s] comment:[%s] location:[%s]", name, os, isActive, comment,
- execPath);
- }
-
- public static ClientInstallInfo createFromXml(String name, String data) throws OseeCoreException {
- ClientInstallInfo info = new ClientInstallInfo(name);
- try {
- if (!data.startsWith(XML_HEADER)) {
- data = XML_HEADER + data;
- }
- XMLReader reader = XMLReaderFactory.createXMLReader();
- reader.setContentHandler(new Parser(info));
- reader.parse(new InputSource(new StringReader(data)));
- } catch (Exception ex) {
- throw new OseeCoreException(String.format("Error parsing data for client install: [%s]", name), ex);
- }
- return info;
- }
-
- private final static class Parser extends AbstractSaxHandler {
- private final ClientInstallInfo info;
-
- private Parser(ClientInstallInfo info) {
- this.info = info;
- }
-
- @Override
- public void startElementFound(String uri, String localName, String name, Attributes attributes) throws SAXException {
- if (localName.equalsIgnoreCase("install")) {
- info.os = attributes.getValue("os");
- if (info.os != null) {
- info.os = info.os.toLowerCase();
- } else {
- info.os = EMPTY_STRING;
- }
- info.isActive = Boolean.valueOf(attributes.getValue("isActive"));
- }
- }
-
- @Override
- public void endElementFound(String uri, String localName, String name) throws SAXException {
- try {
- if (localName.equalsIgnoreCase("location")) {
- info.execPath = getContents();
- if (info.execPath == null) {
- info.execPath = EMPTY_STRING;
- }
- } else if (localName.equalsIgnoreCase("comment")) {
- info.comment = getContents();
- if (info.comment == null) {
- info.comment = EMPTY_STRING;
- }
- }
- } catch (Exception ex) {
- throw new IllegalStateException(ex);
- }
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.StringReader; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.io.xml.AbstractSaxHandler; +import org.xml.sax.Attributes; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.XMLReader; +import org.xml.sax.helpers.XMLReaderFactory; + +/** + * @author Roberto E. Escobar + */ +class ClientInstallInfo { + private final static String XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; + private final static String EMPTY_STRING = ""; + + private final String name; + private String os; + private boolean isActive; + private String execPath; + private String comment; + + private ClientInstallInfo(String name) { + this.name = name; + this.os = null; + this.execPath = EMPTY_STRING; + this.isActive = false; + this.comment = EMPTY_STRING; + } + + public String getName() { + return name; + } + + public String getOs() { + return os; + } + + public String getExecPath() { + return execPath; + } + + public boolean isActive() { + return this.isActive; + } + + public String getComment() { + return comment; + } + + @Override + public String toString() { + return String.format("name:[%s] os:[%s] isActive:[%s] comment:[%s] location:[%s]", name, os, isActive, comment, + execPath); + } + + public static ClientInstallInfo createFromXml(String name, String data) throws OseeCoreException { + ClientInstallInfo info = new ClientInstallInfo(name); + try { + if (!data.startsWith(XML_HEADER)) { + data = XML_HEADER + data; + } + XMLReader reader = XMLReaderFactory.createXMLReader(); + reader.setContentHandler(new Parser(info)); + reader.parse(new InputSource(new StringReader(data))); + } catch (Exception ex) { + throw new OseeCoreException(String.format("Error parsing data for client install: [%s]", name), ex); + } + return info; + } + + private final static class Parser extends AbstractSaxHandler { + private final ClientInstallInfo info; + + private Parser(ClientInstallInfo info) { + this.info = info; + } + + @Override + public void startElementFound(String uri, String localName, String name, Attributes attributes) throws SAXException { + if (localName.equalsIgnoreCase("install")) { + info.os = attributes.getValue("os"); + if (info.os != null) { + info.os = info.os.toLowerCase(); + } else { + info.os = EMPTY_STRING; + } + info.isActive = Boolean.valueOf(attributes.getValue("isActive")); + } + } + + @Override + public void endElementFound(String uri, String localName, String name) throws SAXException { + try { + if (localName.equalsIgnoreCase("location")) { + info.execPath = getContents(); + if (info.execPath == null) { + info.execPath = EMPTY_STRING; + } + } else if (localName.equalsIgnoreCase("comment")) { + info.comment = getContents(); + if (info.comment == null) { + info.comment = EMPTY_STRING; + } + } + } catch (Exception ex) { + throw new IllegalStateException(ex); + } + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfoServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfoServlet.java index f85f90b6db0..084312fbece 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfoServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ClientInstallInfoServlet.java @@ -1,131 +1,131 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.database.core.ConnectionHandler;
-import org.eclipse.osee.framework.database.core.IOseeStatement;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * Sends a page with links to OSEE client install locations.
- * <p>
- * Client Install information are entries in the OSEE Info Table:
- * <ul>
- * <li><b>osee_key:</b> uniquely identifies this install record <br/>
- * <b>NOTE:</b> must with prefixed with "<b><i>osee.install.</i></b>"</li>
- * <li><b>osee_value:</b> contains client install information
- *
- * <pre>
- * Data for this field is formatted as follows:
- * <client>
- * <install os="Windows" isActive="true" />
- * <comment> This is a shared installation </comment>
- * <location>\\server\\OSEE\\Shared\\osee.exe</location>
- * <client>
- * </pre>
- *
- * </li>
- * </ul>
- * <code>
- * </p>
- *
- * @author Roberto E. Escobar
- */
-public class ClientInstallInfoServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = -4089363221030046759L;
-
- private static final String QUERY = "Select OSEE_KEY, OSEE_VALUE FROM osee_info where OSEE_KEY LIKE ?";
-
- private enum CommandType {
- exec_path;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- try {
- String cmd = request.getParameter("cmd");
- String key = request.getParameter("key");
- boolean isCloseAllowed = Boolean.valueOf(request.getParameter("close"));
- boolean isPromptAllowed = Boolean.valueOf(request.getParameter("prompt"));
- if (Strings.isValid(cmd)) {
- CommandType cmdType = CommandType.valueOf(cmd);
- switch (cmdType) {
- case exec_path:
- if (!Strings.isValid(key)) {
- key = "osee.install.%";
- }
- if (key.startsWith("osee.install.")) {
- List<ClientInstallInfo> infos = getInfoEntry(key);
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentType("text/html");
- if (infos.isEmpty()) {
- response.getWriter().write("<html><body>No installations found</body></html>");
- } else {
- String html = InstallLinkPageGenerator.generate(infos, isCloseAllowed, isPromptAllowed);
- response.getWriter().print(html);
- }
- } else {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- response.getWriter().write("key parameter was invalid. must start with: osee.install.");
- }
- break;
- default:
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- break;
- }
- } else {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- response.getWriter().write(
- String.format("cmd parameter was invalid. use any of the following: %s",
- Arrays.deepToString(CommandType.values())));
- }
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Failed to process client install info request [%s]", request.toString()), ex);
- response.setContentType("text/plain");
- response.getWriter().write(Lib.exceptionToString(ex));
- }
- response.getWriter().flush();
- response.getWriter().close();
- }
-
- private List<ClientInstallInfo> getInfoEntry(String key) throws OseeCoreException {
- List<ClientInstallInfo> infos = new ArrayList<ClientInstallInfo>();
- IOseeStatement chStmt = ConnectionHandler.getStatement();
- try {
- chStmt.runPreparedQuery(QUERY, key);
- while (chStmt.next()) {
- String name = chStmt.getString("osee_key");
- String data = chStmt.getString("osee_value");
- infos.add(ClientInstallInfo.createFromXml(name, data));
- }
- } finally {
- chStmt.close();
- }
- return infos;
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.database.core.ConnectionHandler; +import org.eclipse.osee.framework.database.core.IOseeStatement; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * Sends a page with links to OSEE client install locations. + * <p> + * Client Install information are entries in the OSEE Info Table: + * <ul> + * <li><b>osee_key:</b> uniquely identifies this install record <br/> + * <b>NOTE:</b> must with prefixed with "<b><i>osee.install.</i></b>"</li> + * <li><b>osee_value:</b> contains client install information + * + * <pre> + * Data for this field is formatted as follows: + * <client> + * <install os="Windows" isActive="true" /> + * <comment> This is a shared installation </comment> + * <location>\\server\\OSEE\\Shared\\osee.exe</location> + * <client> + * </pre> + * + * </li> + * </ul> + * <code> + * </p> + * + * @author Roberto E. Escobar + */ +public class ClientInstallInfoServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = -4089363221030046759L; + + private static final String QUERY = "Select OSEE_KEY, OSEE_VALUE FROM osee_info where OSEE_KEY LIKE ?"; + + private enum CommandType { + exec_path; + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + try { + String cmd = request.getParameter("cmd"); + String key = request.getParameter("key"); + boolean isCloseAllowed = Boolean.valueOf(request.getParameter("close")); + boolean isPromptAllowed = Boolean.valueOf(request.getParameter("prompt")); + if (Strings.isValid(cmd)) { + CommandType cmdType = CommandType.valueOf(cmd); + switch (cmdType) { + case exec_path: + if (!Strings.isValid(key)) { + key = "osee.install.%"; + } + if (key.startsWith("osee.install.")) { + List<ClientInstallInfo> infos = getInfoEntry(key); + response.setStatus(HttpServletResponse.SC_OK); + response.setContentType("text/html"); + if (infos.isEmpty()) { + response.getWriter().write("<html><body>No installations found</body></html>"); + } else { + String html = InstallLinkPageGenerator.generate(infos, isCloseAllowed, isPromptAllowed); + response.getWriter().print(html); + } + } else { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.getWriter().write("key parameter was invalid. must start with: osee.install."); + } + break; + default: + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + break; + } + } else { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.getWriter().write( + String.format("cmd parameter was invalid. use any of the following: %s", + Arrays.deepToString(CommandType.values()))); + } + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Failed to process client install info request [%s]", request.toString()), ex); + response.setContentType("text/plain"); + response.getWriter().write(Lib.exceptionToString(ex)); + } + response.getWriter().flush(); + response.getWriter().close(); + } + + private List<ClientInstallInfo> getInfoEntry(String key) throws OseeCoreException { + List<ClientInstallInfo> infos = new ArrayList<ClientInstallInfo>(); + IOseeStatement chStmt = ConnectionHandler.getStatement(); + try { + chStmt.runPreparedQuery(QUERY, key); + while (chStmt.next()) { + String name = chStmt.getString("osee_key"); + String data = chStmt.getString("osee_value"); + infos.add(ClientInstallInfo.createFromXml(name, data)); + } + } finally { + chStmt.close(); + } + return infos; + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ConfigurationServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ConfigurationServlet.java index 057b73a3493..99d611da5db 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ConfigurationServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ConfigurationServlet.java @@ -1,127 +1,127 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.BufferedInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.net.HttpURLConnection;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.datastore.DatastoreInitOperation;
-import org.eclipse.osee.framework.core.datastore.IOseeSchemaProvider;
-import org.eclipse.osee.framework.core.datastore.IOseeSchemaResource;
-import org.eclipse.osee.framework.core.datastore.OseeSchemaProvider;
-import org.eclipse.osee.framework.core.datastore.SchemaCreationOptions;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.DatastoreInitRequest;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.operation.LogProgressMonitor;
-import org.eclipse.osee.framework.core.operation.Operations;
-import org.eclipse.osee.framework.core.server.IApplicationServerManager;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.database.IOseeDatabaseService;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ConfigurationServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = -5421308349950133041L;
-
- private final IDataTranslationService translationService;
- private final IOseeDatabaseService databaseService;
- private final IOseeBranchService branchService;
- private final IApplicationServerManager appServerService;
-
- public ConfigurationServlet(IApplicationServerManager appServerService, IDataTranslationService translationService, IOseeDatabaseService databaseService, IOseeBranchService branchService) {
- this.translationService = translationService;
- this.databaseService = databaseService;
- this.branchService = branchService;
- this.appServerService = appServerService;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String servletPath = request.getServletPath();
- String urlPath = request.getRequestURI().replace(servletPath, "");
- if (urlPath.startsWith("/datastore/schema")) {
- StringWriter writer = new StringWriter();
- IOseeSchemaProvider schemaProvider = new OseeSchemaProvider();
- for (IOseeSchemaResource resource : schemaProvider.getSchemaResources()) {
- InputStream inputStream = null;
- try {
- inputStream = new BufferedInputStream(resource.getContent());
- writer.write(Lib.inputStreamToString(inputStream));
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- } finally {
- Lib.close(inputStream);
- }
- }
- sendMessage(response, HttpURLConnection.HTTP_OK, writer.toString(), null);
- } else {
- String message = String.format("[%s] not found", request.getRequestURI());
- sendMessage(response, HttpURLConnection.HTTP_NOT_FOUND, message, null);
- }
- }
-
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String servletPath = request.getServletPath();
- String urlPath = request.getRequestURI().replace(servletPath, "");
- if (urlPath.startsWith("/datastore/initialize")) {
- try {
- SchemaCreationOptions options = getInitOptions(request);
- IOseeSchemaProvider schemaProvider = new OseeSchemaProvider();
- IOperation operation =
- new DatastoreInitOperation(appServerService, databaseService, branchService, schemaProvider,
- options);
- Operations.executeWorkAndCheckStatus(operation, new LogProgressMonitor(), -1.0);
- } catch (Exception ex) {
- String message = String.format("Datastore Initialization: [%s]\n%s", response.toString(), ex.toString());
- sendMessage(response, HttpURLConnection.HTTP_INTERNAL_ERROR, message, ex);
- }
- } else {
- String message = String.format("[%s] not found", request.getRequestURI());
- sendMessage(response, HttpURLConnection.HTTP_NOT_FOUND, message, null);
- }
- }
-
- private SchemaCreationOptions getInitOptions(HttpServletRequest request) throws Exception {
- DatastoreInitRequest data =
- translationService.convert(request.getInputStream(), CoreTranslatorId.OSEE_DATASTORE_INIT_REQUEST);
-
- SchemaCreationOptions options =
- new SchemaCreationOptions(data.getTableDataSpace(), data.getIndexDataSpace(),
- data.isUseFileSpecifiedSchemas());
- return options;
- }
-
- private void sendMessage(HttpServletResponse response, int status, String message, Throwable ex) throws IOException {
- if (ex != null) {
- OseeLog.log(Activator.class, Level.SEVERE, message, ex);
- }
- response.setStatus(status);
- response.setContentType("text/plain");
- response.getWriter().write(message);
- response.getWriter().flush();
- response.getWriter().close();
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; +import java.net.HttpURLConnection; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.datastore.DatastoreInitOperation; +import org.eclipse.osee.framework.core.datastore.IOseeSchemaProvider; +import org.eclipse.osee.framework.core.datastore.IOseeSchemaResource; +import org.eclipse.osee.framework.core.datastore.OseeSchemaProvider; +import org.eclipse.osee.framework.core.datastore.SchemaCreationOptions; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.DatastoreInitRequest; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.LogProgressMonitor; +import org.eclipse.osee.framework.core.operation.Operations; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Roberto E. Escobar + */ +public class ConfigurationServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = -5421308349950133041L; + + private final IDataTranslationService translationService; + private final IOseeDatabaseService databaseService; + private final IOseeBranchService branchService; + private final IApplicationServerManager appServerService; + + public ConfigurationServlet(IApplicationServerManager appServerService, IDataTranslationService translationService, IOseeDatabaseService databaseService, IOseeBranchService branchService) { + this.translationService = translationService; + this.databaseService = databaseService; + this.branchService = branchService; + this.appServerService = appServerService; + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String servletPath = request.getServletPath(); + String urlPath = request.getRequestURI().replace(servletPath, ""); + if (urlPath.startsWith("/datastore/schema")) { + StringWriter writer = new StringWriter(); + IOseeSchemaProvider schemaProvider = new OseeSchemaProvider(); + for (IOseeSchemaResource resource : schemaProvider.getSchemaResources()) { + InputStream inputStream = null; + try { + inputStream = new BufferedInputStream(resource.getContent()); + writer.write(Lib.inputStreamToString(inputStream)); + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } finally { + Lib.close(inputStream); + } + } + sendMessage(response, HttpURLConnection.HTTP_OK, writer.toString(), null); + } else { + String message = String.format("[%s] not found", request.getRequestURI()); + sendMessage(response, HttpURLConnection.HTTP_NOT_FOUND, message, null); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String servletPath = request.getServletPath(); + String urlPath = request.getRequestURI().replace(servletPath, ""); + if (urlPath.startsWith("/datastore/initialize")) { + try { + SchemaCreationOptions options = getInitOptions(request); + IOseeSchemaProvider schemaProvider = new OseeSchemaProvider(); + IOperation operation = + new DatastoreInitOperation(appServerService, databaseService, branchService, schemaProvider, + options); + Operations.executeWorkAndCheckStatus(operation, new LogProgressMonitor(), -1.0); + } catch (Exception ex) { + String message = String.format("Datastore Initialization: [%s]\n%s", response.toString(), ex.toString()); + sendMessage(response, HttpURLConnection.HTTP_INTERNAL_ERROR, message, ex); + } + } else { + String message = String.format("[%s] not found", request.getRequestURI()); + sendMessage(response, HttpURLConnection.HTTP_NOT_FOUND, message, null); + } + } + + private SchemaCreationOptions getInitOptions(HttpServletRequest request) throws Exception { + DatastoreInitRequest data = + translationService.convert(request.getInputStream(), CoreTranslatorId.OSEE_DATASTORE_INIT_REQUEST); + + SchemaCreationOptions options = + new SchemaCreationOptions(data.getTableDataSpace(), data.getIndexDataSpace(), + data.isUseFileSpecifiedSchemas()); + return options; + } + + private void sendMessage(HttpServletResponse response, int status, String message, Throwable ex) throws IOException { + if (ex != null) { + OseeLog.log(Activator.class, Level.SEVERE, message, ex); + } + response.setStatus(status); + response.setContentType("text/plain"); + response.getWriter().write(message); + response.getWriter().flush(); + response.getWriter().close(); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/DataServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/DataServlet.java index 9127857377e..5faba1611bc 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/DataServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/DataServlet.java @@ -8,94 +8,94 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.manager.servlet;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeNotFoundException;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.core.util.Conditions;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.ArtifactUtil;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-
-public class DataServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = -1399699606153734250L;
-
- private final IResourceLocatorManager locatorManager;
- private final IResourceManager resourceManager;
-
- public DataServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
- super();
- this.locatorManager = locatorManager;
- this.resourceManager = resourceManager;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- String urlRequest = request.getRequestURI();
- try {
- handleUriRequest(locatorManager, resourceManager, urlRequest, response);
- } catch (OseeCoreException ex) {
- handleError(response, HttpURLConnection.HTTP_INTERNAL_ERROR, "", ex);
- }
- }
-
- private void handleError(HttpServletResponse response, int status, String message, Throwable ex) throws IOException {
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE, message, ex);
- response.sendError(status, Lib.exceptionToString(ex));
- }
-
- public static void handleUriRequest(IResourceLocatorManager locatorManager, IResourceManager resourceManager, String urlRequest, HttpServletResponse response) throws OseeCoreException {
- UrlParser parser = new UrlParser();
- parser.parse(urlRequest);
- String branchGuid = parser.getAttribute("branch");
- String artifactGuid = parser.getAttribute("artifact");
- String uri = ArtifactUtil.getUriByGuids(branchGuid, artifactGuid);
- ArtifactFileServlet.handleArtifactUri(locatorManager, resourceManager, urlRequest, uri, response);
- }
-
- private static final class UrlParser {
- private final List<String> contexts;
-
- public UrlParser() {
- this.contexts = new ArrayList<String>();
- }
-
- public void parse(String urlPath) {
- contexts.clear();
- if (Strings.isValid(urlPath)) {
- String[] items = urlPath.split("/");
- for (String item : items) {
- contexts.add(item);
- }
- }
- }
-
- public String getAttribute(String key) throws OseeCoreException {
- Conditions.checkNotNull(key, "attribute");
- int contextCount = contexts.size();
- for (int index = 0; index < contextCount; index++) {
- String context = contexts.get(index);
- if (context.equals(key)) {
- if (index + 1 < contextCount) {
- return contexts.get(index + 1);
- }
- }
- }
- throw new OseeNotFoundException(String.format("Unable to find [%s]", key));
- }
- }
-}
+package org.eclipse.osee.framework.manager.servlet; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeNotFoundException; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.core.util.Conditions; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.data.ArtifactUtil; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; +import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; +import org.eclipse.osee.framework.resource.management.IResourceManager; + +public class DataServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = -1399699606153734250L; + + private final IResourceLocatorManager locatorManager; + private final IResourceManager resourceManager; + + public DataServlet(IResourceLocatorManager locatorManager, IResourceManager resourceManager) { + super(); + this.locatorManager = locatorManager; + this.resourceManager = resourceManager; + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + String urlRequest = request.getRequestURI(); + try { + handleUriRequest(locatorManager, resourceManager, urlRequest, response); + } catch (OseeCoreException ex) { + handleError(response, HttpURLConnection.HTTP_INTERNAL_ERROR, "", ex); + } + } + + private void handleError(HttpServletResponse response, int status, String message, Throwable ex) throws IOException { + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, message, ex); + response.sendError(status, Lib.exceptionToString(ex)); + } + + public static void handleUriRequest(IResourceLocatorManager locatorManager, IResourceManager resourceManager, String urlRequest, HttpServletResponse response) throws OseeCoreException { + UrlParser parser = new UrlParser(); + parser.parse(urlRequest); + String branchGuid = parser.getAttribute("branch"); + String artifactGuid = parser.getAttribute("artifact"); + String uri = ArtifactUtil.getUriByGuids(branchGuid, artifactGuid); + ArtifactFileServlet.handleArtifactUri(locatorManager, resourceManager, urlRequest, uri, response); + } + + private static final class UrlParser { + private final List<String> contexts; + + public UrlParser() { + this.contexts = new ArrayList<String>(); + } + + public void parse(String urlPath) { + contexts.clear(); + if (Strings.isValid(urlPath)) { + String[] items = urlPath.split("/"); + for (String item : items) { + contexts.add(item); + } + } + } + + public String getAttribute(String key) throws OseeCoreException { + Conditions.checkNotNull(key, "attribute"); + int contextCount = contexts.size(); + for (int index = 0; index < contextCount; index++) { + String context = contexts.get(index); + if (context.equals(key)) { + if (index + 1 < contextCount) { + return contexts.get(index + 1); + } + } + } + throw new OseeNotFoundException(String.format("Unable to find [%s]", key)); + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/InstallLinkPageGenerator.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/InstallLinkPageGenerator.java index 8a8b18b44d2..aa709a1a7d9 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/InstallLinkPageGenerator.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/InstallLinkPageGenerator.java @@ -1,148 +1,148 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.util.List;
-
-/**
- * @author Roberto E. Escobar
- */
-public class InstallLinkPageGenerator {
-
- private static final String HTML_HEADER =
- "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html14/loose.dtd\">\n";
-
- private static final String CSS_SHEET =
- "<style type=\"text/css\"> table.oseeTable { border-width: 1px 1px 1px 1px; border-spacing: 2px; border-style: solid solid solid solid; border-color: blue blue blue blue; border-collapse: separate; background-color: rgb(255, 250, 250); } " + " table.oseeTable th { border-width: 1px 1px 1px 1px; padding: 4px 4px 4px 4px; border-style: solid solid solid solid; border-color: black black black black; background-color: white; -moz-border-radius: 0px 0px 0px 0px; } " + " table.oseeTable td { border-width: 1px 1px 1px 1px; padding: 4px 4px 4px 4px; border-style: solid solid solid solid; border-color: black black black black; background-color: white; -moz-border-radius: 0px 0px 0px 0px; } </style>\n";
-
- private static final String MULTI_LINK_TEMPLATE =
- HTML_HEADER + "<html>\n<head>\n" + CSS_SHEET + "%s</head>\n<body onload=\"initialize()\">\n%s</body>\n</html>";
- private static final String LAUNCH_PAGE_TEMPLATE =
- HTML_HEADER + "<html>\n<head>\n" + CSS_SHEET + "%s</head>\n<body onload=\"initialize()\">\n<div id='xmsg'/>\n</body>\n</html>";
-
- private static final String LAUNCH_ERROR_MESSAGE =
- "Please use Internet Explorer. Your browser does not support this operation.";
-
- private static final String LINK_ERROR_MESSAGE = "Links below will not work unless you use Internet Explorer.";
-
- private static final String JS_CHECK =
- "if (document.implementation && document.implementation.createDocument) {\nalert('%s');\n return;}\n";
-
- private InstallLinkPageGenerator() {
- }
-
- private static String normalizePath(String path) {
- StringBuilder pathBuilder = new StringBuilder();
- boolean wasLastPathSeparator = false;
- for (int charIndex = 0; charIndex < path.length(); charIndex++) {
- char charVal = path.charAt(charIndex);
- if (charVal == '\\' && !wasLastPathSeparator) {
- if (charIndex + 1 < path.length()) {
- if (path.charAt(charIndex + 1) != '\\') {
- pathBuilder.append('\\');
- }
- } else {
- pathBuilder.append('\\');
- }
- wasLastPathSeparator = true;
- } else {
- wasLastPathSeparator = false;
- }
- pathBuilder.append(charVal);
- }
- return pathBuilder.toString();
- }
-
- private static String getOpenScript(ClientInstallInfo info, boolean isCloseAllowed, boolean isPromptAllowed) {
- StringBuilder builder = new StringBuilder();
- builder.append("<script type=\"text/javascript\">\n");
- builder.append("function initialize()\n{\n");
- builder.append(String.format(JS_CHECK, LAUNCH_ERROR_MESSAGE));
- String path = info.getExecPath();
- if (info.getOs().contains("win") && info.isActive()) {
- String execName = null;
- String execPath = "";
- int index = path.lastIndexOf("\\");
- if (index > -1) {
- execName = path.substring(index + 1, path.length());
- execPath = normalizePath(path.substring(0, index));
- } else {
- execName = path;
- execPath = "";
- }
- builder.append("var v = new ActiveXObject(\"Shell.Application\");\n");
- builder.append(String.format("v.ShellExecute(\"%s\",\"\",\"%s\", \"open\", 10);\n", execName, execPath));
- if (!isPromptAllowed) {
- builder.append("window.opener=\"self\";\n");
- }
- if (isCloseAllowed) {
- builder.append("window.close();\n");
- }
- builder.append("}\n");
- } else {
- // INVALID LINK PAGE
- builder.append(String.format(
- "var ex=\"No valid link found. Contact your OSEE administrator. Key was: [%s]\";", info.getName()));
- builder.append("document.getElementById('xmsg').innerHTML=ex;");
- builder.append("}\n");
- }
- builder.append("</script>\n");
- return builder.toString();
- }
-
- private static String getCheckScript() {
- StringBuilder builder = new StringBuilder();
- builder.append("<script type=\"text/javascript\">\n");
- builder.append("function initialize()\n{\n");
- builder.append(String.format(JS_CHECK, LINK_ERROR_MESSAGE));
- builder.append("}\n</script>\n");
- return builder.toString();
- }
-
- private static String getLinkTable(List<ClientInstallInfo> infos) {
- StringBuilder builder = new StringBuilder();
- builder.append("<h3>OSEE Client Installs</h3>");
- builder.append("<p>Click on the <i>Active</i> install names to launch OSEE.</p>");
- builder.append("<table class=\"oseeTable\" width=\"95%\">");
- builder.append("<tr style=\"background:gray\" ><th>Name</th> <th>Comment</th><th>Status</th>");
- for (ClientInstallInfo info : infos) {
- builder.append("<tr>");
- if (info.isActive()) {
- String path = info.getExecPath();
- builder.append("<td>");
- builder.append(String.format("<a href=\"%s\"> %s</a>",
- path.startsWith("file://") ? path : "file://" + path,
- info.getName().replaceAll("osee.install", "").toUpperCase().replaceAll("\\.", " ")));
- builder.append("</td>");
- builder.append(String.format("<td>%s</td>", info.getComment()));
- builder.append("<td>Active</td>");
- } else {
- builder.append(String.format("<td>%s</td>",
- info.getName().replaceAll("osee.install", "").toUpperCase().replaceAll("\\.", " ")));
- builder.append(String.format("<td>%s</td>", info.getComment()));
- builder.append("<td>In Active</td>");
- }
- builder.append("</tr>");
- }
- builder.append("</table>");
- return builder.toString();
- }
-
- public static String generate(List<ClientInstallInfo> infos, boolean isCloseAllowed, boolean isPromptAllowed) {
- String toReturn = null;
- if (infos.size() == 1) {
- toReturn = String.format(LAUNCH_PAGE_TEMPLATE, getOpenScript(infos.get(0), isCloseAllowed, isPromptAllowed));
- } else {
- toReturn = String.format(MULTI_LINK_TEMPLATE, getCheckScript(), getLinkTable(infos));
- }
- return toReturn;
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.util.List; + +/** + * @author Roberto E. Escobar + */ +public class InstallLinkPageGenerator { + + private static final String HTML_HEADER = + "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html14/loose.dtd\">\n"; + + private static final String CSS_SHEET = + "<style type=\"text/css\"> table.oseeTable { border-width: 1px 1px 1px 1px; border-spacing: 2px; border-style: solid solid solid solid; border-color: blue blue blue blue; border-collapse: separate; background-color: rgb(255, 250, 250); } " + " table.oseeTable th { border-width: 1px 1px 1px 1px; padding: 4px 4px 4px 4px; border-style: solid solid solid solid; border-color: black black black black; background-color: white; -moz-border-radius: 0px 0px 0px 0px; } " + " table.oseeTable td { border-width: 1px 1px 1px 1px; padding: 4px 4px 4px 4px; border-style: solid solid solid solid; border-color: black black black black; background-color: white; -moz-border-radius: 0px 0px 0px 0px; } </style>\n"; + + private static final String MULTI_LINK_TEMPLATE = + HTML_HEADER + "<html>\n<head>\n" + CSS_SHEET + "%s</head>\n<body onload=\"initialize()\">\n%s</body>\n</html>"; + private static final String LAUNCH_PAGE_TEMPLATE = + HTML_HEADER + "<html>\n<head>\n" + CSS_SHEET + "%s</head>\n<body onload=\"initialize()\">\n<div id='xmsg'/>\n</body>\n</html>"; + + private static final String LAUNCH_ERROR_MESSAGE = + "Please use Internet Explorer. Your browser does not support this operation."; + + private static final String LINK_ERROR_MESSAGE = "Links below will not work unless you use Internet Explorer."; + + private static final String JS_CHECK = + "if (document.implementation && document.implementation.createDocument) {\nalert('%s');\n return;}\n"; + + private InstallLinkPageGenerator() { + } + + private static String normalizePath(String path) { + StringBuilder pathBuilder = new StringBuilder(); + boolean wasLastPathSeparator = false; + for (int charIndex = 0; charIndex < path.length(); charIndex++) { + char charVal = path.charAt(charIndex); + if (charVal == '\\' && !wasLastPathSeparator) { + if (charIndex + 1 < path.length()) { + if (path.charAt(charIndex + 1) != '\\') { + pathBuilder.append('\\'); + } + } else { + pathBuilder.append('\\'); + } + wasLastPathSeparator = true; + } else { + wasLastPathSeparator = false; + } + pathBuilder.append(charVal); + } + return pathBuilder.toString(); + } + + private static String getOpenScript(ClientInstallInfo info, boolean isCloseAllowed, boolean isPromptAllowed) { + StringBuilder builder = new StringBuilder(); + builder.append("<script type=\"text/javascript\">\n"); + builder.append("function initialize()\n{\n"); + builder.append(String.format(JS_CHECK, LAUNCH_ERROR_MESSAGE)); + String path = info.getExecPath(); + if (info.getOs().contains("win") && info.isActive()) { + String execName = null; + String execPath = ""; + int index = path.lastIndexOf("\\"); + if (index > -1) { + execName = path.substring(index + 1, path.length()); + execPath = normalizePath(path.substring(0, index)); + } else { + execName = path; + execPath = ""; + } + builder.append("var v = new ActiveXObject(\"Shell.Application\");\n"); + builder.append(String.format("v.ShellExecute(\"%s\",\"\",\"%s\", \"open\", 10);\n", execName, execPath)); + if (!isPromptAllowed) { + builder.append("window.opener=\"self\";\n"); + } + if (isCloseAllowed) { + builder.append("window.close();\n"); + } + builder.append("}\n"); + } else { + // INVALID LINK PAGE + builder.append(String.format( + "var ex=\"No valid link found. Contact your OSEE administrator. Key was: [%s]\";", info.getName())); + builder.append("document.getElementById('xmsg').innerHTML=ex;"); + builder.append("}\n"); + } + builder.append("</script>\n"); + return builder.toString(); + } + + private static String getCheckScript() { + StringBuilder builder = new StringBuilder(); + builder.append("<script type=\"text/javascript\">\n"); + builder.append("function initialize()\n{\n"); + builder.append(String.format(JS_CHECK, LINK_ERROR_MESSAGE)); + builder.append("}\n</script>\n"); + return builder.toString(); + } + + private static String getLinkTable(List<ClientInstallInfo> infos) { + StringBuilder builder = new StringBuilder(); + builder.append("<h3>OSEE Client Installs</h3>"); + builder.append("<p>Click on the <i>Active</i> install names to launch OSEE.</p>"); + builder.append("<table class=\"oseeTable\" width=\"95%\">"); + builder.append("<tr style=\"background:gray\" ><th>Name</th> <th>Comment</th><th>Status</th>"); + for (ClientInstallInfo info : infos) { + builder.append("<tr>"); + if (info.isActive()) { + String path = info.getExecPath(); + builder.append("<td>"); + builder.append(String.format("<a href=\"%s\"> %s</a>", + path.startsWith("file://") ? path : "file://" + path, + info.getName().replaceAll("osee.install", "").toUpperCase().replaceAll("\\.", " "))); + builder.append("</td>"); + builder.append(String.format("<td>%s</td>", info.getComment())); + builder.append("<td>Active</td>"); + } else { + builder.append(String.format("<td>%s</td>", + info.getName().replaceAll("osee.install", "").toUpperCase().replaceAll("\\.", " "))); + builder.append(String.format("<td>%s</td>", info.getComment())); + builder.append("<td>In Active</td>"); + } + builder.append("</tr>"); + } + builder.append("</table>"); + return builder.toString(); + } + + public static String generate(List<ClientInstallInfo> infos, boolean isCloseAllowed, boolean isPromptAllowed) { + String toReturn = null; + if (infos.size() == 1) { + toReturn = String.format(LAUNCH_PAGE_TEMPLATE, getOpenScript(infos.get(0), isCloseAllowed, isPromptAllowed)); + } else { + toReturn = String.format(MULTI_LINK_TEMPLATE, getCheckScript(), getLinkTable(infos)); + } + return toReturn; + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ModCompatible.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ModCompatible.java index 472749e8c1c..ba8469f76c5 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ModCompatible.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ModCompatible.java @@ -8,91 +8,91 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.manager.servlet;
-
-import org.eclipse.osee.framework.core.enums.StorageState;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.message.ArtifactTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.ArtifactTypeCacheUpdateResponse.ArtifactTypeRow;
-import org.eclipse.osee.framework.core.message.AttributeTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.BranchCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.BranchRow;
-import org.eclipse.osee.framework.core.message.OseeEnumTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.RelationTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.RelationTypeCacheUpdateResponse.RelationTypeRow;
-import org.eclipse.osee.framework.core.model.type.AttributeType;
-import org.eclipse.osee.framework.core.server.ISession;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-
-public final class ModCompatible {
-
- private ModCompatible() {
-
- }
-
- public static boolean is_0_9_2_Compatible(String clientVersion) {
- boolean result = false;
- if (Strings.isValid(clientVersion)) {
- String toCheck = clientVersion.toLowerCase();
- if (!toCheck.startsWith("0.9.0") && !toCheck.startsWith("0.9.1")) {
- result = true;
- }
- }
- return result;
- }
-
- public static String getClientVersion(ISessionManager manager, String sessionId) throws OseeCoreException {
- String clientVersion = null;
- if (Strings.isValid(sessionId)) {
- ISession session = manager.getSessionById(sessionId);
- if (session != null) {
- clientVersion = session.getClientVersion();
- }
- }
- return clientVersion;
- }
-
- private static StorageState getCompatibleState(StorageState state) {
- StorageState toReturn = state;
- if (state == StorageState.PURGED) {
- toReturn = StorageState.DELETED;
- } else if (state == StorageState.LOADED) {
- toReturn = StorageState.MODIFIED;
- }
- return toReturn;
- }
-
- public static void makeSendCompatible(boolean isCompatible, Object response) {
- if (!isCompatible) {
- if (response instanceof BranchCacheUpdateResponse) {
- BranchCacheUpdateResponse data = (BranchCacheUpdateResponse) response;
- for (BranchRow row : data.getBranchRows()) {
- row.setStorageState(getCompatibleState(row.getStorageState()));
- }
- } else if (response instanceof ArtifactTypeCacheUpdateResponse) {
- ArtifactTypeCacheUpdateResponse data = (ArtifactTypeCacheUpdateResponse) response;
- for (ArtifactTypeRow row : data.getArtTypeRows()) {
- row.setStorageState(getCompatibleState(row.getStorageState()));
- }
-
- } else if (response instanceof AttributeTypeCacheUpdateResponse) {
- AttributeTypeCacheUpdateResponse data = (AttributeTypeCacheUpdateResponse) response;
- for (AttributeType row : data.getAttrTypeRows()) {
- row.setStorageState(getCompatibleState(row.getStorageState()));
- }
- } else if (response instanceof RelationTypeCacheUpdateResponse) {
- RelationTypeCacheUpdateResponse data = (RelationTypeCacheUpdateResponse) response;
- for (RelationTypeRow row : data.getRelationTypeRows()) {
- row.setStorageState(getCompatibleState(row.getStorageState()));
- }
-
- } else if (response instanceof OseeEnumTypeCacheUpdateResponse) {
- OseeEnumTypeCacheUpdateResponse data = (OseeEnumTypeCacheUpdateResponse) response;
- for (String[] types : data.getEnumTypeRows()) {
- types[1] = getCompatibleState(StorageState.valueOf(types[1])).name();
- }
- }
- }
- }
-}
+package org.eclipse.osee.framework.manager.servlet; + +import org.eclipse.osee.framework.core.enums.StorageState; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.message.ArtifactTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.ArtifactTypeCacheUpdateResponse.ArtifactTypeRow; +import org.eclipse.osee.framework.core.message.AttributeTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.BranchCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.BranchRow; +import org.eclipse.osee.framework.core.message.OseeEnumTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.RelationTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.RelationTypeCacheUpdateResponse.RelationTypeRow; +import org.eclipse.osee.framework.core.model.type.AttributeType; +import org.eclipse.osee.framework.core.server.ISession; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.jdk.core.util.Strings; + +public final class ModCompatible { + + private ModCompatible() { + + } + + public static boolean is_0_9_2_Compatible(String clientVersion) { + boolean result = false; + if (Strings.isValid(clientVersion)) { + String toCheck = clientVersion.toLowerCase(); + if (!toCheck.startsWith("0.9.0") && !toCheck.startsWith("0.9.1")) { + result = true; + } + } + return result; + } + + public static String getClientVersion(ISessionManager manager, String sessionId) throws OseeCoreException { + String clientVersion = null; + if (Strings.isValid(sessionId)) { + ISession session = manager.getSessionById(sessionId); + if (session != null) { + clientVersion = session.getClientVersion(); + } + } + return clientVersion; + } + + private static StorageState getCompatibleState(StorageState state) { + StorageState toReturn = state; + if (state == StorageState.PURGED) { + toReturn = StorageState.DELETED; + } else if (state == StorageState.LOADED) { + toReturn = StorageState.MODIFIED; + } + return toReturn; + } + + public static void makeSendCompatible(boolean isCompatible, Object response) { + if (!isCompatible) { + if (response instanceof BranchCacheUpdateResponse) { + BranchCacheUpdateResponse data = (BranchCacheUpdateResponse) response; + for (BranchRow row : data.getBranchRows()) { + row.setStorageState(getCompatibleState(row.getStorageState())); + } + } else if (response instanceof ArtifactTypeCacheUpdateResponse) { + ArtifactTypeCacheUpdateResponse data = (ArtifactTypeCacheUpdateResponse) response; + for (ArtifactTypeRow row : data.getArtTypeRows()) { + row.setStorageState(getCompatibleState(row.getStorageState())); + } + + } else if (response instanceof AttributeTypeCacheUpdateResponse) { + AttributeTypeCacheUpdateResponse data = (AttributeTypeCacheUpdateResponse) response; + for (AttributeType row : data.getAttrTypeRows()) { + row.setStorageState(getCompatibleState(row.getStorageState())); + } + } else if (response instanceof RelationTypeCacheUpdateResponse) { + RelationTypeCacheUpdateResponse data = (RelationTypeCacheUpdateResponse) response; + for (RelationTypeRow row : data.getRelationTypeRows()) { + row.setStorageState(getCompatibleState(row.getStorageState())); + } + + } else if (response instanceof OseeEnumTypeCacheUpdateResponse) { + OseeEnumTypeCacheUpdateResponse data = (OseeEnumTypeCacheUpdateResponse) response; + for (String[] types : data.getEnumTypeRows()) { + types[1] = getCompatibleState(StorageState.valueOf(types[1])).name(); + } + } + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeCacheServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeCacheServlet.java index 36956a16c96..27daf38df34 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeCacheServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeCacheServlet.java @@ -1,253 +1,253 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.enums.CacheOperation;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.enums.OseeCacheEnum;
-import org.eclipse.osee.framework.core.enums.StorageState;
-import org.eclipse.osee.framework.core.exception.OseeArgumentException;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
-import org.eclipse.osee.framework.core.message.ArtifactTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.AttributeTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.BranchCacheStoreRequest;
-import org.eclipse.osee.framework.core.message.BranchCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.BranchCacheUpdateUtil;
-import org.eclipse.osee.framework.core.message.CacheUpdateRequest;
-import org.eclipse.osee.framework.core.message.OseeEnumTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.RelationTypeCacheUpdateResponse;
-import org.eclipse.osee.framework.core.message.TransactionCacheUpdateResponse;
-import org.eclipse.osee.framework.core.model.Branch;
-import org.eclipse.osee.framework.core.model.TransactionRecord;
-import org.eclipse.osee.framework.core.model.cache.BranchCache;
-import org.eclipse.osee.framework.core.model.cache.TransactionCache;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.core.services.IOseeCachingService;
-import org.eclipse.osee.framework.core.services.IOseeModelFactoryService;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.core.translation.ITranslatorId;
-import org.eclipse.osee.framework.core.util.Conditions;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class OseeCacheServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = 6693534844874109524L;
- private final IDataTranslationService translationService;
- private final IOseeCachingService cachingService;
- private final IOseeModelFactoryService factoryService;
- private final ISessionManager sessionManager;
-
- public OseeCacheServlet(ISessionManager sessionManager, IDataTranslationService translationService, IOseeCachingService cachingService, IOseeModelFactoryService factoryService) {
- super();
- this.sessionManager = sessionManager;
- this.translationService = translationService;
- this.cachingService = cachingService;
- this.factoryService = factoryService;
- }
-
- public IDataTranslationService getTranslationService() {
- return translationService;
- }
-
- public IOseeCachingService getCachingService() {
- return cachingService;
- }
-
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
- OseeCacheEnum cacheId = OseeCacheEnum.valueOf(req.getParameter("cacheId"));
- try {
- IOseeCachingService caching = getCachingService();
- IDataTranslationService service = getTranslationService();
- Pair<Object, ITranslatorId> pair = createResponse(true, new CacheUpdateRequest(cacheId), caching);
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/xml");
- resp.setCharacterEncoding("UTF-8");
- InputStream inputStream = service.convertToStream(pair.getFirst(), pair.getSecond());
- OutputStream outputStream = resp.getOutputStream();
- Lib.inputStreamToOutputStream(inputStream, outputStream);
- } catch (Exception ex) {
- OseeLog.log(getClass(), Level.SEVERE, ex);
- }
- }
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
- try {
- String sessionId = req.getParameter("sessionId");
- String clientVersion = ModCompatible.getClientVersion(sessionManager, sessionId);
- boolean isCompatible = ModCompatible.is_0_9_2_Compatible(clientVersion);
-
- CacheOperation operation = CacheOperation.fromString(req.getParameter("function"));
- switch (operation) {
- case UPDATE:
- sendUpdates(isCompatible, req, resp);
- break;
- case STORE:
- storeUpdates(isCompatible, req, resp);
- break;
- default:
- throw new UnsupportedOperationException();
- }
- } catch (Exception ex) {
- handleError(resp, req.toString(), ex);
- }
- }
-
- private void handleError(HttpServletResponse resp, String request, Throwable th) throws IOException {
- OseeLog.log(Activator.class, Level.SEVERE, String.format("Osee Cache request error: [%s]", request), th);
- resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- resp.setContentType("text/plain");
- resp.getWriter().write(Lib.exceptionToString(th));
- resp.getWriter().flush();
- resp.getWriter().close();
- }
-
- private void storeUpdates(boolean isCompatible, HttpServletRequest req, HttpServletResponse resp) throws OseeCoreException {
- IDataTranslationService service = getTranslationService();
- IOseeCachingService caching = getCachingService();
- TransactionCache txCache = caching.getTransactionCache();
-
- BranchCacheStoreRequest updateRequest = null;
- InputStream inputStream = null;
- try {
- inputStream = req.getInputStream();
- updateRequest = service.convert(inputStream, CoreTranslatorId.BRANCH_CACHE_STORE_REQUEST);
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- } finally {
- Lib.close(inputStream);
- }
- Collection<Branch> updated =
- new BranchCacheUpdateUtil(factoryService.getBranchFactory(), txCache).updateCache(updateRequest,
- caching.getBranchCache());
-
- BranchCache cache = caching.getBranchCache();
- if (updateRequest.isServerUpdateMessage()) {
- for (Branch branch : updated) {
- if (StorageState.CREATED == branch.getStorageState()) {
- branch.setStorageState(StorageState.MODIFIED);
- }
- branch.clearDirty();
- cache.decache(branch);
- cache.cache(branch);
- }
- } else {
- cache.storeItems(updated);
- }
- try {
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/plain");
- resp.setCharacterEncoding("UTF-8");
- resp.getWriter().write("Branch Store Successful");
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- }
-
- private void sendUpdates(boolean isCompatible, HttpServletRequest req, HttpServletResponse resp) throws OseeCoreException {
- IDataTranslationService service = getTranslationService();
- IOseeCachingService caching = getCachingService();
-
- CacheUpdateRequest updateRequest = null;
- InputStream inputStream = null;
- try {
- inputStream = req.getInputStream();
- updateRequest = service.convert(inputStream, CoreTranslatorId.OSEE_CACHE_UPDATE_REQUEST);
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- } finally {
- Lib.close(inputStream);
- }
-
- OutputStream outputStream = null;
- try {
- Pair<Object, ITranslatorId> pair = createResponse(isCompatible, updateRequest, caching);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/xml");
- resp.setCharacterEncoding("UTF-8");
-
- ModCompatible.makeSendCompatible(isCompatible, pair.getFirst());
-
- inputStream = service.convertToStream(pair.getFirst(), pair.getSecond());
- outputStream = resp.getOutputStream();
- Lib.inputStreamToOutputStream(inputStream, outputStream);
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- }
-
- private Pair<Object, ITranslatorId> createResponse(boolean isCompatible, CacheUpdateRequest updateRequest, IOseeCachingService caching) throws OseeCoreException {
- Conditions.checkNotNull(caching, "caching service");
- Object response = null;
- ITranslatorId transalatorId = null;
- switch (updateRequest.getCacheId()) {
- case BRANCH_CACHE:
- response = BranchCacheUpdateResponse.fromCache(caching.getBranchCache(), caching.getBranchCache().getAll());
- transalatorId = CoreTranslatorId.BRANCH_CACHE_UPDATE_RESPONSE;
- break;
- case TRANSACTION_CACHE:
- Collection<TransactionRecord> record;
- TransactionCache txCache = caching.getTransactionCache();
-
- if (updateRequest.getItemsIds().isEmpty()) {
- record = txCache.getAll();
- } else {
- record = new ArrayList<TransactionRecord>();
- for (Integer item : updateRequest.getItemsIds()) {
- record.add(txCache.getOrLoad(item));
- }
- }
- response = TransactionCacheUpdateResponse.fromCache(factoryService.getTransactionFactory(), record);
- transalatorId = CoreTranslatorId.TX_CACHE_UPDATE_RESPONSE;
- break;
- case ARTIFACT_TYPE_CACHE:
- response = ArtifactTypeCacheUpdateResponse.fromCache(caching.getArtifactTypeCache().getAll());
- transalatorId = CoreTranslatorId.ARTIFACT_TYPE_CACHE_UPDATE_RESPONSE;
- break;
- case ATTRIBUTE_TYPE_CACHE:
- response =
- AttributeTypeCacheUpdateResponse.fromCache(factoryService.getAttributeTypeFactory(),
- caching.getAttributeTypeCache().getAll());
- transalatorId = CoreTranslatorId.ATTRIBUTE_TYPE_CACHE_UPDATE_RESPONSE;
- break;
- case OSEE_ENUM_TYPE_CACHE:
- response = OseeEnumTypeCacheUpdateResponse.fromCache(caching.getEnumTypeCache().getAll());
- transalatorId = CoreTranslatorId.OSEE_ENUM_TYPE_CACHE_UPDATE_RESPONSE;
- break;
- case RELATION_TYPE_CACHE:
- response = RelationTypeCacheUpdateResponse.fromCache(caching.getRelationTypeCache().getAll());
- transalatorId = CoreTranslatorId.RELATION_TYPE_CACHE_UPDATE_RESPONSE;
- break;
- default:
- throw new OseeArgumentException(String.format("Invalid cacheId [%s]", updateRequest.getCacheId()));
- }
- return new Pair<Object, ITranslatorId>(response, transalatorId);
- }
-
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.logging.Level; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.enums.CacheOperation; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.enums.OseeCacheEnum; +import org.eclipse.osee.framework.core.enums.StorageState; +import org.eclipse.osee.framework.core.exception.OseeArgumentException; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeExceptions; +import org.eclipse.osee.framework.core.message.ArtifactTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.AttributeTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.BranchCacheStoreRequest; +import org.eclipse.osee.framework.core.message.BranchCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.BranchCacheUpdateUtil; +import org.eclipse.osee.framework.core.message.CacheUpdateRequest; +import org.eclipse.osee.framework.core.message.OseeEnumTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.RelationTypeCacheUpdateResponse; +import org.eclipse.osee.framework.core.message.TransactionCacheUpdateResponse; +import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.core.model.TransactionRecord; +import org.eclipse.osee.framework.core.model.cache.BranchCache; +import org.eclipse.osee.framework.core.model.cache.TransactionCache; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.core.services.IOseeModelFactoryService; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.core.translation.ITranslatorId; +import org.eclipse.osee.framework.core.util.Conditions; +import org.eclipse.osee.framework.jdk.core.type.Pair; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Roberto E. Escobar + */ +public class OseeCacheServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = 6693534844874109524L; + private final IDataTranslationService translationService; + private final IOseeCachingService cachingService; + private final IOseeModelFactoryService factoryService; + private final ISessionManager sessionManager; + + public OseeCacheServlet(ISessionManager sessionManager, IDataTranslationService translationService, IOseeCachingService cachingService, IOseeModelFactoryService factoryService) { + super(); + this.sessionManager = sessionManager; + this.translationService = translationService; + this.cachingService = cachingService; + this.factoryService = factoryService; + } + + public IDataTranslationService getTranslationService() { + return translationService; + } + + public IOseeCachingService getCachingService() { + return cachingService; + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) { + OseeCacheEnum cacheId = OseeCacheEnum.valueOf(req.getParameter("cacheId")); + try { + IOseeCachingService caching = getCachingService(); + IDataTranslationService service = getTranslationService(); + Pair<Object, ITranslatorId> pair = createResponse(true, new CacheUpdateRequest(cacheId), caching); + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/xml"); + resp.setCharacterEncoding("UTF-8"); + InputStream inputStream = service.convertToStream(pair.getFirst(), pair.getSecond()); + OutputStream outputStream = resp.getOutputStream(); + Lib.inputStreamToOutputStream(inputStream, outputStream); + } catch (Exception ex) { + OseeLog.log(getClass(), Level.SEVERE, ex); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + try { + String sessionId = req.getParameter("sessionId"); + String clientVersion = ModCompatible.getClientVersion(sessionManager, sessionId); + boolean isCompatible = ModCompatible.is_0_9_2_Compatible(clientVersion); + + CacheOperation operation = CacheOperation.fromString(req.getParameter("function")); + switch (operation) { + case UPDATE: + sendUpdates(isCompatible, req, resp); + break; + case STORE: + storeUpdates(isCompatible, req, resp); + break; + default: + throw new UnsupportedOperationException(); + } + } catch (Exception ex) { + handleError(resp, req.toString(), ex); + } + } + + private void handleError(HttpServletResponse resp, String request, Throwable th) throws IOException { + OseeLog.log(Activator.class, Level.SEVERE, String.format("Osee Cache request error: [%s]", request), th); + resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + resp.setContentType("text/plain"); + resp.getWriter().write(Lib.exceptionToString(th)); + resp.getWriter().flush(); + resp.getWriter().close(); + } + + private void storeUpdates(boolean isCompatible, HttpServletRequest req, HttpServletResponse resp) throws OseeCoreException { + IDataTranslationService service = getTranslationService(); + IOseeCachingService caching = getCachingService(); + TransactionCache txCache = caching.getTransactionCache(); + + BranchCacheStoreRequest updateRequest = null; + InputStream inputStream = null; + try { + inputStream = req.getInputStream(); + updateRequest = service.convert(inputStream, CoreTranslatorId.BRANCH_CACHE_STORE_REQUEST); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } finally { + Lib.close(inputStream); + } + Collection<Branch> updated = + new BranchCacheUpdateUtil(factoryService.getBranchFactory(), txCache).updateCache(updateRequest, + caching.getBranchCache()); + + BranchCache cache = caching.getBranchCache(); + if (updateRequest.isServerUpdateMessage()) { + for (Branch branch : updated) { + if (StorageState.CREATED == branch.getStorageState()) { + branch.setStorageState(StorageState.MODIFIED); + } + branch.clearDirty(); + cache.decache(branch); + cache.cache(branch); + } + } else { + cache.storeItems(updated); + } + try { + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/plain"); + resp.setCharacterEncoding("UTF-8"); + resp.getWriter().write("Branch Store Successful"); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } + } + + private void sendUpdates(boolean isCompatible, HttpServletRequest req, HttpServletResponse resp) throws OseeCoreException { + IDataTranslationService service = getTranslationService(); + IOseeCachingService caching = getCachingService(); + + CacheUpdateRequest updateRequest = null; + InputStream inputStream = null; + try { + inputStream = req.getInputStream(); + updateRequest = service.convert(inputStream, CoreTranslatorId.OSEE_CACHE_UPDATE_REQUEST); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } finally { + Lib.close(inputStream); + } + + OutputStream outputStream = null; + try { + Pair<Object, ITranslatorId> pair = createResponse(isCompatible, updateRequest, caching); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/xml"); + resp.setCharacterEncoding("UTF-8"); + + ModCompatible.makeSendCompatible(isCompatible, pair.getFirst()); + + inputStream = service.convertToStream(pair.getFirst(), pair.getSecond()); + outputStream = resp.getOutputStream(); + Lib.inputStreamToOutputStream(inputStream, outputStream); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } + } + + private Pair<Object, ITranslatorId> createResponse(boolean isCompatible, CacheUpdateRequest updateRequest, IOseeCachingService caching) throws OseeCoreException { + Conditions.checkNotNull(caching, "caching service"); + Object response = null; + ITranslatorId transalatorId = null; + switch (updateRequest.getCacheId()) { + case BRANCH_CACHE: + response = BranchCacheUpdateResponse.fromCache(caching.getBranchCache(), caching.getBranchCache().getAll()); + transalatorId = CoreTranslatorId.BRANCH_CACHE_UPDATE_RESPONSE; + break; + case TRANSACTION_CACHE: + Collection<TransactionRecord> record; + TransactionCache txCache = caching.getTransactionCache(); + + if (updateRequest.getItemsIds().isEmpty()) { + record = txCache.getAll(); + } else { + record = new ArrayList<TransactionRecord>(); + for (Integer item : updateRequest.getItemsIds()) { + record.add(txCache.getOrLoad(item)); + } + } + response = TransactionCacheUpdateResponse.fromCache(factoryService.getTransactionFactory(), record); + transalatorId = CoreTranslatorId.TX_CACHE_UPDATE_RESPONSE; + break; + case ARTIFACT_TYPE_CACHE: + response = ArtifactTypeCacheUpdateResponse.fromCache(caching.getArtifactTypeCache().getAll()); + transalatorId = CoreTranslatorId.ARTIFACT_TYPE_CACHE_UPDATE_RESPONSE; + break; + case ATTRIBUTE_TYPE_CACHE: + response = + AttributeTypeCacheUpdateResponse.fromCache(factoryService.getAttributeTypeFactory(), + caching.getAttributeTypeCache().getAll()); + transalatorId = CoreTranslatorId.ATTRIBUTE_TYPE_CACHE_UPDATE_RESPONSE; + break; + case OSEE_ENUM_TYPE_CACHE: + response = OseeEnumTypeCacheUpdateResponse.fromCache(caching.getEnumTypeCache().getAll()); + transalatorId = CoreTranslatorId.OSEE_ENUM_TYPE_CACHE_UPDATE_RESPONSE; + break; + case RELATION_TYPE_CACHE: + response = RelationTypeCacheUpdateResponse.fromCache(caching.getRelationTypeCache().getAll()); + transalatorId = CoreTranslatorId.RELATION_TYPE_CACHE_UPDATE_RESPONSE; + break; + default: + throw new OseeArgumentException(String.format("Invalid cacheId [%s]", updateRequest.getCacheId())); + } + return new Pair<Object, ITranslatorId>(response, transalatorId); + } + +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeModelServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeModelServlet.java index 83d62193723..c733d0cad4e 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeModelServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/OseeModelServlet.java @@ -1,107 +1,107 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.message.IOseeModelingService;
-import org.eclipse.osee.framework.core.message.OseeImportModelRequest;
-import org.eclipse.osee.framework.core.message.OseeImportModelResponse;
-import org.eclipse.osee.framework.core.operation.LogProgressMonitor;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class OseeModelServlet extends SecureOseeHttpServlet {
-
- private static final long serialVersionUID = -2639113870500561780L;
-
- private final IOseeModelingService modelingService;
- private final IDataTranslationService dataTransalatorService;
-
- public OseeModelServlet(ISessionManager sessionManager, IDataTranslationService dataTransalatorService, IOseeModelingService modelingService) {
- super(sessionManager);
- this.dataTransalatorService = dataTransalatorService;
- this.modelingService = modelingService;
- }
-
- private IOseeModelingService getModelingService() {
- return modelingService;
- }
-
- @Override
- protected void checkAccessControl(HttpServletRequest request) throws OseeCoreException {
- if (!request.getMethod().equalsIgnoreCase("GET")) {
- super.checkAccessControl(request);
- }
- }
-
- private void handleError(HttpServletResponse resp, String request, Throwable th) throws IOException {
- OseeLog.log(Activator.class, Level.SEVERE, String.format("Osee Cache request error: [%s]", request), th);
- resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- resp.setContentType("text/plain");
- resp.getWriter().write(Lib.exceptionToString(th));
- resp.getWriter().flush();
- resp.getWriter().close();
- }
-
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
- try {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-
- getModelingService().exportOseeTypes(new LogProgressMonitor(), outputStream);
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/plain");
- resp.setCharacterEncoding("UTF-8");
-
- Lib.inputStreamToOutputStream(new ByteArrayInputStream(outputStream.toByteArray()), resp.getOutputStream());
- } catch (Exception ex) {
- handleError(resp, req.getQueryString(), ex);
- }
- }
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
- try {
- IDataTranslationService service = dataTransalatorService;
- OseeImportModelRequest modelRequest =
- service.convert(req.getInputStream(), CoreTranslatorId.OSEE_IMPORT_MODEL_REQUEST);
-
- OseeImportModelResponse modelResponse = new OseeImportModelResponse();
-
- getModelingService().importOseeTypes(new LogProgressMonitor(), isInitializing(req), modelRequest,
- modelResponse);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/xml");
- resp.setCharacterEncoding("UTF-8");
-
- InputStream inputStream = service.convertToStream(modelResponse, CoreTranslatorId.OSEE_IMPORT_MODEL_RESPONSE);
- Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream());
- } catch (Exception ex) {
- handleError(resp, req.toString(), ex);
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Level; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.message.IOseeModelingService; +import org.eclipse.osee.framework.core.message.OseeImportModelRequest; +import org.eclipse.osee.framework.core.message.OseeImportModelResponse; +import org.eclipse.osee.framework.core.operation.LogProgressMonitor; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Roberto E. Escobar + */ +public class OseeModelServlet extends SecureOseeHttpServlet { + + private static final long serialVersionUID = -2639113870500561780L; + + private final IOseeModelingService modelingService; + private final IDataTranslationService dataTransalatorService; + + public OseeModelServlet(ISessionManager sessionManager, IDataTranslationService dataTransalatorService, IOseeModelingService modelingService) { + super(sessionManager); + this.dataTransalatorService = dataTransalatorService; + this.modelingService = modelingService; + } + + private IOseeModelingService getModelingService() { + return modelingService; + } + + @Override + protected void checkAccessControl(HttpServletRequest request) throws OseeCoreException { + if (!request.getMethod().equalsIgnoreCase("GET")) { + super.checkAccessControl(request); + } + } + + private void handleError(HttpServletResponse resp, String request, Throwable th) throws IOException { + OseeLog.log(Activator.class, Level.SEVERE, String.format("Osee Cache request error: [%s]", request), th); + resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + resp.setContentType("text/plain"); + resp.getWriter().write(Lib.exceptionToString(th)); + resp.getWriter().flush(); + resp.getWriter().close(); + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { + try { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + + getModelingService().exportOseeTypes(new LogProgressMonitor(), outputStream); + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/plain"); + resp.setCharacterEncoding("UTF-8"); + + Lib.inputStreamToOutputStream(new ByteArrayInputStream(outputStream.toByteArray()), resp.getOutputStream()); + } catch (Exception ex) { + handleError(resp, req.getQueryString(), ex); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { + try { + IDataTranslationService service = dataTransalatorService; + OseeImportModelRequest modelRequest = + service.convert(req.getInputStream(), CoreTranslatorId.OSEE_IMPORT_MODEL_REQUEST); + + OseeImportModelResponse modelResponse = new OseeImportModelResponse(); + + getModelingService().importOseeTypes(new LogProgressMonitor(), isInitializing(req), modelRequest, + modelResponse); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/xml"); + resp.setCharacterEncoding("UTF-8"); + + InputStream inputStream = service.convertToStream(modelResponse, CoreTranslatorId.OSEE_IMPORT_MODEL_RESPONSE); + Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream()); + } catch (Exception ex) { + handleError(resp, req.toString(), ex); + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ResourceManagerServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ResourceManagerServlet.java index 295195fda63..8808462ef75 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ResourceManagerServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ResourceManagerServlet.java @@ -1,201 +1,201 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.HttpRequestDecoder;
-import org.eclipse.osee.framework.manager.servlet.data.ServletResourceBridge;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-import org.eclipse.osee.framework.resource.management.Options;
-import org.eclipse.osee.framework.resource.management.exception.EmptyResourceException;
-import org.eclipse.osee.framework.resource.management.exception.MalformedLocatorException;
-
-/**
- * This class is responsible for managing server-side resources. The class accepts HTTP requests to perform uploads,
- * deletes, and gets from clients granting access to server-side managed resources.
- *
- * @author Robeto E. Escobar
- */
-public class ResourceManagerServlet extends SecureOseeHttpServlet {
- private static final long serialVersionUID = 3777506351978711657L;
-
- private final IResourceLocatorManager locatorManager;
- private final IResourceManager resourceManager;
-
- public ResourceManagerServlet(ISessionManager sessionManager, IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
- super(sessionManager);
- this.locatorManager = locatorManager;
- this.resourceManager = resourceManager;
- }
-
- private void handleError(HttpServletResponse response, String message, Throwable ex) {
- OseeLog.log(this.getClass(), Level.SEVERE, message, ex);
- try {
- response.getWriter().println(message);
- } catch (IOException ex1) {
- OseeLog.log(this.getClass(), Level.SEVERE, message, ex);
- }
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- InputStream inputStream = null;
- try {
- Pair<String, Boolean> parameters = HttpRequestDecoder.fromGetRequest(request);
- String path = parameters.getFirst();
- boolean isCheckExistance = parameters.getSecond();
- Options options = HttpRequestDecoder.getOptions(request);
-
- IResourceLocator locator = locatorManager.getResourceLocator(path);
-
- if (isCheckExistance) {
- boolean exists = resourceManager.exists(locator);
- response.setStatus(exists ? HttpServletResponse.SC_OK : HttpServletResponse.SC_NOT_FOUND);
- response.setContentType("text/plain");
- response.setCharacterEncoding("UTF-8");
- response.getWriter().println(String.format("[%s] was %sfound.", path, exists ? "" : "not "));
- } else {
- IResource resource = resourceManager.acquire(locator, options);
- if (resource != null) {
- inputStream = resource.getContent();
-
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentLength(inputStream.available());
- response.setCharacterEncoding("ISO-8859-1");
- String mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream);
- if (mimeType == null) {
- mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString());
- if (mimeType == null) {
- mimeType = "application/*";
- }
- }
- response.setContentType(mimeType);
- response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName());
-
- Lib.inputStreamToOutputStream(inputStream, response.getOutputStream());
- } else {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- response.flushBuffer();
- }
- }
- } catch (MalformedLocatorException ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- response.setCharacterEncoding("UTF-8");
- handleError(response, String.format("Unable to locate resource: [%s]", request.getRequestURI()), ex);
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.setContentType("text/plain");
- response.setCharacterEncoding("UTF-8");
- handleError(response, String.format("Unable to acquire resource: [%s]", request.getRequestURI()), ex);
- } finally {
- if (inputStream != null) {
- inputStream.close();
- }
- }
- }
-
- @Override
- protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- int result = HttpServletResponse.SC_BAD_REQUEST;
- try {
- String[] args = HttpRequestDecoder.fromPutRequest(request);
- Options options = HttpRequestDecoder.getOptions(request);
-
- IResourceLocator locator = locatorManager.generateResourceLocator(args[0], args[1], args[2]);
- IResource tempResource = new ServletResourceBridge(request, locator);
-
- IResourceLocator actualLocator = resourceManager.save(locator, tempResource, options);
- result = HttpServletResponse.SC_CREATED;
- response.setStatus(result);
- response.setContentType("text/plain");
- response.getWriter().write(actualLocator.toString());
- } catch (MalformedLocatorException ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- handleError(
- response,
- String.format("Unable to locate resource: [%s] - %s", request.getRequestURI(),
- ex.getLocalizedMessage()), ex);
- } catch (EmptyResourceException ex) {
- response.setStatus(HttpServletResponse.SC_NO_CONTENT);
- response.setContentType("text/plain");
- handleError(
- response,
- String.format("Unable to store empty resource: [%s] - %s", request.getRequestURI(),
- ex.getLocalizedMessage()), ex);
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.setContentType("text/plain");
- handleError(response, String.format("Error saving resource: [%s]", ex.getLocalizedMessage()), ex);
- }
- }
-
- @Override
- protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- int result = HttpServletResponse.SC_BAD_REQUEST;
- try {
- String path = HttpRequestDecoder.fromDeleteRequest(request);
- IResourceLocator locator = locatorManager.getResourceLocator(path);
- int status = IResourceManager.OK;
- //Activator.getInstance().getResourceManager().delete(locator);
- if (status == IResourceManager.OK) {
- result = HttpServletResponse.SC_ACCEPTED;
- } else {
- result = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
- }
- response.setStatus(result);
- response.setContentType("text/plain");
- response.getWriter().write("Deleted: " + locator.toString());
- response.flushBuffer();
- } catch (MalformedLocatorException ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- handleError(response, String.format("Unable to locate resource: [%s]", request.getRequestURI()), ex);
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
- response.setContentType("text/plain");
- handleError(response, String.format("Unable to delete resource: [%s]", request.getRequestURI()), ex);
- }
- }
-
- // TODO Allow for bulk loading of resources
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- super.doPost(req, resp); // Remove this line once implemented
-
- Set<IResourceLocator> locators = new HashSet<IResourceLocator>();
- for (IResourceLocator locator : locators) {
- try {
- Options options = new Options();
- resourceManager.acquire(locator, options);
- } catch (OseeCoreException ex) {
- }
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet; +import org.eclipse.osee.framework.jdk.core.type.Pair; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.data.HttpRequestDecoder; +import org.eclipse.osee.framework.manager.servlet.data.ServletResourceBridge; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.IResourceLocator; +import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; +import org.eclipse.osee.framework.resource.management.IResourceManager; +import org.eclipse.osee.framework.resource.management.Options; +import org.eclipse.osee.framework.resource.management.exception.EmptyResourceException; +import org.eclipse.osee.framework.resource.management.exception.MalformedLocatorException; + +/** + * This class is responsible for managing server-side resources. The class accepts HTTP requests to perform uploads, + * deletes, and gets from clients granting access to server-side managed resources. + * + * @author Robeto E. Escobar + */ +public class ResourceManagerServlet extends SecureOseeHttpServlet { + private static final long serialVersionUID = 3777506351978711657L; + + private final IResourceLocatorManager locatorManager; + private final IResourceManager resourceManager; + + public ResourceManagerServlet(ISessionManager sessionManager, IResourceLocatorManager locatorManager, IResourceManager resourceManager) { + super(sessionManager); + this.locatorManager = locatorManager; + this.resourceManager = resourceManager; + } + + private void handleError(HttpServletResponse response, String message, Throwable ex) { + OseeLog.log(this.getClass(), Level.SEVERE, message, ex); + try { + response.getWriter().println(message); + } catch (IOException ex1) { + OseeLog.log(this.getClass(), Level.SEVERE, message, ex); + } + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + InputStream inputStream = null; + try { + Pair<String, Boolean> parameters = HttpRequestDecoder.fromGetRequest(request); + String path = parameters.getFirst(); + boolean isCheckExistance = parameters.getSecond(); + Options options = HttpRequestDecoder.getOptions(request); + + IResourceLocator locator = locatorManager.getResourceLocator(path); + + if (isCheckExistance) { + boolean exists = resourceManager.exists(locator); + response.setStatus(exists ? HttpServletResponse.SC_OK : HttpServletResponse.SC_NOT_FOUND); + response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); + response.getWriter().println(String.format("[%s] was %sfound.", path, exists ? "" : "not ")); + } else { + IResource resource = resourceManager.acquire(locator, options); + if (resource != null) { + inputStream = resource.getContent(); + + response.setStatus(HttpServletResponse.SC_OK); + response.setContentLength(inputStream.available()); + response.setCharacterEncoding("ISO-8859-1"); + String mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream); + if (mimeType == null) { + mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString()); + if (mimeType == null) { + mimeType = "application/*"; + } + } + response.setContentType(mimeType); + response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName()); + + Lib.inputStreamToOutputStream(inputStream, response.getOutputStream()); + } else { + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + response.flushBuffer(); + } + } + } catch (MalformedLocatorException ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); + handleError(response, String.format("Unable to locate resource: [%s]", request.getRequestURI()), ex); + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); + handleError(response, String.format("Unable to acquire resource: [%s]", request.getRequestURI()), ex); + } finally { + if (inputStream != null) { + inputStream.close(); + } + } + } + + @Override + protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + int result = HttpServletResponse.SC_BAD_REQUEST; + try { + String[] args = HttpRequestDecoder.fromPutRequest(request); + Options options = HttpRequestDecoder.getOptions(request); + + IResourceLocator locator = locatorManager.generateResourceLocator(args[0], args[1], args[2]); + IResource tempResource = new ServletResourceBridge(request, locator); + + IResourceLocator actualLocator = resourceManager.save(locator, tempResource, options); + result = HttpServletResponse.SC_CREATED; + response.setStatus(result); + response.setContentType("text/plain"); + response.getWriter().write(actualLocator.toString()); + } catch (MalformedLocatorException ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + handleError( + response, + String.format("Unable to locate resource: [%s] - %s", request.getRequestURI(), + ex.getLocalizedMessage()), ex); + } catch (EmptyResourceException ex) { + response.setStatus(HttpServletResponse.SC_NO_CONTENT); + response.setContentType("text/plain"); + handleError( + response, + String.format("Unable to store empty resource: [%s] - %s", request.getRequestURI(), + ex.getLocalizedMessage()), ex); + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + response.setContentType("text/plain"); + handleError(response, String.format("Error saving resource: [%s]", ex.getLocalizedMessage()), ex); + } + } + + @Override + protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + int result = HttpServletResponse.SC_BAD_REQUEST; + try { + String path = HttpRequestDecoder.fromDeleteRequest(request); + IResourceLocator locator = locatorManager.getResourceLocator(path); + int status = IResourceManager.OK; + //Activator.getInstance().getResourceManager().delete(locator); + if (status == IResourceManager.OK) { + result = HttpServletResponse.SC_ACCEPTED; + } else { + result = HttpServletResponse.SC_INTERNAL_SERVER_ERROR; + } + response.setStatus(result); + response.setContentType("text/plain"); + response.getWriter().write("Deleted: " + locator.toString()); + response.flushBuffer(); + } catch (MalformedLocatorException ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + handleError(response, String.format("Unable to locate resource: [%s]", request.getRequestURI()), ex); + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + response.setContentType("text/plain"); + handleError(response, String.format("Unable to delete resource: [%s]", request.getRequestURI()), ex); + } + } + + // TODO Allow for bulk loading of resources + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); // Remove this line once implemented + + Set<IResourceLocator> locators = new HashSet<IResourceLocator>(); + for (IResourceLocator locator : locators) { + try { + Options options = new Options(); + resourceManager.acquire(locator, options); + } catch (OseeCoreException ex) { + } + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineServlet.java index 5e97ba39034..6aa291aa89b 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineServlet.java @@ -1,163 +1,163 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Collection;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.model.cache.AttributeTypeCache;
-import org.eclipse.osee.framework.core.model.type.AttributeType;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet;
-import org.eclipse.osee.framework.core.services.IOseeCachingService;
-import org.eclipse.osee.framework.database.core.JoinUtility;
-import org.eclipse.osee.framework.database.core.JoinUtility.ArtifactJoinQuery;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.HttpSearchInfo;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-import org.eclipse.osee.framework.search.engine.ISearchEngine;
-import org.eclipse.osee.framework.search.engine.MatchLocation;
-import org.eclipse.osee.framework.search.engine.SearchOptions.SearchOptionsEnum;
-import org.eclipse.osee.framework.search.engine.SearchResult;
-import org.eclipse.osee.framework.search.engine.SearchResult.ArtifactMatch;
-
-/**
- * @author Roberto E. Escobar
- */
-public class SearchEngineServlet extends SecureOseeHttpServlet {
-
- private static final long serialVersionUID = 3722992788943330970L;
-
- private final ISearchEngine searchEngine;
- private final IOseeCachingService cacheService;
-
- public SearchEngineServlet(ISessionManager sessionManager, ISearchEngine searchEngine, IOseeCachingService cacheService) {
- super(sessionManager);
- this.searchEngine = searchEngine;
- this.cacheService = cacheService;
- }
-
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- try {
- HttpSearchInfo searchInfo = HttpSearchInfo.loadFromPost(request);
-
- String clientVersion = ModCompatible.getClientVersion(getSessionManager(), request.getParameter("sessionId"));
- boolean isCompatible = ModCompatible.is_0_9_2_Compatible(clientVersion);
-
- executeSearch(isCompatible, searchInfo, response, false);
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Failed to respond to a search engine servlet request [%s]", request.getRequestURL()),
- ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- }
- }
-
- private void executeSearch(boolean isCompatible, HttpSearchInfo searchInfo, HttpServletResponse response, boolean wasFromGet) throws IOException {
- try {
- AttributeTypeCache attributeTypeCache = cacheService.getAttributeTypeCache();
-
- String[] attributeTypeGuids = searchInfo.getAttributeTypeGuids();
- AttributeType[] attributeTypes = new AttributeType[attributeTypeGuids.length];
-
- int index = 0;
- for (String attributeTypeValue : attributeTypeGuids) {
- if (!isCompatible) {
- attributeTypes[index++] = attributeTypeCache.getBySoleName(attributeTypeValue);
- } else {
- attributeTypes[index++] = attributeTypeCache.getByGuid(attributeTypeValue);
- }
- }
-
- SearchResult results =
- searchEngine.search(searchInfo.getQuery(), searchInfo.getId(), searchInfo.getOptions(),
- attributeTypes);
- response.setStatus(wasFromGet ? HttpServletResponse.SC_OK : HttpServletResponse.SC_ACCEPTED);
- if (!results.isEmpty()) {
- long start = System.currentTimeMillis();
- if (!searchInfo.getOptions().getBoolean(SearchOptionsEnum.as_xml.asStringOption())) {
- sendAsDbJoin(response, results);
- } else {
- sendAsXml(response, results);
- }
- System.out.println(String.format("Search for [%s] - [%d results sent in %d ms]", searchInfo.getQuery(),
- results.size(), System.currentTimeMillis() - start));
- } else {
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/plain");
- }
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Failed to respond to a search engine servlet request [%s]", searchInfo.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- }
- response.getWriter().flush();
- response.getWriter().close();
- }
-
- private void sendAsDbJoin(HttpServletResponse response, SearchResult results) throws Exception {
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/plain");
-
- ArtifactJoinQuery joinQuery = JoinUtility.createArtifactJoinQuery();
- for (Integer branchId : results.getBranchIds()) {
- for (Integer artId : results.getArtifactIds(branchId)) {
- joinQuery.add(artId, branchId);
- }
- }
- joinQuery.store();
- response.getWriter().write(String.format("%d,%d", joinQuery.getQueryId(), joinQuery.size()));
- }
-
- /**
- * <match artId="" branchId=""> <attr gammaId=""><location start="" end="" /></attr> </match>
- *
- * @throws Exception
- */
- private void sendAsXml(HttpServletResponse response, SearchResult results) throws Exception {
- response.setCharacterEncoding("UTF-8");
- response.setContentType("text/xml");
- PrintWriter writer = response.getWriter();
-
- writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
- writer.write("<search>");
- for (Integer branchId : results.getBranchIds()) {
- writer.write(String.format("<match branchId=\"%s\">", branchId));
- for (ArtifactMatch match : results.getArtifacts(branchId)) {
- writer.write(String.format("<art artId=\"%s\" >", match.getArtId()));
- for (Long gammaId : match.getAttributes()) {
- Collection<MatchLocation> locations = match.getMatchLocations(gammaId);
- writer.write(String.format("<attr gammaId=\"%s\">", gammaId));
- if (locations != null) {
- for (MatchLocation location : locations) {
- writer.write(String.format("<location start=\"%s\" end=\"%s\" />", location.getStartPosition(),
- location.getEndPosition()));
- }
- }
- writer.write("</attr>");
- }
- writer.write("</art>");
- }
- writer.write("</match>");
- }
- writer.write("</search>");
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Collection; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.model.cache.AttributeTypeCache; +import org.eclipse.osee.framework.core.model.type.AttributeType; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.database.core.JoinUtility; +import org.eclipse.osee.framework.database.core.JoinUtility.ArtifactJoinQuery; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.data.HttpSearchInfo; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; +import org.eclipse.osee.framework.search.engine.ISearchEngine; +import org.eclipse.osee.framework.search.engine.MatchLocation; +import org.eclipse.osee.framework.search.engine.SearchOptions.SearchOptionsEnum; +import org.eclipse.osee.framework.search.engine.SearchResult; +import org.eclipse.osee.framework.search.engine.SearchResult.ArtifactMatch; + +/** + * @author Roberto E. Escobar + */ +public class SearchEngineServlet extends SecureOseeHttpServlet { + + private static final long serialVersionUID = 3722992788943330970L; + + private final ISearchEngine searchEngine; + private final IOseeCachingService cacheService; + + public SearchEngineServlet(ISessionManager sessionManager, ISearchEngine searchEngine, IOseeCachingService cacheService) { + super(sessionManager); + this.searchEngine = searchEngine; + this.cacheService = cacheService; + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + try { + HttpSearchInfo searchInfo = HttpSearchInfo.loadFromPost(request); + + String clientVersion = ModCompatible.getClientVersion(getSessionManager(), request.getParameter("sessionId")); + boolean isCompatible = ModCompatible.is_0_9_2_Compatible(clientVersion); + + executeSearch(isCompatible, searchInfo, response, false); + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Failed to respond to a search engine servlet request [%s]", request.getRequestURL()), + ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } + } + + private void executeSearch(boolean isCompatible, HttpSearchInfo searchInfo, HttpServletResponse response, boolean wasFromGet) throws IOException { + try { + AttributeTypeCache attributeTypeCache = cacheService.getAttributeTypeCache(); + + String[] attributeTypeGuids = searchInfo.getAttributeTypeGuids(); + AttributeType[] attributeTypes = new AttributeType[attributeTypeGuids.length]; + + int index = 0; + for (String attributeTypeValue : attributeTypeGuids) { + if (!isCompatible) { + attributeTypes[index++] = attributeTypeCache.getBySoleName(attributeTypeValue); + } else { + attributeTypes[index++] = attributeTypeCache.getByGuid(attributeTypeValue); + } + } + + SearchResult results = + searchEngine.search(searchInfo.getQuery(), searchInfo.getId(), searchInfo.getOptions(), + attributeTypes); + response.setStatus(wasFromGet ? HttpServletResponse.SC_OK : HttpServletResponse.SC_ACCEPTED); + if (!results.isEmpty()) { + long start = System.currentTimeMillis(); + if (!searchInfo.getOptions().getBoolean(SearchOptionsEnum.as_xml.asStringOption())) { + sendAsDbJoin(response, results); + } else { + sendAsXml(response, results); + } + System.out.println(String.format("Search for [%s] - [%d results sent in %d ms]", searchInfo.getQuery(), + results.size(), System.currentTimeMillis() - start)); + } else { + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/plain"); + } + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Failed to respond to a search engine servlet request [%s]", searchInfo.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } + response.getWriter().flush(); + response.getWriter().close(); + } + + private void sendAsDbJoin(HttpServletResponse response, SearchResult results) throws Exception { + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/plain"); + + ArtifactJoinQuery joinQuery = JoinUtility.createArtifactJoinQuery(); + for (Integer branchId : results.getBranchIds()) { + for (Integer artId : results.getArtifactIds(branchId)) { + joinQuery.add(artId, branchId); + } + } + joinQuery.store(); + response.getWriter().write(String.format("%d,%d", joinQuery.getQueryId(), joinQuery.size())); + } + + /** + * <match artId="" branchId=""> <attr gammaId=""><location start="" end="" /></attr> </match> + * + * @throws Exception + */ + private void sendAsXml(HttpServletResponse response, SearchResult results) throws Exception { + response.setCharacterEncoding("UTF-8"); + response.setContentType("text/xml"); + PrintWriter writer = response.getWriter(); + + writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"); + writer.write("<search>"); + for (Integer branchId : results.getBranchIds()) { + writer.write(String.format("<match branchId=\"%s\">", branchId)); + for (ArtifactMatch match : results.getArtifacts(branchId)) { + writer.write(String.format("<art artId=\"%s\" >", match.getArtId())); + for (Long gammaId : match.getAttributes()) { + Collection<MatchLocation> locations = match.getMatchLocations(gammaId); + writer.write(String.format("<attr gammaId=\"%s\">", gammaId)); + if (locations != null) { + for (MatchLocation location : locations) { + writer.write(String.format("<location start=\"%s\" end=\"%s\" />", location.getStartPosition(), + location.getEndPosition())); + } + } + writer.write("</attr>"); + } + writer.write("</art>"); + } + writer.write("</match>"); + } + writer.write("</search>"); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineTaggerServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineTaggerServlet.java index 2a13bc31d36..2c572d4d7dd 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineTaggerServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SearchEngineTaggerServlet.java @@ -1,133 +1,133 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.TagListener;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-import org.eclipse.osee.framework.search.engine.ISearchEngineTagger;
-
-/**
- * @author Roberto E. Escobar
- */
-public class SearchEngineTaggerServlet extends SecureOseeHttpServlet {
- private static final long serialVersionUID = 5104108752343302320L;
-
- private final ISearchEngineTagger searchTaggerService;
-
- public SearchEngineTaggerServlet(ISessionManager sessionManager, ISearchEngineTagger searchTaggerService) {
- super(sessionManager);
- this.searchTaggerService = searchTaggerService;
- }
-
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- long start = System.currentTimeMillis();
- try {
- StringBuffer message = new StringBuffer();
- int branchId = Integer.parseInt(request.getParameter("branchId"));
- boolean waitForTags = Boolean.parseBoolean(request.getParameter("wait"));
- if (waitForTags) {
- TagListener listener = new TagListener();
- searchTaggerService.tagByBranchId(listener, branchId);
- if (listener.wasProcessed() != true) {
- synchronized (listener) {
- listener.wait();
- }
- }
- message.append(String.format("Processed %d queries containing %d attributes in %d ms.",
- listener.getQueryCount(), listener.getAttributeCount(), System.currentTimeMillis() - start));
- } else {
- searchTaggerService.tagByBranchId(branchId);
- }
- response.setContentType("text/plain");
- response.setCharacterEncoding("UTF-8");
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
- response.getWriter().write(message.toString());
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Error submitting for tagging - [%s]", request.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- }
- response.getWriter().flush();
- response.getWriter().close();
- }
-
- @Override
- protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- InputStream inputStream = null;
- try {
- boolean waitForTags = Boolean.parseBoolean(request.getParameter("wait"));
- inputStream = request.getInputStream();
- if (waitForTags) {
- TagListener listener = new TagListener();
- searchTaggerService.tagFromXmlStream(listener, inputStream);
- if (listener.wasProcessed() != true) {
- synchronized (listener) {
- listener.wait();
- }
- }
- } else {
- searchTaggerService.tagFromXmlStream(inputStream);
- }
- response.setContentType("text/plain");
- response.setCharacterEncoding("UTF-8");
- response.setStatus(HttpServletResponse.SC_CREATED);
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Error submitting for tagging - [%s]", request.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- } finally {
- if (inputStream != null) {
- inputStream.close();
- }
- response.getWriter().flush();
- response.getWriter().close();
- }
- }
-
- @Override
- protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- try {
- String queryId = request.getParameter("queryId");
- int value = searchTaggerService.deleteTags(Integer.parseInt(queryId));
- response.setContentType("text/plain");
- response.setCharacterEncoding("UTF-8");
- if (value > 0) {
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
- } else {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- }
- } catch (Exception ex) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Error submitting for tagging - [%s]", request.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- } finally {
- response.getWriter().flush();
- response.getWriter().close();
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.InputStream; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.SecureOseeHttpServlet; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.data.TagListener; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; +import org.eclipse.osee.framework.search.engine.ISearchEngineTagger; + +/** + * @author Roberto E. Escobar + */ +public class SearchEngineTaggerServlet extends SecureOseeHttpServlet { + private static final long serialVersionUID = 5104108752343302320L; + + private final ISearchEngineTagger searchTaggerService; + + public SearchEngineTaggerServlet(ISessionManager sessionManager, ISearchEngineTagger searchTaggerService) { + super(sessionManager); + this.searchTaggerService = searchTaggerService; + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + long start = System.currentTimeMillis(); + try { + StringBuffer message = new StringBuffer(); + int branchId = Integer.parseInt(request.getParameter("branchId")); + boolean waitForTags = Boolean.parseBoolean(request.getParameter("wait")); + if (waitForTags) { + TagListener listener = new TagListener(); + searchTaggerService.tagByBranchId(listener, branchId); + if (listener.wasProcessed() != true) { + synchronized (listener) { + listener.wait(); + } + } + message.append(String.format("Processed %d queries containing %d attributes in %d ms.", + listener.getQueryCount(), listener.getAttributeCount(), System.currentTimeMillis() - start)); + } else { + searchTaggerService.tagByBranchId(branchId); + } + response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); + response.setStatus(HttpServletResponse.SC_ACCEPTED); + response.getWriter().write(message.toString()); + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error submitting for tagging - [%s]", request.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } + response.getWriter().flush(); + response.getWriter().close(); + } + + @Override + protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + InputStream inputStream = null; + try { + boolean waitForTags = Boolean.parseBoolean(request.getParameter("wait")); + inputStream = request.getInputStream(); + if (waitForTags) { + TagListener listener = new TagListener(); + searchTaggerService.tagFromXmlStream(listener, inputStream); + if (listener.wasProcessed() != true) { + synchronized (listener) { + listener.wait(); + } + } + } else { + searchTaggerService.tagFromXmlStream(inputStream); + } + response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); + response.setStatus(HttpServletResponse.SC_CREATED); + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error submitting for tagging - [%s]", request.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } finally { + if (inputStream != null) { + inputStream.close(); + } + response.getWriter().flush(); + response.getWriter().close(); + } + } + + @Override + protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + try { + String queryId = request.getParameter("queryId"); + int value = searchTaggerService.deleteTags(Integer.parseInt(queryId)); + response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); + if (value > 0) { + response.setStatus(HttpServletResponse.SC_ACCEPTED); + } else { + response.setStatus(HttpServletResponse.SC_NOT_FOUND); + } + } catch (Exception ex) { + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error submitting for tagging - [%s]", request.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } finally { + response.getWriter().flush(); + response.getWriter().close(); + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ServerLookupServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ServerLookupServlet.java index 3ce25807b5f..8ee097e0b62 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ServerLookupServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ServerLookupServlet.java @@ -1,103 +1,103 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.data.OseeServerInfo;
-import org.eclipse.osee.framework.core.server.IApplicationServerLookup;
-import org.eclipse.osee.framework.core.server.IApplicationServerManager;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ServerLookupServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = -7055381632202456561L;
-
- private final IApplicationServerLookup lookupService;
- private final IApplicationServerManager applicationServerManager;
-
- public ServerLookupServlet(IApplicationServerLookup lookupService, IApplicationServerManager applicationServerManager) {
- this.lookupService = lookupService;
- this.applicationServerManager = applicationServerManager;
-
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- try {
- String version = request.getParameter("version");
- boolean wasBadRequest = false;
-
- OseeServerInfo info = null;
- if (Strings.isValid(version)) {
- version = version.trim();
- info = lookupService.getServerInfoBy(version);
- } else {
- wasBadRequest = true;
- }
-
- if (info == null) {
- response.setStatus(wasBadRequest ? HttpServletResponse.SC_BAD_REQUEST : HttpServletResponse.SC_NO_CONTENT);
- response.setContentType("txt/plain");
- response.getWriter().write(
- String.format("Unable to locate application server matching - [%s]", request.toString()));
- response.getWriter().flush();
- response.getWriter().close();
- } else {
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- info.write(stream);
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentType("application/xml");
- response.setCharacterEncoding("UTF-8");
- response.setContentLength(stream.size());
- Lib.inputStreamToOutputStream(new ByteArrayInputStream(stream.toByteArray()), response.getOutputStream());
- response.getOutputStream().flush();
- }
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Failed to process application server lookup request [%s]", request.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- response.getWriter().flush();
- response.getWriter().close();
- }
- }
-
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
- try {
- boolean isRegistrationToLookupTableRequested = Boolean.valueOf(request.getParameter("registerToLookup"));
- if (isRegistrationToLookupTableRequested) {
- boolean wasSuccessful = applicationServerManager.executeLookupRegistration();
- response.setStatus(wasSuccessful ? HttpServletResponse.SC_ACCEPTED : HttpServletResponse.SC_CONFLICT);
- response.setContentType("txt/plain");
- response.getWriter().write(
- String.format("Registration into server lookup was a [%s]", wasSuccessful ? "success" : "failure"));
- }
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Failed to process application server lookup request [%s]", request.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- }
- response.getWriter().flush();
- response.getWriter().close();
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.logging.Level; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.data.OseeServerInfo; +import org.eclipse.osee.framework.core.server.IApplicationServerLookup; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Roberto E. Escobar + */ +public class ServerLookupServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = -7055381632202456561L; + + private final IApplicationServerLookup lookupService; + private final IApplicationServerManager applicationServerManager; + + public ServerLookupServlet(IApplicationServerLookup lookupService, IApplicationServerManager applicationServerManager) { + this.lookupService = lookupService; + this.applicationServerManager = applicationServerManager; + + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + try { + String version = request.getParameter("version"); + boolean wasBadRequest = false; + + OseeServerInfo info = null; + if (Strings.isValid(version)) { + version = version.trim(); + info = lookupService.getServerInfoBy(version); + } else { + wasBadRequest = true; + } + + if (info == null) { + response.setStatus(wasBadRequest ? HttpServletResponse.SC_BAD_REQUEST : HttpServletResponse.SC_NO_CONTENT); + response.setContentType("txt/plain"); + response.getWriter().write( + String.format("Unable to locate application server matching - [%s]", request.toString())); + response.getWriter().flush(); + response.getWriter().close(); + } else { + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + info.write(stream); + response.setStatus(HttpServletResponse.SC_OK); + response.setContentType("application/xml"); + response.setCharacterEncoding("UTF-8"); + response.setContentLength(stream.size()); + Lib.inputStreamToOutputStream(new ByteArrayInputStream(stream.toByteArray()), response.getOutputStream()); + response.getOutputStream().flush(); + } + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Failed to process application server lookup request [%s]", request.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + response.getWriter().flush(); + response.getWriter().close(); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + try { + boolean isRegistrationToLookupTableRequested = Boolean.valueOf(request.getParameter("registerToLookup")); + if (isRegistrationToLookupTableRequested) { + boolean wasSuccessful = applicationServerManager.executeLookupRegistration(); + response.setStatus(wasSuccessful ? HttpServletResponse.SC_ACCEPTED : HttpServletResponse.SC_CONFLICT); + response.setContentType("txt/plain"); + response.getWriter().write( + String.format("Registration into server lookup was a [%s]", wasSuccessful ? "success" : "failure")); + } + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Failed to process application server lookup request [%s]", request.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + } + response.getWriter().flush(); + response.getWriter().close(); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionClientLoopbackServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionClientLoopbackServlet.java index cbc589fef06..cadb6744a6f 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionClientLoopbackServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionClientLoopbackServlet.java @@ -1,192 +1,192 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.HttpURLConnection;
-import java.net.InetAddress;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.net.UnknownHostException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.data.OseeServerContext;
-import org.eclipse.osee.framework.core.enums.StorageState;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.server.ISession;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class SessionClientLoopbackServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = 6402608843937837246L;
-
- private final ISessionManager sessionManager;
-
- public SessionClientLoopbackServlet(ISessionManager sessionManager) {
- super();
- this.sessionManager = sessionManager;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- try {
- int remotePort = getSessionPort(request);
- response.setContentType("text/plain");
- String url = null;
- if (remotePort > -1) {
- // Session found - redirect to client.
- url = String.format("http://%s:%s/%s", request.getRemoteAddr(), remotePort, getLoopbackPostfix(request));
- } else {
- // No session found - redirect to web browser request handler.
- url =
- String.format("http://%s:%s/%s?%s", getNormalizedAddress(request.getLocalAddr()),
- request.getLocalPort(), OseeServerContext.ARTIFACT_CONTEXT, request.getQueryString());
- }
- response.sendRedirect(url);
- } catch (Exception ex) {
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- String.format("Error processing request [%s]", request.getQueryString()));
- } finally {
- response.flushBuffer();
- }
- }
-
- private String getRemoteHostUrl(ISession session) {
- String clientAddress = session.getClientAddress();
- try {
- if (Arrays.equals(InetAddress.getByName(clientAddress).getAddress(), InetAddress.getLocalHost().getAddress())) {
- clientAddress = "localhost";
- }
- } catch (UnknownHostException ex) {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- return String.format("http://%s:%s/", clientAddress, session.getClientPort());
- }
-
- private String getLoopbackPostfix(HttpServletRequest request) throws UnsupportedEncodingException {
- StringBuffer buffer = new StringBuffer();
- String context = "";
- Enumeration<?> enumeration = request.getParameterNames();
- int count = 0;
- while (enumeration.hasMoreElements()) {
- Object object = enumeration.nextElement();
- if (object instanceof String) {
- String key = (String) object;
- if (!key.equals("sessionId")) {
- String value = request.getParameter(key);
- if (Strings.isValid(value)) {
- if (key.equals("context")) {
- context = value;
- if (context.startsWith("/")) {
- context = context.substring(1, context.length());
- }
- } else {
- if (count != 0) {
- buffer.append("&");
- }
- buffer.append(key);
- buffer.append("=");
- buffer.append(URLEncoder.encode(value, "UTF-8"));
- count++;
- }
- }
- }
- }
- }
- if (buffer.length() > 0) {
- buffer.insert(0, '?');
- }
- return String.format("%s%s", context, buffer.toString());
- }
-
- private boolean canConnect(String urlString) throws IOException {
- boolean canConnect = false;
- HttpURLConnection connection = null;
- try {
- URL url = new URL(urlString);
- connection = (HttpURLConnection) url.openConnection();
- connection.connect();
- canConnect = true;
- } finally {
- if (connection != null) {
- connection.disconnect();
- }
- }
- return canConnect;
- }
-
- private String getNormalizedAddress(String remoteAddress) throws UnknownHostException {
- if (remoteAddress.equals("127.0.0.1") || remoteAddress.equals("localhost")) {
- remoteAddress = InetAddress.getLocalHost().getHostAddress();
- }
- return remoteAddress;
- }
-
- private boolean isSessionValid(ISession session) {
- boolean result = false;
- StorageState storageState = session.getStorageState();
- if (storageState != StorageState.DELETED && storageState != StorageState.PURGED) {
- try {
- String urlString = getRemoteHostUrl(session);
- result = canConnect(urlString);
- } catch (Exception ex) {
- }
- }
- return result;
- }
-
- private int getSessionPort(HttpServletRequest request) throws UnknownHostException, OseeCoreException {
- String remoteAddress = getNormalizedAddress(request.getRemoteAddr());
- String sessionId = request.getParameter("sessionId");
-
- ISession sessionData = null;
- if (Strings.isValid(sessionId)) {
- sessionData = sessionManager.getSessionById(sessionId);
- if (sessionData != null) {
- if (!sessionData.getClientAddress().equals(remoteAddress) || !isSessionValid(sessionData)) {
- sessionData = null;
- }
- }
- }
-
- if (sessionData == null) {
- Collection<ISession> sessions = sessionManager.getSessionByClientAddress(remoteAddress);
- if (!sessions.isEmpty()) {
- for (ISession session : sessions) {
- if (sessionData == null) {
- if (isSessionValid(session)) {
- sessionData = session;
- }
- } else {
- if (sessionData.getLastInteractionDate().getTime() < session.getLastInteractionDate().getTime()) {
- if (isSessionValid(session)) {
- sessionData = session;
- }
- }
- }
- }
- }
- }
- return sessionData != null ? sessionData.getClientPort() : -1;
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; +import java.net.InetAddress; +import java.net.URL; +import java.net.URLEncoder; +import java.net.UnknownHostException; +import java.util.Arrays; +import java.util.Collection; +import java.util.Enumeration; +import java.util.logging.Level; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.data.OseeServerContext; +import org.eclipse.osee.framework.core.enums.StorageState; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.server.ISession; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Roberto E. Escobar + */ +public class SessionClientLoopbackServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = 6402608843937837246L; + + private final ISessionManager sessionManager; + + public SessionClientLoopbackServlet(ISessionManager sessionManager) { + super(); + this.sessionManager = sessionManager; + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + try { + int remotePort = getSessionPort(request); + response.setContentType("text/plain"); + String url = null; + if (remotePort > -1) { + // Session found - redirect to client. + url = String.format("http://%s:%s/%s", request.getRemoteAddr(), remotePort, getLoopbackPostfix(request)); + } else { + // No session found - redirect to web browser request handler. + url = + String.format("http://%s:%s/%s?%s", getNormalizedAddress(request.getLocalAddr()), + request.getLocalPort(), OseeServerContext.ARTIFACT_CONTEXT, request.getQueryString()); + } + response.sendRedirect(url); + } catch (Exception ex) { + response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, + String.format("Error processing request [%s]", request.getQueryString())); + } finally { + response.flushBuffer(); + } + } + + private String getRemoteHostUrl(ISession session) { + String clientAddress = session.getClientAddress(); + try { + if (Arrays.equals(InetAddress.getByName(clientAddress).getAddress(), InetAddress.getLocalHost().getAddress())) { + clientAddress = "localhost"; + } + } catch (UnknownHostException ex) { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + return String.format("http://%s:%s/", clientAddress, session.getClientPort()); + } + + private String getLoopbackPostfix(HttpServletRequest request) throws UnsupportedEncodingException { + StringBuffer buffer = new StringBuffer(); + String context = ""; + Enumeration<?> enumeration = request.getParameterNames(); + int count = 0; + while (enumeration.hasMoreElements()) { + Object object = enumeration.nextElement(); + if (object instanceof String) { + String key = (String) object; + if (!key.equals("sessionId")) { + String value = request.getParameter(key); + if (Strings.isValid(value)) { + if (key.equals("context")) { + context = value; + if (context.startsWith("/")) { + context = context.substring(1, context.length()); + } + } else { + if (count != 0) { + buffer.append("&"); + } + buffer.append(key); + buffer.append("="); + buffer.append(URLEncoder.encode(value, "UTF-8")); + count++; + } + } + } + } + } + if (buffer.length() > 0) { + buffer.insert(0, '?'); + } + return String.format("%s%s", context, buffer.toString()); + } + + private boolean canConnect(String urlString) throws IOException { + boolean canConnect = false; + HttpURLConnection connection = null; + try { + URL url = new URL(urlString); + connection = (HttpURLConnection) url.openConnection(); + connection.connect(); + canConnect = true; + } finally { + if (connection != null) { + connection.disconnect(); + } + } + return canConnect; + } + + private String getNormalizedAddress(String remoteAddress) throws UnknownHostException { + if (remoteAddress.equals("127.0.0.1") || remoteAddress.equals("localhost")) { + remoteAddress = InetAddress.getLocalHost().getHostAddress(); + } + return remoteAddress; + } + + private boolean isSessionValid(ISession session) { + boolean result = false; + StorageState storageState = session.getStorageState(); + if (storageState != StorageState.DELETED && storageState != StorageState.PURGED) { + try { + String urlString = getRemoteHostUrl(session); + result = canConnect(urlString); + } catch (Exception ex) { + } + } + return result; + } + + private int getSessionPort(HttpServletRequest request) throws UnknownHostException, OseeCoreException { + String remoteAddress = getNormalizedAddress(request.getRemoteAddr()); + String sessionId = request.getParameter("sessionId"); + + ISession sessionData = null; + if (Strings.isValid(sessionId)) { + sessionData = sessionManager.getSessionById(sessionId); + if (sessionData != null) { + if (!sessionData.getClientAddress().equals(remoteAddress) || !isSessionValid(sessionData)) { + sessionData = null; + } + } + } + + if (sessionData == null) { + Collection<ISession> sessions = sessionManager.getSessionByClientAddress(remoteAddress); + if (!sessions.isEmpty()) { + for (ISession session : sessions) { + if (sessionData == null) { + if (isSessionValid(session)) { + sessionData = session; + } + } else { + if (sessionData.getLastInteractionDate().getTime() < session.getLastInteractionDate().getTime()) { + if (isSessionValid(session)) { + sessionData = session; + } + } + } + } + } + } + return sessionData != null ? sessionData.getClientPort() : -1; + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java index 244ba375a3a..7092871dada 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SessionManagementServlet.java @@ -1,158 +1,158 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.data.OseeCredential;
-import org.eclipse.osee.framework.core.data.OseeSessionGrant;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
-import org.eclipse.osee.framework.core.server.IAuthenticationManager;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class SessionManagementServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = 3334123351267606890L;
-
- private static enum OperationType {
- CREATE,
- RELEASE,
- INVALID;
-
- public static OperationType fromString(String value) {
- OperationType toReturn = OperationType.INVALID;
- for (OperationType operType : OperationType.values()) {
- if (operType.name().equalsIgnoreCase(value)) {
- toReturn = operType;
- break;
- }
- }
- return toReturn;
- }
- }
-
- private final IAuthenticationManager authenticationManager;
- private final ISessionManager sessionManager;
-
- public SessionManagementServlet(ISessionManager sessionManager, IAuthenticationManager authenticationManager) {
- super();
- this.sessionManager = sessionManager;
- this.authenticationManager = authenticationManager;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- try {
- String[] protocols = authenticationManager.getProtocols();
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentType("text/plain");
- response.setCharacterEncoding("UTF-8");
- response.getWriter().write(Arrays.deepToString(protocols));
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Error processing request for protocols [%s]", request.toString()), ex);
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- response.getWriter().write(Lib.exceptionToString(ex));
- } finally {
- response.getWriter().flush();
- response.getWriter().close();
- }
- }
-
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
- String operation = request.getParameter("operation");
- try {
- OperationType operationType = OperationType.fromString(operation);
- switch (operationType) {
- case CREATE:
- createSession(request, response);
- break;
- case RELEASE:
- releaseSession(request, response);
- break;
- default:
- break;
- }
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Error processing session request [%s]", request.toString()), ex);
- response.getWriter().write(Lib.exceptionToString(ex));
- response.getWriter().flush();
- response.getWriter().close();
- }
- }
-
- private void createSession(HttpServletRequest request, HttpServletResponse response) throws OseeCoreException {
- try {
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- Lib.inputStreamToOutputStream(request.getInputStream(), outputStream);
- byte[] bytes = outputStream.toByteArray();
- // TODO Decrypt credential info
-
- OseeCredential credential = OseeCredential.fromXml(new ByteArrayInputStream(bytes));
- OseeSessionGrant oseeSessionGrant = sessionManager.createSession(credential);
-
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
- ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
- oseeSessionGrant.write(byteOutputStream);
-
- // TODO after encrypted these will need to change
- response.setContentType("application/xml");
- response.setCharacterEncoding("UTF-8");
- response.setContentLength(byteOutputStream.size());
- Lib.inputStreamToOutputStream(new ByteArrayInputStream(byteOutputStream.toByteArray()),
- response.getOutputStream());
-
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- } finally {
- try {
- response.getOutputStream().flush();
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- }
- }
-
- private void releaseSession(HttpServletRequest request, HttpServletResponse response) throws OseeCoreException {
- try {
- String sessionId = request.getParameter("sessionId");
- sessionManager.releaseSession(sessionId);
- response.setStatus(HttpServletResponse.SC_ACCEPTED);
- response.setContentType("text/plain");
- response.getWriter().write(String.format("Session [%s] released.", sessionId));
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- } finally {
- try {
- response.getWriter().flush();
- response.getWriter().close();
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Arrays; +import java.util.logging.Level; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.data.OseeCredential; +import org.eclipse.osee.framework.core.data.OseeSessionGrant; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeExceptions; +import org.eclipse.osee.framework.core.server.IAuthenticationManager; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Roberto E. Escobar + */ +public class SessionManagementServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = 3334123351267606890L; + + private static enum OperationType { + CREATE, + RELEASE, + INVALID; + + public static OperationType fromString(String value) { + OperationType toReturn = OperationType.INVALID; + for (OperationType operType : OperationType.values()) { + if (operType.name().equalsIgnoreCase(value)) { + toReturn = operType; + break; + } + } + return toReturn; + } + } + + private final IAuthenticationManager authenticationManager; + private final ISessionManager sessionManager; + + public SessionManagementServlet(ISessionManager sessionManager, IAuthenticationManager authenticationManager) { + super(); + this.sessionManager = sessionManager; + this.authenticationManager = authenticationManager; + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + try { + String[] protocols = authenticationManager.getProtocols(); + response.setStatus(HttpServletResponse.SC_OK); + response.setContentType("text/plain"); + response.setCharacterEncoding("UTF-8"); + response.getWriter().write(Arrays.deepToString(protocols)); + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error processing request for protocols [%s]", request.toString()), ex); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.getWriter().write(Lib.exceptionToString(ex)); + } finally { + response.getWriter().flush(); + response.getWriter().close(); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + String operation = request.getParameter("operation"); + try { + OperationType operationType = OperationType.fromString(operation); + switch (operationType) { + case CREATE: + createSession(request, response); + break; + case RELEASE: + releaseSession(request, response); + break; + default: + break; + } + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error processing session request [%s]", request.toString()), ex); + response.getWriter().write(Lib.exceptionToString(ex)); + response.getWriter().flush(); + response.getWriter().close(); + } + } + + private void createSession(HttpServletRequest request, HttpServletResponse response) throws OseeCoreException { + try { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + Lib.inputStreamToOutputStream(request.getInputStream(), outputStream); + byte[] bytes = outputStream.toByteArray(); + // TODO Decrypt credential info + + OseeCredential credential = OseeCredential.fromXml(new ByteArrayInputStream(bytes)); + OseeSessionGrant oseeSessionGrant = sessionManager.createSession(credential); + + response.setStatus(HttpServletResponse.SC_ACCEPTED); + ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(); + oseeSessionGrant.write(byteOutputStream); + + // TODO after encrypted these will need to change + response.setContentType("application/xml"); + response.setCharacterEncoding("UTF-8"); + response.setContentLength(byteOutputStream.size()); + Lib.inputStreamToOutputStream(new ByteArrayInputStream(byteOutputStream.toByteArray()), + response.getOutputStream()); + + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } finally { + try { + response.getOutputStream().flush(); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } + } + } + + private void releaseSession(HttpServletRequest request, HttpServletResponse response) throws OseeCoreException { + try { + String sessionId = request.getParameter("sessionId"); + sessionManager.releaseSession(sessionId); + response.setStatus(HttpServletResponse.SC_ACCEPTED); + response.setContentType("text/plain"); + response.getWriter().write(String.format("Session [%s] released.", sessionId)); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } finally { + try { + response.getWriter().flush(); + response.getWriter().close(); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java index bb54b924e9a..6b38c422b59 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/SystemManagerServlet.java @@ -1,303 +1,303 @@ -/*******************************************************************************
- * 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.framework.manager.servlet;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.logging.Level;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.data.OseeServerContext;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.server.ISession;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet;
-import org.eclipse.osee.framework.core.util.HttpProcessor;
-import org.eclipse.osee.framework.jdk.core.util.AHTML;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.data.HttpSystemManagerCreationInfo;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Donald G. Dunne
- */
-public class SystemManagerServlet extends UnsecuredOseeHttpServlet {
-
- private static final long serialVersionUID = 3334123351267606890L;
-
- private static enum Command {
- user,
- delete,
- alive,
- invalid,
- overview;
- }
-
- private final ISessionManager sessionManager;
-
- public SystemManagerServlet(ISessionManager sessionManager) {
- this.sessionManager = sessionManager;
- }
-
- @Override
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
- try {
- Command command = Command.overview;
- String cmd = request.getParameter("cmd");
- if (Strings.isValid(cmd)) {
- command = Command.valueOf(cmd);
- }
- switch (command) {
- case user:
- displayUser(request, response);
- break;
- case delete:
- deleteSession(request, response);
- break;
- case alive:
- sessionAlive(request, response);
- break;
- default:
- displayOverview(request, response);
- break;
- }
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Error processing request for protocols [%s]", request.toString()), ex);
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- response.getWriter().write(Lib.exceptionToString(ex));
- } finally {
- response.getWriter().flush();
- response.getWriter().close();
- }
- }
-
- private void displayOverview(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String requestAddress = request.getLocalAddr();
- String requestPort = String.valueOf(request.getLocalPort());
-
- StringBuffer sb = new StringBuffer(1000);
- try {
- sb.append(AHTML.heading(2, "OSEE Dashboard"));
- sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort));
- sb.append(AHTML.newline(2));
- sb.append(getSessionByUserIdEntry(request, response));
- sb.append(getSessions(requestAddress, requestPort));
- } catch (Exception ex) {
- sb.append("Exception: ");
- sb.append(Lib.exceptionToString(ex));
- }
- displayResults(sb.toString(), request, response);
- }
-
- private String getSessionByUserIdEntry(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- StringBuffer sb = new StringBuffer(1000);
- try {
- sb.append("<form METHOD=GET ACTION=\"http://" + request.getLocalAddr() + ":" + request.getLocalPort() + "/osee/manager\">");
- sb.append("By UserId: <input TYPE=\"text\" NAME=\"userId\" SIZE=\"10\" MAXLENGTH=\"10\">");
- sb.append("<input TYPE=\"hidden\" NAME=\"cmd\" VALUE=\"user\">");
- sb.append("<INPUT TYPE=SUBMIT></form>");
- } catch (Exception ex) {
- sb.append("Exception: ");
- sb.append(Lib.exceptionToString(ex));
- }
- return sb.toString();
- }
-
- private void displayUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- StringBuffer sb = new StringBuffer(1000);
- try {
- HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request);
- String requestAddress = request.getLocalAddr();
- String requestPort = String.valueOf(request.getLocalPort());
- String userId = info.getUserId();
- if (!Strings.isValid(userId)) {
- sb.append("Invalid userId [" + userId + "]");
- } else {
- sb.append(AHTML.heading(2, "OSEE System Manager"));
- sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort));
- sb.append(AHTML.newline(1));
- sb.append(getSessionsByUserId(userId, requestAddress, requestPort));
- }
- } catch (Exception ex) {
- sb.append("Exception: ");
- sb.append(Lib.exceptionToString(ex));
- }
- displayResults(sb.toString(), request, response);
- }
-
- private void deleteSession(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- StringBuffer sb = new StringBuffer(1000);
- try {
- HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request);
- if (!Strings.isValid(info.getSessionId())) {
- sb.append("Invalid userId [" + info.getSessionId() + "]");
- } else {
- sessionManager.releaseSessionImmediate(info.getSessionId());
- sb.append("Deleted session [" + info.getSessionId() + "]");
- }
- } catch (OseeCoreException ex) {
- sb.append("Exception: " + ex.getLocalizedMessage());
- }
- displayResults(sb.toString(), request, response);
- }
-
- private void sessionAlive(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- StringBuffer sb = new StringBuffer(1000);
- try {
- HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request);
- if (!Strings.isValid(info.getSessionId())) {
- sb.append("Invalid userId [" + info.getSessionId() + "]");
- } else {
- try {
- ISession session = sessionManager.getSessionById(info.getSessionId());
- if (session == null) {
- sb.append("Can't retrieve SessionData for [" + info.getSessionId() + "]");
- return;
- }
- String clientAddress = session.getClientAddress();
- String clientPort = String.valueOf(session.getClientPort());
- String url = String.format("http://%s:%s/osee/request?cmd=pingId", clientAddress, clientPort);
- String responseStr = HttpProcessor.acquireString(new URL(url));
- if (responseStr == null || responseStr.equals("")) {
- sb.append("[" + info.getSessionId() + "] not responding to info request");
- } else if (!responseStr.contains(info.getSessionId())) {
- sb.append("NOT ALIVE - [" + info.getSessionId() + "] (response, but mismatched sessionId)");
- } else {
- sb.append("ALIVE - [" + info.getSessionId() + "]");
- }
- } catch (Exception ex) {
- OseeLog.log(this.getClass(), Level.SEVERE, ex);
- sb.append("Exception: " + ex.getLocalizedMessage());
- }
- }
- } catch (OseeCoreException ex) {
- sb.append("Exception: " + ex.getLocalizedMessage());
- }
- displayResults(sb.toString(), request, response);
- }
-
- private void displayResults(String results, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- try {
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentType("text/html");
- response.setCharacterEncoding("UTF-8");
- response.getWriter().write(results + AHTML.newline() + "As of: " + new Date());
- } catch (Exception ex) {
- OseeLog.log(Activator.class, Level.SEVERE,
- String.format("Error processing request for protocols [%s]", request.toString()), ex);
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- response.setContentType("text/plain");
- response.getWriter().write(Lib.exceptionToString(ex));
- } finally {
- response.getWriter().flush();
- response.getWriter().close();
- }
- }
-
- private String getSessions(String requestAddress, String requestPort) throws Exception {
- Collection<ISession> sessionData = sessionManager.getAllSessions(true);
- return createSessionTable(sessionData, "Sessions", requestAddress, requestPort);
- }
-
- private String getSessionsByUserId(String userId, String requestAddress, String requestPort) throws Exception {
- Collection<ISession> sessionData = sessionManager.getSessionsByUserId(userId, true);
- return createSessionTable(sessionData, "Sessions for [" + userId + "]", requestAddress, requestPort);
- }
-
- private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm a");
-
- enum AnchorType {
- INFO_ANCHOR,
- ALIVE_ANCHOR,
- LOG_ANCHOR,
- DELETE_ANCHOR,
- MANAGER_HOME_ANCHOR;
- }
-
- private String createAnchor(AnchorType anchorType, String sessionId, String address, String port) throws UnsupportedEncodingException {
- String toReturn = Strings.emptyString();
- switch (anchorType) {
- case INFO_ANCHOR:
- toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=info\">info</a>", address, port);
- break;
- case LOG_ANCHOR:
- toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=log\">log</a>", address, port);
- break;
- case ALIVE_ANCHOR:
- String eSessionId = URLEncoder.encode(sessionId, "UTF-8");
- toReturn =
- String.format("<a href=\"http://%s:%s/%s?cmd=alive&sessionId=%s\">alive</a>", address, port,
- OseeServerContext.MANAGER_CONTEXT, eSessionId);
- break;
- case DELETE_ANCHOR:
- String encodedSessionId = URLEncoder.encode(sessionId, "UTF-8");
- toReturn =
- String.format("<a href=\"http://%s:%s/%s?cmd=delete&sessionId=%s\">delete</a>", address, port,
- OseeServerContext.MANAGER_CONTEXT, encodedSessionId);
- break;
- case MANAGER_HOME_ANCHOR:
- toReturn =
- String.format("<a href=\"http://%s:%s/%s\">Home</a>", address, port,
- OseeServerContext.MANAGER_CONTEXT);
- break;
- default:
- break;
- }
- return toReturn;
- }
-
- private String createSessionTable(Collection<ISession> sessionDatas, String title, String requestAddress, String requestPort) throws Exception {
- StringBuffer sb = new StringBuffer(1000);
- sb.append(AHTML.heading(3, title));
- sb.append(AHTML.beginMultiColumnTable(100, 1));
- sb.append(AHTML.addHeaderRowMultiColumnTable(new String[] {"Created", "Cmds", "User", "Version", "Machine",
- "Last Interaction", "IP", "Port", "Delete"}));
-
- List<String> items = new ArrayList<String>();
- for (ISession session : sessionDatas) {
- String sessionId = session.getGuid();
- String clientAddress = session.getClientAddress();
- String clientPort = String.valueOf(session.getClientPort());
-
- items.add(AHTML.addRowMultiColumnTable(new String[] {dateFormat.format(session.getCreationDate()),
- createCmds(sessionId, clientAddress, clientPort, requestAddress, requestPort), session.getUserId(),
- session.getClientVersion(), session.getClientMachineName(),
- dateFormat.format(session.getLastInteractionDate()), clientAddress, clientPort,
- createAnchor(AnchorType.DELETE_ANCHOR, sessionId, requestAddress, requestPort)}));
- }
- String[] sortedItems = items.toArray(new String[items.size()]);
- Arrays.sort(sortedItems);
- for (int x = sortedItems.length - 1; x >= 0; x--) {
- sb.append(sortedItems[x]);
- }
- sb.append(AHTML.endMultiColumnTable());
- return sb.toString();
- }
-
- private String createCmds(String sessionId, String clientAddress, String clientPort, String requestAddress, String requestPort) throws Exception {
- return createAnchor(AnchorType.ALIVE_ANCHOR, sessionId, requestAddress, requestPort) + " - " + createAnchor(
- AnchorType.INFO_ANCHOR, sessionId, clientAddress, clientPort) + " - " + createAnchor(
- AnchorType.LOG_ANCHOR, sessionId, clientAddress, clientPort);
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URL; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.logging.Level; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.data.OseeServerContext; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.server.ISession; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.UnsecuredOseeHttpServlet; +import org.eclipse.osee.framework.core.util.HttpProcessor; +import org.eclipse.osee.framework.jdk.core.util.AHTML; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.data.HttpSystemManagerCreationInfo; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Donald G. Dunne + */ +public class SystemManagerServlet extends UnsecuredOseeHttpServlet { + + private static final long serialVersionUID = 3334123351267606890L; + + private static enum Command { + user, + delete, + alive, + invalid, + overview; + } + + private final ISessionManager sessionManager; + + public SystemManagerServlet(ISessionManager sessionManager) { + this.sessionManager = sessionManager; + } + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { + try { + Command command = Command.overview; + String cmd = request.getParameter("cmd"); + if (Strings.isValid(cmd)) { + command = Command.valueOf(cmd); + } + switch (command) { + case user: + displayUser(request, response); + break; + case delete: + deleteSession(request, response); + break; + case alive: + sessionAlive(request, response); + break; + default: + displayOverview(request, response); + break; + } + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error processing request for protocols [%s]", request.toString()), ex); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.getWriter().write(Lib.exceptionToString(ex)); + } finally { + response.getWriter().flush(); + response.getWriter().close(); + } + } + + private void displayOverview(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String requestAddress = request.getLocalAddr(); + String requestPort = String.valueOf(request.getLocalPort()); + + StringBuffer sb = new StringBuffer(1000); + try { + sb.append(AHTML.heading(2, "OSEE Dashboard")); + sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort)); + sb.append(AHTML.newline(2)); + sb.append(getSessionByUserIdEntry(request, response)); + sb.append(getSessions(requestAddress, requestPort)); + } catch (Exception ex) { + sb.append("Exception: "); + sb.append(Lib.exceptionToString(ex)); + } + displayResults(sb.toString(), request, response); + } + + private String getSessionByUserIdEntry(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + sb.append("<form METHOD=GET ACTION=\"http://" + request.getLocalAddr() + ":" + request.getLocalPort() + "/osee/manager\">"); + sb.append("By UserId: <input TYPE=\"text\" NAME=\"userId\" SIZE=\"10\" MAXLENGTH=\"10\">"); + sb.append("<input TYPE=\"hidden\" NAME=\"cmd\" VALUE=\"user\">"); + sb.append("<INPUT TYPE=SUBMIT></form>"); + } catch (Exception ex) { + sb.append("Exception: "); + sb.append(Lib.exceptionToString(ex)); + } + return sb.toString(); + } + + private void displayUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); + String requestAddress = request.getLocalAddr(); + String requestPort = String.valueOf(request.getLocalPort()); + String userId = info.getUserId(); + if (!Strings.isValid(userId)) { + sb.append("Invalid userId [" + userId + "]"); + } else { + sb.append(AHTML.heading(2, "OSEE System Manager")); + sb.append(createAnchor(AnchorType.MANAGER_HOME_ANCHOR, null, requestAddress, requestPort)); + sb.append(AHTML.newline(1)); + sb.append(getSessionsByUserId(userId, requestAddress, requestPort)); + } + } catch (Exception ex) { + sb.append("Exception: "); + sb.append(Lib.exceptionToString(ex)); + } + displayResults(sb.toString(), request, response); + } + + private void deleteSession(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); + if (!Strings.isValid(info.getSessionId())) { + sb.append("Invalid userId [" + info.getSessionId() + "]"); + } else { + sessionManager.releaseSessionImmediate(info.getSessionId()); + sb.append("Deleted session [" + info.getSessionId() + "]"); + } + } catch (OseeCoreException ex) { + sb.append("Exception: " + ex.getLocalizedMessage()); + } + displayResults(sb.toString(), request, response); + } + + private void sessionAlive(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + StringBuffer sb = new StringBuffer(1000); + try { + HttpSystemManagerCreationInfo info = new HttpSystemManagerCreationInfo(request); + if (!Strings.isValid(info.getSessionId())) { + sb.append("Invalid userId [" + info.getSessionId() + "]"); + } else { + try { + ISession session = sessionManager.getSessionById(info.getSessionId()); + if (session == null) { + sb.append("Can't retrieve SessionData for [" + info.getSessionId() + "]"); + return; + } + String clientAddress = session.getClientAddress(); + String clientPort = String.valueOf(session.getClientPort()); + String url = String.format("http://%s:%s/osee/request?cmd=pingId", clientAddress, clientPort); + String responseStr = HttpProcessor.acquireString(new URL(url)); + if (responseStr == null || responseStr.equals("")) { + sb.append("[" + info.getSessionId() + "] not responding to info request"); + } else if (!responseStr.contains(info.getSessionId())) { + sb.append("NOT ALIVE - [" + info.getSessionId() + "] (response, but mismatched sessionId)"); + } else { + sb.append("ALIVE - [" + info.getSessionId() + "]"); + } + } catch (Exception ex) { + OseeLog.log(this.getClass(), Level.SEVERE, ex); + sb.append("Exception: " + ex.getLocalizedMessage()); + } + } + } catch (OseeCoreException ex) { + sb.append("Exception: " + ex.getLocalizedMessage()); + } + displayResults(sb.toString(), request, response); + } + + private void displayResults(String results, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + try { + response.setStatus(HttpServletResponse.SC_OK); + response.setContentType("text/html"); + response.setCharacterEncoding("UTF-8"); + response.getWriter().write(results + AHTML.newline() + "As of: " + new Date()); + } catch (Exception ex) { + OseeLog.log(Activator.class, Level.SEVERE, + String.format("Error processing request for protocols [%s]", request.toString()), ex); + response.setStatus(HttpServletResponse.SC_BAD_REQUEST); + response.setContentType("text/plain"); + response.getWriter().write(Lib.exceptionToString(ex)); + } finally { + response.getWriter().flush(); + response.getWriter().close(); + } + } + + private String getSessions(String requestAddress, String requestPort) throws Exception { + Collection<ISession> sessionData = sessionManager.getAllSessions(true); + return createSessionTable(sessionData, "Sessions", requestAddress, requestPort); + } + + private String getSessionsByUserId(String userId, String requestAddress, String requestPort) throws Exception { + Collection<ISession> sessionData = sessionManager.getSessionsByUserId(userId, true); + return createSessionTable(sessionData, "Sessions for [" + userId + "]", requestAddress, requestPort); + } + + private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd hh:mm a"); + + enum AnchorType { + INFO_ANCHOR, + ALIVE_ANCHOR, + LOG_ANCHOR, + DELETE_ANCHOR, + MANAGER_HOME_ANCHOR; + } + + private String createAnchor(AnchorType anchorType, String sessionId, String address, String port) throws UnsupportedEncodingException { + String toReturn = Strings.emptyString(); + switch (anchorType) { + case INFO_ANCHOR: + toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=info\">info</a>", address, port); + break; + case LOG_ANCHOR: + toReturn = String.format("<a href=\"http://%s:%s/osee/request?cmd=log\">log</a>", address, port); + break; + case ALIVE_ANCHOR: + String eSessionId = URLEncoder.encode(sessionId, "UTF-8"); + toReturn = + String.format("<a href=\"http://%s:%s/%s?cmd=alive&sessionId=%s\">alive</a>", address, port, + OseeServerContext.MANAGER_CONTEXT, eSessionId); + break; + case DELETE_ANCHOR: + String encodedSessionId = URLEncoder.encode(sessionId, "UTF-8"); + toReturn = + String.format("<a href=\"http://%s:%s/%s?cmd=delete&sessionId=%s\">delete</a>", address, port, + OseeServerContext.MANAGER_CONTEXT, encodedSessionId); + break; + case MANAGER_HOME_ANCHOR: + toReturn = + String.format("<a href=\"http://%s:%s/%s\">Home</a>", address, port, + OseeServerContext.MANAGER_CONTEXT); + break; + default: + break; + } + return toReturn; + } + + private String createSessionTable(Collection<ISession> sessionDatas, String title, String requestAddress, String requestPort) throws Exception { + StringBuffer sb = new StringBuffer(1000); + sb.append(AHTML.heading(3, title)); + sb.append(AHTML.beginMultiColumnTable(100, 1)); + sb.append(AHTML.addHeaderRowMultiColumnTable(new String[] {"Created", "Cmds", "User", "Version", "Machine", + "Last Interaction", "IP", "Port", "Delete"})); + + List<String> items = new ArrayList<String>(); + for (ISession session : sessionDatas) { + String sessionId = session.getGuid(); + String clientAddress = session.getClientAddress(); + String clientPort = String.valueOf(session.getClientPort()); + + items.add(AHTML.addRowMultiColumnTable(new String[] {dateFormat.format(session.getCreationDate()), + createCmds(sessionId, clientAddress, clientPort, requestAddress, requestPort), session.getUserId(), + session.getClientVersion(), session.getClientMachineName(), + dateFormat.format(session.getLastInteractionDate()), clientAddress, clientPort, + createAnchor(AnchorType.DELETE_ANCHOR, sessionId, requestAddress, requestPort)})); + } + String[] sortedItems = items.toArray(new String[items.size()]); + Arrays.sort(sortedItems); + for (int x = sortedItems.length - 1; x >= 0; x--) { + sb.append(sortedItems[x]); + } + sb.append(AHTML.endMultiColumnTable()); + return sb.toString(); + } + + private String createCmds(String sessionId, String clientAddress, String clientPort, String requestAddress, String requestPort) throws Exception { + return createAnchor(AnchorType.ALIVE_ANCHOR, sessionId, requestAddress, requestPort) + " - " + createAnchor( + AnchorType.INFO_ANCHOR, sessionId, clientAddress, clientPort) + " - " + createAnchor( + AnchorType.LOG_ANCHOR, sessionId, clientAddress, clientPort); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeRequest.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeRequest.java index 79ba0695d2b..bf183e3d802 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeRequest.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeRequest.java @@ -8,57 +8,57 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.manager.servlet;
-
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.servlet.http.HttpServletRequest;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.util.Conditions;
-import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp;
-import org.eclipse.osee.framework.manager.servlet.ats.XmlUtil;
-import org.w3c.dom.Element;
-
-public final class UnsubscribeRequest {
- private static final Matcher URI_PATTERN_MATCHER = Pattern.compile("group/(\\d+)?/user/(\\d+)").matcher("");
- private final String groupId;
- private final String userId;
-
- public UnsubscribeRequest(String groupId, String userId) {
- super();
- this.groupId = groupId;
- this.userId = userId;
- }
-
- public int getGroupId() {
- return Integer.parseInt(groupId);
- }
-
- public int getUserId() {
- return Integer.parseInt(userId);
- }
-
- public static UnsubscribeRequest createFromXML(HttpServletRequest request) throws IOException, Exception {
- Element rootElement = XmlUtil.readXML(request.getInputStream());
- String groupId = Jaxp.getChildText(rootElement, "groupId");
- String userId = Jaxp.getChildText(rootElement, "userId");
- Conditions.checkNotNullOrEmpty(groupId, "groupId");
- Conditions.checkNotNullOrEmpty(userId, "userId");
- return new UnsubscribeRequest(groupId, userId);
- }
-
- public static UnsubscribeRequest createFromURI(HttpServletRequest request) throws OseeCoreException {
- String uri = request.getRequestURI();
- String groupId = null;
- String userId = null;
- URI_PATTERN_MATCHER.reset(uri);
- if (URI_PATTERN_MATCHER.find()) {
- groupId = URI_PATTERN_MATCHER.group(1);
- userId = URI_PATTERN_MATCHER.group(2);
- }
- Conditions.checkNotNullOrEmpty(groupId, "groupId");
- Conditions.checkNotNullOrEmpty(userId, "userId");
- return new UnsubscribeRequest(groupId, userId);
- }
+package org.eclipse.osee.framework.manager.servlet; + +import java.io.IOException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.servlet.http.HttpServletRequest; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.util.Conditions; +import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp; +import org.eclipse.osee.framework.manager.servlet.ats.XmlUtil; +import org.w3c.dom.Element; + +public final class UnsubscribeRequest { + private static final Matcher URI_PATTERN_MATCHER = Pattern.compile("group/(\\d+)?/user/(\\d+)").matcher(""); + private final String groupId; + private final String userId; + + public UnsubscribeRequest(String groupId, String userId) { + super(); + this.groupId = groupId; + this.userId = userId; + } + + public int getGroupId() { + return Integer.parseInt(groupId); + } + + public int getUserId() { + return Integer.parseInt(userId); + } + + public static UnsubscribeRequest createFromXML(HttpServletRequest request) throws IOException, Exception { + Element rootElement = XmlUtil.readXML(request.getInputStream()); + String groupId = Jaxp.getChildText(rootElement, "groupId"); + String userId = Jaxp.getChildText(rootElement, "userId"); + Conditions.checkNotNullOrEmpty(groupId, "groupId"); + Conditions.checkNotNullOrEmpty(userId, "userId"); + return new UnsubscribeRequest(groupId, userId); + } + + public static UnsubscribeRequest createFromURI(HttpServletRequest request) throws OseeCoreException { + String uri = request.getRequestURI(); + String groupId = null; + String userId = null; + URI_PATTERN_MATCHER.reset(uri); + if (URI_PATTERN_MATCHER.find()) { + groupId = URI_PATTERN_MATCHER.group(1); + userId = URI_PATTERN_MATCHER.group(2); + } + Conditions.checkNotNullOrEmpty(groupId, "groupId"); + Conditions.checkNotNullOrEmpty(userId, "userId"); + return new UnsubscribeRequest(groupId, userId); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeTransaction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeTransaction.java index 185651dad10..88bef344f67 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeTransaction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/UnsubscribeTransaction.java @@ -8,112 +8,112 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.manager.servlet;
-
-import java.sql.Timestamp;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.branch.management.commit.UpdatePreviousTxCurrent;
-import org.eclipse.osee.framework.core.enums.CoreRelationTypes;
-import org.eclipse.osee.framework.core.enums.ModificationType;
-import org.eclipse.osee.framework.core.enums.TransactionDetailsType;
-import org.eclipse.osee.framework.core.enums.TxChange;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeDataStoreException;
-import org.eclipse.osee.framework.core.exception.OseeStateException;
-import org.eclipse.osee.framework.core.model.Branch;
-import org.eclipse.osee.framework.core.model.type.RelationType;
-import org.eclipse.osee.framework.core.services.IOseeCachingService;
-import org.eclipse.osee.framework.database.IOseeDatabaseServiceProvider;
-import org.eclipse.osee.framework.database.core.AbstractDbTxOperation;
-import org.eclipse.osee.framework.database.core.IOseeStatement;
-import org.eclipse.osee.framework.database.core.OseeConnection;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.time.GlobalTime;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-public final class UnsubscribeTransaction extends AbstractDbTxOperation {
- private final static String SELECT_RELATION_LINK =
- "select txs.gamma_id, rel.rel_link_id, txs.mod_type from osee_relation_link rel, osee_txs txs where rel.a_art_id = ? and rel.b_art_id = ? and rel.rel_link_type_id = ? and rel.gamma_id=txs.gamma_id and txs.branch_id = ? and txs.tx_current <> ? order by txs.tx_current";
- private final static String INSERT_INTO_TX_DETAILS =
- "insert into osee_tx_details (branch_id, transaction_id, osee_comment, time, author, tx_type) values (?,?,?,?,?,?)";
- private final static String INSERT_INTO_TXS =
- "insert into osee_txs (mod_type, tx_current, transaction_id, gamma_id, branch_id) values (?, ?, ?, ?, ?)";
-
- private Branch common;
- private int relationId;
- private int currentGammaId;
- private final UnsubscribeRequest unsubscribeData;
- private final IOseeCachingService cacheService;
- private String completionMethod;
-
- public UnsubscribeTransaction(IOseeDatabaseServiceProvider provider, IOseeCachingService cacheService, UnsubscribeRequest unsubscribeData) {
- super(provider, "Delete Relation", Activator.PLUGIN_ID);
- this.unsubscribeData = unsubscribeData;
- this.cacheService = cacheService;
- }
-
- @Override
- protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException {
- if (getRelationTxData()) {
- UpdatePreviousTxCurrent txc = new UpdatePreviousTxCurrent(common, connection);
- txc.addRelation(relationId);
- txc.updateTxNotCurrents();
-
- createNewTxAddressing(connection);
- }
- }
-
- private boolean getRelationTxData() throws OseeCoreException {
- common = cacheService.getBranchCache().getCommonBranch();
- RelationType relationType = cacheService.getRelationTypeCache().get(CoreRelationTypes.Users_Artifact);
- IOseeStatement chStmt = getDatabaseService().getStatement();
-
- try {
- chStmt.runPreparedQuery(1, SELECT_RELATION_LINK, unsubscribeData.getGroupId(), unsubscribeData.getUserId(),
- relationType.getId(), common.getId(), TxChange.NOT_CURRENT.getValue());
- if (chStmt.next()) {
- currentGammaId = chStmt.getInt("gamma_id");
- relationId = chStmt.getInt("rel_link_id");
- int modType = chStmt.getInt("mod_type");
- return ensureNotAlreadyDeleted(modType);
- } else {
- throw new OseeStateException(String.format(
- "No existing relation (deleted or otherwise) was found for group [%s] and user [%s].",
- unsubscribeData.getGroupId(), unsubscribeData.getUserId()));
- }
- } finally {
- Lib.close(chStmt);
- }
- }
-
- private boolean ensureNotAlreadyDeleted(int modType) {
- if (modType == ModificationType.ARTIFACT_DELETED.getValue() || modType == ModificationType.DELETED.getValue()) {
- completionMethod =
- String.format("<br/>You have already been removed from the group.<br/> group [%s] user [%s]",
- unsubscribeData.getGroupId(), unsubscribeData.getUserId());
- return false;
- } else {
- completionMethod = String.format("<br/>You have been successfully unsubscribed.");
- return true;
- }
- }
-
- @SuppressWarnings("unchecked")
- private void createNewTxAddressing(OseeConnection connection) throws OseeDataStoreException {
- int transactionId = getDatabaseService().getSequence().getNextTransactionId();
- String comment =
- String.format("User %s requested unsubscribe from group %s", unsubscribeData.getUserId(),
- unsubscribeData.getGroupId());
- Timestamp timestamp = GlobalTime.GreenwichMeanTimestamp();
- int txType = TransactionDetailsType.NonBaselined.getId();
-
- getDatabaseService().runPreparedUpdate(connection, INSERT_INTO_TX_DETAILS, common.getId(), transactionId,
- comment, timestamp, unsubscribeData.getUserId(), txType);
- getDatabaseService().runPreparedUpdate(connection, INSERT_INTO_TXS, ModificationType.DELETED.getValue(),
- TxChange.DELETED.getValue(), transactionId, currentGammaId, common.getId());
- }
-
- public String getCompletionMessage() {
- return completionMethod;
- }
+package org.eclipse.osee.framework.manager.servlet; + +import java.sql.Timestamp; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.branch.management.commit.UpdatePreviousTxCurrent; +import org.eclipse.osee.framework.core.enums.CoreRelationTypes; +import org.eclipse.osee.framework.core.enums.ModificationType; +import org.eclipse.osee.framework.core.enums.TransactionDetailsType; +import org.eclipse.osee.framework.core.enums.TxChange; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeDataStoreException; +import org.eclipse.osee.framework.core.exception.OseeStateException; +import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.core.model.type.RelationType; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.database.IOseeDatabaseServiceProvider; +import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; +import org.eclipse.osee.framework.database.core.IOseeStatement; +import org.eclipse.osee.framework.database.core.OseeConnection; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.time.GlobalTime; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +public final class UnsubscribeTransaction extends AbstractDbTxOperation { + private final static String SELECT_RELATION_LINK = + "select txs.gamma_id, rel.rel_link_id, txs.mod_type from osee_relation_link rel, osee_txs txs where rel.a_art_id = ? and rel.b_art_id = ? and rel.rel_link_type_id = ? and rel.gamma_id=txs.gamma_id and txs.branch_id = ? and txs.tx_current <> ? order by txs.tx_current"; + private final static String INSERT_INTO_TX_DETAILS = + "insert into osee_tx_details (branch_id, transaction_id, osee_comment, time, author, tx_type) values (?,?,?,?,?,?)"; + private final static String INSERT_INTO_TXS = + "insert into osee_txs (mod_type, tx_current, transaction_id, gamma_id, branch_id) values (?, ?, ?, ?, ?)"; + + private Branch common; + private int relationId; + private int currentGammaId; + private final UnsubscribeRequest unsubscribeData; + private final IOseeCachingService cacheService; + private String completionMethod; + + public UnsubscribeTransaction(IOseeDatabaseServiceProvider provider, IOseeCachingService cacheService, UnsubscribeRequest unsubscribeData) { + super(provider, "Delete Relation", Activator.PLUGIN_ID); + this.unsubscribeData = unsubscribeData; + this.cacheService = cacheService; + } + + @Override + protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException { + if (getRelationTxData()) { + UpdatePreviousTxCurrent txc = new UpdatePreviousTxCurrent(common, connection); + txc.addRelation(relationId); + txc.updateTxNotCurrents(); + + createNewTxAddressing(connection); + } + } + + private boolean getRelationTxData() throws OseeCoreException { + common = cacheService.getBranchCache().getCommonBranch(); + RelationType relationType = cacheService.getRelationTypeCache().get(CoreRelationTypes.Users_Artifact); + IOseeStatement chStmt = getDatabaseService().getStatement(); + + try { + chStmt.runPreparedQuery(1, SELECT_RELATION_LINK, unsubscribeData.getGroupId(), unsubscribeData.getUserId(), + relationType.getId(), common.getId(), TxChange.NOT_CURRENT.getValue()); + if (chStmt.next()) { + currentGammaId = chStmt.getInt("gamma_id"); + relationId = chStmt.getInt("rel_link_id"); + int modType = chStmt.getInt("mod_type"); + return ensureNotAlreadyDeleted(modType); + } else { + throw new OseeStateException(String.format( + "No existing relation (deleted or otherwise) was found for group [%s] and user [%s].", + unsubscribeData.getGroupId(), unsubscribeData.getUserId())); + } + } finally { + Lib.close(chStmt); + } + } + + private boolean ensureNotAlreadyDeleted(int modType) { + if (modType == ModificationType.ARTIFACT_DELETED.getValue() || modType == ModificationType.DELETED.getValue()) { + completionMethod = + String.format("<br/>You have already been removed from the group.<br/> group [%s] user [%s]", + unsubscribeData.getGroupId(), unsubscribeData.getUserId()); + return false; + } else { + completionMethod = String.format("<br/>You have been successfully unsubscribed."); + return true; + } + } + + @SuppressWarnings("unchecked") + private void createNewTxAddressing(OseeConnection connection) throws OseeDataStoreException { + int transactionId = getDatabaseService().getSequence().getNextTransactionId(); + String comment = + String.format("User %s requested unsubscribe from group %s", unsubscribeData.getUserId(), + unsubscribeData.getGroupId()); + Timestamp timestamp = GlobalTime.GreenwichMeanTimestamp(); + int txType = TransactionDetailsType.NonBaselined.getId(); + + getDatabaseService().runPreparedUpdate(connection, INSERT_INTO_TX_DETAILS, common.getId(), transactionId, + comment, timestamp, unsubscribeData.getUserId(), txType); + getDatabaseService().runPreparedUpdate(connection, INSERT_INTO_TXS, ModificationType.DELETED.getValue(), + TxChange.DELETED.getValue(), transactionId, currentGammaId, common.getId()); + } + + public String getCompletionMessage() { + return completionMethod; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceLocatorProvider.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceLocatorProvider.java index 438a184bb11..0192d83a9d1 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceLocatorProvider.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceLocatorProvider.java @@ -1,76 +1,76 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.net.URI;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorProvider;
-import org.eclipse.osee.framework.resource.management.exception.MalformedLocatorException;
-import org.eclipse.osee.framework.resource.management.util.ResourceLocator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AtsResourceLocatorProvider implements IResourceLocatorProvider {
- public static final String PROTOCOL = "atsData";
-
- @Override
- public IResourceLocator generateResourceLocator(String seed, String name) throws OseeCoreException {
- URI uri = null;
- try {
- uri = new URI(generatePath(name));
- } catch (Exception ex) {
- throw new MalformedLocatorException(ex);
- }
- return new ResourceLocator(uri);
- }
-
- @Override
- public IResourceLocator getResourceLocator(String path) throws OseeCoreException {
- URI uri = null;
- if (isPathValid(path) != false) {
- try {
- uri = new URI(path);
- } catch (Exception ex) {
- throw new MalformedLocatorException(ex);
- }
- } else {
- throw new MalformedLocatorException(String.format("Invalid path hint: [%s]", path));
- }
- return new ResourceLocator(uri);
- }
-
- @Override
- public String getSupportedProtocol() {
- return PROTOCOL;
- }
-
- @Override
- public boolean isValid(String protocol) {
- return Strings.isValid(protocol) != false && protocol.startsWith(getSupportedProtocol()) != false;
- }
-
- private boolean isPathValid(String value) {
- return Strings.isValid(value) && value.startsWith(getSupportedProtocol() + "://");
- }
-
- private String generatePath(String name) throws MalformedLocatorException {
- StringBuilder builder = new StringBuilder(getSupportedProtocol() + "://");
- if (Strings.isValid(name)) {
- builder.append(name);
- } else {
- throw new MalformedLocatorException("Invalid arguments during locator generation.");
- }
- return builder.toString();
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.net.URI; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.resource.management.IResourceLocator; +import org.eclipse.osee.framework.resource.management.IResourceLocatorProvider; +import org.eclipse.osee.framework.resource.management.exception.MalformedLocatorException; +import org.eclipse.osee.framework.resource.management.util.ResourceLocator; + +/** + * @author Roberto E. Escobar + */ +public class AtsResourceLocatorProvider implements IResourceLocatorProvider { + public static final String PROTOCOL = "atsData"; + + @Override + public IResourceLocator generateResourceLocator(String seed, String name) throws OseeCoreException { + URI uri = null; + try { + uri = new URI(generatePath(name)); + } catch (Exception ex) { + throw new MalformedLocatorException(ex); + } + return new ResourceLocator(uri); + } + + @Override + public IResourceLocator getResourceLocator(String path) throws OseeCoreException { + URI uri = null; + if (isPathValid(path) != false) { + try { + uri = new URI(path); + } catch (Exception ex) { + throw new MalformedLocatorException(ex); + } + } else { + throw new MalformedLocatorException(String.format("Invalid path hint: [%s]", path)); + } + return new ResourceLocator(uri); + } + + @Override + public String getSupportedProtocol() { + return PROTOCOL; + } + + @Override + public boolean isValid(String protocol) { + return Strings.isValid(protocol) != false && protocol.startsWith(getSupportedProtocol()) != false; + } + + private boolean isPathValid(String value) { + return Strings.isValid(value) && value.startsWith(getSupportedProtocol() + "://"); + } + + private String generatePath(String name) throws MalformedLocatorException { + StringBuilder builder = new StringBuilder(getSupportedProtocol() + "://"); + if (Strings.isValid(name)) { + builder.append(name); + } else { + throw new MalformedLocatorException("Invalid arguments during locator generation."); + } + return builder.toString(); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceProvider.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceProvider.java index 935e01b8810..a52d92c0053 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceProvider.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsResourceProvider.java @@ -1,94 +1,94 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.io.File;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Arrays;
-import java.util.Collection;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.server.OseeServerProperties;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-import org.eclipse.osee.framework.resource.management.IResourceProvider;
-import org.eclipse.osee.framework.resource.management.Options;
-import org.eclipse.osee.framework.resource.management.exception.MalformedLocatorException;
-import org.eclipse.osee.framework.resource.management.util.OptionsProcessor;
-/**
- * @author Roberto E. Escobar
- */
-public class AtsResourceProvider implements IResourceProvider {
- private static final String BASE_PATH = OseeServerProperties.getOseeApplicationServerData();
- private static final String RESOLVED_PATH =
- BASE_PATH + File.separator + AtsResourceLocatorProvider.PROTOCOL + File.separator;
-
- public AtsResourceProvider() {
- }
-
- public static String getExchangeFilePath() {
- return RESOLVED_PATH;
- }
-
- private URI resolve(IResourceLocator locator) throws OseeCoreException {
- URI toReturn = null;
- StringBuilder builder = new StringBuilder();
- String rawPath = locator.getRawPath();
- if (!rawPath.startsWith("file:/")) {
- builder.append(RESOLVED_PATH);
- builder.append(rawPath);
- toReturn = new File(builder.toString()).toURI();
- } else {
- rawPath = rawPath.replaceAll(" ", "%20");
- try {
- toReturn = new URI(rawPath);
- } catch (URISyntaxException ex) {
- throw new MalformedLocatorException(rawPath, ex);
- }
- }
- return toReturn;
- }
-
- @Override
- public IResource acquire(IResourceLocator locator, Options options) throws OseeCoreException {
- IResource toReturn = null;
- OptionsProcessor optionsProcessor = new OptionsProcessor(resolve(locator), locator, null, options);
- toReturn = optionsProcessor.getResourceToServer();
- return toReturn;
- }
-
- @Override
- public int delete(IResourceLocator locator) throws OseeCoreException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isValid(IResourceLocator locator) {
- return locator != null && getSupportedProtocols().contains(locator.getProtocol());
- }
-
- @Override
- public IResourceLocator save(IResourceLocator locator, IResource resource, Options options) throws OseeCoreException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean exists(IResourceLocator locator) throws OseeCoreException {
- URI uri = resolve(locator);
- File testFile = new File(uri);
- return testFile.exists();
- }
-
- @Override
- public Collection<String> getSupportedProtocols() {
- return Arrays.asList(AtsResourceLocatorProvider.PROTOCOL);
- }
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Arrays; +import java.util.Collection; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.server.OseeServerProperties; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.IResourceLocator; +import org.eclipse.osee.framework.resource.management.IResourceProvider; +import org.eclipse.osee.framework.resource.management.Options; +import org.eclipse.osee.framework.resource.management.exception.MalformedLocatorException; +import org.eclipse.osee.framework.resource.management.util.OptionsProcessor; +/** + * @author Roberto E. Escobar + */ +public class AtsResourceProvider implements IResourceProvider { + private static final String BASE_PATH = OseeServerProperties.getOseeApplicationServerData(); + private static final String RESOLVED_PATH = + BASE_PATH + File.separator + AtsResourceLocatorProvider.PROTOCOL + File.separator; + + public AtsResourceProvider() { + } + + public static String getExchangeFilePath() { + return RESOLVED_PATH; + } + + private URI resolve(IResourceLocator locator) throws OseeCoreException { + URI toReturn = null; + StringBuilder builder = new StringBuilder(); + String rawPath = locator.getRawPath(); + if (!rawPath.startsWith("file:/")) { + builder.append(RESOLVED_PATH); + builder.append(rawPath); + toReturn = new File(builder.toString()).toURI(); + } else { + rawPath = rawPath.replaceAll(" ", "%20"); + try { + toReturn = new URI(rawPath); + } catch (URISyntaxException ex) { + throw new MalformedLocatorException(rawPath, ex); + } + } + return toReturn; + } + + @Override + public IResource acquire(IResourceLocator locator, Options options) throws OseeCoreException { + IResource toReturn = null; + OptionsProcessor optionsProcessor = new OptionsProcessor(resolve(locator), locator, null, options); + toReturn = optionsProcessor.getResourceToServer(); + return toReturn; + } + + @Override + public int delete(IResourceLocator locator) throws OseeCoreException { + throw new UnsupportedOperationException(); + } + + @Override + public boolean isValid(IResourceLocator locator) { + return locator != null && getSupportedProtocols().contains(locator.getProtocol()); + } + + @Override + public IResourceLocator save(IResourceLocator locator, IResource resource, Options options) throws OseeCoreException { + throw new UnsupportedOperationException(); + } + + @Override + public boolean exists(IResourceLocator locator) throws OseeCoreException { + URI uri = resolve(locator); + File testFile = new File(uri); + return testFile.exists(); + } + + @Override + public Collection<String> getSupportedProtocols() { + return Arrays.asList(AtsResourceLocatorProvider.PROTOCOL); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsService.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsService.java index 0ed09d547a6..ac9afc923ee 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsService.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsService.java @@ -1,155 +1,155 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.util.Collection;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.manager.servlet.DataServlet;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-import org.w3c.dom.Node;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AtsService {
-
- private static enum DataTypeEnum {
- PROGRAM,
- BUILD,
- WORKFLOW;
-
- public String asFileName() {
- return "ats." + this.name().toLowerCase() + ".data.xml";
- }
- }
-
- public static interface IResourceProvider {
- IResource getResource(String typeName) throws OseeCoreException;
- }
-
- private final IResourceProvider resourceProvider;
- private final AtsXmlSearch xmlSearch;
- private final AtsXmlMessages messages;
- private final IResourceLocatorManager locatorManager;
- private final IResourceManager resourceManager;
-
- public AtsService(IResourceProvider resourceProvider, AtsXmlSearch xmlSearch, AtsXmlMessages messages, IResourceLocatorManager locatorManager, IResourceManager resourceManager) {
- super();
- this.xmlSearch = xmlSearch;
- this.messages = messages;
- this.resourceProvider = resourceProvider;
- this.locatorManager = locatorManager;
- this.resourceManager = resourceManager;
- }
-
- public void performOperation(IResource resource, HttpServletResponse response) {
- try {
- Collection<OperationData> requests = OperationData.fromResource(resource);
- for (OperationData data : requests) {
- switch (data.getOperationType()) {
- case GET_BUILDS_BY_PROGRAM_ID:
- getBuilds(response, data.getProgramId());
- break;
- case GET_CHANGE_REPORTS_BY_IDS:
- getChangeReport(response, data.getItemIds());
- break;
- case GET_PROGRAMS:
- getPrograms(response);
- break;
- case GET_WORKFLOWS_BY_IDS:
- getWorkflowsById(response, data.getItemIds());
- break;
- case GET_WORKFLOWS_BY_PROGRAM_AND_BUILD_ID:
- getWorkflowsByProgramAndBuild(response, data.getProgramId(), data.getBuildId());
- break;
- default:
- throw new UnsupportedOperationException();
- }
- }
- } catch (Exception ex) {
- messages.sendError(response, ex);
- }
- }
-
- private IResource getResource(DataTypeEnum fileType) throws OseeCoreException {
- return getResource(fileType.asFileName());
- }
-
- private IResource getResource(String resource) throws OseeCoreException {
- String urlPath = String.format("%s://%s", AtsResourceLocatorProvider.PROTOCOL, resource);
- return resourceProvider.getResource(urlPath);
- }
-
- public void getPrograms(HttpServletResponse response) throws OseeCoreException {
- IResource resource = getResource(DataTypeEnum.PROGRAM);
- Collection<Node> nodes = xmlSearch.findPrograms(resource);
- messages.sendPrograms(response, nodes);
- }
-
- public void getBuilds(HttpServletResponse response, String programId) throws OseeCoreException {
- IResource resource = getResource(DataTypeEnum.BUILD);
- Collection<Node> nodes = xmlSearch.findBuildsByProgramId(resource, programId);
- messages.sendBuilds(response, nodes);
- }
-
- public void getWorkflowsById(HttpServletResponse response, String idSearch) throws OseeCoreException {
- IResource resource = getResource(DataTypeEnum.WORKFLOW);
- Collection<Node> nodes = xmlSearch.findWorkflowsById(resource, idSearch);
- messages.sendWorkflows(response, nodes);
- }
-
- public void getWorkflowsByProgramAndBuild(HttpServletResponse response, String programId, String buildId) throws OseeCoreException {
- IResource resource = getResource(DataTypeEnum.WORKFLOW);
- Collection<Node> nodes = xmlSearch.findWorkflowsByProgramAndBuild(resource, programId, buildId);
- messages.sendWorkflows(response, nodes);
- }
-
- public void getChangeReport(HttpServletResponse response, String idSearch) throws OseeCoreException {
- IResource resource = getResource(DataTypeEnum.WORKFLOW);
- Collection<Node> nodes = xmlSearch.findWorkflowsById(resource, idSearch);
- messages.sendChangeReports(response, nodes);
- }
-
- public void sendClient(HttpServletRequest request, HttpServletResponse response) {
- String urlPath = request.getParameter("url");
- boolean wasErrorSent = false;
- IResource resource = null;
- try {
- if (Strings.isValid(urlPath)) {
- resource = resourceProvider.getResource(urlPath);
- } else {
- String servletPath = request.getServletPath();
- urlPath = request.getRequestURI().replace(servletPath, "");
-
- if (urlPath.contains("osee/data")) {
- DataServlet.handleUriRequest(locatorManager, resourceManager, urlPath, response);
- return;
- } else {
- resource = getResource(urlPath);
- }
- }
- } catch (OseeCoreException ex) {
- messages.sendError(response, ex);
- wasErrorSent = true;
- }
-
- if (resource == null && !wasErrorSent) {
- messages.sendError(response, new Exception(String.format("Resource not found - [%s]", urlPath)));
- } else {
- messages.sendResource(response, resource.getName(), resource);
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.util.Collection; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.manager.servlet.DataServlet; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; +import org.eclipse.osee.framework.resource.management.IResourceManager; +import org.w3c.dom.Node; + +/** + * @author Roberto E. Escobar + */ +public class AtsService { + + private static enum DataTypeEnum { + PROGRAM, + BUILD, + WORKFLOW; + + public String asFileName() { + return "ats." + this.name().toLowerCase() + ".data.xml"; + } + } + + public static interface IResourceProvider { + IResource getResource(String typeName) throws OseeCoreException; + } + + private final IResourceProvider resourceProvider; + private final AtsXmlSearch xmlSearch; + private final AtsXmlMessages messages; + private final IResourceLocatorManager locatorManager; + private final IResourceManager resourceManager; + + public AtsService(IResourceProvider resourceProvider, AtsXmlSearch xmlSearch, AtsXmlMessages messages, IResourceLocatorManager locatorManager, IResourceManager resourceManager) { + super(); + this.xmlSearch = xmlSearch; + this.messages = messages; + this.resourceProvider = resourceProvider; + this.locatorManager = locatorManager; + this.resourceManager = resourceManager; + } + + public void performOperation(IResource resource, HttpServletResponse response) { + try { + Collection<OperationData> requests = OperationData.fromResource(resource); + for (OperationData data : requests) { + switch (data.getOperationType()) { + case GET_BUILDS_BY_PROGRAM_ID: + getBuilds(response, data.getProgramId()); + break; + case GET_CHANGE_REPORTS_BY_IDS: + getChangeReport(response, data.getItemIds()); + break; + case GET_PROGRAMS: + getPrograms(response); + break; + case GET_WORKFLOWS_BY_IDS: + getWorkflowsById(response, data.getItemIds()); + break; + case GET_WORKFLOWS_BY_PROGRAM_AND_BUILD_ID: + getWorkflowsByProgramAndBuild(response, data.getProgramId(), data.getBuildId()); + break; + default: + throw new UnsupportedOperationException(); + } + } + } catch (Exception ex) { + messages.sendError(response, ex); + } + } + + private IResource getResource(DataTypeEnum fileType) throws OseeCoreException { + return getResource(fileType.asFileName()); + } + + private IResource getResource(String resource) throws OseeCoreException { + String urlPath = String.format("%s://%s", AtsResourceLocatorProvider.PROTOCOL, resource); + return resourceProvider.getResource(urlPath); + } + + public void getPrograms(HttpServletResponse response) throws OseeCoreException { + IResource resource = getResource(DataTypeEnum.PROGRAM); + Collection<Node> nodes = xmlSearch.findPrograms(resource); + messages.sendPrograms(response, nodes); + } + + public void getBuilds(HttpServletResponse response, String programId) throws OseeCoreException { + IResource resource = getResource(DataTypeEnum.BUILD); + Collection<Node> nodes = xmlSearch.findBuildsByProgramId(resource, programId); + messages.sendBuilds(response, nodes); + } + + public void getWorkflowsById(HttpServletResponse response, String idSearch) throws OseeCoreException { + IResource resource = getResource(DataTypeEnum.WORKFLOW); + Collection<Node> nodes = xmlSearch.findWorkflowsById(resource, idSearch); + messages.sendWorkflows(response, nodes); + } + + public void getWorkflowsByProgramAndBuild(HttpServletResponse response, String programId, String buildId) throws OseeCoreException { + IResource resource = getResource(DataTypeEnum.WORKFLOW); + Collection<Node> nodes = xmlSearch.findWorkflowsByProgramAndBuild(resource, programId, buildId); + messages.sendWorkflows(response, nodes); + } + + public void getChangeReport(HttpServletResponse response, String idSearch) throws OseeCoreException { + IResource resource = getResource(DataTypeEnum.WORKFLOW); + Collection<Node> nodes = xmlSearch.findWorkflowsById(resource, idSearch); + messages.sendChangeReports(response, nodes); + } + + public void sendClient(HttpServletRequest request, HttpServletResponse response) { + String urlPath = request.getParameter("url"); + boolean wasErrorSent = false; + IResource resource = null; + try { + if (Strings.isValid(urlPath)) { + resource = resourceProvider.getResource(urlPath); + } else { + String servletPath = request.getServletPath(); + urlPath = request.getRequestURI().replace(servletPath, ""); + + if (urlPath.contains("osee/data")) { + DataServlet.handleUriRequest(locatorManager, resourceManager, urlPath, response); + return; + } else { + resource = getResource(urlPath); + } + } + } catch (OseeCoreException ex) { + messages.sendError(response, ex); + wasErrorSent = true; + } + + if (resource == null && !wasErrorSent) { + messages.sendError(response, new Exception(String.format("Resource not found - [%s]", urlPath))); + } else { + messages.sendResource(response, resource.getName(), resource); + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlMessages.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlMessages.java index 2f4c21422e5..566d2795dd9 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlMessages.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlMessages.java @@ -1,75 +1,75 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AtsXmlMessages {
-
- private final XmlMessage messenger;
-
- public AtsXmlMessages(XmlMessage messenger) {
- this.messenger = messenger;
- }
-
- public void sendError(HttpServletResponse response, Throwable ex) {
- messenger.sendError(response, "Ats Error", ex);
- }
-
- public void sendPrograms(HttpServletResponse response, Collection<Node> nodes) {
- messenger.sendMessage(response, "Ats Programs", "0", nodes);
- }
-
- public void sendBuilds(HttpServletResponse response, Collection<Node> nodes) {
- messenger.sendMessage(response, "Ats Builds", "0", nodes);
- }
-
- public void sendWorkflows(HttpServletResponse response, Collection<Node> nodes) {
- // for (Node node : nodes) {
- // Element changeReportElement = createChangeReportNode(node);
- // node.appendChild(changeReportElement);
- // }
- messenger.sendMessage(response, "Ats Workflows", "0", nodes);
- }
-
- public void sendChangeReports(HttpServletResponse response, Collection<Node> nodes) {
- List<Node> nodeList = new ArrayList<Node>();
- for (Node node : nodes) {
- Element path = Jaxp.getChildDirect((Element) node, "workflowChangeReportPath");
- // Element changeReportElement = createChangeReportNode(node);
- nodeList.add(path);
- }
- messenger.sendMessage(response, "Ats Change Reports", "0", nodeList);
- }
-
- // private Element createChangeReportNode(Node node) {
- // String legacyId = Jaxp.getChildText((Element) node, "workflowPcrId");
- // String changeReportUrl =
- // String.format("%s://changeReports/%s.xml", AtsResourceLocatorProvider.PROTOCOL, legacyId);
- // Element changeReportElement = node.getOwnerDocument().createElement("changeReportUrl");
- // changeReportElement.setTextContent(changeReportUrl);
- // return changeReportElement;
- // }
-
- public void sendResource(HttpServletResponse response, String name, IResource resource) {
- messenger.sendMessage(response, name, resource, false);
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp; +import org.eclipse.osee.framework.resource.management.IResource; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +/** + * @author Roberto E. Escobar + */ +public class AtsXmlMessages { + + private final XmlMessage messenger; + + public AtsXmlMessages(XmlMessage messenger) { + this.messenger = messenger; + } + + public void sendError(HttpServletResponse response, Throwable ex) { + messenger.sendError(response, "Ats Error", ex); + } + + public void sendPrograms(HttpServletResponse response, Collection<Node> nodes) { + messenger.sendMessage(response, "Ats Programs", "0", nodes); + } + + public void sendBuilds(HttpServletResponse response, Collection<Node> nodes) { + messenger.sendMessage(response, "Ats Builds", "0", nodes); + } + + public void sendWorkflows(HttpServletResponse response, Collection<Node> nodes) { + // for (Node node : nodes) { + // Element changeReportElement = createChangeReportNode(node); + // node.appendChild(changeReportElement); + // } + messenger.sendMessage(response, "Ats Workflows", "0", nodes); + } + + public void sendChangeReports(HttpServletResponse response, Collection<Node> nodes) { + List<Node> nodeList = new ArrayList<Node>(); + for (Node node : nodes) { + Element path = Jaxp.getChildDirect((Element) node, "workflowChangeReportPath"); + // Element changeReportElement = createChangeReportNode(node); + nodeList.add(path); + } + messenger.sendMessage(response, "Ats Change Reports", "0", nodeList); + } + + // private Element createChangeReportNode(Node node) { + // String legacyId = Jaxp.getChildText((Element) node, "workflowPcrId"); + // String changeReportUrl = + // String.format("%s://changeReports/%s.xml", AtsResourceLocatorProvider.PROTOCOL, legacyId); + // Element changeReportElement = node.getOwnerDocument().createElement("changeReportUrl"); + // changeReportElement.setTextContent(changeReportUrl); + // return changeReportElement; + // } + + public void sendResource(HttpServletResponse response, String name, IResource resource) { + messenger.sendMessage(response, name, resource, false); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlSearch.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlSearch.java index c29e2cb26c4..4918364b8cc 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlSearch.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/AtsXmlSearch.java @@ -1,85 +1,85 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.util.Collections;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.w3c.dom.Node;
-
-/**
- * @author Roberto E. Escobar
- */
-public class AtsXmlSearch {
-
- public AtsXmlSearch() {
- }
-
- public Collection<Node> findPrograms(IResource resource) throws OseeCoreException {
- return XmlUtil.findInResource(resource, "//program");
- }
-
- public Collection<Node> findBuildsByProgramId(IResource resource, String programId) throws OseeCoreException {
- return XmlUtil.findInResource(resource, "//build[buildProgramId=\"" + programId + "\"]");
- }
-
- public Collection<Node> findWorkflowsByProgramAndBuild(IResource resource, String programId, String buildId) throws OseeCoreException {
- return XmlUtil.findInResource(resource,
- "//workflow[workflowProgramId=\"" + programId + "\" and workflowBuildId=\"" + buildId + "\"]");
- }
-
- public Collection<Node> findWorkflowsById(IResource resource, String id) throws OseeCoreException {
- Collection<Node> toReturn = null;
- String predicate = multiIdsToXPath(id);
- if (Strings.isValid(predicate)) {
- StringBuilder builder = new StringBuilder();
- builder.append("//workflow[");
- builder.append(predicate);
- builder.append("]");
- toReturn = XmlUtil.findInResource(resource, builder.toString());
- } else {
- toReturn = java.util.Collections.emptyList();
- }
- return toReturn;
- }
-
- public String multiIdsToXPath(String idsWithCommas) throws OseeCoreException {
- List<String> predicates = new ArrayList<String>();
- if (Strings.isValid(idsWithCommas)) {
- String[] ids = idsWithCommas.split("[\\s,]+");
- for (String id : ids) {
- predicates.add(idToXPath(id));
- }
- }
- return Collections.toString(predicates, " or ");
- }
-
- public String idToXPath(String id) throws OseeCoreException {
- StringBuilder builder = new StringBuilder();
- if (IdUtils.isValidLegacyId(id)) {
- builder.append("workflowPcrId=");
- } else if (IdUtils.isValidGUID(id)) {
- builder.append("workflowId=");
- } else if (IdUtils.isValidHRID(id)) {
- builder.append("workflowHrid=");
- } else {
- throw new OseeCoreException(String.format("Invalid id [%s]", id));
- }
- if (builder.length() > 0) {
- builder.append("\"" + id + "\"");
- }
- return builder.toString();
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.util.Collections; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.resource.management.IResource; +import org.w3c.dom.Node; + +/** + * @author Roberto E. Escobar + */ +public class AtsXmlSearch { + + public AtsXmlSearch() { + } + + public Collection<Node> findPrograms(IResource resource) throws OseeCoreException { + return XmlUtil.findInResource(resource, "//program"); + } + + public Collection<Node> findBuildsByProgramId(IResource resource, String programId) throws OseeCoreException { + return XmlUtil.findInResource(resource, "//build[buildProgramId=\"" + programId + "\"]"); + } + + public Collection<Node> findWorkflowsByProgramAndBuild(IResource resource, String programId, String buildId) throws OseeCoreException { + return XmlUtil.findInResource(resource, + "//workflow[workflowProgramId=\"" + programId + "\" and workflowBuildId=\"" + buildId + "\"]"); + } + + public Collection<Node> findWorkflowsById(IResource resource, String id) throws OseeCoreException { + Collection<Node> toReturn = null; + String predicate = multiIdsToXPath(id); + if (Strings.isValid(predicate)) { + StringBuilder builder = new StringBuilder(); + builder.append("//workflow["); + builder.append(predicate); + builder.append("]"); + toReturn = XmlUtil.findInResource(resource, builder.toString()); + } else { + toReturn = java.util.Collections.emptyList(); + } + return toReturn; + } + + public String multiIdsToXPath(String idsWithCommas) throws OseeCoreException { + List<String> predicates = new ArrayList<String>(); + if (Strings.isValid(idsWithCommas)) { + String[] ids = idsWithCommas.split("[\\s,]+"); + for (String id : ids) { + predicates.add(idToXPath(id)); + } + } + return Collections.toString(predicates, " or "); + } + + public String idToXPath(String id) throws OseeCoreException { + StringBuilder builder = new StringBuilder(); + if (IdUtils.isValidLegacyId(id)) { + builder.append("workflowPcrId="); + } else if (IdUtils.isValidGUID(id)) { + builder.append("workflowId="); + } else if (IdUtils.isValidHRID(id)) { + builder.append("workflowHrid="); + } else { + throw new OseeCoreException(String.format("Invalid id [%s]", id)); + } + if (builder.length() > 0) { + builder.append("\"" + id + "\""); + } + return builder.toString(); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/IdUtils.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/IdUtils.java index fccf79bf010..7c3516d6d70 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/IdUtils.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/IdUtils.java @@ -1,41 +1,41 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.eclipse.osee.framework.jdk.core.util.GUID;
-import org.eclipse.osee.framework.jdk.core.util.HumanReadableId;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class IdUtils {
-
- private static final Pattern legacyIDPattern = Pattern.compile("\\d+");
- private static final Matcher legacyIDMatcher = legacyIDPattern.matcher("");
-
- private IdUtils() {
- }
-
- public static boolean isValidHRID(String hrid) {
- return HumanReadableId.isValid(hrid);
- }
-
- public static boolean isValidGUID(String guid) {
- return GUID.isValid(guid);
- }
-
- public static boolean isValidLegacyId(String legacyId) {
- legacyIDMatcher.reset(legacyId);
- return legacyIDMatcher.matches();
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.eclipse.osee.framework.jdk.core.util.GUID; +import org.eclipse.osee.framework.jdk.core.util.HumanReadableId; + +/** + * @author Roberto E. Escobar + */ +public final class IdUtils { + + private static final Pattern legacyIDPattern = Pattern.compile("\\d+"); + private static final Matcher legacyIDMatcher = legacyIDPattern.matcher(""); + + private IdUtils() { + } + + public static boolean isValidHRID(String hrid) { + return HumanReadableId.isValid(hrid); + } + + public static boolean isValidGUID(String guid) { + return GUID.isValid(guid); + } + + public static boolean isValidLegacyId(String legacyId) { + legacyIDMatcher.reset(legacyId); + return legacyIDMatcher.matches(); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/OperationData.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/OperationData.java index a763f895c6d..70785db8b05 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/OperationData.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/OperationData.java @@ -1,109 +1,109 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.io.ByteArrayInputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import javax.xml.xpath.XPath;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.jdk.core.type.PropertyStore;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class OperationData {
-
- public static enum OperationType {
- GET_PROGRAMS,
- GET_BUILDS_BY_PROGRAM_ID,
- GET_WORKFLOWS_BY_IDS,
- GET_WORKFLOWS_BY_PROGRAM_AND_BUILD_ID,
- GET_CHANGE_REPORTS_BY_IDS,
- UNKNOWN;
-
- public static OperationType fromString(String value) {
- OperationType toReturn = OperationType.UNKNOWN;
- for (OperationType type : OperationType.values()) {
- if (type.name().equalsIgnoreCase(value)) {
- toReturn = type;
- break;
- }
- }
- return toReturn;
- }
- }
-
- private final PropertyStore data;
-
- public OperationData(OperationType operationType) {
- this.data = new PropertyStore();
- data.put("operationType", operationType.name());
- }
-
- public OperationType getOperationType() {
- return OperationType.fromString(data.get("operationType"));
- }
-
- public String getProgramId() {
- return data.get("programId");
- }
-
- public String getBuildId() {
- return data.get("buildId");
- }
-
- public String getItemIds() {
- return data.get("uniqueIds");
- }
-
- public static Collection<OperationData> fromResource(IResource resource) throws OseeCoreException {
- Collection<OperationData> toReturn = new ArrayList<OperationData>();
- try {
- String data = Lib.inputStreamToString(resource.getContent());
- System.out.println(data);
- Element rootElement = XmlUtil.readXML(new ByteArrayInputStream(data.getBytes()));
- XPath xPath = XmlUtil.createXPath();
- Collection<Node> nodes = XmlUtil.selectNodesViaXPath(xPath, rootElement, "//request");
-
- for (Node node : nodes) {
- if (node instanceof Element) {
- OperationData operationData = new OperationData(OperationType.UNKNOWN);
- toReturn.add(operationData);
-
- Element element = (Element) node;
- NodeList list = element.getChildNodes();
- for (int index = 0; index < list.getLength(); index++) {
- Node childNode = list.item(index);
- if (childNode instanceof Element) {
- Element elementNode = (Element) childNode;
- String name = elementNode.getTagName();
- String value = Jaxp.getElementCharacterData(elementNode, true);
- if (Strings.isValid(name) && Strings.isValid(value)) {
- operationData.data.put(name, value);
- }
- }
- }
- }
- }
- } catch (Exception ex) {
- throw new OseeCoreException(ex);
- }
- return toReturn;
- }
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.io.ByteArrayInputStream; +import java.util.ArrayList; +import java.util.Collection; +import javax.xml.xpath.XPath; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.jdk.core.type.PropertyStore; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp; +import org.eclipse.osee.framework.resource.management.IResource; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * @author Roberto E. Escobar + */ +public final class OperationData { + + public static enum OperationType { + GET_PROGRAMS, + GET_BUILDS_BY_PROGRAM_ID, + GET_WORKFLOWS_BY_IDS, + GET_WORKFLOWS_BY_PROGRAM_AND_BUILD_ID, + GET_CHANGE_REPORTS_BY_IDS, + UNKNOWN; + + public static OperationType fromString(String value) { + OperationType toReturn = OperationType.UNKNOWN; + for (OperationType type : OperationType.values()) { + if (type.name().equalsIgnoreCase(value)) { + toReturn = type; + break; + } + } + return toReturn; + } + } + + private final PropertyStore data; + + public OperationData(OperationType operationType) { + this.data = new PropertyStore(); + data.put("operationType", operationType.name()); + } + + public OperationType getOperationType() { + return OperationType.fromString(data.get("operationType")); + } + + public String getProgramId() { + return data.get("programId"); + } + + public String getBuildId() { + return data.get("buildId"); + } + + public String getItemIds() { + return data.get("uniqueIds"); + } + + public static Collection<OperationData> fromResource(IResource resource) throws OseeCoreException { + Collection<OperationData> toReturn = new ArrayList<OperationData>(); + try { + String data = Lib.inputStreamToString(resource.getContent()); + System.out.println(data); + Element rootElement = XmlUtil.readXML(new ByteArrayInputStream(data.getBytes())); + XPath xPath = XmlUtil.createXPath(); + Collection<Node> nodes = XmlUtil.selectNodesViaXPath(xPath, rootElement, "//request"); + + for (Node node : nodes) { + if (node instanceof Element) { + OperationData operationData = new OperationData(OperationType.UNKNOWN); + toReturn.add(operationData); + + Element element = (Element) node; + NodeList list = element.getChildNodes(); + for (int index = 0; index < list.getLength(); index++) { + Node childNode = list.item(index); + if (childNode instanceof Element) { + Element elementNode = (Element) childNode; + String name = elementNode.getTagName(); + String value = Jaxp.getElementCharacterData(elementNode, true); + if (Strings.isValid(name) && Strings.isValid(value)) { + operationData.data.put(name, value); + } + } + } + } + } + } catch (Exception ex) { + throw new OseeCoreException(ex); + } + return toReturn; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlMessage.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlMessage.java index 4955bdebbf7..14eac43f3cc 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlMessage.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlMessage.java @@ -1,209 +1,209 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.StringWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.net.HttpURLConnection;
-import java.util.Collection;
-import java.util.logging.Level;
-import javax.servlet.http.HttpServletResponse;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
-import org.eclipse.osee.framework.core.util.Conditions;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.logging.OseeLog;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.util.Resource;
-import org.w3c.dom.Node;
-
-/**
- * @author Roberto E. Escobar
- */
-public class XmlMessage {
-
- public XmlMessage() {
- }
-
- public void sendError(HttpServletResponse response, String name, Throwable ex) {
- String errorMessage = Lib.exceptionToString(ex);
- OseeLog.log(Activator.class, Level.SEVERE, errorMessage, ex);
- try {
- StringWriter writer = new StringWriter();
- createXmlErrorMessage(writer, "0", errorMessage);
- IResource resource = new StreamResource(name, writer.toString());
- sendMessage(response, name, resource, false);
- } catch (Throwable ex1) {
- OseeLog.log(Activator.class, Level.SEVERE, ex1.toString(), ex1);
- }
- }
-
- public void sendMessage(HttpServletResponse response, String name, String status, Collection<Node> nodes) {
- try {
- StringWriter writer = new StringWriter();
- createXmlMessage(writer, "0", false, nodes);
- IResource resource = new StreamResource(name, writer.toString());
- sendMessage(response, name, resource, true);
- } catch (Throwable ex) {
- sendError(response, name, ex);
- }
- }
-
- private void createXmlErrorMessage(Writer output, String status, String... messages) throws OseeCoreException {
- createXmlMessage(output, status, true, null, messages);
- }
-
- private void createXmlMessage(Writer output, String status, boolean isError, Collection<Node> nodes, String... messages) throws OseeCoreException {
- boolean hasNodes = nodes != null && !nodes.isEmpty();
- boolean hasMessages = messages != null && messages.length > 0;
-
- Conditions.checkExpressionFailOnTrue(hasMessages && hasNodes, "Cannot have messages and nodes");
-
- XMLOutputFactory factory = XMLOutputFactory.newInstance();
- try {
- XMLStreamWriter writer = factory.createXMLStreamWriter(output);
- writer.writeStartDocument("UTF-8", "1.0");
- writer.writeStartElement("response");
-
- writer.writeStartElement("status");
- writer.writeCharacters(status);
- writer.writeEndElement();
-
- if (!isError) {
- //TODO: update if we want to return a partial set
- writer.writeStartElement("startRow");
- writer.writeCharacters("0");
- writer.writeEndElement();
-
- //TODO: update if we want to return a partial set
- writer.writeStartElement("endRow");
- int size = 0;
- if (hasNodes) {
- size = nodes.size();
- }
- if (hasMessages) {
- size = messages.length;
- }
- writer.writeCharacters(String.valueOf(size));
- writer.writeEndElement();
-
- writer.writeStartElement("totalRows");
- writer.writeCharacters(String.valueOf(size));
- writer.writeEndElement();
- }
-
- if (isError) {
- writer.writeStartElement("errors");
- } else {
- writer.writeStartElement("data");
- }
-
- try {
- if (hasNodes) {
- XmlUtil.serialize(writer, nodes);
- }
- if (hasMessages) {
- for (String message : messages) {
- writer.writeStartElement("message");
- writer.writeCharacters(message);
- writer.writeEndElement();
- }
- }
- } finally {
- writer.writeEndElement();
- }
- writer.writeEndElement();
- writer.writeEndDocument();
- } catch (XMLStreamException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- }
-
- public void sendMessage(HttpServletResponse response, String name, IResource resource, boolean isErrorSendingAllowed) {
- InputStream inputStream = null;
- try {
- inputStream = resource.getContent();
-
- response.setStatus(HttpServletResponse.SC_OK);
- response.setContentLength(inputStream.available());
- response.setCharacterEncoding("ISO-8859-1");
-
- String mimeType = null;
- if (name.endsWith("css")) {
- mimeType = "text/css";
- }
- if (mimeType == null) {
- mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream);
- if (mimeType == null) {
- mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString());
- if (mimeType == null) {
- mimeType = "application/*";
- }
- }
- }
- response.setContentType(mimeType);
-
- boolean isReportDoc = false;
- try {
- String location = resource.getLocation().toASCIIString();
- isReportDoc = location.contains("changeReports");
- } catch (Exception ex) {
- // nothing here;
- }
-
- if (!mimeType.startsWith("text") && resource.isCompressed() || isReportDoc) {
- response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName());
- }
- Lib.inputStreamToOutputStream(inputStream, response.getOutputStream());
- } catch (Exception ex) {
- if (isErrorSendingAllowed) {
- sendError(response, name, ex);
- } else {
- OseeLog.log(Activator.class, Level.SEVERE, ex);
- }
- } finally {
- Lib.close(inputStream);
- }
- }
-
- private final static class StreamResource extends Resource {
-
- private final ByteArrayInputStream inputStream;
- private final String name;
-
- public StreamResource(String name, String data) throws UnsupportedEncodingException {
- this(name, false, new ByteArrayInputStream(data.getBytes("ISO-8859-1")));
- }
-
- public StreamResource(String name, boolean isCompressed, ByteArrayInputStream inputStream) {
- super(null, isCompressed);
- this.name = name;
- this.inputStream = inputStream;
- }
-
- @Override
- public InputStream getContent() throws OseeCoreException {
- return inputStream;
- }
-
- @Override
- public String getName() {
- return name;
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.StringWriter; +import java.io.UnsupportedEncodingException; +import java.io.Writer; +import java.net.HttpURLConnection; +import java.util.Collection; +import java.util.logging.Level; +import javax.servlet.http.HttpServletResponse; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeExceptions; +import org.eclipse.osee.framework.core.util.Conditions; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.logging.OseeLog; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.util.Resource; +import org.w3c.dom.Node; + +/** + * @author Roberto E. Escobar + */ +public class XmlMessage { + + public XmlMessage() { + } + + public void sendError(HttpServletResponse response, String name, Throwable ex) { + String errorMessage = Lib.exceptionToString(ex); + OseeLog.log(Activator.class, Level.SEVERE, errorMessage, ex); + try { + StringWriter writer = new StringWriter(); + createXmlErrorMessage(writer, "0", errorMessage); + IResource resource = new StreamResource(name, writer.toString()); + sendMessage(response, name, resource, false); + } catch (Throwable ex1) { + OseeLog.log(Activator.class, Level.SEVERE, ex1.toString(), ex1); + } + } + + public void sendMessage(HttpServletResponse response, String name, String status, Collection<Node> nodes) { + try { + StringWriter writer = new StringWriter(); + createXmlMessage(writer, "0", false, nodes); + IResource resource = new StreamResource(name, writer.toString()); + sendMessage(response, name, resource, true); + } catch (Throwable ex) { + sendError(response, name, ex); + } + } + + private void createXmlErrorMessage(Writer output, String status, String... messages) throws OseeCoreException { + createXmlMessage(output, status, true, null, messages); + } + + private void createXmlMessage(Writer output, String status, boolean isError, Collection<Node> nodes, String... messages) throws OseeCoreException { + boolean hasNodes = nodes != null && !nodes.isEmpty(); + boolean hasMessages = messages != null && messages.length > 0; + + Conditions.checkExpressionFailOnTrue(hasMessages && hasNodes, "Cannot have messages and nodes"); + + XMLOutputFactory factory = XMLOutputFactory.newInstance(); + try { + XMLStreamWriter writer = factory.createXMLStreamWriter(output); + writer.writeStartDocument("UTF-8", "1.0"); + writer.writeStartElement("response"); + + writer.writeStartElement("status"); + writer.writeCharacters(status); + writer.writeEndElement(); + + if (!isError) { + //TODO: update if we want to return a partial set + writer.writeStartElement("startRow"); + writer.writeCharacters("0"); + writer.writeEndElement(); + + //TODO: update if we want to return a partial set + writer.writeStartElement("endRow"); + int size = 0; + if (hasNodes) { + size = nodes.size(); + } + if (hasMessages) { + size = messages.length; + } + writer.writeCharacters(String.valueOf(size)); + writer.writeEndElement(); + + writer.writeStartElement("totalRows"); + writer.writeCharacters(String.valueOf(size)); + writer.writeEndElement(); + } + + if (isError) { + writer.writeStartElement("errors"); + } else { + writer.writeStartElement("data"); + } + + try { + if (hasNodes) { + XmlUtil.serialize(writer, nodes); + } + if (hasMessages) { + for (String message : messages) { + writer.writeStartElement("message"); + writer.writeCharacters(message); + writer.writeEndElement(); + } + } + } finally { + writer.writeEndElement(); + } + writer.writeEndElement(); + writer.writeEndDocument(); + } catch (XMLStreamException ex) { + OseeExceptions.wrapAndThrow(ex); + } + } + + public void sendMessage(HttpServletResponse response, String name, IResource resource, boolean isErrorSendingAllowed) { + InputStream inputStream = null; + try { + inputStream = resource.getContent(); + + response.setStatus(HttpServletResponse.SC_OK); + response.setContentLength(inputStream.available()); + response.setCharacterEncoding("ISO-8859-1"); + + String mimeType = null; + if (name.endsWith("css")) { + mimeType = "text/css"; + } + if (mimeType == null) { + mimeType = HttpURLConnection.guessContentTypeFromStream(inputStream); + if (mimeType == null) { + mimeType = HttpURLConnection.guessContentTypeFromName(resource.getLocation().toString()); + if (mimeType == null) { + mimeType = "application/*"; + } + } + } + response.setContentType(mimeType); + + boolean isReportDoc = false; + try { + String location = resource.getLocation().toASCIIString(); + isReportDoc = location.contains("changeReports"); + } catch (Exception ex) { + // nothing here; + } + + if (!mimeType.startsWith("text") && resource.isCompressed() || isReportDoc) { + response.setHeader("Content-Disposition", "attachment; filename=" + resource.getName()); + } + Lib.inputStreamToOutputStream(inputStream, response.getOutputStream()); + } catch (Exception ex) { + if (isErrorSendingAllowed) { + sendError(response, name, ex); + } else { + OseeLog.log(Activator.class, Level.SEVERE, ex); + } + } finally { + Lib.close(inputStream); + } + } + + private final static class StreamResource extends Resource { + + private final ByteArrayInputStream inputStream; + private final String name; + + public StreamResource(String name, String data) throws UnsupportedEncodingException { + this(name, false, new ByteArrayInputStream(data.getBytes("ISO-8859-1"))); + } + + public StreamResource(String name, boolean isCompressed, ByteArrayInputStream inputStream) { + super(null, isCompressed); + this.name = name; + this.inputStream = inputStream; + } + + @Override + public InputStream getContent() throws OseeCoreException { + return inputStream; + } + + @Override + public String getName() { + return name; + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlUtil.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlUtil.java index 62236937443..c37e74525fd 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlUtil.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/ats/XmlUtil.java @@ -1,169 +1,169 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.ats;
-
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class XmlUtil {
- // private static final Map<String, XPathExpression> expressions = new HashMap<String, XPathExpression>();
-
- private XmlUtil() {
- }
-
- // public static XPathExpression getExpression(XPath xPath, String xPathExpression) throws XPathExpressionException {
- // XPathExpression toReturn = expressions.get(xPathExpression);
- // if (toReturn == null) {
- // toReturn = xPath.compile(xPathExpression);
- // expressions.put(xPathExpression, toReturn);
- // return toReturn;
- // }
-
- public static XPath createXPath() {
- XPathFactory factory = XPathFactory.newInstance();
- return factory.newXPath();
- }
-
- public static Collection<Node> findInResource(IResource resource, String expression) throws OseeCoreException {
- try {
- Element element = XmlUtil.readXml(resource);
- XPath xPath = XmlUtil.createXPath();
- return XmlUtil.selectNodesViaXPath(xPath, element, expression);
- } catch (Exception ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- return Collections.emptyList();
- }
-
- public static Element readXml(IResource resource) throws Exception {
- InputStream inputStream = null;
- try {
- inputStream = resource.getContent();
- return readXML(inputStream);
- } finally {
- Lib.close(inputStream);
- }
- }
-
- public static Element readXML(InputStream inputStream) throws Exception {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder documentBuilder = factory.newDocumentBuilder();
- Document document = documentBuilder.parse(inputStream);
- document.getDocumentElement().normalize();
- return document.getDocumentElement();
- }
-
- public static final List<Node> selectNodesViaXPath(XPath xPath, Node startingNode, String xPathExpression) throws XPathExpressionException {
- List<Node> data = new ArrayList<Node>();
- XPathExpression expression = xPath.compile(xPathExpression);
- Object result = expression.evaluate(startingNode, XPathConstants.NODESET);
- NodeList nodeList = (NodeList) result;
- for (int index = 0; index < nodeList.getLength(); index++) {
- data.add(nodeList.item(index));
- }
- return data;
- }
-
- public static void serialize(XMLStreamWriter writer, Collection<Node> nodes) throws XMLStreamException {
- for (Node node : nodes) {
- writeNode(writer, node);
- }
- }
-
- public static void serialize(XMLStreamWriter writer, NodeList nodes) throws XMLStreamException {
- for (int index = 0; index < nodes.getLength(); index++) {
- writeNode(writer, nodes.item(index));
- }
- }
-
- public static void writeNode(XMLStreamWriter writer, Node node) throws XMLStreamException {
- if (node instanceof Element) {
- Element element = (Element) node;
-
- String namespace = element.getNamespaceURI();
- String prefix = element.getPrefix();
- String name = element.getNodeName();
- if (Strings.isValid(name)) {
- if (prefix != null && namespace != null) {
- writer.writeStartElement(prefix, name, namespace);
- } else if (namespace != null) {
- writer.writeStartElement(namespace, name);
- } else {
- writer.writeStartElement(name);
- }
-
- if (node.hasAttributes()) {
- NamedNodeMap nodeMap = node.getAttributes();
- for (int index = 0; index < nodeMap.getLength(); index++) {
- writeAttrNode(writer, nodeMap.item(index));
- }
- }
-
- if (node.hasChildNodes()) {
- serialize(writer, element.getChildNodes());
- }
-
- String text = Jaxp.getElementCharacterData(element, true);
- if (Strings.isValid(text)) {
- writer.writeCharacters(text);
- }
- writer.writeEndElement();
- }
- }
- }
-
- private static void writeAttrNode(XMLStreamWriter writer, Node node) throws XMLStreamException {
- if (node instanceof Attr) {
- Attr attrNode = (Attr) node;
-
- String namespace = attrNode.getNamespaceURI();
- String prefix = attrNode.getPrefix();
- String name = attrNode.getName();
- String value = attrNode.getValue();
- if (Strings.isValid(name) && Strings.isValid(value)) {
- if (prefix != null && namespace != null) {
- writer.writeAttribute(prefix, namespace, name, value);
- } else if (namespace != null) {
- writer.writeAttribute(namespace, name, value);
- } else {
- writer.writeAttribute(name, value);
- }
- }
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.ats; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeExceptions; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.framework.jdk.core.util.xml.Jaxp; +import org.eclipse.osee.framework.resource.management.IResource; +import org.w3c.dom.Attr; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * @author Roberto E. Escobar + */ +public final class XmlUtil { + // private static final Map<String, XPathExpression> expressions = new HashMap<String, XPathExpression>(); + + private XmlUtil() { + } + + // public static XPathExpression getExpression(XPath xPath, String xPathExpression) throws XPathExpressionException { + // XPathExpression toReturn = expressions.get(xPathExpression); + // if (toReturn == null) { + // toReturn = xPath.compile(xPathExpression); + // expressions.put(xPathExpression, toReturn); + // return toReturn; + // } + + public static XPath createXPath() { + XPathFactory factory = XPathFactory.newInstance(); + return factory.newXPath(); + } + + public static Collection<Node> findInResource(IResource resource, String expression) throws OseeCoreException { + try { + Element element = XmlUtil.readXml(resource); + XPath xPath = XmlUtil.createXPath(); + return XmlUtil.selectNodesViaXPath(xPath, element, expression); + } catch (Exception ex) { + OseeExceptions.wrapAndThrow(ex); + } + return Collections.emptyList(); + } + + public static Element readXml(IResource resource) throws Exception { + InputStream inputStream = null; + try { + inputStream = resource.getContent(); + return readXML(inputStream); + } finally { + Lib.close(inputStream); + } + } + + public static Element readXML(InputStream inputStream) throws Exception { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder documentBuilder = factory.newDocumentBuilder(); + Document document = documentBuilder.parse(inputStream); + document.getDocumentElement().normalize(); + return document.getDocumentElement(); + } + + public static final List<Node> selectNodesViaXPath(XPath xPath, Node startingNode, String xPathExpression) throws XPathExpressionException { + List<Node> data = new ArrayList<Node>(); + XPathExpression expression = xPath.compile(xPathExpression); + Object result = expression.evaluate(startingNode, XPathConstants.NODESET); + NodeList nodeList = (NodeList) result; + for (int index = 0; index < nodeList.getLength(); index++) { + data.add(nodeList.item(index)); + } + return data; + } + + public static void serialize(XMLStreamWriter writer, Collection<Node> nodes) throws XMLStreamException { + for (Node node : nodes) { + writeNode(writer, node); + } + } + + public static void serialize(XMLStreamWriter writer, NodeList nodes) throws XMLStreamException { + for (int index = 0; index < nodes.getLength(); index++) { + writeNode(writer, nodes.item(index)); + } + } + + public static void writeNode(XMLStreamWriter writer, Node node) throws XMLStreamException { + if (node instanceof Element) { + Element element = (Element) node; + + String namespace = element.getNamespaceURI(); + String prefix = element.getPrefix(); + String name = element.getNodeName(); + if (Strings.isValid(name)) { + if (prefix != null && namespace != null) { + writer.writeStartElement(prefix, name, namespace); + } else if (namespace != null) { + writer.writeStartElement(namespace, name); + } else { + writer.writeStartElement(name); + } + + if (node.hasAttributes()) { + NamedNodeMap nodeMap = node.getAttributes(); + for (int index = 0; index < nodeMap.getLength(); index++) { + writeAttrNode(writer, nodeMap.item(index)); + } + } + + if (node.hasChildNodes()) { + serialize(writer, element.getChildNodes()); + } + + String text = Jaxp.getElementCharacterData(element, true); + if (Strings.isValid(text)) { + writer.writeCharacters(text); + } + writer.writeEndElement(); + } + } + } + + private static void writeAttrNode(XMLStreamWriter writer, Node node) throws XMLStreamException { + if (node instanceof Attr) { + Attr attrNode = (Attr) node; + + String namespace = attrNode.getNamespaceURI(); + String prefix = attrNode.getPrefix(); + String name = attrNode.getName(); + String value = attrNode.getValue(); + if (Strings.isValid(name) && Strings.isValid(value)) { + if (prefix != null && namespace != null) { + writer.writeAttribute(prefix, namespace, name, value); + } else if (namespace != null) { + writer.writeAttribute(namespace, name, value); + } else { + writer.writeAttribute(name, value); + } + } + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ArtifactUtil.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ArtifactUtil.java index ac27d8479ad..231399437b2 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ArtifactUtil.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ArtifactUtil.java @@ -1,74 +1,74 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import org.eclipse.osee.framework.core.enums.BranchArchivedState;
-import org.eclipse.osee.framework.core.exception.OseeDataStoreException;
-import org.eclipse.osee.framework.database.core.ConnectionHandler;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ArtifactUtil {
-
- private static final String DEFAULT_ATTRIBUTE_DATA_PROVIDER = "%DefaultAttributeDataProvider";
-
- private static String URI_BY_GUID_PREFIX =
- "SELECT attr1.uri FROM osee_artifact art1, osee_attribute attr1, osee_attribute_type attyp1, osee_attribute_provider_type oapt1, %s txs1";
-
- private static String URI_BY_GUID_AND_BRANCH_ID =
- URI_BY_GUID_PREFIX + " WHERE art1.art_id = attr1.art_id AND attr1.attr_type_id = attyp1.attr_type_id AND oapt1.attr_provider_type_id = attyp1.attr_provider_type_id AND attr1.gamma_id = txs1.gamma_id AND txs1.tx_current = 1 AND art1.guid = ? AND NOT oapt1.attribute_provider_class LIKE ? AND txs1.branch_id = ?";
-
- private static String URI_BY_GUID_AND_BRANCH_NAME =
- URI_BY_GUID_PREFIX + ", osee_branch ob1 WHERE art1.art_id = attr1.art_id AND attr1.attr_type_id = attyp1.attr_type_id AND oapt1.attr_provider_type_id = attyp1.attr_provider_type_id AND attr1.gamma_id = txs1.gamma_id AND txs1.branch_id = ob1.branch_id AND txs1.tx_current = 1 AND art1.guid = ? AND NOT oapt1.attribute_provider_class LIKE ? AND ob1.branch_name = ?";
-
- private static String URI_BY_GUID_AND_BRANCH_GUID =
- URI_BY_GUID_PREFIX + ", osee_branch ob1 WHERE art1.art_id = attr1.art_id AND attr1.attr_type_id = attyp1.attr_type_id AND oapt1.attr_provider_type_id = attyp1.attr_provider_type_id AND attr1.gamma_id = txs1.gamma_id AND txs1.branch_id = ob1.branch_id AND txs1.tx_current = 1 AND art1.guid = ? AND NOT oapt1.attribute_provider_class LIKE ? AND ob1.branch_guid = ?";
-
- public static String getUri(String guid, int branchId) throws OseeDataStoreException {
- BranchArchivedState state = isArchived(branchId);
- return getUri(state, URI_BY_GUID_AND_BRANCH_ID, guid, DEFAULT_ATTRIBUTE_DATA_PROVIDER, branchId);
- }
-
- public static String getUri(String guid, String branchName) throws OseeDataStoreException {
- BranchArchivedState state = isArchived(branchName);
- return getUri(state, URI_BY_GUID_AND_BRANCH_NAME, guid, DEFAULT_ATTRIBUTE_DATA_PROVIDER, branchName);
- }
-
- public static String getUriByGuids(String branchGuid, String artifactGuid) throws OseeDataStoreException {
- BranchArchivedState state = isArchivedBranchGuid(branchGuid);
- return getUri(state, URI_BY_GUID_AND_BRANCH_GUID, artifactGuid, DEFAULT_ATTRIBUTE_DATA_PROVIDER, branchGuid);
- }
-
- private static BranchArchivedState isArchivedBranchGuid(String branchGuid) throws OseeDataStoreException {
- return BranchArchivedState.valueOf(ConnectionHandler.runPreparedQueryFetchInt(0,
- "Select archived from osee_branch where branch_guid = ?", branchGuid));
- }
-
- private static BranchArchivedState isArchived(int branchId) throws OseeDataStoreException {
- return BranchArchivedState.valueOf(ConnectionHandler.runPreparedQueryFetchInt(0,
- "Select archived from osee_branch where branch_id = ?", branchId));
- }
-
- private static BranchArchivedState isArchived(String branchName) throws OseeDataStoreException {
- return BranchArchivedState.valueOf(ConnectionHandler.runPreparedQueryFetchInt(0,
- "Select archived from osee_branch where branch_name like ?", branchName));
- }
-
- private static String getUri(BranchArchivedState state, String query, Object... dataBindings) throws OseeDataStoreException {
- String sql = String.format(query, getTransactionTable(state));
- return ConnectionHandler.runPreparedQueryFetchString("", sql, dataBindings);
- }
-
- private static String getTransactionTable(BranchArchivedState state) {
- return state.isUnArchived() ? "osee_txs" : "osee_txs_archived";
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import org.eclipse.osee.framework.core.enums.BranchArchivedState; +import org.eclipse.osee.framework.core.exception.OseeDataStoreException; +import org.eclipse.osee.framework.database.core.ConnectionHandler; + +/** + * @author Roberto E. Escobar + */ +public class ArtifactUtil { + + private static final String DEFAULT_ATTRIBUTE_DATA_PROVIDER = "%DefaultAttributeDataProvider"; + + private static String URI_BY_GUID_PREFIX = + "SELECT attr1.uri FROM osee_artifact art1, osee_attribute attr1, osee_attribute_type attyp1, osee_attribute_provider_type oapt1, %s txs1"; + + private static String URI_BY_GUID_AND_BRANCH_ID = + URI_BY_GUID_PREFIX + " WHERE art1.art_id = attr1.art_id AND attr1.attr_type_id = attyp1.attr_type_id AND oapt1.attr_provider_type_id = attyp1.attr_provider_type_id AND attr1.gamma_id = txs1.gamma_id AND txs1.tx_current = 1 AND art1.guid = ? AND NOT oapt1.attribute_provider_class LIKE ? AND txs1.branch_id = ?"; + + private static String URI_BY_GUID_AND_BRANCH_NAME = + URI_BY_GUID_PREFIX + ", osee_branch ob1 WHERE art1.art_id = attr1.art_id AND attr1.attr_type_id = attyp1.attr_type_id AND oapt1.attr_provider_type_id = attyp1.attr_provider_type_id AND attr1.gamma_id = txs1.gamma_id AND txs1.branch_id = ob1.branch_id AND txs1.tx_current = 1 AND art1.guid = ? AND NOT oapt1.attribute_provider_class LIKE ? AND ob1.branch_name = ?"; + + private static String URI_BY_GUID_AND_BRANCH_GUID = + URI_BY_GUID_PREFIX + ", osee_branch ob1 WHERE art1.art_id = attr1.art_id AND attr1.attr_type_id = attyp1.attr_type_id AND oapt1.attr_provider_type_id = attyp1.attr_provider_type_id AND attr1.gamma_id = txs1.gamma_id AND txs1.branch_id = ob1.branch_id AND txs1.tx_current = 1 AND art1.guid = ? AND NOT oapt1.attribute_provider_class LIKE ? AND ob1.branch_guid = ?"; + + public static String getUri(String guid, int branchId) throws OseeDataStoreException { + BranchArchivedState state = isArchived(branchId); + return getUri(state, URI_BY_GUID_AND_BRANCH_ID, guid, DEFAULT_ATTRIBUTE_DATA_PROVIDER, branchId); + } + + public static String getUri(String guid, String branchName) throws OseeDataStoreException { + BranchArchivedState state = isArchived(branchName); + return getUri(state, URI_BY_GUID_AND_BRANCH_NAME, guid, DEFAULT_ATTRIBUTE_DATA_PROVIDER, branchName); + } + + public static String getUriByGuids(String branchGuid, String artifactGuid) throws OseeDataStoreException { + BranchArchivedState state = isArchivedBranchGuid(branchGuid); + return getUri(state, URI_BY_GUID_AND_BRANCH_GUID, artifactGuid, DEFAULT_ATTRIBUTE_DATA_PROVIDER, branchGuid); + } + + private static BranchArchivedState isArchivedBranchGuid(String branchGuid) throws OseeDataStoreException { + return BranchArchivedState.valueOf(ConnectionHandler.runPreparedQueryFetchInt(0, + "Select archived from osee_branch where branch_guid = ?", branchGuid)); + } + + private static BranchArchivedState isArchived(int branchId) throws OseeDataStoreException { + return BranchArchivedState.valueOf(ConnectionHandler.runPreparedQueryFetchInt(0, + "Select archived from osee_branch where branch_id = ?", branchId)); + } + + private static BranchArchivedState isArchived(String branchName) throws OseeDataStoreException { + return BranchArchivedState.valueOf(ConnectionHandler.runPreparedQueryFetchInt(0, + "Select archived from osee_branch where branch_name like ?", branchName)); + } + + private static String getUri(BranchArchivedState state, String query, Object... dataBindings) throws OseeDataStoreException { + String sql = String.format(query, getTransactionTable(state)); + return ConnectionHandler.runPreparedQueryFetchString("", sql, dataBindings); + } + + private static String getTransactionTable(BranchArchivedState state) { + return state.isUnArchived() ? "osee_txs" : "osee_txs_archived"; + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/DefaultOseeArtifact.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/DefaultOseeArtifact.java index 23a11800613..2e46afdc891 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/DefaultOseeArtifact.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/DefaultOseeArtifact.java @@ -1,47 +1,47 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import org.eclipse.osee.framework.core.exception.OseeStateException;
-import org.eclipse.osee.framework.database.core.OseeInfo;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-import org.eclipse.osee.framework.jdk.core.util.Strings;
-
-/**
- * Retrieves the default OSEE server page
- *
- * @author Roberto E. Escobar
- */
-public class DefaultOseeArtifact {
-
- private static String OSEE_DEFAULT_SERVER_PAGE_GUID_KEY = "osee.default.server.page.guid";
- private static String OSEE_DEFAULT_SERVER_PAGE_BRANCH_ID = "osee.default.server.page.branch.id";
-
- public static Pair<String, String> get() throws Exception {
-
- final String artifactGuid = OseeInfo.getValue(OSEE_DEFAULT_SERVER_PAGE_GUID_KEY);
- String defaultBranchId = OseeInfo.getValue(OSEE_DEFAULT_SERVER_PAGE_BRANCH_ID);
- int artifactBranchId = -1;
- try {
- artifactBranchId = Integer.parseInt(defaultBranchId);
- } catch (Exception ex) {
- // Do Nothing
- }
-
- if (!Strings.isValid(artifactGuid) || artifactBranchId < 1) {
- throw new OseeStateException(
- String.format(
- "OSEE default server page not found. Ensure values exist in OseeInfo table for [%s] and [%s] keys.",
- OSEE_DEFAULT_SERVER_PAGE_GUID_KEY, OSEE_DEFAULT_SERVER_PAGE_BRANCH_ID));
- }
- return new Pair<String, String>(artifactGuid, String.valueOf(artifactBranchId));
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import org.eclipse.osee.framework.core.exception.OseeStateException; +import org.eclipse.osee.framework.database.core.OseeInfo; +import org.eclipse.osee.framework.jdk.core.type.Pair; +import org.eclipse.osee.framework.jdk.core.util.Strings; + +/** + * Retrieves the default OSEE server page + * + * @author Roberto E. Escobar + */ +public class DefaultOseeArtifact { + + private static String OSEE_DEFAULT_SERVER_PAGE_GUID_KEY = "osee.default.server.page.guid"; + private static String OSEE_DEFAULT_SERVER_PAGE_BRANCH_ID = "osee.default.server.page.branch.id"; + + public static Pair<String, String> get() throws Exception { + + final String artifactGuid = OseeInfo.getValue(OSEE_DEFAULT_SERVER_PAGE_GUID_KEY); + String defaultBranchId = OseeInfo.getValue(OSEE_DEFAULT_SERVER_PAGE_BRANCH_ID); + int artifactBranchId = -1; + try { + artifactBranchId = Integer.parseInt(defaultBranchId); + } catch (Exception ex) { + // Do Nothing + } + + if (!Strings.isValid(artifactGuid) || artifactBranchId < 1) { + throw new OseeStateException( + String.format( + "OSEE default server page not found. Ensure values exist in OseeInfo table for [%s] and [%s] keys.", + OSEE_DEFAULT_SERVER_PAGE_GUID_KEY, OSEE_DEFAULT_SERVER_PAGE_BRANCH_ID)); + } + return new Pair<String, String>(artifactGuid, String.valueOf(artifactBranchId)); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpArtifactFileInfo.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpArtifactFileInfo.java index a8c3b517de1..ad407f163d1 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpArtifactFileInfo.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpArtifactFileInfo.java @@ -1,58 +1,58 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import javax.servlet.http.HttpServletRequest;
-import org.eclipse.osee.framework.core.data.Identity;
-
-/**
- * @author Roberto E. Escobar
- */
-public class HttpArtifactFileInfo implements Identity {
- private static final int INVALID_BRANCH_ID = -1;
- private static final String GUID_KEY = "guid";
- private static final String BRANCH_NAME_KEY = "branch";
- private static final String BRANCH_ID_KEY = "branchId";
-
- private final String guid;
- private final String branchName;
- private final String branchId;
-
- public HttpArtifactFileInfo(String guid, String branchName, String branchId) {
- this.guid = guid;
- this.branchName = branchName;
- this.branchId = branchId;
- }
-
- public HttpArtifactFileInfo(HttpServletRequest request) {
- this(request.getParameter(GUID_KEY), request.getParameter(BRANCH_NAME_KEY), request.getParameter(BRANCH_ID_KEY));
- }
-
- public String getGuid() {
- return guid;
- }
-
- public boolean isBranchNameValid() {
- return branchName != null && branchName.length() > 0;
- }
-
- public String getBranchName() {
- return branchName;
- }
-
- public int getId() throws NumberFormatException {
- int toReturn = INVALID_BRANCH_ID;
- if (branchId != null && branchId.length() > 0) {
- toReturn = Integer.parseInt(branchId);
- }
- return toReturn;
- }
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import javax.servlet.http.HttpServletRequest; +import org.eclipse.osee.framework.core.data.Identity; + +/** + * @author Roberto E. Escobar + */ +public class HttpArtifactFileInfo implements Identity { + private static final int INVALID_BRANCH_ID = -1; + private static final String GUID_KEY = "guid"; + private static final String BRANCH_NAME_KEY = "branch"; + private static final String BRANCH_ID_KEY = "branchId"; + + private final String guid; + private final String branchName; + private final String branchId; + + public HttpArtifactFileInfo(String guid, String branchName, String branchId) { + this.guid = guid; + this.branchName = branchName; + this.branchId = branchId; + } + + public HttpArtifactFileInfo(HttpServletRequest request) { + this(request.getParameter(GUID_KEY), request.getParameter(BRANCH_NAME_KEY), request.getParameter(BRANCH_ID_KEY)); + } + + public String getGuid() { + return guid; + } + + public boolean isBranchNameValid() { + return branchName != null && branchName.length() > 0; + } + + public String getBranchName() { + return branchName; + } + + public int getId() throws NumberFormatException { + int toReturn = INVALID_BRANCH_ID; + if (branchId != null && branchId.length() > 0) { + toReturn = Integer.parseInt(branchId); + } + return toReturn; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpBranchExchangeInfo.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpBranchExchangeInfo.java index cfa0cbb2934..e458138892e 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpBranchExchangeInfo.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpBranchExchangeInfo.java @@ -1,111 +1,111 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.eclipse.osee.framework.resource.management.Options;
-
-/**
- * @author Roberto E. Escobar
- */
-public class HttpBranchExchangeInfo {
-
- public enum BranchExchangeFunctions {
- exportBranch, importBranch, checkExchange;
- };
-
- private BranchExchangeFunctions function;
- private String exchangeFileName;
- private String path;
- private List<Integer> selectedBranchIds;
- private boolean sendExportFile;
- private boolean deleteExportFile;
- private Options options;
-
- @SuppressWarnings("unchecked")
- public HttpBranchExchangeInfo(HttpServletRequest request) throws Exception {
- this.options = new Options();
- this.function = null;
- this.selectedBranchIds = new ArrayList<Integer>();
- this.sendExportFile = false;
- this.deleteExportFile = false;
- this.exchangeFileName = null;
- this.path = null;
-
- Enumeration<String> enumeration = request.getParameterNames();
- while (enumeration.hasMoreElements()) {
- String name = enumeration.nextElement();
- String value = request.getParameter(name);
- if (name.equalsIgnoreCase("filename")) {
- this.exchangeFileName = value;
- } else if (name.equalsIgnoreCase("uri")) {
- this.path = value;
- } else if (name.equalsIgnoreCase("send.export.file")) {
- this.sendExportFile = Boolean.valueOf(value);
- } else if (name.equalsIgnoreCase("delete.export.file")) {
- this.deleteExportFile = Boolean.valueOf(value);
- } else if (name.equalsIgnoreCase("function")) {
- isFunctionValid(value);
- } else if (name.equalsIgnoreCase("branchIds")) {
- for (String entry : value.split(",")) {
- selectedBranchIds.add(new Integer(entry));
- }
- } else {
- options.put(name.toUpperCase(), value);
- }
- }
- }
-
- public BranchExchangeFunctions getFunction() {
- return this.function;
- }
-
- public boolean isSendExportFile() {
- return this.sendExportFile;
- }
-
- public boolean isDeleteExportFile() {
- return this.deleteExportFile;
- }
-
- public String getExchangeFileName() {
- return this.exchangeFileName;
- }
-
- public String getPath() {
- return this.path;
- }
-
- public List<Integer> getSelectedBranchIds() {
- return this.selectedBranchIds;
- }
-
- public Options getOptions() {
- return this.options;
- }
-
- private void isFunctionValid(String function) throws Exception {
- if (function == null) {
- throw new Exception("A 'function' parameter must be defined.");
- }
- try {
- this.function = BranchExchangeFunctions.valueOf(function);
- } catch (IllegalArgumentException ex) {
- throw new Exception(String.format("[%s] is not a valid function.",
- function), ex);
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; + +import org.eclipse.osee.framework.resource.management.Options; + +/** + * @author Roberto E. Escobar + */ +public class HttpBranchExchangeInfo { + + public enum BranchExchangeFunctions { + exportBranch, importBranch, checkExchange; + }; + + private BranchExchangeFunctions function; + private String exchangeFileName; + private String path; + private List<Integer> selectedBranchIds; + private boolean sendExportFile; + private boolean deleteExportFile; + private Options options; + + @SuppressWarnings("unchecked") + public HttpBranchExchangeInfo(HttpServletRequest request) throws Exception { + this.options = new Options(); + this.function = null; + this.selectedBranchIds = new ArrayList<Integer>(); + this.sendExportFile = false; + this.deleteExportFile = false; + this.exchangeFileName = null; + this.path = null; + + Enumeration<String> enumeration = request.getParameterNames(); + while (enumeration.hasMoreElements()) { + String name = enumeration.nextElement(); + String value = request.getParameter(name); + if (name.equalsIgnoreCase("filename")) { + this.exchangeFileName = value; + } else if (name.equalsIgnoreCase("uri")) { + this.path = value; + } else if (name.equalsIgnoreCase("send.export.file")) { + this.sendExportFile = Boolean.valueOf(value); + } else if (name.equalsIgnoreCase("delete.export.file")) { + this.deleteExportFile = Boolean.valueOf(value); + } else if (name.equalsIgnoreCase("function")) { + isFunctionValid(value); + } else if (name.equalsIgnoreCase("branchIds")) { + for (String entry : value.split(",")) { + selectedBranchIds.add(new Integer(entry)); + } + } else { + options.put(name.toUpperCase(), value); + } + } + } + + public BranchExchangeFunctions getFunction() { + return this.function; + } + + public boolean isSendExportFile() { + return this.sendExportFile; + } + + public boolean isDeleteExportFile() { + return this.deleteExportFile; + } + + public String getExchangeFileName() { + return this.exchangeFileName; + } + + public String getPath() { + return this.path; + } + + public List<Integer> getSelectedBranchIds() { + return this.selectedBranchIds; + } + + public Options getOptions() { + return this.options; + } + + private void isFunctionValid(String function) throws Exception { + if (function == null) { + throw new Exception("A 'function' parameter must be defined."); + } + try { + this.function = BranchExchangeFunctions.valueOf(function); + } catch (IllegalArgumentException ex) { + throw new Exception(String.format("[%s] is not a valid function.", + function), ex); + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpRequestDecoder.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpRequestDecoder.java index 5408a2251b4..3d845860a7e 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpRequestDecoder.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpRequestDecoder.java @@ -1,87 +1,87 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.servlet.http.HttpServletRequest;
-import org.eclipse.osee.framework.jdk.core.type.Pair;
-import org.eclipse.osee.framework.resource.management.Options;
-import org.eclipse.osee.framework.resource.management.StandardOptions;
-
-/**
- * This class is responsible for parsing servlet resquests into object[]
- * http://localhost:8089/resource?param1=blah¶m2=blah
- *
- * @author Roberto E. Escobar
- */
-public class HttpRequestDecoder {
-
- private static final String CHECK_AVAILABLE = "check.available";
- private static final String URI = "uri";
- private static final String PROTOCOL = "protocol";
- private static final String SEED = "seed";
- private static final String NAME = "name";
- private static final String EXTENSION = "extension";
-
- // Whether data should be compressed
- private static final String COMPRESS_ON_ACQUIRE = "compress.before.sending";
- private static final String COMPRESS_ON_SAVE = "compress.before.saving";
-
- // Whether data should be decompressed
- private static final String DECOMPRESS_ON_ACQUIRE = "decompress.before.sending";
-
- // Whether data has already been compressed
- private static final String IS_COMPRESSED = "is.compressed";
-
- private static final String IS_OVERWRITE_ALLOWED = "is.overwrite.allowed";
-
- private HttpRequestDecoder() {
- }
-
- public static String[] fromPutRequest(HttpServletRequest request) {
- List<String> toReturn = new ArrayList<String>();
- toReturn.add(request.getParameter(PROTOCOL));
- toReturn.add(request.getParameter(SEED));
- StringBuilder builder = new StringBuilder();
- builder.append(request.getParameter(NAME));
- String extension = request.getParameter(EXTENSION);
- if (extension != null && extension.length() > 0) {
- builder.append(".");
- builder.append(extension);
- }
- toReturn.add(builder.toString());
- return toReturn.toArray(new String[toReturn.size()]);
- }
-
- public static Pair<String, Boolean> fromGetRequest(HttpServletRequest request) {
- return new Pair<String, Boolean>(request.getParameter(URI),
- Boolean.valueOf(request.getParameter(CHECK_AVAILABLE)));
- }
-
- public static Options getOptions(HttpServletRequest request) {
- Options options = new Options();
- options.put(StandardOptions.CompressOnSave.name(), request.getParameter(COMPRESS_ON_SAVE));
- options.put(StandardOptions.CompressOnAcquire.name(), request.getParameter(COMPRESS_ON_ACQUIRE));
- options.put(StandardOptions.DecompressOnAquire.name(), request.getParameter(DECOMPRESS_ON_ACQUIRE));
- options.put(StandardOptions.Overwrite.name(), request.getParameter(IS_OVERWRITE_ALLOWED));
- return options;
- }
-
- protected static boolean isDataCompressed(HttpServletRequest request) {
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import org.eclipse.osee.framework.jdk.core.type.Pair; +import org.eclipse.osee.framework.resource.management.Options; +import org.eclipse.osee.framework.resource.management.StandardOptions; + +/** + * This class is responsible for parsing servlet resquests into object[] + * http://localhost:8089/resource?param1=blah¶m2=blah + * + * @author Roberto E. Escobar + */ +public class HttpRequestDecoder { + + private static final String CHECK_AVAILABLE = "check.available"; + private static final String URI = "uri"; + private static final String PROTOCOL = "protocol"; + private static final String SEED = "seed"; + private static final String NAME = "name"; + private static final String EXTENSION = "extension"; + + // Whether data should be compressed + private static final String COMPRESS_ON_ACQUIRE = "compress.before.sending"; + private static final String COMPRESS_ON_SAVE = "compress.before.saving"; + + // Whether data should be decompressed + private static final String DECOMPRESS_ON_ACQUIRE = "decompress.before.sending"; + + // Whether data has already been compressed + private static final String IS_COMPRESSED = "is.compressed"; + + private static final String IS_OVERWRITE_ALLOWED = "is.overwrite.allowed"; + + private HttpRequestDecoder() { + } + + public static String[] fromPutRequest(HttpServletRequest request) { + List<String> toReturn = new ArrayList<String>(); + toReturn.add(request.getParameter(PROTOCOL)); + toReturn.add(request.getParameter(SEED)); + StringBuilder builder = new StringBuilder(); + builder.append(request.getParameter(NAME)); + String extension = request.getParameter(EXTENSION); + if (extension != null && extension.length() > 0) { + builder.append("."); + builder.append(extension); + } + toReturn.add(builder.toString()); + return toReturn.toArray(new String[toReturn.size()]); + } + + public static Pair<String, Boolean> fromGetRequest(HttpServletRequest request) { + return new Pair<String, Boolean>(request.getParameter(URI), + Boolean.valueOf(request.getParameter(CHECK_AVAILABLE))); + } + + public static Options getOptions(HttpServletRequest request) { + Options options = new Options(); + options.put(StandardOptions.CompressOnSave.name(), request.getParameter(COMPRESS_ON_SAVE)); + options.put(StandardOptions.CompressOnAcquire.name(), request.getParameter(COMPRESS_ON_ACQUIRE)); + options.put(StandardOptions.DecompressOnAquire.name(), request.getParameter(DECOMPRESS_ON_ACQUIRE)); + options.put(StandardOptions.Overwrite.name(), request.getParameter(IS_OVERWRITE_ALLOWED)); + return options; + } + + protected static boolean isDataCompressed(HttpServletRequest request) { return Boolean.valueOf(request.getParameter(IS_COMPRESSED)); - }
-
- public static String fromDeleteRequest(HttpServletRequest request) {
- return request.getParameter(URI);
- }
-
-}
+ } + + public static String fromDeleteRequest(HttpServletRequest request) { + return request.getParameter(URI); + } + +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSearchInfo.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSearchInfo.java index fc005bf1036..92844874825 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSearchInfo.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSearchInfo.java @@ -1,75 +1,75 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import javax.servlet.http.HttpServletRequest;
-import org.eclipse.osee.framework.jdk.core.type.PropertyStore;
-import org.eclipse.osee.framework.jdk.core.type.PropertyStoreWriter;
-import org.eclipse.osee.framework.search.engine.SearchOptions;
-import org.eclipse.osee.framework.search.engine.SearchOptions.SearchOptionsEnum;
-
-/**
- * @author Roberto E. Escobar
- */
-public class HttpSearchInfo {
-
- private final String branchId;
- private final String queryString;
- private final SearchOptions options;
- private final String[] attributeTypeGuids;
-
- private HttpSearchInfo(String branchId, SearchOptions options, String queryString, String... attributeTypeGuids) {
- super();
- this.branchId = branchId;
- this.options = options;
- this.queryString = queryString;
- this.attributeTypeGuids = attributeTypeGuids;
- }
-
- public String getQuery() {
- return queryString;
- }
-
- @Override
- public String toString() {
- return queryString;
- }
-
- public int getId() {
- return Integer.parseInt(this.branchId);
- }
-
- public SearchOptions getOptions() {
- return options;
- }
-
- public String[] getAttributeTypeGuids() {
- return attributeTypeGuids;
- }
-
- public static HttpSearchInfo loadFromPost(HttpServletRequest request) throws Exception {
- PropertyStore propertyStore = new PropertyStore(request.getParameter("sessionId"));
-
- PropertyStoreWriter propertyStoreWriter = new PropertyStoreWriter();
- propertyStoreWriter.load(propertyStore, request.getInputStream());
-
- SearchOptions options = new SearchOptions();
- options.put(SearchOptionsEnum.include_deleted.asStringOption(), propertyStore.get("include deleted"));
- options.put(SearchOptionsEnum.match_word_order.asStringOption(), propertyStore.get("match word order"));
- options.put(SearchOptionsEnum.as_xml.asStringOption(), propertyStore.get("as xml"));
- options.put(SearchOptionsEnum.find_all_locations.asStringOption(), propertyStore.get("find all locations"));
- options.put(SearchOptionsEnum.case_sensitive.asStringOption(), propertyStore.get("case sensitive"));
-
- String[] attributeTypeStrs = propertyStore.getArray("attributeType");
- return new HttpSearchInfo(propertyStore.get("branchId"), options, propertyStore.get("query"),attributeTypeStrs
- );
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import javax.servlet.http.HttpServletRequest; +import org.eclipse.osee.framework.jdk.core.type.PropertyStore; +import org.eclipse.osee.framework.jdk.core.type.PropertyStoreWriter; +import org.eclipse.osee.framework.search.engine.SearchOptions; +import org.eclipse.osee.framework.search.engine.SearchOptions.SearchOptionsEnum; + +/** + * @author Roberto E. Escobar + */ +public class HttpSearchInfo { + + private final String branchId; + private final String queryString; + private final SearchOptions options; + private final String[] attributeTypeGuids; + + private HttpSearchInfo(String branchId, SearchOptions options, String queryString, String... attributeTypeGuids) { + super(); + this.branchId = branchId; + this.options = options; + this.queryString = queryString; + this.attributeTypeGuids = attributeTypeGuids; + } + + public String getQuery() { + return queryString; + } + + @Override + public String toString() { + return queryString; + } + + public int getId() { + return Integer.parseInt(this.branchId); + } + + public SearchOptions getOptions() { + return options; + } + + public String[] getAttributeTypeGuids() { + return attributeTypeGuids; + } + + public static HttpSearchInfo loadFromPost(HttpServletRequest request) throws Exception { + PropertyStore propertyStore = new PropertyStore(request.getParameter("sessionId")); + + PropertyStoreWriter propertyStoreWriter = new PropertyStoreWriter(); + propertyStoreWriter.load(propertyStore, request.getInputStream()); + + SearchOptions options = new SearchOptions(); + options.put(SearchOptionsEnum.include_deleted.asStringOption(), propertyStore.get("include deleted")); + options.put(SearchOptionsEnum.match_word_order.asStringOption(), propertyStore.get("match word order")); + options.put(SearchOptionsEnum.as_xml.asStringOption(), propertyStore.get("as xml")); + options.put(SearchOptionsEnum.find_all_locations.asStringOption(), propertyStore.get("find all locations")); + options.put(SearchOptionsEnum.case_sensitive.asStringOption(), propertyStore.get("case sensitive")); + + String[] attributeTypeStrs = propertyStore.getArray("attributeType"); + return new HttpSearchInfo(propertyStore.get("branchId"), options, propertyStore.get("query"),attributeTypeStrs + ); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSystemManagerCreationInfo.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSystemManagerCreationInfo.java index 762f72ce904..6141fd5690b 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSystemManagerCreationInfo.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/HttpSystemManagerCreationInfo.java @@ -1,36 +1,36 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import javax.servlet.http.HttpServletRequest;
-import org.eclipse.osee.framework.core.exception.OseeArgumentException;
-
-/**
- * @author Donald G. Dunne
- */
-public class HttpSystemManagerCreationInfo {
-
- private final String userId;
- private final String sessionId;
-
- public HttpSystemManagerCreationInfo(HttpServletRequest req) throws OseeArgumentException {
- userId = req.getParameter("userId");
- sessionId = req.getParameter("sessionId");
- }
-
- public String getUserId() {
- return userId;
- }
-
- public String getSessionId() {
- return sessionId;
- }
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import javax.servlet.http.HttpServletRequest; +import org.eclipse.osee.framework.core.exception.OseeArgumentException; + +/** + * @author Donald G. Dunne + */ +public class HttpSystemManagerCreationInfo { + + private final String userId; + private final String sessionId; + + public HttpSystemManagerCreationInfo(HttpServletRequest req) throws OseeArgumentException { + userId = req.getParameter("userId"); + sessionId = req.getParameter("sessionId"); + } + + public String getUserId() { + return userId; + } + + public String getSessionId() { + return sessionId; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ServletResourceBridge.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ServletResourceBridge.java index d1d5cf6a9de..ce159a4a1fd 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ServletResourceBridge.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/ServletResourceBridge.java @@ -1,66 +1,66 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URI;
-import javax.servlet.http.HttpServletRequest;
-import org.eclipse.osee.framework.core.exception.OseeCoreException;
-import org.eclipse.osee.framework.core.exception.OseeExceptions;
-import org.eclipse.osee.framework.resource.management.IResource;
-import org.eclipse.osee.framework.resource.management.IResourceLocator;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ServletResourceBridge implements IResource {
-
- private final HttpServletRequest request;
- private final IResourceLocator locator;
-
- public ServletResourceBridge(HttpServletRequest request, IResourceLocator locator) {
- this.request = request;
- this.locator = locator;
- }
-
- @Override
- public InputStream getContent() throws OseeCoreException {
- InputStream stream = null;
- try {
- stream = request.getInputStream();
- } catch (IOException ex) {
- OseeExceptions.wrapAndThrow(ex);
- }
- return stream;
- }
-
- @Override
- public URI getLocation() {
- return locator.getLocation();
- }
-
- @Override
- public String getName() {
- String path = locator.getLocation().toASCIIString();
- int index = path.lastIndexOf("/");
- if (index != -1 && index + 1 < path.length()) {
- path = path.substring(index + 1, path.length());
- }
- return path;
- }
-
- @Override
- public boolean isCompressed() {
- return HttpRequestDecoder.isDataCompressed(request);
- }
-
-}
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import javax.servlet.http.HttpServletRequest; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeExceptions; +import org.eclipse.osee.framework.resource.management.IResource; +import org.eclipse.osee.framework.resource.management.IResourceLocator; + +/** + * @author Roberto E. Escobar + */ +public class ServletResourceBridge implements IResource { + + private final HttpServletRequest request; + private final IResourceLocator locator; + + public ServletResourceBridge(HttpServletRequest request, IResourceLocator locator) { + this.request = request; + this.locator = locator; + } + + @Override + public InputStream getContent() throws OseeCoreException { + InputStream stream = null; + try { + stream = request.getInputStream(); + } catch (IOException ex) { + OseeExceptions.wrapAndThrow(ex); + } + return stream; + } + + @Override + public URI getLocation() { + return locator.getLocation(); + } + + @Override + public String getName() { + String path = locator.getLocation().toASCIIString(); + int index = path.lastIndexOf("/"); + if (index != -1 && index + 1 < path.length()) { + path = path.substring(index + 1, path.length()); + } + return path; + } + + @Override + public boolean isCompressed() { + return HttpRequestDecoder.isDataCompressed(request); + } + +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/TagListener.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/TagListener.java index 79a77a9c4de..23fc6079be1 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/TagListener.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/data/TagListener.java @@ -1,95 +1,95 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.data;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.osee.framework.search.engine.TagListenerAdapter;
-
-/**
- * @author Roberto E. Escobar
- */
-public class TagListener extends TagListenerAdapter {
-
- private volatile Map<Integer, Throwable> tagErrors;
- private volatile Set<Integer> queryIds;
- private volatile boolean wasProcessed;
- private volatile int expectedTotal;
- private volatile int queryCount;
- private volatile int attributeCount;
-
- public TagListener() {
- this.queryIds = Collections.synchronizedSet(new HashSet<Integer>());
- this.wasProcessed = false;
- this.queryCount = 0;
- this.attributeCount = 0;
- this.tagErrors = Collections.synchronizedMap(new HashMap<Integer, Throwable>());
- }
-
- public boolean wasProcessed() {
- return wasProcessed;
- }
-
- public boolean hasErrors() {
- return tagErrors.size() > 0;
- }
-
- public int getAttributeCount() {
- return attributeCount;
- }
-
- public int getQueryCount() {
- return queryCount;
- }
-
- public Map<Integer, Throwable> getTagErrors() {
- return tagErrors;
- }
-
- @Override
- public void onTagExpectedQueryIdSubmits(int totalQueries) {
- this.expectedTotal = totalQueries;
- }
-
- @Override
- synchronized public void onTagError(int queryId, Throwable throwable) {
- tagErrors.put(queryId, throwable);
- this.wasProcessed = true;
- this.notify();
- }
-
- @Override
- synchronized public void onTagQueryIdSubmit(int queryId) {
- queryCount++;
- queryIds.add(queryId);
- }
-
- @Override
- public void onAttributeTagComplete(int queryId, long gammaId, int totalTags, long processingTime) {
- if (this.queryIds.contains(queryId)) {
- attributeCount++;
- }
- }
-
- @Override
- synchronized public void onTagQueryIdTagComplete(int queryId, long waitTime, long processingTime) {
- if (this.queryIds.contains(queryId)) {
- this.queryIds.remove(queryId);
- if (this.queryIds.isEmpty() && queryCount == expectedTotal) {
- this.wasProcessed = true;
- this.notify();
- }
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.data; + +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import org.eclipse.osee.framework.search.engine.TagListenerAdapter; + +/** + * @author Roberto E. Escobar + */ +public class TagListener extends TagListenerAdapter { + + private volatile Map<Integer, Throwable> tagErrors; + private volatile Set<Integer> queryIds; + private volatile boolean wasProcessed; + private volatile int expectedTotal; + private volatile int queryCount; + private volatile int attributeCount; + + public TagListener() { + this.queryIds = Collections.synchronizedSet(new HashSet<Integer>()); + this.wasProcessed = false; + this.queryCount = 0; + this.attributeCount = 0; + this.tagErrors = Collections.synchronizedMap(new HashMap<Integer, Throwable>()); + } + + public boolean wasProcessed() { + return wasProcessed; + } + + public boolean hasErrors() { + return tagErrors.size() > 0; + } + + public int getAttributeCount() { + return attributeCount; + } + + public int getQueryCount() { + return queryCount; + } + + public Map<Integer, Throwable> getTagErrors() { + return tagErrors; + } + + @Override + public void onTagExpectedQueryIdSubmits(int totalQueries) { + this.expectedTotal = totalQueries; + } + + @Override + synchronized public void onTagError(int queryId, Throwable throwable) { + tagErrors.put(queryId, throwable); + this.wasProcessed = true; + this.notify(); + } + + @Override + synchronized public void onTagQueryIdSubmit(int queryId) { + queryCount++; + queryIds.add(queryId); + } + + @Override + public void onAttributeTagComplete(int queryId, long gammaId, int totalTags, long processingTime) { + if (this.queryIds.contains(queryId)) { + attributeCount++; + } + } + + @Override + synchronized public void onTagQueryIdTagComplete(int queryId, long waitTime, long processingTime) { + if (this.queryIds.contains(queryId)) { + this.queryIds.remove(queryId); + if (this.queryIds.isEmpty() && queryCount == expectedTotal) { + this.wasProcessed = true; + this.notify(); + } + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchArchiveStateFunction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchArchiveStateFunction.java index 2efc44c5224..040c4a83a6d 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchArchiveStateFunction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchArchiveStateFunction.java @@ -1,56 +1,56 @@ -/*******************************************************************************
- * Copyright(c) 2009 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.framework.manager.servlet.function;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.ChangeBranchArchiveStateRequest;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Megumi Telles
- */
-public class ChangeBranchArchiveStateFunction extends AbstractOperation {
- private final HttpServletRequest req;
- private final HttpServletResponse resp;
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public ChangeBranchArchiveStateFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) {
- super("Update Branch Archived State", Activator.PLUGIN_ID);
- this.req = req;
- this.resp = resp;
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws Exception {
- ChangeBranchArchiveStateRequest request =
- translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_BRANCH_ARCHIVE_STATE);
-
- IOperation subOp = branchService.updateBranchArchiveState(monitor, request);
- doSubWork(subOp, monitor, 0.90);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/plain");
- resp.setCharacterEncoding("UTF-8");
- resp.getWriter().write("Purge was successful");
- resp.getWriter().flush();
- monitor.worked(calculateWork(0.10));
- }
+/******************************************************************************* + * Copyright(c) 2009 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.framework.manager.servlet.function; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.ChangeBranchArchiveStateRequest; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Megumi Telles + */ +public class ChangeBranchArchiveStateFunction extends AbstractOperation { + private final HttpServletRequest req; + private final HttpServletResponse resp; + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public ChangeBranchArchiveStateFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) { + super("Update Branch Archived State", Activator.PLUGIN_ID); + this.req = req; + this.resp = resp; + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws Exception { + ChangeBranchArchiveStateRequest request = + translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_BRANCH_ARCHIVE_STATE); + + IOperation subOp = branchService.updateBranchArchiveState(monitor, request); + doSubWork(subOp, monitor, 0.90); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/plain"); + resp.setCharacterEncoding("UTF-8"); + resp.getWriter().write("Purge was successful"); + resp.getWriter().flush(); + monitor.worked(calculateWork(0.10)); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchStateFunction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchStateFunction.java index eb82f37528b..ca44f546bc3 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchStateFunction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchStateFunction.java @@ -1,57 +1,57 @@ -/*******************************************************************************
- * Copyright(c) 2009 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.framework.manager.servlet.function;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.ChangeBranchStateRequest;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Megumi Telles
- */
-public class ChangeBranchStateFunction extends AbstractOperation {
-
- private final HttpServletRequest req;
- private final HttpServletResponse resp;
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public ChangeBranchStateFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) {
- super("Update Branch State", Activator.PLUGIN_ID);
- this.req = req;
- this.resp = resp;
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws Exception {
- ChangeBranchStateRequest request =
- translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_BRANCH_STATE);
-
- IOperation subOp = branchService.updateBranchState(monitor, request);
- doSubWork(subOp, monitor, 0.90);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/plain");
- resp.setCharacterEncoding("UTF-8");
- resp.getWriter().write("Purge was successful");
- resp.getWriter().flush();
- monitor.worked(calculateWork(0.10));
- }
+/******************************************************************************* + * Copyright(c) 2009 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.framework.manager.servlet.function; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.ChangeBranchStateRequest; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Megumi Telles + */ +public class ChangeBranchStateFunction extends AbstractOperation { + + private final HttpServletRequest req; + private final HttpServletResponse resp; + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public ChangeBranchStateFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) { + super("Update Branch State", Activator.PLUGIN_ID); + this.req = req; + this.resp = resp; + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws Exception { + ChangeBranchStateRequest request = + translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_BRANCH_STATE); + + IOperation subOp = branchService.updateBranchState(monitor, request); + doSubWork(subOp, monitor, 0.90); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/plain"); + resp.setCharacterEncoding("UTF-8"); + resp.getWriter().write("Purge was successful"); + resp.getWriter().flush(); + monitor.worked(calculateWork(0.10)); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchTypeFunction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchTypeFunction.java index c47a4d7c583..b9aec456c01 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchTypeFunction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeBranchTypeFunction.java @@ -1,57 +1,57 @@ -/*******************************************************************************
- * Copyright(c) 2009 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.framework.manager.servlet.function;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.ChangeBranchTypeRequest;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Megumi Telles
- */
-public class ChangeBranchTypeFunction extends AbstractOperation {
-
- private final HttpServletRequest req;
- private final HttpServletResponse resp;
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public ChangeBranchTypeFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) {
- super("Update Branch Type", Activator.PLUGIN_ID);
- this.req = req;
- this.resp = resp;
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws Exception {
- ChangeBranchTypeRequest request =
- translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_BRANCH_TYPE);
-
- IOperation subOp = branchService.updateBranchType(monitor, request);
- doSubWork(subOp, monitor, 0.90);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/plain");
- resp.setCharacterEncoding("UTF-8");
- resp.getWriter().write("Purge was successful");
- resp.getWriter().flush();
- monitor.worked(calculateWork(0.10));
- }
+/******************************************************************************* + * Copyright(c) 2009 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.framework.manager.servlet.function; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.ChangeBranchTypeRequest; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Megumi Telles + */ +public class ChangeBranchTypeFunction extends AbstractOperation { + + private final HttpServletRequest req; + private final HttpServletResponse resp; + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public ChangeBranchTypeFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) { + super("Update Branch Type", Activator.PLUGIN_ID); + this.req = req; + this.resp = resp; + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws Exception { + ChangeBranchTypeRequest request = + translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_BRANCH_TYPE); + + IOperation subOp = branchService.updateBranchType(monitor, request); + doSubWork(subOp, monitor, 0.90); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/plain"); + resp.setCharacterEncoding("UTF-8"); + resp.getWriter().write("Purge was successful"); + resp.getWriter().flush(); + monitor.worked(calculateWork(0.10)); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeReportFunction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeReportFunction.java index 5918a3020ac..8f483810bd8 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeReportFunction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/ChangeReportFunction.java @@ -1,61 +1,61 @@ -/*******************************************************************************
- * Copyright(c) 2009 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.framework.manager.servlet.function;
-
-import java.io.InputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.ChangeReportRequest;
-import org.eclipse.osee.framework.core.message.ChangeReportResponse;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Jeff C. Phillips
- */
-public class ChangeReportFunction extends AbstractOperation {
-
- private final HttpServletRequest req;
- private final HttpServletResponse resp;
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public ChangeReportFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) {
- super("Branch Change Report", Activator.PLUGIN_ID);
- this.req = req;
- this.resp = resp;
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws Exception {
- ChangeReportRequest request =
- translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_REPORT_REQUEST);
-
- ChangeReportResponse response = new ChangeReportResponse();
- IOperation subOp = branchService.getChanges(monitor, request, response);
- doSubWork(subOp, monitor, 0.90);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/xml");
- resp.setCharacterEncoding("UTF-8");
- InputStream inputStream = translationService.convertToStream(response, CoreTranslatorId.CHANGE_REPORT_RESPONSE);
- Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream());
- monitor.worked(calculateWork(0.10));
- }
+/******************************************************************************* + * Copyright(c) 2009 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.framework.manager.servlet.function; + +import java.io.InputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.ChangeReportRequest; +import org.eclipse.osee.framework.core.message.ChangeReportResponse; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Jeff C. Phillips + */ +public class ChangeReportFunction extends AbstractOperation { + + private final HttpServletRequest req; + private final HttpServletResponse resp; + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public ChangeReportFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) { + super("Branch Change Report", Activator.PLUGIN_ID); + this.req = req; + this.resp = resp; + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws Exception { + ChangeReportRequest request = + translationService.convert(req.getInputStream(), CoreTranslatorId.CHANGE_REPORT_REQUEST); + + ChangeReportResponse response = new ChangeReportResponse(); + IOperation subOp = branchService.getChanges(monitor, request, response); + doSubWork(subOp, monitor, 0.90); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/xml"); + resp.setCharacterEncoding("UTF-8"); + InputStream inputStream = translationService.convertToStream(response, CoreTranslatorId.CHANGE_REPORT_RESPONSE); + Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream()); + monitor.worked(calculateWork(0.10)); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateBranchFunction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateBranchFunction.java index 9053cc8534b..a98304de620 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateBranchFunction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateBranchFunction.java @@ -1,64 +1,64 @@ -/*******************************************************************************
- * Copyright(c) 2009 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.framework.manager.servlet.function;
-
-import java.io.InputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.BranchCreationRequest;
-import org.eclipse.osee.framework.core.message.BranchCreationResponse;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.operation.LogProgressMonitor;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Jeff C. Phillips
- */
-public class CreateBranchFunction extends AbstractOperation {
-
- private final HttpServletRequest req;
- private final HttpServletResponse resp;
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public CreateBranchFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) {
- super("Create Branch", Activator.PLUGIN_ID);
- this.req = req;
- this.resp = resp;
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws Exception {
-
- BranchCreationRequest creationRequest =
- translationService.convert(req.getInputStream(), CoreTranslatorId.BRANCH_CREATION_REQUEST);
-
- BranchCreationResponse creationResponse = new BranchCreationResponse(-1);
- IOperation subOp = branchService.createBranch(new LogProgressMonitor(), creationRequest, creationResponse);
- doSubWork(subOp, monitor, 0.80);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/xml");
- resp.setCharacterEncoding("UTF-8");
- InputStream inputStream =
- translationService.convertToStream(creationResponse, CoreTranslatorId.BRANCH_CREATION_RESPONSE);
- Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream());
- monitor.worked(calculateWork(0.20));
- }
+/******************************************************************************* + * Copyright(c) 2009 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.framework.manager.servlet.function; + +import java.io.InputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.BranchCreationRequest; +import org.eclipse.osee.framework.core.message.BranchCreationResponse; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.LogProgressMonitor; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Jeff C. Phillips + */ +public class CreateBranchFunction extends AbstractOperation { + + private final HttpServletRequest req; + private final HttpServletResponse resp; + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public CreateBranchFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) { + super("Create Branch", Activator.PLUGIN_ID); + this.req = req; + this.resp = resp; + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws Exception { + + BranchCreationRequest creationRequest = + translationService.convert(req.getInputStream(), CoreTranslatorId.BRANCH_CREATION_REQUEST); + + BranchCreationResponse creationResponse = new BranchCreationResponse(-1); + IOperation subOp = branchService.createBranch(new LogProgressMonitor(), creationRequest, creationResponse); + doSubWork(subOp, monitor, 0.80); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/xml"); + resp.setCharacterEncoding("UTF-8"); + InputStream inputStream = + translationService.convertToStream(creationResponse, CoreTranslatorId.BRANCH_CREATION_RESPONSE); + Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream()); + monitor.worked(calculateWork(0.20)); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateCommitFunction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateCommitFunction.java index 308b6531c73..78fe4480051 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateCommitFunction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/CreateCommitFunction.java @@ -1,59 +1,59 @@ -/*******************************************************************************
- * Copyright(c) 2009 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.framework.manager.servlet.function;
-
-import java.io.InputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.BranchCommitRequest;
-import org.eclipse.osee.framework.core.message.BranchCommitResponse;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Megumi Telles
- */
-public class CreateCommitFunction extends AbstractOperation {
- private final HttpServletRequest req;
- private final HttpServletResponse resp;
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public CreateCommitFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) {
- super("Commit Branch", Activator.PLUGIN_ID);
- this.req = req;
- this.resp = resp;
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws Exception {
- BranchCommitRequest data =
- translationService.convert(req.getInputStream(), CoreTranslatorId.BRANCH_COMMIT_REQUEST);
-
- BranchCommitResponse responseData = new BranchCommitResponse();
- branchService.commitBranch(new NullProgressMonitor(), data, responseData);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/xml");
- resp.setCharacterEncoding("UTF-8");
- InputStream inputStream =
- translationService.convertToStream(responseData, CoreTranslatorId.BRANCH_COMMIT_RESPONSE);
- Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream());
- }
-}
+/******************************************************************************* + * Copyright(c) 2009 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.framework.manager.servlet.function; + +import java.io.InputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.BranchCommitRequest; +import org.eclipse.osee.framework.core.message.BranchCommitResponse; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Megumi Telles + */ +public class CreateCommitFunction extends AbstractOperation { + private final HttpServletRequest req; + private final HttpServletResponse resp; + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public CreateCommitFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) { + super("Commit Branch", Activator.PLUGIN_ID); + this.req = req; + this.resp = resp; + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws Exception { + BranchCommitRequest data = + translationService.convert(req.getInputStream(), CoreTranslatorId.BRANCH_COMMIT_REQUEST); + + BranchCommitResponse responseData = new BranchCommitResponse(); + branchService.commitBranch(new NullProgressMonitor(), data, responseData); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/xml"); + resp.setCharacterEncoding("UTF-8"); + InputStream inputStream = + translationService.convertToStream(responseData, CoreTranslatorId.BRANCH_COMMIT_RESPONSE); + Lib.inputStreamToOutputStream(inputStream, resp.getOutputStream()); + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/PurgeBranchFunction.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/PurgeBranchFunction.java index 6fb14b3e7bf..16182630c37 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/PurgeBranchFunction.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/function/PurgeBranchFunction.java @@ -1,57 +1,57 @@ -/*******************************************************************************
- * Copyright(c) 2009 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.framework.manager.servlet.function;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.enums.CoreTranslatorId;
-import org.eclipse.osee.framework.core.message.PurgeBranchRequest;
-import org.eclipse.osee.framework.core.operation.AbstractOperation;
-import org.eclipse.osee.framework.core.operation.IOperation;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.manager.servlet.internal.Activator;
-
-/**
- * @author Megumi Telles
- * @author Jeff C. Phillips
- */
-public class PurgeBranchFunction extends AbstractOperation {
- private final HttpServletRequest req;
- private final HttpServletResponse resp;
- private final IOseeBranchService branchService;
- private final IDataTranslationService translationService;
-
- public PurgeBranchFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) {
- super("Purge Branch", Activator.PLUGIN_ID);
- this.req = req;
- this.resp = resp;
- this.branchService = branchService;
- this.translationService = translationService;
- }
-
- @Override
- protected void doWork(IProgressMonitor monitor) throws Exception {
- PurgeBranchRequest request =
- translationService.convert(req.getInputStream(), CoreTranslatorId.PURGE_BRANCH_REQUEST);
-
- IOperation subOp = branchService.purge(monitor, request);
- doSubWork(subOp, monitor, 0.90);
-
- resp.setStatus(HttpServletResponse.SC_ACCEPTED);
- resp.setContentType("text/plain");
- resp.setCharacterEncoding("UTF-8");
- resp.getWriter().write("Purge was successful");
- resp.getWriter().flush();
- monitor.worked(calculateWork(0.10));
- }
+/******************************************************************************* + * Copyright(c) 2009 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.framework.manager.servlet.function; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.enums.CoreTranslatorId; +import org.eclipse.osee.framework.core.message.PurgeBranchRequest; +import org.eclipse.osee.framework.core.operation.AbstractOperation; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.manager.servlet.internal.Activator; + +/** + * @author Megumi Telles + * @author Jeff C. Phillips + */ +public class PurgeBranchFunction extends AbstractOperation { + private final HttpServletRequest req; + private final HttpServletResponse resp; + private final IOseeBranchService branchService; + private final IDataTranslationService translationService; + + public PurgeBranchFunction(HttpServletRequest req, HttpServletResponse resp, IOseeBranchService branchService, IDataTranslationService translationService) { + super("Purge Branch", Activator.PLUGIN_ID); + this.req = req; + this.resp = resp; + this.branchService = branchService; + this.translationService = translationService; + } + + @Override + protected void doWork(IProgressMonitor monitor) throws Exception { + PurgeBranchRequest request = + translationService.convert(req.getInputStream(), CoreTranslatorId.PURGE_BRANCH_REQUEST); + + IOperation subOp = branchService.purge(monitor, request); + doSubWork(subOp, monitor, 0.90); + + resp.setStatus(HttpServletResponse.SC_ACCEPTED); + resp.setContentType("text/plain"); + resp.setCharacterEncoding("UTF-8"); + resp.getWriter().write("Purge was successful"); + resp.getWriter().flush(); + monitor.worked(calculateWork(0.10)); + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/Activator.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/Activator.java index 3c617189bbf..1aa72f7a54f 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/Activator.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/Activator.java @@ -1,38 +1,38 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.internal;
-
-import org.eclipse.osee.framework.core.util.ServiceDependencyTracker;
-import org.eclipse.osee.framework.jdk.core.util.Lib;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-/**
- * @author Donald G. Dunne
- */
-public class Activator implements BundleActivator {
- public static final String PLUGIN_ID = "org.eclipse.osee.framework.manager.servlet";
-
- private ServiceDependencyTracker dependencyTracker;
-
- @Override
- public void start(BundleContext context) throws Exception {
- dependencyTracker = new ServiceDependencyTracker(context, new ServletRegistrationHandler());
- dependencyTracker.open();
- }
-
- @Override
- public void stop(BundleContext context) throws Exception {
- Lib.close(dependencyTracker);
- }
-
-}
+/******************************************************************************* + * 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.framework.manager.servlet.internal; + +import org.eclipse.osee.framework.core.util.ServiceDependencyTracker; +import org.eclipse.osee.framework.jdk.core.util.Lib; +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +/** + * @author Donald G. Dunne + */ +public class Activator implements BundleActivator { + public static final String PLUGIN_ID = "org.eclipse.osee.framework.manager.servlet"; + + private ServiceDependencyTracker dependencyTracker; + + @Override + public void start(BundleContext context) throws Exception { + dependencyTracker = new ServiceDependencyTracker(context, new ServletRegistrationHandler()); + dependencyTracker.open(); + } + + @Override + public void stop(BundleContext context) throws Exception { + Lib.close(dependencyTracker); + } + +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java index 579a7f71074..d1057d43221 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletRegistrationHandler.java @@ -1,150 +1,150 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.internal;
-
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import org.eclipse.osee.framework.branch.management.IBranchExchange;
-import org.eclipse.osee.framework.branch.management.IOseeBranchService;
-import org.eclipse.osee.framework.core.data.OseeServerContext;
-import org.eclipse.osee.framework.core.message.IOseeModelingService;
-import org.eclipse.osee.framework.core.server.IApplicationServerLookup;
-import org.eclipse.osee.framework.core.server.IApplicationServerManager;
-import org.eclipse.osee.framework.core.server.IAuthenticationManager;
-import org.eclipse.osee.framework.core.server.ISessionManager;
-import org.eclipse.osee.framework.core.server.OseeHttpServlet;
-import org.eclipse.osee.framework.core.services.IOseeCachingService;
-import org.eclipse.osee.framework.core.services.IOseeModelFactoryService;
-import org.eclipse.osee.framework.core.translation.IDataTranslationService;
-import org.eclipse.osee.framework.core.util.AbstractTrackingHandler;
-import org.eclipse.osee.framework.database.IOseeDatabaseService;
-import org.eclipse.osee.framework.manager.servlet.ArtifactFileServlet;
-import org.eclipse.osee.framework.manager.servlet.AtsServlet;
-import org.eclipse.osee.framework.manager.servlet.BranchExchangeServlet;
-import org.eclipse.osee.framework.manager.servlet.BranchManagerServlet;
-import org.eclipse.osee.framework.manager.servlet.ClientInstallInfoServlet;
-import org.eclipse.osee.framework.manager.servlet.ConfigurationServlet;
-import org.eclipse.osee.framework.manager.servlet.DataServlet;
-import org.eclipse.osee.framework.manager.servlet.OseeCacheServlet;
-import org.eclipse.osee.framework.manager.servlet.OseeModelServlet;
-import org.eclipse.osee.framework.manager.servlet.ResourceManagerServlet;
-import org.eclipse.osee.framework.manager.servlet.SearchEngineServlet;
-import org.eclipse.osee.framework.manager.servlet.SearchEngineTaggerServlet;
-import org.eclipse.osee.framework.manager.servlet.ServerLookupServlet;
-import org.eclipse.osee.framework.manager.servlet.SessionClientLoopbackServlet;
-import org.eclipse.osee.framework.manager.servlet.SessionManagementServlet;
-import org.eclipse.osee.framework.manager.servlet.SystemManagerServlet;
-import org.eclipse.osee.framework.manager.servlet.UnsubscribeServlet;
-import org.eclipse.osee.framework.resource.management.IResourceLocatorManager;
-import org.eclipse.osee.framework.resource.management.IResourceManager;
-import org.eclipse.osee.framework.search.engine.ISearchEngine;
-import org.eclipse.osee.framework.search.engine.ISearchEngineTagger;
-import org.osgi.framework.BundleContext;
-import org.osgi.service.http.HttpService;
-
-/**
- * @author Roberto E. Escobar
- */
-public class ServletRegistrationHandler extends AbstractTrackingHandler {
-
- private static final Class<?>[] SERVICE_DEPENDENCIES = new Class<?>[] {
- //
- ISessionManager.class, //
- IApplicationServerLookup.class, //
- IApplicationServerManager.class, //
- IAuthenticationManager.class,//
- IDataTranslationService.class, //
- IOseeModelingService.class, //
- IOseeCachingService.class,//
- IOseeDatabaseService.class, //
- IOseeBranchService.class, //
- IBranchExchange.class, //
- ISearchEngine.class,//
- ISearchEngineTagger.class, //
- IOseeModelFactoryService.class, //
- IResourceLocatorManager.class,//
- IResourceManager.class, //
- HttpService.class, //
- };
-
- private final Set<String> contexts = new HashSet<String>();
- private HttpService httpService;
- private IApplicationServerManager appServerManager;
-
- @Override
- public Class<?>[] getDependencies() {
- return SERVICE_DEPENDENCIES;
- }
-
- @Override
- public void onActivate(BundleContext context, Map<Class<?>, Object> services) {
- ISessionManager sessionManager = getService(ISessionManager.class, services);
- IApplicationServerLookup serverLookup = getService(IApplicationServerLookup.class, services);
- appServerManager = getService(IApplicationServerManager.class, services);
- IDataTranslationService translationService = getService(IDataTranslationService.class, services);
- IOseeModelingService modeling = getService(IOseeModelingService.class, services);
- IOseeCachingService caching = getService(IOseeCachingService.class, services);
- IOseeDatabaseService databaseService = getService(IOseeDatabaseService.class, services);
- IOseeBranchService branchService = getService(IOseeBranchService.class, services);
- IBranchExchange branchExchangeService = getService(IBranchExchange.class, services);
- ISearchEngine search = getService(ISearchEngine.class, services);
- ISearchEngineTagger tagger = getService(ISearchEngineTagger.class, services);
- IAuthenticationManager authenticationManager = getService(IAuthenticationManager.class, services);
- IOseeModelFactoryService factoryService = getService(IOseeModelFactoryService.class, services);
- IResourceLocatorManager locatorManager = getService(IResourceLocatorManager.class, services);
- IResourceManager resourceManager = getService(IResourceManager.class, services);
-
- httpService = getService(HttpService.class, services);
- appServerManager = getService(IApplicationServerManager.class, services);
-
- register(new SystemManagerServlet(sessionManager), OseeServerContext.MANAGER_CONTEXT);
- register(new ResourceManagerServlet(sessionManager, locatorManager, resourceManager),
- OseeServerContext.RESOURCE_CONTEXT);
- register(new ArtifactFileServlet(locatorManager, resourceManager), OseeServerContext.PROCESS_CONTEXT);
- register(new ArtifactFileServlet(locatorManager, resourceManager), OseeServerContext.ARTIFACT_CONTEXT);
- register(new ArtifactFileServlet(locatorManager, resourceManager), "index");
- register(new BranchExchangeServlet(sessionManager, branchExchangeService, locatorManager, resourceManager),
- OseeServerContext.BRANCH_EXCHANGE_CONTEXT);
- register(new BranchManagerServlet(sessionManager, branchService, translationService),
- OseeServerContext.BRANCH_CONTEXT);
- register(new SearchEngineServlet(sessionManager, search, caching), OseeServerContext.SEARCH_CONTEXT);
- register(new SearchEngineTaggerServlet(sessionManager, tagger), OseeServerContext.SEARCH_TAGGING_CONTEXT);
- register(new ServerLookupServlet(serverLookup, appServerManager), OseeServerContext.LOOKUP_CONTEXT);
- register(new SessionManagementServlet(sessionManager, authenticationManager), OseeServerContext.SESSION_CONTEXT);
- register(new SessionClientLoopbackServlet(sessionManager), OseeServerContext.CLIENT_LOOPBACK_CONTEXT);
- register(new ClientInstallInfoServlet(), "osee/install/info");
- register(new OseeCacheServlet(sessionManager, translationService, caching, factoryService),
- OseeServerContext.CACHE_CONTEXT);
- register(new OseeModelServlet(sessionManager, translationService, modeling), OseeServerContext.OSEE_MODEL_CONTEXT);
- register(new UnsubscribeServlet(context, databaseService, caching), "osee/unsubscribe");
-
- register(new AtsServlet(locatorManager, resourceManager), "osee/ats");
- register(new ConfigurationServlet(appServerManager, translationService, databaseService, branchService),
- OseeServerContext.OSEE_CONFIGURE_CONTEXT);
- register(new DataServlet(locatorManager, resourceManager), "osee/data");
- }
-
- private void register(OseeHttpServlet servlet, String... contexts) {
- this.contexts.addAll(Arrays.asList(contexts));
- ServletUtil.register(httpService, appServerManager, servlet, contexts);
- }
-
- @Override
- public void onDeActivate() {
- if (httpService != null && appServerManager != null) {
- ServletUtil.unregister(httpService, appServerManager, contexts);
- }
- contexts.clear();
- }
-
-}
+/******************************************************************************* + * 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.framework.manager.servlet.internal; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import org.eclipse.osee.framework.branch.management.IBranchExchange; +import org.eclipse.osee.framework.branch.management.IOseeBranchService; +import org.eclipse.osee.framework.core.data.OseeServerContext; +import org.eclipse.osee.framework.core.message.IOseeModelingService; +import org.eclipse.osee.framework.core.server.IApplicationServerLookup; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; +import org.eclipse.osee.framework.core.server.IAuthenticationManager; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.OseeHttpServlet; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.core.services.IOseeModelFactoryService; +import org.eclipse.osee.framework.core.translation.IDataTranslationService; +import org.eclipse.osee.framework.core.util.AbstractTrackingHandler; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.framework.manager.servlet.ArtifactFileServlet; +import org.eclipse.osee.framework.manager.servlet.AtsServlet; +import org.eclipse.osee.framework.manager.servlet.BranchExchangeServlet; +import org.eclipse.osee.framework.manager.servlet.BranchManagerServlet; +import org.eclipse.osee.framework.manager.servlet.ClientInstallInfoServlet; +import org.eclipse.osee.framework.manager.servlet.ConfigurationServlet; +import org.eclipse.osee.framework.manager.servlet.DataServlet; +import org.eclipse.osee.framework.manager.servlet.OseeCacheServlet; +import org.eclipse.osee.framework.manager.servlet.OseeModelServlet; +import org.eclipse.osee.framework.manager.servlet.ResourceManagerServlet; +import org.eclipse.osee.framework.manager.servlet.SearchEngineServlet; +import org.eclipse.osee.framework.manager.servlet.SearchEngineTaggerServlet; +import org.eclipse.osee.framework.manager.servlet.ServerLookupServlet; +import org.eclipse.osee.framework.manager.servlet.SessionClientLoopbackServlet; +import org.eclipse.osee.framework.manager.servlet.SessionManagementServlet; +import org.eclipse.osee.framework.manager.servlet.SystemManagerServlet; +import org.eclipse.osee.framework.manager.servlet.UnsubscribeServlet; +import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; +import org.eclipse.osee.framework.resource.management.IResourceManager; +import org.eclipse.osee.framework.search.engine.ISearchEngine; +import org.eclipse.osee.framework.search.engine.ISearchEngineTagger; +import org.osgi.framework.BundleContext; +import org.osgi.service.http.HttpService; + +/** + * @author Roberto E. Escobar + */ +public class ServletRegistrationHandler extends AbstractTrackingHandler { + + private static final Class<?>[] SERVICE_DEPENDENCIES = new Class<?>[] { + // + ISessionManager.class, // + IApplicationServerLookup.class, // + IApplicationServerManager.class, // + IAuthenticationManager.class,// + IDataTranslationService.class, // + IOseeModelingService.class, // + IOseeCachingService.class,// + IOseeDatabaseService.class, // + IOseeBranchService.class, // + IBranchExchange.class, // + ISearchEngine.class,// + ISearchEngineTagger.class, // + IOseeModelFactoryService.class, // + IResourceLocatorManager.class,// + IResourceManager.class, // + HttpService.class, // + }; + + private final Set<String> contexts = new HashSet<String>(); + private HttpService httpService; + private IApplicationServerManager appServerManager; + + @Override + public Class<?>[] getDependencies() { + return SERVICE_DEPENDENCIES; + } + + @Override + public void onActivate(BundleContext context, Map<Class<?>, Object> services) { + ISessionManager sessionManager = getService(ISessionManager.class, services); + IApplicationServerLookup serverLookup = getService(IApplicationServerLookup.class, services); + appServerManager = getService(IApplicationServerManager.class, services); + IDataTranslationService translationService = getService(IDataTranslationService.class, services); + IOseeModelingService modeling = getService(IOseeModelingService.class, services); + IOseeCachingService caching = getService(IOseeCachingService.class, services); + IOseeDatabaseService databaseService = getService(IOseeDatabaseService.class, services); + IOseeBranchService branchService = getService(IOseeBranchService.class, services); + IBranchExchange branchExchangeService = getService(IBranchExchange.class, services); + ISearchEngine search = getService(ISearchEngine.class, services); + ISearchEngineTagger tagger = getService(ISearchEngineTagger.class, services); + IAuthenticationManager authenticationManager = getService(IAuthenticationManager.class, services); + IOseeModelFactoryService factoryService = getService(IOseeModelFactoryService.class, services); + IResourceLocatorManager locatorManager = getService(IResourceLocatorManager.class, services); + IResourceManager resourceManager = getService(IResourceManager.class, services); + + httpService = getService(HttpService.class, services); + appServerManager = getService(IApplicationServerManager.class, services); + + register(new SystemManagerServlet(sessionManager), OseeServerContext.MANAGER_CONTEXT); + register(new ResourceManagerServlet(sessionManager, locatorManager, resourceManager), + OseeServerContext.RESOURCE_CONTEXT); + register(new ArtifactFileServlet(locatorManager, resourceManager), OseeServerContext.PROCESS_CONTEXT); + register(new ArtifactFileServlet(locatorManager, resourceManager), OseeServerContext.ARTIFACT_CONTEXT); + register(new ArtifactFileServlet(locatorManager, resourceManager), "index"); + register(new BranchExchangeServlet(sessionManager, branchExchangeService, locatorManager, resourceManager), + OseeServerContext.BRANCH_EXCHANGE_CONTEXT); + register(new BranchManagerServlet(sessionManager, branchService, translationService), + OseeServerContext.BRANCH_CONTEXT); + register(new SearchEngineServlet(sessionManager, search, caching), OseeServerContext.SEARCH_CONTEXT); + register(new SearchEngineTaggerServlet(sessionManager, tagger), OseeServerContext.SEARCH_TAGGING_CONTEXT); + register(new ServerLookupServlet(serverLookup, appServerManager), OseeServerContext.LOOKUP_CONTEXT); + register(new SessionManagementServlet(sessionManager, authenticationManager), OseeServerContext.SESSION_CONTEXT); + register(new SessionClientLoopbackServlet(sessionManager), OseeServerContext.CLIENT_LOOPBACK_CONTEXT); + register(new ClientInstallInfoServlet(), "osee/install/info"); + register(new OseeCacheServlet(sessionManager, translationService, caching, factoryService), + OseeServerContext.CACHE_CONTEXT); + register(new OseeModelServlet(sessionManager, translationService, modeling), OseeServerContext.OSEE_MODEL_CONTEXT); + register(new UnsubscribeServlet(context, databaseService, caching), "osee/unsubscribe"); + + register(new AtsServlet(locatorManager, resourceManager), "osee/ats"); + register(new ConfigurationServlet(appServerManager, translationService, databaseService, branchService), + OseeServerContext.OSEE_CONFIGURE_CONTEXT); + register(new DataServlet(locatorManager, resourceManager), "osee/data"); + } + + private void register(OseeHttpServlet servlet, String... contexts) { + this.contexts.addAll(Arrays.asList(contexts)); + ServletUtil.register(httpService, appServerManager, servlet, contexts); + } + + @Override + public void onDeActivate() { + if (httpService != null && appServerManager != null) { + ServletUtil.unregister(httpService, appServerManager, contexts); + } + contexts.clear(); + } + +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletUtil.java b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletUtil.java index 8e7ec1e2e7e..3694ba2232b 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletUtil.java +++ b/plugins/org.eclipse.osee.framework.manager.servlet/src/org/eclipse/osee/framework/manager/servlet/internal/ServletUtil.java @@ -1,51 +1,51 @@ -/*******************************************************************************
- * 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.framework.manager.servlet.internal;
-
-import java.util.Collection;
-import org.eclipse.osee.framework.core.server.IApplicationServerManager;
-import org.eclipse.osee.framework.core.server.OseeHttpServlet;
-import org.osgi.service.http.HttpService;
-
-/**
- * @author Roberto E. Escobar
- */
-public final class ServletUtil {
-
- private ServletUtil() {
- }
-
- private static String normalizeContext(String contextName) {
- return !contextName.startsWith("/") ? "/" + contextName : contextName;
- }
-
- public static void register(HttpService httpService, IApplicationServerManager manager, OseeHttpServlet servlet, String... contexts) {
- try {
- for (String context : contexts) {
- String contextName = normalizeContext(context);
- httpService.registerServlet(contextName, servlet, null, null);
- manager.register(contextName, servlet);
- System.out.println(String.format("Registered servlet '%s'", contextName));
- }
- } catch (Exception ex) {
- throw new RuntimeException(ex);
- }
- }
-
- public static void unregister(HttpService httpService, IApplicationServerManager manager, Collection<String> contexts) {
- for (String context : contexts) {
- String contextName = normalizeContext(context);
- httpService.unregister(contextName);
- manager.unregister(contextName);
- System.out.println(String.format("De-registering servlet '%s'", contextName));
- }
- }
-}
+/******************************************************************************* + * 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.framework.manager.servlet.internal; + +import java.util.Collection; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; +import org.eclipse.osee.framework.core.server.OseeHttpServlet; +import org.osgi.service.http.HttpService; + +/** + * @author Roberto E. Escobar + */ +public final class ServletUtil { + + private ServletUtil() { + } + + private static String normalizeContext(String contextName) { + return !contextName.startsWith("/") ? "/" + contextName : contextName; + } + + public static void register(HttpService httpService, IApplicationServerManager manager, OseeHttpServlet servlet, String... contexts) { + try { + for (String context : contexts) { + String contextName = normalizeContext(context); + httpService.registerServlet(contextName, servlet, null, null); + manager.register(contextName, servlet); + System.out.println(String.format("Registered servlet '%s'", contextName)); + } + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } + + public static void unregister(HttpService httpService, IApplicationServerManager manager, Collection<String> contexts) { + for (String context : contexts) { + String contextName = normalizeContext(context); + httpService.unregister(contextName); + manager.unregister(contextName); + System.out.println(String.format("De-registering servlet '%s'", contextName)); + } + } +} diff --git a/plugins/org.eclipse.osee.framework.manager.servlet/templates/unsubscribeTemplate.html b/plugins/org.eclipse.osee.framework.manager.servlet/templates/unsubscribeTemplate.html index 5d58f0d9f8c..3c3daa1e20c 100644 --- a/plugins/org.eclipse.osee.framework.manager.servlet/templates/unsubscribeTemplate.html +++ b/plugins/org.eclipse.osee.framework.manager.servlet/templates/unsubscribeTemplate.html @@ -1,32 +1,32 @@ -<html>
-<head>
-<title>OSEE Unsubscribe</title>
-<script type="text/javascript">
-
- function getHTTPObject() {
- if (window.XMLHttpRequest) { // for IE7+, Firefox, Chrome, Opera, Safari
- return new XMLHttpRequest();
- } // for IE6, IE5
- return new ActiveXObject("Microsoft.XMLHTTP");
- }
-
- function unsubscribe(url, groupId, userId) {
- var deleteStatus = document.getElementById('deleteStatus');
- deleteStatus.innerHTML = "Sending unsubscribe request...";
-
- var xmlhttp = getHTTPObject();
- xmlhttp.open("DELETE", url, false);
- xmlhttp.setRequestHeader("Content-Type", "application/xml;charset=utf-8");
- xmlhttp.send("<request><groupId>" + groupId + "</groupId><userId>"+userId+"</userId></request>");
-
- deleteStatus.innerHTML = "Status: " + xmlhttp.status + " " + xmlhttp.responseText;
- var link = document.getElementById("unsubscribeLink");
- link.parentNode.removeChild(link);
- }
-</script>
-</head>
-<body>
-<a id="unsubscribeLink" href="javascript:unsubscribe('%s','%s','%s');">Click here to confirm unsubscribe.</a>
-<p><em id="deleteStatus"></em></p>
-</body>
+<html> +<head> +<title>OSEE Unsubscribe</title> +<script type="text/javascript"> + + function getHTTPObject() { + if (window.XMLHttpRequest) { // for IE7+, Firefox, Chrome, Opera, Safari + return new XMLHttpRequest(); + } // for IE6, IE5 + return new ActiveXObject("Microsoft.XMLHTTP"); + } + + function unsubscribe(url, groupId, userId) { + var deleteStatus = document.getElementById('deleteStatus'); + deleteStatus.innerHTML = "Sending unsubscribe request..."; + + var xmlhttp = getHTTPObject(); + xmlhttp.open("DELETE", url, false); + xmlhttp.setRequestHeader("Content-Type", "application/xml;charset=utf-8"); + xmlhttp.send("<request><groupId>" + groupId + "</groupId><userId>"+userId+"</userId></request>"); + + deleteStatus.innerHTML = "Status: " + xmlhttp.status + " " + xmlhttp.responseText; + var link = document.getElementById("unsubscribeLink"); + link.parentNode.removeChild(link); + } +</script> +</head> +<body> +<a id="unsubscribeLink" href="javascript:unsubscribe('%s','%s','%s');">Click here to confirm unsubscribe.</a> +<p><em id="deleteStatus"></em></p> +</body> </html>
\ No newline at end of file |