diff options
author | Roberto E. Escobar | 2012-02-28 22:45:24 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2012-02-28 22:45:24 +0000 |
commit | 1ba8804ece65c87e780f3ccb5c81f3d5201f19f5 (patch) | |
tree | 0fb8d86a54496f180a14ed050876a241817ad4ef | |
parent | 18b9f39a0037727edcd8ae767531414dcff80b7f (diff) | |
download | org.eclipse.osee-1ba8804ece65c87e780f3ccb5c81f3d5201f19f5.tar.gz org.eclipse.osee-1ba8804ece65c87e780f3ccb5c81f3d5201f19f5.tar.xz org.eclipse.osee-1ba8804ece65c87e780f3ccb5c81f3d5201f19f5.zip |
feature[ats_VVMH0]: Integrate server.admin with X server
104 files changed, 2725 insertions, 3347 deletions
diff --git a/plugins/org.eclipse.osee.framework.core.server/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.core.server/META-INF/MANIFEST.MF index ccdc847ce87..c83b56557ef 100644 --- a/plugins/org.eclipse.osee.framework.core.server/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.framework.core.server/META-INF/MANIFEST.MF @@ -5,9 +5,10 @@ Bundle-SymbolicName: org.eclipse.osee.framework.core.server;singleton:=true Bundle-Version: 0.9.9.qualifier Bundle-Vendor: Eclipse Open System Engineering Environment Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Import-Package: javax.servlet;version="2.5.0", +Import-Package: javax.servlet;version="2.5.0", javax.servlet.http;version="2.5.0", org.apache.commons.codec.binary;version="1.3.0", + org.eclipse.osee.console.admin, org.eclipse.osee.framework.core.data, org.eclipse.osee.framework.core.enums, org.eclipse.osee.framework.core.exception, diff --git a/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.schedule.console.command.xml b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.schedule.console.command.xml new file mode 100644 index 00000000000..cfb952d8872 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.schedule.console.command.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.framework.core.server.internal.console.ServerScheduleCommand"> + <implementation class="org.eclipse.osee.framework.core.server.internal.console.ServerScheduleCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> +</scr:component> diff --git a/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.servlet.request.console.command.xml b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.servlet.request.console.command.xml new file mode 100644 index 00000000000..838650016e6 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.servlet.request.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.framework.core.server.internal.console.ServerServletRequestsCommand"> + <implementation class="org.eclipse.osee.framework.core.server.internal.console.ServerServletRequestsCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setApplicationServerManager" cardinality="1..1" interface="org.eclipse.osee.framework.core.server.IApplicationServerManager" name="IApplicationServerManager" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.shutdown.console.command.xml b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.shutdown.console.command.xml new file mode 100644 index 00000000000..b0f4f8b6252 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.shutdown.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.framework.core.server.internal.console.ServerShutdownCommand"> + <implementation class="org.eclipse.osee.framework.core.server.internal.console.ServerShutdownCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setApplicationServerManager" cardinality="1..1" interface="org.eclipse.osee.framework.core.server.IApplicationServerManager" name="IApplicationServerManager" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.stats.console.command.xml b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.stats.console.command.xml new file mode 100644 index 00000000000..5276c1c15e7 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.stats.console.command.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.framework.core.server.internal.console.ServerStatsCommand"> + <implementation class="org.eclipse.osee.framework.core.server.internal.console.ServerStatsCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setApplicationServerManager" cardinality="1..1" interface="org.eclipse.osee.framework.core.server.IApplicationServerManager" name="IApplicationServerManager" policy="static"/> + <reference bind="setSessionManager" cardinality="1..1" interface="org.eclipse.osee.framework.core.server.ISessionManager" name="ISessionManager" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.version.console.command.xml b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.version.console.command.xml new file mode 100644 index 00000000000..aad894a9775 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/OSGI-INF/server.version.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.framework.core.server.internal.console.ServerVersionCommand"> + <implementation class="org.eclipse.osee.framework.core.server.internal.console.ServerVersionCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setApplicationServerManager" cardinality="1..1" interface="org.eclipse.osee.framework.core.server.IApplicationServerManager" name="IApplicationServerManager" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.framework.core.server/build.properties b/plugins/org.eclipse.osee.framework.core.server/build.properties index 002f1772e61..aabcc85ab19 100644 --- a/plugins/org.eclipse.osee.framework.core.server/build.properties +++ b/plugins/org.eclipse.osee.framework.core.server/build.properties @@ -3,7 +3,9 @@ bin.includes = META-INF/,\ .,\ OSGI-INF/,\ OSGI-INF/application.server.manager.xml,\ - OSGI-INF/session.manager.xml + OSGI-INF/session.manager.xml,\ + OSGI-INF/server.stats.console.command.xml source.. = src/ additional.bundles = org.eclipse.osee.logger,\ - org.eclipse.osee.framework.jdk.core + org.eclipse.osee.framework.jdk.core,\ + org.eclipse.osee.console.admin diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerScheduleCommand.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerScheduleCommand.java new file mode 100644 index 00000000000..50438ff0473 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerScheduleCommand.java @@ -0,0 +1,67 @@ +/******************************************************************************* + * Copyright (c) 2010 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.core.server.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; + +/** + * @author Ryan D. Brooks + */ +public class ServerScheduleCommand implements ConsoleCommand { + + @Override + public String getName() { + return "server_schedule_cmd"; + } + + @Override + public String getDescription() { + return "Schedules a console command"; + } + + @Override + public String getUsage() { + return "iterate=<NUMBER_OF_TIMES_TO_SCHEDULE> delay=<DELAY_IN_SECONDS> cmd=\"<CMD + PARAMETERS>\""; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new SchedulingCallable(console, params); + } + + private final class SchedulingCallable implements Callable<Boolean> { + private final Console ci; + private final ConsoleParameters params; + + public SchedulingCallable(Console ci, ConsoleParameters params) { + this.ci = ci; + this.params = params; + } + + @Override + public Boolean call() throws Exception { + long delayMiliseconds = params.getInt("delay") * 1000; + int iterations = params.getInt("iterate"); + + String command = params.get("cmd"); + + for (int i = 0; i < iterations; i++) { + Thread.sleep(delayMiliseconds); + ci.execute(command); + } + return Boolean.TRUE; + } + } + +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerServletRequestsCommand.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerServletRequestsCommand.java new file mode 100644 index 00000000000..4c12affd301 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerServletRequestsCommand.java @@ -0,0 +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.core.server.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; + +/** + * @author Roberto E. Escobar + */ +public class ServerServletRequestsCommand implements ConsoleCommand { + + private IApplicationServerManager appManager; + + public void setApplicationServerManager(IApplicationServerManager appManager) { + this.appManager = appManager; + } + + private IApplicationServerManager getApplicationServerManager() { + return appManager; + } + + @Override + public String getName() { + return "server_servlet_requests"; + } + + @Override + public String getDescription() { + return "Set servlets to accept/reject requests"; + } + + @Override + public String getUsage() { + return "accept=<TRUE|FALSE>"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new ServerServletRequestsCallable(getApplicationServerManager(), console, params); + } + + private static final class ServerServletRequestsCallable implements Callable<Boolean> { + private final Console console; + private final ConsoleParameters parameters; + + private final IApplicationServerManager appManager; + + public ServerServletRequestsCallable(IApplicationServerManager appManager, Console console, ConsoleParameters parameters) { + this.appManager = appManager; + this.console = console; + this.parameters = parameters; + } + + @Override + public Boolean call() throws Exception { + boolean value = parameters.getBoolean("accept"); + appManager.setServletRequestsAllowed(value); + console.writeln("Osee Application Server: [%s] - servlet requests", + appManager.isAcceptingRequests() ? "ACCEPTING" : "REJECTING"); + return Boolean.TRUE; + } + } + +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerShutdownCommand.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerShutdownCommand.java new file mode 100644 index 00000000000..e5d486bbfe7 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerShutdownCommand.java @@ -0,0 +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.core.server.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.core.runtime.Platform; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; +import org.osgi.framework.Bundle; + +/** + * @author Roberto E. Escobar + */ +public class ServerShutdownCommand implements ConsoleCommand { + + private IApplicationServerManager appManager; + + public void setApplicationServerManager(IApplicationServerManager appManager) { + this.appManager = appManager; + } + + private IApplicationServerManager getApplicationServerManager() { + return appManager; + } + + @Override + public String getName() { + return "server_shutdown"; + } + + @Override + public String getDescription() { + return "Shutdown server instance"; + } + + @Override + public String getUsage() { + return "[oseeOnly=<TRUE|FALSE>] - To shutdown only the osee server instance without shutting down OSGI framework\n" + // + " - Shutsdown both osee server instance and OSGI framework\n"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new ServerShutdownCallable(getApplicationServerManager(), console, params); + } + + private static final class ServerShutdownCallable implements Callable<Boolean> { + private final Console console; + private final ConsoleParameters parameters; + + private final IApplicationServerManager manager; + + public ServerShutdownCallable(IApplicationServerManager manager, Console console, ConsoleParameters parameters) { + this.manager = manager; + this.console = console; + this.parameters = parameters; + } + + @Override + public Boolean call() throws Exception { + Bundle equinoxHttpBundle = Platform.getBundle("org.eclipse.equinox.http.jetty"); + equinoxHttpBundle.stop(); + + manager.setServletRequestsAllowed(false); + + while (!manager.isSystemIdle()) { + try { + Thread.sleep(1000); + } catch (InterruptedException ex) { + console.write(ex); + } + } + manager.shutdown(); + + if (parameters.getBoolean("oseeOnly")) { + console.writeln("Osee Shutdown Complete"); + } else { + // Call Close on OSGI + console.execute("close"); + } + return Boolean.TRUE; + } + } + +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerStatsCommand.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerStatsCommand.java new file mode 100644 index 00000000000..78b236c40e5 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerStatsCommand.java @@ -0,0 +1,151 @@ +/******************************************************************************* + * 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.core.server.internal.console; + +import java.text.DateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.Callable; +import org.eclipse.core.runtime.jobs.IJobManager; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; +import org.eclipse.osee.framework.core.server.ISessionManager; +import org.eclipse.osee.framework.core.server.OseeServerProperties; +import org.eclipse.osee.framework.database.core.DatabaseInfoManager; +import org.eclipse.osee.framework.jdk.core.util.Lib; + +/** + * @author Roberto E. Escobar + */ +public class ServerStatsCommand implements ConsoleCommand { + + private IApplicationServerManager appManager; + private ISessionManager sessionManager; + + public void setApplicationServerManager(IApplicationServerManager appManager) { + this.appManager = appManager; + } + + public void setSessionManager(ISessionManager sessionManager) { + this.sessionManager = sessionManager; + } + + private IApplicationServerManager getApplicationServerManager() { + return appManager; + } + + private ISessionManager getSessionManager() { + return sessionManager; + } + + @Override + public String getName() { + return "server_status"; + } + + @Override + public String getDescription() { + return "Displays server status information"; + } + + @Override + public String getUsage() { + return ""; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new ServerStatsCallable(getApplicationServerManager(), getSessionManager(), console); + } + + private static final class ServerStatsCallable implements Callable<Boolean> { + private final IApplicationServerManager manager; + private final ISessionManager sessionManager; + private final Console console; + + public ServerStatsCallable(IApplicationServerManager manager, ISessionManager sessionManager, Console console) { + super(); + this.manager = manager; + this.sessionManager = sessionManager; + this.console = console; + } + + @Override + public Boolean call() throws Exception { + + console.writeln("\n----------------------------------------------"); + console.writeln(" Server Stats"); + console.writeln("----------------------------------------------"); + + console.writeln("Server:[%s:%s]", manager.getServerAddress(), manager.getPort()); + console.writeln("Id: [%s]", manager.getId()); + console.writeln("Running Since: [%s]\n", + DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(manager.getDateStarted())); + + console.writeln("Code Base Location: [%s]", System.getProperty("user.dir")); + console.writeln("Datastore: [%s]", DatabaseInfoManager.getDefault().toString()); + console.writeln("Binary Data Path: [%s]", OseeServerProperties.getOseeApplicationServerData(null)); + console.writeln(); + + console.writeln("Supported Versions: %s", Arrays.deepToString(manager.getSupportedVersions())); + console.writeln("Accepting Requests: [%s]", manager.isAcceptingRequests()); + console.writeln(Lib.getMemoryInfo()); + + logServlets(manager); + + console.writeln("\nSessionsManaged: [%s]", sessionManager.getAllSessions(false).size()); + console.writeln("\nServer State: [%s]", manager.isSystemIdle() ? "IDLE" : "BUSY"); + console.writeln("Active Threads: [%s]", manager.getNumberOfActiveThreads()); + + IJobManager jobManager = Job.getJobManager(); + console.writeln("Job Manager: [%s]", jobManager.isIdle() ? "IDLE" : "BUSY"); + console.writeln("Current Job: [%s]", jobManager.currentJob().getName()); + + console.writeln("Current Tasks: "); + List<String> entries = manager.getCurrentProcesses(); + if (entries.isEmpty()) { + console.writeln("[NONE]"); + } else { + console.writeln(); + for (int index = 0; index < entries.size(); index++) { + console.writeln("[%s] ", index); + console.writeln(entries.get(index)); + if (index + 1 < entries.size()) { + console.writeln(); + } + } + } + + console.writeln(); + return Boolean.TRUE; + } + + private void logServlets(IApplicationServerManager manager) { + console.writeln("Servlets:"); + List<String> contexts = new ArrayList<String>(manager.getRegisteredServlets()); + Collections.sort(contexts); + if (contexts.size() % 2 == 1) { + contexts.add(""); + } + int midPoint = contexts.size() / 2; + for (int i = 0; i < midPoint; i++) { + console.writeln("%-40.40s%s", contexts.get(i), contexts.get(i + midPoint)); + } + } + + } + +} diff --git a/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerVersionCommand.java b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerVersionCommand.java new file mode 100644 index 00000000000..b4f2116fd6e --- /dev/null +++ b/plugins/org.eclipse.osee.framework.core.server/src/org/eclipse/osee/framework/core/server/internal/console/ServerVersionCommand.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * 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.core.server.internal.console; + +import java.util.Arrays; +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.server.IApplicationServerManager; + +/** + * @author Roberto E. Escobar + */ +public class ServerVersionCommand implements ConsoleCommand { + + private IApplicationServerManager appManager; + + public void setApplicationServerManager(IApplicationServerManager appManager) { + this.appManager = appManager; + } + + private IApplicationServerManager getApplicationServerManager() { + return appManager; + } + + @Override + public String getName() { + return "server_version"; + } + + @Override + public String getDescription() { + return "Adds/Removes/Lists supported versions from this osee server instance"; + } + + @Override + public String getUsage() { + return "[add=<VERSIONS>] [remove=<VERSIONS>]"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new ServerVersionCallable(getApplicationServerManager(), console, params); + } + + private static final class ServerVersionCallable implements Callable<Boolean> { + private final Console console; + private final ConsoleParameters parameters; + + private final IApplicationServerManager appManager; + + public ServerVersionCallable(IApplicationServerManager appManager, Console console, ConsoleParameters parameters) { + this.appManager = appManager; + this.console = console; + this.parameters = parameters; + } + + @Override + public Boolean call() throws Exception { + String[] toAdd = parameters.getArray("add"); + String[] toRemove = parameters.getArray("remove"); + + if (toAdd != null && toAdd.length > 0) { + for (String version : toAdd) { + appManager.addSupportedVersion(version); + } + } + + if (toRemove != null && toRemove.length > 0) { + for (String version : toRemove) { + appManager.removeSupportedVersion(version); + } + } + console.writeln("Osee Application Server: %s", Arrays.deepToString(appManager.getSupportedVersions())); + return Boolean.TRUE; + } + } + +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/FindInvalidUTF8CharsOperation.java b/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/FindInvalidUTF8CharsOperation.java deleted file mode 100644 index 7e7986e72b3..00000000000 --- a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/FindInvalidUTF8CharsOperation.java +++ /dev/null @@ -1,66 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 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.database.operation; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.services.IOseeCachingService; -import org.eclipse.osee.framework.database.IOseeDatabaseService; -import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; -import org.eclipse.osee.framework.database.core.ConnectionHandler; -import org.eclipse.osee.framework.database.core.IOseeStatement; -import org.eclipse.osee.framework.database.core.OseeConnection; -import org.eclipse.osee.framework.database.internal.Activator; - -/** - * @author Ryan D. Brooks - * @author Shawn F. Cook - */ -public class FindInvalidUTF8CharsOperation extends AbstractDbTxOperation { - private static final String READ_ATTRIBUTE_VALUES = "SELECT art_id, value FROM osee_attribute"; - - public FindInvalidUTF8CharsOperation(IOseeDatabaseService databaseService, IOseeCachingService cachingService, OperationLogger logger) { - super(databaseService, "Find Invalid UTF8 Chars Operation", Activator.PLUGIN_ID, logger); - } - - @Override - protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException { - - log(); - log("Find Invalid UTF8 Chars in Table osee_attribute:"); - - int count = 0; - IOseeStatement chStmt = ConnectionHandler.getStatement(); - try { - chStmt.runPreparedQuery(1000, READ_ATTRIBUTE_VALUES); - while (chStmt.next()) { - String value = chStmt.getString("value"); - if (value != null) { - count++; - int length = value.length(); - for (int i = 0; i < length; i++) { - char c = value.charAt(i); - // based on http://www.w3.org/TR/2006/REC-xml-20060816/#charsets - if (c < 0x20 && c != 0x9 && c != 0xA && c != 0xD || c > 0xD7FF && c < 0xE000 || c > 0xFFFD && c < 0x10000 || c > 0x10FFFF) { - log("artifact id: " + chStmt.getInt("art_id") + " char: " + (int) c); - } - } - } - } - } finally { - chStmt.close(); - log("count: " + count); - } - - log("...done."); - } -} diff --git a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/InvalidTxCurrentsAndModTypes.java b/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/InvalidTxCurrentsAndModTypes.java index 37a070060c8..a963c6431ea 100644 --- a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/InvalidTxCurrentsAndModTypes.java +++ b/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/InvalidTxCurrentsAndModTypes.java @@ -17,9 +17,10 @@ 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.operation.AbstractOperation; import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.database.core.ConnectionHandler; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.database.core.IOseeStatement; import org.eclipse.osee.framework.database.internal.Activator; @@ -43,22 +44,33 @@ public class InvalidTxCurrentsAndModTypes extends AbstractOperation { private final String columnName; private final boolean isFixOperationEnabled; private final String txsTableName; + private final IOseeDatabaseService dbService; - public InvalidTxCurrentsAndModTypes(String operationName, String tableName, String columnName, OperationLogger logger, boolean isFixOperationEnabled, boolean archived) { + public InvalidTxCurrentsAndModTypes(String operationName, String tableName, String columnName, OperationLogger logger, boolean isFixOperationEnabled, boolean archived) throws OseeDataStoreException { + this(Activator.getInstance().getOseeDatabaseService(), operationName, tableName, columnName, logger, + isFixOperationEnabled, archived); + } + + public InvalidTxCurrentsAndModTypes(IOseeDatabaseService dbService, String operationName, String tableName, String columnName, OperationLogger logger, boolean isFixOperationEnabled, boolean archived) { super( "InvalidTxCurrentsAndModTypes " + operationName + tableName + " fix:" + isFixOperationEnabled + " archived:" + archived, Activator.PLUGIN_ID, logger); + this.dbService = dbService; this.tableName = tableName; this.columnName = columnName; this.isFixOperationEnabled = isFixOperationEnabled; txsTableName = archived ? "_archived" : ""; } + private IOseeDatabaseService getDatabaseService() { + return dbService; + } + private void fixIssues(IProgressMonitor monitor) throws OseeCoreException { if (isFixOperationEnabled) { checkForCancelledStatus(monitor); - ConnectionHandler.runBatchUpdate(String.format(DELETE_ADDRESS, txsTableName), purgeData); - ConnectionHandler.runBatchUpdate(String.format(UPDATE_ADDRESS, txsTableName), currentData); + getDatabaseService().runBatchUpdate(String.format(DELETE_ADDRESS, txsTableName), purgeData); + getDatabaseService().runBatchUpdate(String.format(UPDATE_ADDRESS, txsTableName), currentData); } monitor.worked(calculateWork(0.1)); } @@ -164,7 +176,7 @@ public class InvalidTxCurrentsAndModTypes extends AbstractOperation { checkForCancelledStatus(monitor); - IOseeStatement chStmt = ConnectionHandler.getStatement(); + IOseeStatement chStmt = getDatabaseService().getStatement(); String sql = String.format(SELECT_ADDRESSES, columnName, tableName, txsTableName, columnName); try { chStmt.runPreparedQuery(10000, sql); diff --git a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/ParseWindowsDirectoryListingOperation.java b/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/ParseWindowsDirectoryListingOperation.java deleted file mode 100644 index fa81bba926d..00000000000 --- a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/ParseWindowsDirectoryListingOperation.java +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 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.database.operation; - -import java.io.BufferedWriter; -import java.io.FileWriter; -import java.io.IOException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.services.IOseeCachingService; -import org.eclipse.osee.framework.database.IOseeDatabaseService; -import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; -import org.eclipse.osee.framework.database.core.OseeConnection; -import org.eclipse.osee.framework.database.internal.Activator; -import org.eclipse.osee.framework.jdk.core.util.Lib; - -/** - * @author Ryan D. Brooks - * @author Shawn F. Cook - */ -public class ParseWindowsDirectoryListingOperation extends AbstractDbTxOperation { - private static final String DIRECTORY_PREFIX = " Directory of Y:\\"; - private final String listingFile; - - public ParseWindowsDirectoryListingOperation(IOseeDatabaseService databaseService, IOseeCachingService cachingService, OperationLogger logger, String listingFile) { - super(databaseService, "Parsing Windows Directory Listing", Activator.PLUGIN_ID, logger); - this.listingFile = listingFile; - } - - @Override - protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) { - - log(); - log("Parsing windows directory listing:"); - - Matcher matcher = Pattern.compile("(\\d+/\\d+/\\d+).*<DIR>.*?SW\\\\(\\S+)\\s+(.*)").matcher(""); - BufferedWriter writer; - try { - writer = new BufferedWriter(new FileWriter(Lib.removeExtension(listingFile) + ".csv")); - - String path = null; - for (String line : Lib.readListFromFile(listingFile)) { - if (line.startsWith(DIRECTORY_PREFIX)) { - path = line.substring(DIRECTORY_PREFIX.length()); - } else { - matcher.reset(line); - if (matcher.find()) { - String summary = matcher.group(1) + "|" + matcher.group(2) + "|" + path + "\\" + matcher.group(3); - if (!summary.endsWith(".")) { - writer.write(summary); - writer.write(Lib.lineSeparator); - } - } - } - } - writer.close(); - } catch (IOException ex) { - log("ParseWindowsDirectoryListingOperation::doTxWork: Caught IOException:" + ex.toString()); - } finally { - log("...done."); - } - } -} diff --git a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/PruneWorkspaceOperation.java b/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/PruneWorkspaceOperation.java deleted file mode 100644 index 29eb3d504d6..00000000000 --- a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/PruneWorkspaceOperation.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 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.database.operation; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.regex.Pattern; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.exception.OseeExceptions; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.services.IOseeCachingService; -import org.eclipse.osee.framework.database.IOseeDatabaseService; -import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; -import org.eclipse.osee.framework.database.core.OseeConnection; -import org.eclipse.osee.framework.database.internal.Activator; -import org.eclipse.osee.framework.jdk.core.util.Lib; - -/** - * @author Ryan D. Brooks - * @author Shawn F. Cook - */ -public class PruneWorkspaceOperation extends AbstractDbTxOperation { - private final String preserveFilePattern; - private final String workspacePathStr; - private final String purgeFilePattern; - - public PruneWorkspaceOperation(IOseeDatabaseService databaseService, IOseeCachingService cachingService, OperationLogger logger, String preserveFilePattern, String workspacePathStr, String purgeFilePattern) { - super(databaseService, "Prune Workspace", Activator.PLUGIN_ID, logger); - this.preserveFilePattern = preserveFilePattern; - this.workspacePathStr = workspacePathStr; - this.purgeFilePattern = purgeFilePattern; - } - - @Override - protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException { - - log(); - log("Pruning Workspace:"); - - File keeperFile = new File(preserveFilePattern); - File workspacePath = new File(workspacePathStr); - String filePathPattern = purgeFilePattern; - - ArrayList<String> preserveList; - try { - if (!preserveFilePattern.isEmpty()) { - preserveList = Lib.readListFromFile(keeperFile, true); - } else { - preserveList = new ArrayList<String>(); - } - - HashSet<String> preserveSet = new HashSet<String>(preserveList); - - List<File> files = Lib.recursivelyListFiles(workspacePath, Pattern.compile(filePathPattern)); - for (File file : files) { - if (monitor.isCanceled()) { - return; - } - if (!preserveSet.contains(file.getName())) { - file.delete(); - } - } - } catch (IOException ex) { - OseeExceptions.wrapAndThrow(ex); - } - log("...done."); - } -} diff --git a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/PurgeUnusedBackingDataAndTransactions.java b/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/PurgeUnusedBackingDataAndTransactions.java index 887acea2f45..39ac8fd88b6 100644 --- a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/PurgeUnusedBackingDataAndTransactions.java +++ b/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/PurgeUnusedBackingDataAndTransactions.java @@ -14,8 +14,10 @@ import java.util.LinkedList; import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.exception.OseeDataStoreException; import org.eclipse.osee.framework.core.operation.AbstractOperation; import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.database.core.ConnectionHandler; import org.eclipse.osee.framework.database.core.IOseeStatement; import org.eclipse.osee.framework.database.internal.Activator; @@ -52,18 +54,33 @@ public class PurgeUnusedBackingDataAndTransactions extends AbstractOperation { "DELETE FROM osee_tx_details WHERE branch_id = ? and transaction_id = ?"; private final Integer forBranchId; - public PurgeUnusedBackingDataAndTransactions(OperationLogger logger) { - this(logger, null); + private final IOseeDatabaseService dbService; + + public PurgeUnusedBackingDataAndTransactions(OperationLogger logger) throws OseeDataStoreException { + this(Activator.getInstance().getOseeDatabaseService(), logger, null); + } + + public PurgeUnusedBackingDataAndTransactions(OperationLogger logger, Integer forBranchId) throws OseeDataStoreException { + this(Activator.getInstance().getOseeDatabaseService(), logger, forBranchId); + } + + public PurgeUnusedBackingDataAndTransactions(IOseeDatabaseService dbService, OperationLogger logger) { + this(dbService, logger, null); } - public PurgeUnusedBackingDataAndTransactions(OperationLogger logger, Integer forBranchId) { + public PurgeUnusedBackingDataAndTransactions(IOseeDatabaseService dbService, OperationLogger logger, Integer forBranchId) { super("Data with no TXS Addressing and empty transactions", Activator.PLUGIN_ID, logger); + this.dbService = dbService; this.forBranchId = forBranchId; } + private IOseeDatabaseService getDatabaseService() { + return dbService; + } + private void processNotAddressedGammas(String tableName) throws OseeCoreException { List<Object[]> notAddressedGammas = new LinkedList<Object[]>(); - IOseeStatement chStmt = ConnectionHandler.getStatement(); + IOseeStatement chStmt = getDatabaseService().getStatement(); String sql = null; if (forBranchId == null) { sql = String.format(NOT_ADDRESSESED_GAMMAS, tableName); @@ -82,12 +99,12 @@ public class PurgeUnusedBackingDataAndTransactions extends AbstractOperation { } sql = String.format(DELETE_GAMMAS, tableName); - ConnectionHandler.runBatchUpdate(sql, notAddressedGammas); + getDatabaseService().runBatchUpdate(sql, notAddressedGammas); } private void processAddressedButNonexistentGammas(String tableName) throws OseeCoreException { List<Object[]> nonexistentGammas = new LinkedList<Object[]>(); - IOseeStatement chStmt = ConnectionHandler.getStatement(); + IOseeStatement chStmt = getDatabaseService().getStatement(); try { String sql = null; @@ -106,7 +123,7 @@ public class PurgeUnusedBackingDataAndTransactions extends AbstractOperation { chStmt.close(); } - ConnectionHandler.runBatchUpdate(String.format(DELETE_GAMMAS, tableName), nonexistentGammas); + getDatabaseService().runBatchUpdate(String.format(DELETE_GAMMAS, tableName), nonexistentGammas); } private void processEmptyTransactions() throws OseeCoreException { diff --git a/plugins/org.eclipse.osee.framework.server.admin/.classpath b/plugins/org.eclipse.osee.framework.server.admin/.classpath deleted file mode 100644 index ad32c83a788..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/.classpath +++ /dev/null @@ -1,7 +0,0 @@ -<?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.server.admin/.pmd b/plugins/org.eclipse.osee.framework.server.admin/.pmd deleted file mode 100644 index c7b0a9fb3f5..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/.pmd +++ /dev/null @@ -1,925 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<pmd> - <useProjectRuleSet>false</useProjectRuleSet> - <ruleSetFile>.ruleset</ruleSetFile> - <rules> - <rule> - <name>LooseCoupling</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - <rule> - <name>CloneMethodMustImplementCloneable</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - <rule> - <name>UnusedImports</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - <rule> - <name>SignatureDeclareThrowsException</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - <rule> - <name>IfStmtsMustUseBraces</name> - <ruleset>Braces Rules</ruleset> - </rule> - <rule> - <name>WhileLoopsMustUseBraces</name> - <ruleset>Braces Rules</ruleset> - </rule> - <rule> - <name>IfElseStmtsMustUseBraces</name> - <ruleset>Braces Rules</ruleset> - </rule> - <rule> - <name>ForLoopsMustUseBraces</name> - <ruleset>Braces Rules</ruleset> - </rule> - <rule> - <name>UseSingleton</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>SimplifyBooleanReturns</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>SimplifyBooleanExpressions</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>SwitchStmtsShouldHaveDefault</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AvoidDeeplyNestedIfStmts</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AvoidReassigningParameters</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>SwitchDensity</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>ConstructorCallsOverridableMethod</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AccessorClassGeneration</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>FinalFieldCouldBeStatic</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>CloseResource</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>NonStaticInitializer</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>DefaultLabelNotLastInSwitchStmt</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>NonCaseLabelInSwitchStatement</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>OptimizableToArrayCall</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>BadComparison</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>EqualsNull</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>ConfusingTernary</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>InstantiationToGetClass</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>IdempotentOperations</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>SimpleDateFormatNeedsLocale</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>ImmutableField</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>UseLocaleWithCaseConversions</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AvoidProtectedFieldInFinalClass</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AssignmentToNonFinalStatic</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>MissingStaticMethodInNonInstantiatableClass</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AvoidSynchronizedAtMethodLevel</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>MissingBreakInSwitch</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>UseNotifyAllInsteadOfNotify</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AvoidInstanceofChecksInCatchClause</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AbstractClassWithoutAbstractMethod</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>SimplifyConditional</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>CompareObjectsWithEquals</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>PositionLiteralsFirstInComparisons</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryLocalBeforeReturn</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>NonThreadSafeSingleton</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>UncommentedEmptyMethod</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>UncommentedEmptyConstructor</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AvoidConstantsInterface</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>UnsynchronizedStaticDateFormatter</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>PreserveStackTrace</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>UseCollectionIsEmpty</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>ClassWithOnlyPrivateConstructorsShouldBeFinal</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>EmptyMethodInAbstractClassShouldBeAbstract</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>SingularField</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>ReturnEmptyArrayRatherThanNull</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AbstractClassWithoutAnyMethod</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>TooFewBranchesForASwitchStatement</name> - <ruleset>Design Rules</ruleset> - </rule> - <rule> - <name>AvoidCatchingThrowable</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>SignatureDeclareThrowsException</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - <rule> - <name>ExceptionAsFlowControl</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>AvoidCatchingNPE</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>AvoidThrowingRawExceptionTypes</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>AvoidThrowingNullPointerException</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>AvoidRethrowingException</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>DoNotExtendJavaLangError</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>DoNotThrowExceptionInFinally</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>AvoidThrowingNewInstanceOfSameException</name> - <ruleset>Strict Exception Rules</ruleset> - </rule> - <rule> - <name>UnusedPrivateField</name> - <ruleset>Unused Code Rules</ruleset> - </rule> - <rule> - <name>UnusedLocalVariable</name> - <ruleset>Unused Code Rules</ruleset> - </rule> - <rule> - <name>UnusedPrivateMethod</name> - <ruleset>Unused Code Rules</ruleset> - </rule> - <rule> - <name>UnusedFormalParameter</name> - <ruleset>Unused Code Rules</ruleset> - </rule> - <rule> - <name>MoreThanOneLogger</name> - <ruleset>Java Logging Rules</ruleset> - </rule> - <rule> - <name>LoggerIsNotStaticFinal</name> - <ruleset>Java Logging Rules</ruleset> - </rule> - <rule> - <name>SystemPrintln</name> - <ruleset>Java Logging Rules</ruleset> - </rule> - <rule> - <name>AvoidPrintStackTrace</name> - <ruleset>Java Logging Rules</ruleset> - </rule> - <rule> - <name>AvoidDuplicateLiterals</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>StringInstantiation</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>StringToString</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>InefficientStringBuffering</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryCaseChange</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>UseStringBufferLength</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>AppendCharacterWithChar</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>ConsecutiveLiteralAppends</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>UseIndexOfChar</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>InefficientEmptyStringCheck</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>InsufficientStringBufferDeclaration</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>UselessStringValueOf</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>StringBufferInstantiationWithChar</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>UseEqualsToCompareStrings</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>AvoidStringBufferField</name> - <ruleset>String and StringBuffer Rules</ruleset> - </rule> - <rule> - <name>ReplaceVectorWithList</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>ReplaceHashtableWithMap</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>ReplaceEnumerationWithIterator</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>AvoidEnumAsIdentifier</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>AvoidAssertAsIdentifier</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>IntegerInstantiation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>ByteInstantiation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>ShortInstantiation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>LongInstantiation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>JUnit4TestShouldUseBeforeAnnotation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>JUnit4TestShouldUseAfterAnnotation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>JUnit4TestShouldUseTestAnnotation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>JUnit4SuitesShouldUseSuiteAnnotation</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>JUnitUseExpected</name> - <ruleset>Migration Rules</ruleset> - </rule> - <rule> - <name>UseProperClassLoader</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>MDBAndSessionBeanNamingConvention</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>RemoteSessionInterfaceNamingConvention</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>LocalInterfaceSessionNamingConvention</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>LocalHomeNamingConvention</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>RemoteInterfaceNamingConvention</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>DoNotCallSystemExit</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>StaticEJBFieldShouldBeFinal</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>DoNotUseThreads</name> - <ruleset>J2EE Rules</ruleset> - </rule> - <rule> - <name>AvoidInstantiatingObjectsInLoops</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>UseArrayListInsteadOfVector</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>SimplifyStartsWith</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>UseStringBufferForStringAppends</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>UseArraysAsList</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>AvoidArrayLoops</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryWrapperObjectCreation</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>AddEmptyString</name> - <ruleset>Optimization Rules</ruleset> - </rule> - <rule> - <name>EmptyCatchBlock</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptyIfStmt</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptyWhileStmt</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptyTryBlock</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptyFinallyBlock</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptySwitchStatements</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>JumbledIncrementer</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>ForLoopShouldBeWhileLoop</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryConversionTemporary</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>OverrideBothEqualsAndHashcode</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>DoubleCheckedLocking</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>ReturnFromFinallyBlock</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptySynchronizedBlock</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryReturn</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptyStaticInitializer</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>UnconditionalIfStatement</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptyStatementNotInLoop</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>BooleanInstantiation</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryFinalModifier</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>CollapsibleIfStatements</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>UselessOverridingMethod</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>ClassCastExceptionWithToArray</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>AvoidDecimalLiteralsInBigDecimalConstructor</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>UselessOperationOnImmutable</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>MisplacedNullCheck</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>UnusedNullCheckInEquals</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>AvoidThreadGroup</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>BrokenNullCheck</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>BigIntegerInstantiation</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>AvoidUsingOctalValues</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>AvoidUsingHardCodedIP</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>CheckResultSet</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>AvoidMultipleUnaryOperators</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>EmptyInitializer</name> - <ruleset>Basic Rules</ruleset> - </rule> - <rule> - <name>MethodReturnsInternalArray</name> - <ruleset>Security Code Guidelines</ruleset> - </rule> - <rule> - <name>ArrayIsStoredDirectly</name> - <ruleset>Security Code Guidelines</ruleset> - </rule> - <rule> - <name>CouplingBetweenObjects</name> - <ruleset>Coupling Rules</ruleset> - </rule> - <rule> - <name>ExcessiveImports</name> - <ruleset>Coupling Rules</ruleset> - </rule> - <rule> - <name>LooseCoupling</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - <rule> - <name>DuplicateImports</name> - <ruleset>Import Statement Rules</ruleset> - </rule> - <rule> - <name>DontImportJavaLang</name> - <ruleset>Import Statement Rules</ruleset> - </rule> - <rule> - <name>UnusedImports</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - <rule> - <name>ImportFromSamePackage</name> - <ruleset>Import Statement Rules</ruleset> - </rule> - <rule> - <name>TooManyStaticImports</name> - <ruleset>Import Statement Rules</ruleset> - </rule> - <rule> - <name>JUnitStaticSuite</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>JUnitSpelling</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>JUnitAssertionsShouldIncludeMessage</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>JUnitTestsShouldIncludeAssert</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>TestClassWithoutTestCases</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryBooleanAssertion</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>UseAssertEqualsInsteadOfAssertTrue</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>UseAssertSameInsteadOfAssertTrue</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>UseAssertNullInsteadOfAssertTrue</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>SimplifyBooleanAssertion</name> - <ruleset>JUnit Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryConstructor</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>NullAssignment</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>UnusedModifier</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>AssignmentInOperand</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>AtLeastOneConstructor</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>DontImportSun</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>SuspiciousOctalEscape</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>CallSuperInConstructor</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>UnnecessaryParentheses</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>DefaultPackage</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>BooleanInversion</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>DataflowAnomalyAnalysis</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>AvoidFinalLocalVariable</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>AvoidUsingShortType</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>AvoidUsingVolatile</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>AvoidUsingNativeCode</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>AvoidAccessibilityAlteration</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>DoNotCallGarbageCollectionExplicitly</name> - <ruleset>Controversial Rules</ruleset> - </rule> - <rule> - <name>MethodNamingConventions</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>ClassNamingConventions</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>AbstractNaming</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>AvoidDollarSigns</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>MethodWithSameNameAsEnclosingClass</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>SuspiciousHashcodeMethodName</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>SuspiciousConstantFieldName</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>SuspiciousEqualsMethodName</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>AvoidFieldNameMatchingTypeName</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>AvoidFieldNameMatchingMethodName</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>NoPackage</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>PackageCase</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>MisleadingVariableName</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>BooleanGetMethodName</name> - <ruleset>Naming Rules</ruleset> - </rule> - <rule> - <name>NPathComplexity</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>ExcessiveMethodLength</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>ExcessiveParameterList</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>ExcessiveClassLength</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>CyclomaticComplexity</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>ExcessivePublicCount</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>TooManyFields</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>NcssMethodCount</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>NcssTypeCount</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>NcssConstructorCount</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>TooManyMethods</name> - <ruleset>Code Size Rules</ruleset> - </rule> - <rule> - <name>EmptyFinalizer</name> - <ruleset>Finalizer Rules</ruleset> - </rule> - <rule> - <name>FinalizeOnlyCallsSuperFinalize</name> - <ruleset>Finalizer Rules</ruleset> - </rule> - <rule> - <name>FinalizeOverloaded</name> - <ruleset>Finalizer Rules</ruleset> - </rule> - <rule> - <name>FinalizeDoesNotCallSuperFinalize</name> - <ruleset>Finalizer Rules</ruleset> - </rule> - <rule> - <name>FinalizeShouldBeProtected</name> - <ruleset>Finalizer Rules</ruleset> - </rule> - <rule> - <name>AvoidCallingFinalize</name> - <ruleset>Finalizer Rules</ruleset> - </rule> - <rule> - <name>UseCorrectExceptionLogging</name> - <ruleset>Jakarta Commons Logging Rules</ruleset> - </rule> - <rule> - <name>ProperLogger</name> - <ruleset>Jakarta Commons Logging Rules</ruleset> - </rule> - <rule> - <name>MissingSerialVersionUID</name> - <ruleset>JavaBean Rules</ruleset> - </rule> - <rule> - <name>ProperCloneImplementation</name> - <ruleset>Clone Implementation Rules</ruleset> - </rule> - <rule> - <name>CloneThrowsCloneNotSupportedException</name> - <ruleset>Clone Implementation Rules</ruleset> - </rule> - <rule> - <name>CloneMethodMustImplementCloneable</name> - <ruleset>Type Resolution Rules</ruleset> - </rule> - </rules> - <includeDerivedFiles>false</includeDerivedFiles> - <violationsAsErrors>true</violationsAsErrors> -</pmd> diff --git a/plugins/org.eclipse.osee.framework.server.admin/.project b/plugins/org.eclipse.osee.framework.server.admin/.project deleted file mode 100644 index 13b097df489..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/.project +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<projectDescription> - <name>org.eclipse.osee.framework.server.admin</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> - </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.server.admin/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.server.admin/META-INF/MANIFEST.MF deleted file mode 100644 index f016fe8c130..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/META-INF/MANIFEST.MF +++ /dev/null @@ -1,43 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: Tool Plug-in -Bundle-SymbolicName: org.eclipse.osee.framework.server.admin;singleton:=true -Bundle-Version: 0.9.9.qualifier -Bundle-Activator: org.eclipse.osee.framework.server.admin.internal.Activator -Bundle-Vendor: Eclipse Open System Engineering Environment -Bundle-ActivationPolicy: lazy -Import-Package: org.eclipse.core.runtime, - org.eclipse.core.runtime.jobs, - org.eclipse.equinox.app, - org.eclipse.osee.framework.branch.management, - org.eclipse.osee.framework.branch.management.purge, - org.eclipse.osee.framework.core.data, - org.eclipse.osee.framework.core.datastore, - org.eclipse.osee.framework.core.enums, - org.eclipse.osee.framework.core.exception, - org.eclipse.osee.framework.core.model, - org.eclipse.osee.framework.core.model.cache, - org.eclipse.osee.framework.core.operation, - org.eclipse.osee.framework.core.server, - org.eclipse.osee.framework.core.services, - org.eclipse.osee.framework.core.util, - org.eclipse.osee.framework.database, - org.eclipse.osee.framework.database.core, - org.eclipse.osee.framework.database.operation, - org.eclipse.osee.framework.jdk.core.type, - org.eclipse.osee.framework.jdk.core.util, - org.eclipse.osee.framework.logging, - org.eclipse.osee.framework.resource.management, - org.eclipse.osee.framework.resource.management.exception, - org.eclipse.osee.framework.resource.management.util, - org.eclipse.osee.framework.search.engine, - org.eclipse.osee.framework.search.engine.attribute, - org.eclipse.osee.logger, - org.eclipse.osgi.framework.console, - org.osgi.framework, - org.osgi.util.tracker -Service-Component: OSGI-INF/server.admin.cmds.xml, - OSGI-INF/search.tagger.cmds.xml, - OSGI-INF/branch.cmds.xml -Bundle-RequiredExecutionEnvironment: JavaSE-1.6 -Require-Bundle: org.eclipse.osee.framework.core.model diff --git a/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/branch.cmds.xml b/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/branch.cmds.xml deleted file mode 100644 index 2df16386d92..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/branch.cmds.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0"?> -<component name="branch.management.cmds"> - <implementation class="org.eclipse.osee.framework.server.admin.BranchManagementCommandProvider"/> - <service> - <provide interface="org.eclipse.osgi.framework.console.CommandProvider"/> - </service> -</component> diff --git a/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/search.tagger.cmds.xml b/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/search.tagger.cmds.xml deleted file mode 100644 index d0e6239d9b8..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/search.tagger.cmds.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0"?> -<component name="search.tagger.cmds"> - <implementation class="org.eclipse.osee.framework.server.admin.SearchTaggerCommandProvider"/> - <service> - <provide interface="org.eclipse.osgi.framework.console.CommandProvider"/> - </service> -</component> diff --git a/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/server.admin.cmds.xml b/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/server.admin.cmds.xml deleted file mode 100644 index 673af6326c9..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/OSGI-INF/server.admin.cmds.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0"?> -<component name="compressed.content.fix"> - <implementation class="org.eclipse.osee.framework.server.admin.ServerAdminCommandProvider"/> - <service> - <provide interface="org.eclipse.osgi.framework.console.CommandProvider"/> - </service> -</component> diff --git a/plugins/org.eclipse.osee.framework.server.admin/build.properties b/plugins/org.eclipse.osee.framework.server.admin/build.properties deleted file mode 100644 index 948f0bdf020..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/build.properties +++ /dev/null @@ -1,6 +0,0 @@ -source.. = src/ -output.. = bin/ -bin.includes = META-INF/,\ - .,\ - OSGI-INF/,\ - plugin.xml diff --git a/plugins/org.eclipse.osee.framework.server.admin/plugin.xml b/plugins/org.eclipse.osee.framework.server.admin/plugin.xml deleted file mode 100644 index a56d9ef206d..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/plugin.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<?eclipse version="3.2"?> -<plugin> - <extension - id="OseeBackup" - name="OseeBackup" - point="org.eclipse.core.runtime.applications"> - <application - cardinality="singleton-global" - thread="main" - visible="true"> - <run - class="org.eclipse.osee.framework.server.admin.app.DataStoreBackupApplication"> - </run> - </application> - </extension> - -</plugin> diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/BranchManagementCommandProvider.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/BranchManagementCommandProvider.java deleted file mode 100644 index 2675e4b1500..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/BranchManagementCommandProvider.java +++ /dev/null @@ -1,270 +0,0 @@ -/******************************************************************************* - * 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.server.admin; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.jobs.IJobChangeEvent; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.core.runtime.jobs.JobChangeAdapter; -import org.eclipse.osee.framework.branch.management.ExportOptions; -import org.eclipse.osee.framework.branch.management.ImportOptions; -import org.eclipse.osee.framework.branch.management.purge.BranchOperation; -import org.eclipse.osee.framework.branch.management.purge.DeletedBranchProvider; -import org.eclipse.osee.framework.branch.management.purge.IBranchOperationFactory; -import org.eclipse.osee.framework.branch.management.purge.IBranchesProvider; -import org.eclipse.osee.framework.branch.management.purge.MultiBranchProvider; -import org.eclipse.osee.framework.branch.management.purge.PurgeBranchOperationFactory; -import org.eclipse.osee.framework.core.enums.BranchType; -import org.eclipse.osee.framework.core.exception.OseeArgumentException; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.model.Branch; -import org.eclipse.osee.framework.core.model.cache.BranchCache; -import org.eclipse.osee.framework.core.model.cache.BranchFilter; -import org.eclipse.osee.framework.core.operation.CommandInterpreterLogger; -import org.eclipse.osee.framework.core.operation.IOperation; -import org.eclipse.osee.framework.core.operation.MutexSchedulingRule; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.operation.Operations; -import org.eclipse.osee.framework.database.IOseeDatabaseService; -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.server.admin.branch.BranchExportOperation; -import org.eclipse.osee.framework.server.admin.branch.BranchImportOperation; -import org.eclipse.osee.framework.server.admin.branch.ExchangeIntegrityOperation; -import org.eclipse.osee.framework.server.admin.internal.Activator; -import org.eclipse.osgi.framework.console.CommandInterpreter; -import org.eclipse.osgi.framework.console.CommandProvider; - -/** - * @author Roberto E. Escobar - */ -public class BranchManagementCommandProvider implements CommandProvider { - private final ISchedulingRule branchMutex = new MutexSchedulingRule(); - - public Job _export_branch(CommandInterpreter ci) { - PropertyStore propertyStore = new PropertyStore(); - String exportFileName = null; - boolean includeArchivedBranches = false; - boolean excludeBranchIds = false; - List<Integer> branchIds = new ArrayList<Integer>(); - exportFileName = ci.nextArgument(); - - for (String arg = ci.nextArgument(); Strings.isValid(arg); arg = ci.nextArgument()) { - if (arg.equals("-includeArchivedBranches")) { - includeArchivedBranches = true; - } else if (arg.equals("-excludeBranchIds")) { - excludeBranchIds = true; - } else if (arg.equals("-compress")) { - propertyStore.put(ExportOptions.COMPRESS.name(), true); - } else if (arg.equals("-minTx")) { - arg = ci.nextArgument(); - if (Strings.isValid(arg)) { - propertyStore.put(ExportOptions.MIN_TXS.name(), arg); - } - } else if (arg.equals("-maxTx")) { - arg = ci.nextArgument(); - if (Strings.isValid(arg)) { - propertyStore.put(ExportOptions.MAX_TXS.name(), arg); - } - } else { - branchIds.add(new Integer(arg)); - } - } - - OperationLogger logger = new CommandInterpreterLogger(ci); - IOperation op = - new BranchExportOperation(logger, propertyStore, exportFileName, includeArchivedBranches, branchIds, - excludeBranchIds); - return Operations.executeAsJob(op, false, Job.LONG, new JobStatusListener(logger), branchMutex); - } - - public Job _import_branch(CommandInterpreter ci) { - PropertyStore propertyStore = new PropertyStore(); - String arg = null; - int count = 0; - - List<Integer> branchIds = new ArrayList<Integer>(); - List<String> importFiles = new ArrayList<String>(); - do { - arg = ci.nextArgument(); - if (Strings.isValid(arg)) { - if (arg.equals("-excludeBaselineTxs")) { - propertyStore.put(ImportOptions.EXCLUDE_BASELINE_TXS.name(), true); - } else if (arg.equals("-clean")) { - propertyStore.put(ImportOptions.CLEAN_BEFORE_IMPORT.name(), true); - } else if (arg.equals("-allAsRootBranches")) { - propertyStore.put(ImportOptions.ALL_AS_ROOT_BRANCHES.name(), true); - } else if (arg.equals("-minTx")) { - arg = ci.nextArgument(); - if (Strings.isValid(arg)) { - propertyStore.put(ImportOptions.MIN_TXS.name(), arg); - } - count++; - } else if (arg.equals("-maxTx")) { - arg = ci.nextArgument(); - if (Strings.isValid(arg)) { - propertyStore.put(ImportOptions.MAX_TXS.name(), arg); - } - count++; - } else if (count == 0 && !arg.startsWith("-")) { - importFiles.add(arg); - } else { - branchIds.add(new Integer(arg)); - } - count++; - } - } while (Strings.isValid(arg)); - - final OperationLogger logger = new CommandInterpreterLogger(ci); - IOperation op = new BranchImportOperation(logger, propertyStore, importFiles, branchIds); - return Operations.executeAsJob(op, false, Job.LONG, new JobStatusListener(logger), branchMutex); - } - - public Job _check_exchange(CommandInterpreter ci) throws OseeArgumentException { - String arg = ci.nextArgument(); - ArrayList<String> importFiles = new ArrayList<String>(); - if (Strings.isValid(arg) && !arg.startsWith("-")) { - importFiles.add(arg); - } else { - throw new OseeArgumentException("File to check was not specified"); - } - - OperationLogger logger = new CommandInterpreterLogger(ci); - IOperation op = new ExchangeIntegrityOperation(logger, importFiles); - return Operations.executeAsJob(op, false, Job.LONG, new JobStatusListener(logger), branchMutex); - } - - public Job _purge_deleted_branches(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - BranchCache branchCache = Activator.getOseeCachingService().getBranchCache(); - IBranchesProvider provider = new DeletedBranchProvider(branchCache); - - return internalPurgeBranch(logger, branchCache, provider); - } - - public Job _purge_branch(CommandInterpreter ci) throws OseeCoreException { - OperationLogger logger = new CommandInterpreterLogger(ci); - String arg = ci.nextArgument(); - boolean recursive = false; - Set<String> guids = new HashSet<String>(); - - while (Strings.isValid(arg)) { - if (arg.equals("-recursive")) { - recursive = true; - } else { - guids.add(arg); - } - arg = ci.nextArgument(); - } - - Set<Branch> branches = new HashSet<Branch>(); - BranchCache branchCache = Activator.getOseeCachingService().getBranchCache(); - for (String guid : guids) { - branches.add(branchCache.getByGuid(guid)); - } - - BranchFilter filter = new BranchFilter(); - filter.setNegatedBranchTypes(BranchType.BASELINE); - - IBranchesProvider provider = new MultiBranchProvider(recursive, branches, filter); - return internalPurgeBranch(logger, branchCache, provider); - } - - private Job internalPurgeBranch(OperationLogger logger, BranchCache branchCache, IBranchesProvider provider) { - IOseeDatabaseService databaseService = Activator.getOseeDatabaseService(); - IBranchOperationFactory factory = new PurgeBranchOperationFactory(logger, branchCache, databaseService); - - IOperation operation = new BranchOperation(logger, factory, provider); - return Operations.executeAsJob(operation, false); - } - - @Override - public String getHelp() { - StringBuilder sb = new StringBuilder(); - sb.append("\n---OSEE Branch Commands---\n"); - sb.append("\texport_branch <exchangeFileName> [-compress] [-minTx <value>] [-maxTx <value>] [-includeArchivedBranches] -excludeBranchIds [<branchId>]+ - export a specific set of branches into an exchange zip file.\n"); - sb.append("\timport_branch <exchangeFileName> [-exclude_baseline_txs] [-allAsRootBranches] [-minTx <value>] [-maxTx <value>] [-clean] [<branchId>]+ - import a specific set of branches from an exchange zip file.\n"); - sb.append("\tcheck_exchange <exchangeFileName> - checks an exchange file to ensure data integrity\n"); - sb.append("\tpurge_deleted_branches - permenatly remove all branches that are both archived and deleted \n"); - sb.append("\tpurge_branch <guids...> [-recursive] - removes branches defined by guids, if recursive all its children excluding baseline branches are removed\n"); - return sb.toString(); - } - - private final class JobStatusListener extends JobChangeAdapter { - - private final OperationLogger logger; - private long startTime; - - public JobStatusListener(OperationLogger logger) { - super(); - this.logger = logger; - this.startTime = 0L; - } - - @Override - public void aboutToRun(IJobChangeEvent event) { - super.aboutToRun(event); - startTime = System.currentTimeMillis(); - logger.logf("Starting [%s]", event.getJob().getName()); - } - - private String toStatus(IStatus status) { - boolean addDetails = true; - StringBuilder builder = new StringBuilder(); - switch (status.getSeverity()) { - case IStatus.OK: - addDetails = false; - builder.append("[Ok]"); - break; - case IStatus.CANCEL: - addDetails = false; - builder.append("[Cancelled]"); - break; - case IStatus.INFO: - builder.append("[Info]"); - break; - case IStatus.ERROR: - builder.append("[Error]"); - break; - case IStatus.WARNING: - builder.append("[Warning]"); - break; - default: - builder.append("[Unknown]"); - break; - } - - if (addDetails) { - builder.append("\n"); - builder.append(status.getMessage()); - builder.append("\n"); - Throwable th = status.getException(); - if (th != null) { - builder.append(th.getLocalizedMessage()); - } - } - return builder.toString(); - } - - @Override - public void done(IJobChangeEvent event) { - super.done(event); - logger.logf("Completed [%s] in [%s] - status:%s", event.getJob().getName(), Lib.getElapseString(startTime), - toStatus(event.getResult())); - } - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/PurgeRelationType.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/PurgeRelationType.java deleted file mode 100644 index d8ceb5586b6..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/PurgeRelationType.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 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.server.admin; - -import java.util.ArrayList; -import java.util.List; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeArgumentException; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.model.cache.RelationTypeCache; -import org.eclipse.osee.framework.core.model.type.RelationType; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.services.IOseeCachingService; -import org.eclipse.osee.framework.core.services.IdentityService; -import org.eclipse.osee.framework.database.IOseeDatabaseService; -import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; -import org.eclipse.osee.framework.database.core.ConnectionHandler; -import org.eclipse.osee.framework.database.core.IOseeStatement; -import org.eclipse.osee.framework.database.core.OseeConnection; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * Purges given relation types.<br/> - * <p> - * Tables involved: - * <li>osee_txs</li> - * <li>osee_txs_archived</li> - * <li>osee_relation_link</li> - * </p> - * <br/> - * - * @author Karol M. Wilk - */ -public final class PurgeRelationType extends AbstractDbTxOperation { - private static final String RETRIEVE_GAMMAS_OF_REL_LINK_TXS = - "SELECT rel_link.gamma_id FROM osee_relation_link rel_link WHERE rel_link.rel_link_type_id = ?"; - - private static final String DELETE_BY_GAMMAS = "DELETE FROM %s WHERE gamma_id = ?"; - - private static final String DELETE_FROM_CONFLICT_TABLE_SOURCE_SIDE = - "DELETE FROM osee_conflict WHERE source_gamma_id = ?"; - private static final String DELETE_FROM_CONFLICT_TABLE_DEST_SIDE = - "DELETE FROM osee_conflict WHERE dest_gamma_id = ?"; - - private final RelationTypeCache cache; - private final String[] typesToPurge; - private final boolean forcePurge; - private final List<Long[]> relationTypeGuids; - private final IdentityService identityService; - - public PurgeRelationType(IOseeDatabaseService databaseService, IOseeCachingService cachingService, IdentityService identityService, OperationLogger logger, boolean force, String... typesToPurge) { - super(databaseService, "Purge Relation Type", Activator.PLUGIN_ID, logger); - this.cache = cachingService.getRelationTypeCache(); - this.forcePurge = force; - this.typesToPurge = typesToPurge; - this.relationTypeGuids = new ArrayList<Long[]>(typesToPurge.length); - this.identityService = identityService; - } - - @Override - protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException { - - log(); - log(!forcePurge ? "Relation Types:" : "Purging relation types:"); - - boolean found = collectInfo(); - - if (forcePurge && found) { - log("Removing from osee_* tables..."); - processDeletes(connection, retrieveGammaIds()); - } - - log((found && !forcePurge) ? "To >DELETE Relation DATA!< add --force to confirm." : "Operation finished."); - } - - private boolean collectInfo() throws OseeCoreException { - for (int i = 0; i < typesToPurge.length; i++) { - - Long guid; - - try { - RelationType type = cache.getBySoleName(typesToPurge[i]); - guid = type.getGuid(); - logf("Type [%s] found. Guid: [%s]\n", typesToPurge[i], guid); - relationTypeGuids.add(new Long[] {guid}); - } catch (OseeArgumentException ex) { - logf("Type [%s] NOT found. \n", typesToPurge[i]); - log(ex); - } - - } - - return !relationTypeGuids.isEmpty(); - } - - private List<Integer[]> retrieveGammaIds() throws OseeCoreException { - List<Integer[]> gammas = new ArrayList<Integer[]>(50000); - IOseeStatement chStmt = ConnectionHandler.getStatement(); - - try { - for (Long[] relationTypeId : relationTypeGuids) { - chStmt.runPreparedQuery(RETRIEVE_GAMMAS_OF_REL_LINK_TXS, identityService.getLocalId(relationTypeId[0])); - while (chStmt.next()) { - gammas.add(new Integer[] {chStmt.getInt("gamma_id")}); - } - } - } finally { - chStmt.close(); - } - - return gammas; - } - - private void processDeletes(OseeConnection connection, List<Integer[]> gammas) throws OseeCoreException { - ConnectionHandler.runBatchUpdate(connection, String.format(DELETE_BY_GAMMAS, "osee_txs"), gammas); - ConnectionHandler.runBatchUpdate(connection, String.format(DELETE_BY_GAMMAS, "osee_txs_archived"), gammas); - ConnectionHandler.runBatchUpdate(connection, String.format(DELETE_BY_GAMMAS, "osee_relation_link"), gammas); - ConnectionHandler.runBatchUpdate(connection, String.format(DELETE_FROM_CONFLICT_TABLE_SOURCE_SIDE), gammas); - ConnectionHandler.runBatchUpdate(connection, String.format(DELETE_FROM_CONFLICT_TABLE_DEST_SIDE), gammas); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/SearchTaggerCommandProvider.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/SearchTaggerCommandProvider.java deleted file mode 100644 index 75f4f526140..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/SearchTaggerCommandProvider.java +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************************* - * 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.server.admin; - -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.Set; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.osee.framework.core.model.cache.AttributeTypeCache; -import org.eclipse.osee.framework.core.operation.CommandInterpreterLogger; -import org.eclipse.osee.framework.core.operation.MutexSchedulingRule; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.operation.Operations; -import org.eclipse.osee.framework.jdk.core.util.Strings; -import org.eclipse.osee.framework.server.admin.internal.Activator; -import org.eclipse.osee.framework.server.admin.search.SearchStats; -import org.eclipse.osee.framework.server.admin.search.TagItemOperation; -import org.eclipse.osee.framework.server.admin.search.TaggerAllOperation; -import org.eclipse.osee.framework.server.admin.search.TaggerDropAllOperation; -import org.eclipse.osee.framework.server.admin.search.TaggerStats; -import org.eclipse.osgi.framework.console.CommandInterpreter; -import org.eclipse.osgi.framework.console.CommandProvider; - -/** - * @author Roberto E. Escobar - */ -public final class SearchTaggerCommandProvider implements CommandProvider { - private final ISchedulingRule tagMutex = new MutexSchedulingRule(); - private Job tagAllJob; - - public Job _tag_all(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - - Set<Integer> branchIds = new LinkedHashSet<Integer>(); - boolean tagOnlyMissingGammas = false; - String arg = ci.nextArgument(); - while (arg != null) { - if (Strings.isValid(arg)) { - if (arg.equals("-missing")) { - tagOnlyMissingGammas = true; - } else { - branchIds.add(new Integer(arg)); - } - } - arg = ci.nextArgument(); - } - - AttributeTypeCache attTypeCache = Activator.getOseeCachingService().getAttributeTypeCache(); - - tagAllJob = - Operations.executeAsJob(new TaggerAllOperation(logger, attTypeCache, branchIds, tagOnlyMissingGammas), false, - tagMutex); - return tagAllJob; - } - - public void _tag_all_stop(CommandInterpreter ci) { - tagAllJob.cancel(); - } - - public Job _drop_all_tags(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new TaggerDropAllOperation(logger), false, tagMutex); - } - - public Job _tagger_stats(CommandInterpreter ci) { - TaggerStats stats = new TaggerStats(new CommandInterpreterLogger(ci)); - return Operations.executeAsJob(stats, false); - } - - public void _tagger_stats_clear(CommandInterpreter ci) { - Activator.getSearchTagger().clearStatistics(); - } - - public Job _search_stats(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new SearchStats(logger), false); - } - - public void _search_stats_clear(CommandInterpreter ci) { - Activator.getSearchEngine().clearStatistics(); - } - - public Job _tag(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - - Set<Long> gammas = new HashSet<Long>(); - String arg; - while ((arg = ci.nextArgument()) != null) { - gammas.add(new Long(arg)); - } - return Operations.executeAsJob(new TagItemOperation(logger, gammas), false, tagMutex); - } - - @Override - public String getHelp() { - StringBuilder sb = new StringBuilder(); - sb.append("\n---OSEE Search & Tag Commands---\n"); - sb.append(" tag_all [-missing] [<branchId>] - tag all attributes in a branch or tag all attributes in all branches if id not specified\n"); - sb.append(" tag_all_stop - stop tagging all attributes\n"); - sb.append(" tag [<gammaId> <gammaId> ...]- tag individual item\n"); - sb.append(" tagger_stats - get tagger stats\n"); - sb.append(" tagger_stats_clear - clear tagger stats\n"); - sb.append(" search_stats - get tagger stats\n"); - sb.append(" search_stats_clear - clear tagger stats\n"); - return sb.toString(); - } -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/ServerAdminCommandProvider.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/ServerAdminCommandProvider.java deleted file mode 100644 index 00f06e31ed9..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/ServerAdminCommandProvider.java +++ /dev/null @@ -1,265 +0,0 @@ -/******************************************************************************* - * 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.server.admin; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.osee.framework.branch.management.TxCurrentsAndModTypesCommand; -import org.eclipse.osee.framework.core.enums.OseeCacheEnum; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.exception.OseeDataStoreException; -import org.eclipse.osee.framework.core.model.cache.AttributeTypeCache; -import org.eclipse.osee.framework.core.operation.CommandInterpreterLogger; -import org.eclipse.osee.framework.core.operation.IOperation; -import org.eclipse.osee.framework.core.operation.MutexSchedulingRule; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.operation.Operations; -import org.eclipse.osee.framework.database.operation.ConsolidateArtifactVersionTxOperation; -import org.eclipse.osee.framework.database.operation.ConsolidateRelationsTxOperation; -import org.eclipse.osee.framework.database.operation.FindInvalidUTF8CharsOperation; -import org.eclipse.osee.framework.database.operation.ParseWindowsDirectoryListingOperation; -import org.eclipse.osee.framework.database.operation.PruneWorkspaceOperation; -import org.eclipse.osee.framework.database.operation.PurgeTransactionOperation; -import org.eclipse.osee.framework.database.operation.PurgeUnusedBackingDataAndTransactions; -import org.eclipse.osee.framework.jdk.core.util.Strings; -import org.eclipse.osee.framework.server.admin.internal.Activator; -import org.eclipse.osee.framework.server.admin.management.SchedulingCommand; -import org.eclipse.osee.framework.server.admin.management.ServerShutdownOperation; -import org.eclipse.osee.framework.server.admin.management.ServerStats; -import org.eclipse.osee.framework.server.admin.management.UpdateCachesOperation; -import org.eclipse.osee.framework.server.admin.management.UpdateServerVersionsOperation; -import org.eclipse.osgi.framework.console.CommandInterpreter; -import org.eclipse.osgi.framework.console.CommandProvider; - -/** - * @author Roberto E. Escobar - */ -public class ServerAdminCommandProvider implements CommandProvider { - - private final ISchedulingRule versionMutex = new MutexSchedulingRule(); - private final ISchedulingRule cacheMutex = new MutexSchedulingRule(); - private final ISchedulingRule shutdownMutex = new MutexSchedulingRule(); - - private final OseeCacheEnum[] reloadableCaches = { - OseeCacheEnum.ARTIFACT_TYPE_CACHE, - OseeCacheEnum.BRANCH_CACHE, - OseeCacheEnum.TRANSACTION_CACHE}; - - public Job _server_status(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new ServerStats(logger), false); - } - - public void _server_process_requests(CommandInterpreter ci) throws OseeCoreException { - String value = ci.nextArgument(); - Activator.getApplicationServerManager().setServletRequestsAllowed(new Boolean(value)); - } - - public Job _add_osee_version(CommandInterpreter ci) { - return updateServerVersions(ci, true); - } - - public Job _remove_osee_version(CommandInterpreter ci) { - return updateServerVersions(ci, false); - } - - private Job updateServerVersions(CommandInterpreter ci, boolean add) { - String version = ci.nextArgument(); - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new UpdateServerVersionsOperation(logger, version, add), false, versionMutex); - } - - public void _osee_version(CommandInterpreter ci) { - ci.print("Osee Application Server: "); - ci.println(Arrays.deepToString(Activator.getApplicationServerManager().getSupportedVersions())); - } - - public Job _reload_cache(CommandInterpreter ci) { - return updateCaches(ci, true); - } - - private Job updateCaches(CommandInterpreter ci, boolean reload) { - Set<OseeCacheEnum> cacheIds = new HashSet<OseeCacheEnum>(); - - for (String arg = ci.nextArgument(); Strings.isValid(arg); arg = ci.nextArgument()) { - cacheIds.add(OseeCacheEnum.valueOf(arg)); - } - - if (cacheIds.isEmpty()) { - cacheIds.addAll(Arrays.asList(reloadableCaches)); - } - - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new UpdateCachesOperation(logger, cacheIds, reload), false, cacheMutex); - } - - public Job _consolidate_artifact_versions(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - IOperation operation = new ConsolidateArtifactVersionTxOperation(Activator.getOseeDatabaseService(), logger); - return Operations.executeAsJob(operation, false); - } - - public Job _schedule(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new SchedulingCommand(logger, ci), false); - } - - public Job _tx_currents(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - boolean archived = Boolean.parseBoolean(ci.nextArgument()); - return Operations.executeAsJob(new TxCurrentsAndModTypesCommand(logger, archived), false); - } - - public Job _purge_relation_type(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - - //to be purged - final Collection<String> relationTypes = new ArrayList<String>(); - - boolean force = false; - for (String arg = ci.nextArgument(); Strings.isValid(arg); arg = ci.nextArgument()) { - if (arg.equals("-force")) { - force = true; - } else { - relationTypes.add(arg); - } - } - - IOperation operation = - new PurgeRelationType(Activator.getOseeDatabaseService(), Activator.getOseeCachingService(), - Activator.getIdentityService(), logger, force, relationTypes.toArray(new String[relationTypes.size()])); - - return Operations.executeAsJob(operation, false); - } - - public Job _tx_prune(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new PurgeUnusedBackingDataAndTransactions(logger), false); - } - - public Job _duplicate_attr(CommandInterpreter ci) throws OseeDataStoreException { - OperationLogger logger = new CommandInterpreterLogger(ci); - AttributeTypeCache attTypeCache = Activator.getOseeCachingService().getAttributeTypeCache(); - return Operations.executeAsJob( - new DuplicateAttributesOperation(logger, attTypeCache, Activator.getOseeDatabaseService()), false); - } - - public Job _osee_shutdown(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - return Operations.executeAsJob(new ServerShutdownOperation(logger, ci), true, shutdownMutex); - } - - public Job _parse_dir(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - String listingFile = ci.nextArgument(); - IOperation operation = - new ParseWindowsDirectoryListingOperation(Activator.getOseeDatabaseService(), - Activator.getOseeCachingService(), logger, listingFile); - - return Operations.executeAsJob(operation, false); - } - - public Job _consolidate_relations(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - - IOperation operation = new ConsolidateRelationsTxOperation(Activator.getOseeDatabaseService(), logger); - - return Operations.executeAsJob(operation, false); - } - - public Job _find_invalid_utf8(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - - IOperation operation = - new FindInvalidUTF8CharsOperation(Activator.getOseeDatabaseService(), Activator.getOseeCachingService(), - logger); - - return Operations.executeAsJob(operation, false); - } - - public Job _prune_workspace(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - - String preserveFilePattern = ""; - String workspacePathStr = ""; - String purgeFilePattern = ""; - - //to be purged - final ArrayList<String> args = new ArrayList<String>(); - - for (String arg = ci.nextArgument(); Strings.isValid(arg); arg = ci.nextArgument()) { - args.add(arg); - } - - if (args.size() <= 1) { - ci.print(getHelp()); - } else if (args.size() == 2) { - workspacePathStr = args.get(0); - purgeFilePattern = args.get(1); - } else { - preserveFilePattern = args.get(0); - workspacePathStr = args.get(1); - purgeFilePattern = args.get(2); - } - - IOperation operation = - new PruneWorkspaceOperation(Activator.getOseeDatabaseService(), Activator.getOseeCachingService(), logger, - preserveFilePattern, workspacePathStr, purgeFilePattern); - - return Operations.executeAsJob(operation, false); - } - - public Job _purge_transactions(CommandInterpreter ci) { - OperationLogger logger = new CommandInterpreterLogger(ci); - final List<Integer> transactions = new ArrayList<Integer>(); - - for (String arg = ci.nextArgument(); Strings.isValid(arg); arg = ci.nextArgument()) { - transactions.add(Integer.parseInt(arg)); - } - - IOperation operation = new PurgeTransactionOperation(Activator.getOseeDatabaseService(), logger, transactions); - return Operations.executeAsJob(operation, false); - } - - @Override - public String getHelp() { - StringBuilder sb = new StringBuilder(); - sb.append("\n---OSEE Server Admin Commands---\n"); - sb.append(" server_status - displays server status\n"); - sb.append(" server_process_requests [true | false]- command servlets to accept/reject requests\n"); - sb.append(" osee_version - displays the supported osee versions\n"); - sb.append(" add_osee_version [version string]- add the version string to the list of supported osee versions\n"); - sb.append(" remove_osee_version [version string]- removes the version string from the list of supported osee versions\n"); - sb.append(" finish_partial_archives - move txs addressing to osee_txs_archived for archived branches\n"); - sb.append(" consolidate_artifact_versions - migrate to 0.9.2 database schema\n"); - sb.append(" tx_currents [true | false] - detect and fix tx current and mod types inconsistencies on archive txs or txs\n"); - sb.append(" tx_prune - Purge artifact, attribute, and relation versions that are not addressed or nonexistent and purge empty transactions\n"); - sb.append(" duplicate_attr - detect and fix duplicate attributes\n"); - sb.append(" osee_shutdown [-oseeOnly] - immediately release the listening port then waits for all existing operations to finish. \n"); - sb.append(" schedule <delay seconds> <iterations> <command> - runs the command after the specified delay and repeat given number of times\n"); - sb.append(" purge_relation_type -force excute the operation, relationType1 ...\n"); - sb.append(" parse_dir - converts the given file into a formatted CSV file\n"); - sb.append(" purge_transactions <transaction ids> - "); - sb.append(" prune_workspace [preserve_file_pattern] workspace_path purge_file_pattern - delete files that are found in workspace_path and whose filenames match purge_file_pattern. Any filename that matches the optional preserve_file_pattern are not deleted\n"); - sb.append(" find_invalid_utf8 - finds invalid UTF8 chars in table osee_attribute\n"); - sb.append(" consolidate_relations - consolidate rows of relations\n"); - sb.append(String.format(" reload_cache %s? - reloads server caches\n", - Arrays.deepToString(reloadableCaches).replaceAll(",", " | "))); - return sb.toString(); - } - -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/app/DataStoreBackupApplication.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/app/DataStoreBackupApplication.java deleted file mode 100644 index c5b635954b6..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/app/DataStoreBackupApplication.java +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************************* - * 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.server.admin.app; - -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import org.eclipse.equinox.app.IApplication; -import org.eclipse.equinox.app.IApplicationContext; -import org.eclipse.osee.framework.branch.management.ExportOptions; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.database.core.ConnectionHandler; -import org.eclipse.osee.framework.database.core.IOseeStatement; -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.logging.OseeLog; -import org.eclipse.osee.framework.resource.management.IResource; -import org.eclipse.osee.framework.resource.management.IResourceLocator; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public class DataStoreBackupApplication implements IApplication { - private static final String ALL_BRANCHES_QUERY = "select branch_id from osee_branch"; - - private List<Integer> getAllBranches() throws OseeCoreException { - List<Integer> toReturn = new ArrayList<Integer>(); - IOseeStatement chStmt = ConnectionHandler.getStatement(); - try { - chStmt.runPreparedQuery(100, ALL_BRANCHES_QUERY); - while (chStmt.next()) { - toReturn.add(chStmt.getInt("branch_id")); - } - } finally { - chStmt.close(); - } - return toReturn; - } - - private void transferToBackupLocation(IResourceLocator locator, File backupFolder) throws Exception { - InputStream inputStream = null; - OutputStream outputStream = null; - try { - IResource resource = Activator.getResourceManager().acquire(locator, new PropertyStore()); - inputStream = resource.getContent(); - - outputStream = new BufferedOutputStream(new FileOutputStream(new File(backupFolder, resource.getName()))); - - Lib.inputStreamToOutputStream(inputStream, outputStream); - } finally { - try { - if (inputStream != null) { - inputStream.close(); - } - } finally { - if (outputStream != null) { - outputStream.flush(); - outputStream.close(); - } - } - } - } - - @Override - public Object start(IApplicationContext context) throws Exception { - try { - String backupName = "osee_" + Lib.getDateTimeString(); - - PropertyStore options = new PropertyStore(); - options.put(ExportOptions.COMPRESS.name(), true); - - List<Integer> branchIds = getAllBranches(); - - int totalBranches = branchIds.size(); - OseeLog.logf(Activator.class, Level.INFO, - "Exporting [%s] branch%s", totalBranches, totalBranches == 1 ? "" : "es"); - - IResourceLocator exportLocator = Activator.getBranchExchange().exportBranch(backupName, options, branchIds); - - OseeLog.logf(Activator.class, Level.INFO, - "Verifying export file integrity [%s]", exportLocator.getLocation()); - - IResourceLocator exportCheckLocator = Activator.getBranchExchange().checkIntegrity(exportLocator); - OseeLog.logf(Activator.class, Level.INFO, "Verified [%s]", exportCheckLocator.getLocation()); - - OseeLog.logf(Activator.class, Level.INFO, - "Completed export - [%s] branch%s", totalBranches, totalBranches == 1 ? "" : "es"); - - String backupPath = (String) context.getArguments().get("osee.backup.path"); - if (Strings.isValid(backupPath)) { - if (!backupPath.endsWith(File.separator)) { - backupPath = backupPath + File.separator; - } - File backupFolder = new File(backupPath); - backupFolder.mkdirs(); - transferToBackupLocation(exportLocator, backupFolder); - transferToBackupLocation(exportCheckLocator, backupFolder); - - Activator.getResourceManager().delete(exportLocator); - Activator.getResourceManager().delete(exportCheckLocator); - } - } catch (Throwable ex) { - OseeLog.log(Activator.class, Level.SEVERE, ex); - } - return IApplication.EXIT_OK; - } - - @Override - public void stop() { - // - } - -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/BranchExportOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/BranchExportOperation.java deleted file mode 100644 index 7b405ce38c2..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/BranchExportOperation.java +++ /dev/null @@ -1,78 +0,0 @@ -/******************************************************************************* - * 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.server.admin.branch; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeArgumentException; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.database.core.ConnectionHandler; -import org.eclipse.osee.framework.database.core.IOseeStatement; -import org.eclipse.osee.framework.jdk.core.type.PropertyStore; -import org.eclipse.osee.framework.jdk.core.util.Strings; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public final class BranchExportOperation extends AbstractOperation { - private static final String SELECT_BRANCHES = "SELECT branch_id FROM osee_branch %s ORDER BY branch_id"; - - private final PropertyStore propertyStore; - private final String exportFileName; - private final boolean includeArchivedBranches; - private final List<Integer> branchIds; - private final List<Integer> excludedBranchIds; - - public BranchExportOperation(OperationLogger logger, PropertyStore propertyStore, String exportFileName, boolean includeArchivedBranches, List<Integer> branchIds, boolean excludeBranchIds) { - super("Branch Export", Activator.PLUGIN_ID, logger); - this.propertyStore = propertyStore; - this.exportFileName = exportFileName; - this.includeArchivedBranches = includeArchivedBranches; - - if (excludeBranchIds) { - excludedBranchIds = branchIds; - this.branchIds = new ArrayList<Integer>(); - } else { - this.branchIds = branchIds; - excludedBranchIds = Collections.emptyList(); - } - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - if (!Strings.isValid(exportFileName)) { - throw new OseeArgumentException("exportFileName was invalid: [%s]", exportFileName); - } - - if (branchIds.isEmpty()) { - IOseeStatement chStmt = ConnectionHandler.getStatement(); - try { - chStmt.runPreparedQuery(10000, - String.format(SELECT_BRANCHES, includeArchivedBranches ? "" : "where archived = 0")); - while (chStmt.next()) { - branchIds.add(chStmt.getInt("branch_id")); - } - } finally { - chStmt.close(); - } - for (Integer branchId : excludedBranchIds) { - branchIds.remove(branchId); - } - } - logf("Exporting: [%s] branches\n", branchIds.size()); - - Activator.getBranchExchange().exportBranch(exportFileName, propertyStore, branchIds); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/BranchImportOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/BranchImportOperation.java deleted file mode 100644 index 3331db8d77a..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/BranchImportOperation.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * 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.server.admin.branch; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.List; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeArgumentException; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.jdk.core.type.PropertyStore; -import org.eclipse.osee.framework.resource.management.util.ResourceLocator; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public final class BranchImportOperation extends AbstractOperation { - private final List<String> importFiles; - private final PropertyStore propertyStore; - private final List<Integer> branchIds; - - public BranchImportOperation(OperationLogger logger, PropertyStore propertyStore, List<String> importFiles, List<Integer> branchIds) { - super("Branch Import", Activator.PLUGIN_ID, logger); - this.importFiles = importFiles; - this.propertyStore = propertyStore; - this.branchIds = branchIds; - } - - @Override - protected void doWork(IProgressMonitor monitor) throws OseeCoreException, URISyntaxException { - - if (importFiles.isEmpty()) { - throw new OseeArgumentException("Files to import were not specified"); - } - - for (String fileToImport : importFiles) { - URI uri = new URI("exchange://" + fileToImport); - Activator.getBranchExchange().importBranch(new ResourceLocator(uri), propertyStore, branchIds, getLogger()); - } - } -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/ExchangeIntegrityOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/ExchangeIntegrityOperation.java deleted file mode 100644 index 019da10e074..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/branch/ExchangeIntegrityOperation.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * 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.server.admin.branch; - -import java.net.URI; -import java.util.List; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.resource.management.util.ResourceLocator; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public class ExchangeIntegrityOperation extends AbstractOperation { - private final List<String> importFiles; - - public ExchangeIntegrityOperation(OperationLogger logger, List<String> importFiles) { - super("Verify Exchange File", Activator.PLUGIN_ID, logger); - this.importFiles = importFiles; - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - for (String fileToImport : importFiles) { - URI uri = new URI("exchange://" + fileToImport); - Activator.getBranchExchange().checkIntegrity(new ResourceLocator(uri)); - } - } -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/internal/Activator.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/internal/Activator.java deleted file mode 100644 index e3588a90901..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/internal/Activator.java +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************************* - * 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.server.admin.internal; - -import java.util.HashMap; -import java.util.Map; -import org.eclipse.osee.framework.branch.management.IBranchExchange; -import org.eclipse.osee.framework.core.enums.OseeServiceTrackerId; -import org.eclipse.osee.framework.core.server.IApplicationServerManager; -import org.eclipse.osee.framework.core.server.ISessionManager; -import org.eclipse.osee.framework.core.services.IOseeCachingService; -import org.eclipse.osee.framework.core.services.IdentityService; -import org.eclipse.osee.framework.database.IOseeDatabaseService; -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.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.util.tracker.ServiceTracker; - -public class Activator implements BundleActivator { - public static final String PLUGIN_ID = "org.eclipse.osee.framework.server.admin"; - private static Activator instance; - - private final Map<OseeServiceTrackerId, ServiceTracker> mappedTrackers; - - public Activator() { - this.mappedTrackers = new HashMap<OseeServiceTrackerId, ServiceTracker>(); - } - - @Override - public void start(BundleContext context) throws Exception { - instance = this; - - createServiceTracker(context, IResourceManager.class, OseeServiceTrackerId.RESOURCE_MANAGER); - createServiceTracker(context, IResourceLocatorManager.class, OseeServiceTrackerId.RESOURCE_LOCATOR); - createServiceTracker(context, ISearchEngineTagger.class, OseeServiceTrackerId.SEARCH_TAGGER); - createServiceTracker(context, ISearchEngine.class, OseeServiceTrackerId.SEARCH_ENGINE); - createServiceTracker(context, IBranchExchange.class, OseeServiceTrackerId.BRANCH_EXCHANGE); - createServiceTracker(context, IOseeCachingService.class, OseeServiceTrackerId.OSEE_CACHING_SERVICE); - createServiceTracker(context, IOseeDatabaseService.class, OseeServiceTrackerId.OSEE_DATABASE_SERVICE); - createServiceTracker(context, IApplicationServerManager.class, OseeServiceTrackerId.APPLICATION_MANAGER); - createServiceTracker(context, ISessionManager.class, OseeServiceTrackerId.SESSION_MANAGER); - createServiceTracker(context, IdentityService.class, OseeServiceTrackerId.IDENTITY_SERVICE); - } - - @Override - public void stop(BundleContext context) throws Exception { - for (ServiceTracker tracker : mappedTrackers.values()) { - tracker.close(); - } - mappedTrackers.clear(); - - instance = null; - } - - public static IOseeDatabaseService getOseeDatabaseService() { - return getTracker(OseeServiceTrackerId.OSEE_DATABASE_SERVICE, IOseeDatabaseService.class); - } - - private void createServiceTracker(BundleContext context, Class<?> clazz, OseeServiceTrackerId trackerId) { - ServiceTracker tracker = new ServiceTracker(context, clazz.getName(), null); - tracker.open(); - mappedTrackers.put(trackerId, tracker); - } - - public static IBranchExchange getBranchExchange() { - return getTracker(OseeServiceTrackerId.BRANCH_EXCHANGE, IBranchExchange.class); - } - - public static IResourceManager getResourceManager() { - return getTracker(OseeServiceTrackerId.RESOURCE_MANAGER, IResourceManager.class); - } - - public static IResourceLocatorManager getResourceLocatorManager() { - return getTracker(OseeServiceTrackerId.RESOURCE_LOCATOR, IResourceLocatorManager.class); - } - - public static ISearchEngineTagger getSearchTagger() { - return getTracker(OseeServiceTrackerId.SEARCH_TAGGER, ISearchEngineTagger.class); - } - - public static ISearchEngine getSearchEngine() { - return getTracker(OseeServiceTrackerId.SEARCH_ENGINE, ISearchEngine.class); - } - - public static IOseeCachingService getOseeCachingService() { - return getTracker(OseeServiceTrackerId.OSEE_CACHING_SERVICE, IOseeCachingService.class); - } - - public static IApplicationServerManager getApplicationServerManager() { - return getTracker(OseeServiceTrackerId.APPLICATION_MANAGER, IApplicationServerManager.class); - } - - public static ISessionManager getSessionManager() { - return getTracker(OseeServiceTrackerId.SESSION_MANAGER, ISessionManager.class); - } - - public static IdentityService getIdentityService() { - return getTracker(OseeServiceTrackerId.IDENTITY_SERVICE, IdentityService.class); - } - - private static <T> T getTracker(OseeServiceTrackerId trackerId, Class<T> clazz) { - ServiceTracker tracker = instance.mappedTrackers.get(trackerId); - Object service = tracker.getService(); - return clazz.cast(service); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/SchedulingCommand.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/SchedulingCommand.java deleted file mode 100644 index a46807e8158..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/SchedulingCommand.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 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.server.admin.management; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.server.admin.internal.Activator; -import org.eclipse.osgi.framework.console.CommandInterpreter; - -/** - * @author Ryan D. Brooks - */ -public class SchedulingCommand extends AbstractOperation { - private final long delayMiliseconds; - private final int iterations; - private final String command; - private final CommandInterpreter ci; - - public SchedulingCommand(OperationLogger logger, CommandInterpreter ci) { - super("Schedule", Activator.PLUGIN_ID, logger); - delayMiliseconds = Integer.parseInt(ci.nextArgument()) * 1000; - iterations = Integer.parseInt(ci.nextArgument()); - - StringBuilder strB = new StringBuilder(200); - String argument; - while ((argument = ci.nextArgument()) != null) { - strB.append(argument); - strB.append(" "); - } - - command = strB.toString(); - this.ci = ci; - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - for (int i = 0; i < iterations; i++) { - Thread.sleep(delayMiliseconds); - ci.execute(command); - } - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/ServerShutdownOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/ServerShutdownOperation.java deleted file mode 100644 index 6c98e037a4c..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/ServerShutdownOperation.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * 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.server.admin.management; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Platform; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.server.IApplicationServerManager; -import org.eclipse.osee.framework.server.admin.internal.Activator; -import org.eclipse.osgi.framework.console.CommandInterpreter; -import org.osgi.framework.Bundle; - -/** - * @author Roberto E. Escobar - */ -public class ServerShutdownOperation extends AbstractOperation { - private final CommandInterpreter ci; - - public ServerShutdownOperation(OperationLogger logger, CommandInterpreter ci) { - super("Server Shutdown", Activator.PLUGIN_ID, logger); - this.ci = ci; - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - IApplicationServerManager manager = Activator.getApplicationServerManager(); - - Bundle equinoxHttpBundle = Platform.getBundle("org.eclipse.equinox.http.jetty"); - equinoxHttpBundle.stop(); - - manager.setServletRequestsAllowed(false); - - while (!manager.isSystemIdle()) { - try { - Thread.sleep(1000); - } catch (InterruptedException ex) { - log(ex); - } - } - manager.shutdown(); - - if ("-oseeOnly".equalsIgnoreCase(ci.nextArgument())) { - log("Osee Shutdown Complete"); - } else { - ci.execute("close"); - } - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/ServerStats.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/ServerStats.java deleted file mode 100644 index 156d869e572..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/ServerStats.java +++ /dev/null @@ -1,102 +0,0 @@ -/******************************************************************************* - * 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.server.admin.management; - -import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.jobs.IJobManager; -import org.eclipse.core.runtime.jobs.Job; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.server.IApplicationServerManager; -import org.eclipse.osee.framework.core.server.ISessionManager; -import org.eclipse.osee.framework.core.server.OseeServerProperties; -import org.eclipse.osee.framework.database.core.DatabaseInfoManager; -import org.eclipse.osee.framework.jdk.core.util.Lib; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public class ServerStats extends AbstractOperation { - - public ServerStats(OperationLogger logger) { - super("Server Stats", Activator.PLUGIN_ID, logger); - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - IApplicationServerManager manager = Activator.getApplicationServerManager(); - ISessionManager sessionManager = Activator.getSessionManager(); - - log("\n----------------------------------------------"); - log(" Server Stats"); - log("----------------------------------------------"); - - logf("Server:[%s:%s]", manager.getServerAddress(), manager.getPort()); - logf("Id: [%s]", manager.getId()); - log(String.format("Running Since: [%s]\n", - DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(manager.getDateStarted()))); - - logf("Code Base Location: [%s]", System.getProperty("user.dir")); - logf("Datastore: [%s]", DatabaseInfoManager.getDefault().toString()); - logf("Binary Data Path: [%s]\n", OseeServerProperties.getOseeApplicationServerData(null)); - - logf("Supported Versions: %s", Arrays.deepToString(manager.getSupportedVersions())); - logf("Accepting Requests: [%s]", manager.isAcceptingRequests()); - log(Lib.getMemoryInfo()); - - logServlets(manager); - - logf("\nSessionsManaged: [%s]", sessionManager.getAllSessions(false).size()); - logf("\nServer State: [%s]", manager.isSystemIdle() ? "IDLE" : "BUSY"); - logf("Active Threads: [%s]", manager.getNumberOfActiveThreads()); - - IJobManager jobManager = Job.getJobManager(); - logf("Job Manager: [%s]", jobManager.isIdle() ? "IDLE" : "BUSY"); - logf("Current Job: [%s]", jobManager.currentJob().getName()); - - log("Current Tasks: "); - List<String> entries = manager.getCurrentProcesses(); - if (entries.isEmpty()) { - log("[NONE]"); - } else { - log(); - for (int index = 0; index < entries.size(); index++) { - logf("[%s] ", index); - log(entries.get(index)); - if (index + 1 < entries.size()) { - log(); - } - } - } - - log(); - - } - - private void logServlets(IApplicationServerManager manager) { - log("Servlets:"); - List<String> contexts = new ArrayList<String>(manager.getRegisteredServlets()); - Collections.sort(contexts); - if (contexts.size() % 2 == 1) { - contexts.add(""); - } - int midPoint = contexts.size() / 2; - for (int i = 0; i < midPoint; i++) { - logf("%-40.40s%s", contexts.get(i), contexts.get(i + midPoint)); - } - } -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/UpdateCachesOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/UpdateCachesOperation.java deleted file mode 100644 index 29133a433a9..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/UpdateCachesOperation.java +++ /dev/null @@ -1,62 +0,0 @@ -/******************************************************************************* - * 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.server.admin.management; - -import java.util.Arrays; -import java.util.Set; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.enums.OseeCacheEnum; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.model.cache.IOseeCache; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.services.IOseeCachingService; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public class UpdateCachesOperation extends AbstractOperation { - private final Set<OseeCacheEnum> cacheIds; - private final boolean reload; - private final String verb; - - public UpdateCachesOperation(OperationLogger logger, Set<OseeCacheEnum> cacheIds, boolean reload) { - super("Clear Cache(s)", Activator.PLUGIN_ID, logger); - this.cacheIds = cacheIds; - this.reload = reload; - this.verb = reload ? "Reloaded" : "Cleared"; - } - - @Override - protected void doWork(IProgressMonitor monitor) throws OseeCoreException { - IOseeCachingService service = Activator.getOseeCachingService(); - if (cacheIds.isEmpty()) { - if (reload) { - service.reloadAll(); - } else { - service.clearAll(); - } - logf("%s the following caches: %s", verb, - Arrays.deepToString(OseeCacheEnum.values()).replaceAll(", SESSION_CACHE", "")); - } else { - for (OseeCacheEnum cacheId : cacheIds) { - IOseeCache<?, ?> cache = service.getCache(cacheId); - if (reload) { - cache.reloadCache(); - } else { - cache.decacheAll(); - } - } - logf("%s %s", verb, cacheIds); - } - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/UpdateServerVersionsOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/UpdateServerVersionsOperation.java deleted file mode 100644 index f2c362666c4..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/management/UpdateServerVersionsOperation.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * 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.server.admin.management; - -import java.util.Arrays; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.core.server.IApplicationServerManager; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public class UpdateServerVersionsOperation extends AbstractOperation { - private final String version; - private final boolean add; - - public UpdateServerVersionsOperation(OperationLogger logger, String version, boolean add) { - super("Add Version", Activator.PLUGIN_ID, logger); - this.version = version; - this.add = add; - } - - @Override - protected void doWork(IProgressMonitor monitor) throws OseeCoreException { - IApplicationServerManager appManager = Activator.getApplicationServerManager(); - if (add) { - appManager.addSupportedVersion(version); - } else { - appManager.removeSupportedVersion(version); - } - logf("Osee Application Server: %s", - Arrays.deepToString(Activator.getApplicationServerManager().getSupportedVersions())); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/SearchStats.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/SearchStats.java deleted file mode 100644 index 19f125106f4..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/SearchStats.java +++ /dev/null @@ -1,39 +0,0 @@ -/******************************************************************************* - * 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.server.admin.search; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.search.engine.ISearchStatistics; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public class SearchStats extends AbstractOperation { - - public SearchStats(OperationLogger logger) { - super("Search Engine Stats", Activator.PLUGIN_ID, logger); - } - - @Override - protected void doWork(IProgressMonitor monitor) { - ISearchStatistics stats = Activator.getSearchEngine().getStatistics(); - log("\n----------------------------------------------"); - log(" Search Stats"); - log("----------------------------------------------"); - logf("Total Searches - [%d]", stats.getTotalSearches()); - logf("Search Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageSearchTime(), - stats.getLongestSearchTime()); - logf("Longest Search - %s", stats.getLongestSearch()); - } -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemOperation.java deleted file mode 100644 index 286e0b8dc90..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TagItemOperation.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * 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.server.admin.search; - -import java.util.Set; -import java.util.logging.Level; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.database.core.JoinUtility; -import org.eclipse.osee.framework.database.core.TagQueueJoinQuery; -import org.eclipse.osee.framework.logging.OseeLog; -import org.eclipse.osee.framework.search.engine.TagListenerAdapter; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public class TagItemOperation extends AbstractOperation { - private final Set<Long> gammas; - private TagListener tagListener = null; - - public TagItemOperation(OperationLogger logger, Set<Long> gammas) { - super("Tag Individual Items", Activator.PLUGIN_ID, logger); - this.gammas = gammas; - } - - private final class TagListener extends TagListenerAdapter { - private int joinQuery; - private boolean isProcessing; - - public TagListener() { - this.isProcessing = true; - this.joinQuery = -1; - } - - @Override - public void onTagQueryIdSubmit(int queryId) { - joinQuery = queryId; - } - - public boolean isProcessing() { - return isProcessing; - } - - @Override - public void onAttributeTagComplete(int queryId, long gammaId, int totalTags, long processingTime) { - if (queryId == joinQuery) { - logf("GammaId: [%d] Tags: [%d] Processed In: [%d] ms", gammaId, totalTags, processingTime); - } - } - - @Override - synchronized public void onTagQueryIdTagComplete(int queryId, long waitTime, long processingTime) { - if (queryId == joinQuery) { - this.isProcessing = false; - this.notify(); - } - } - - @Override - public void onAttributeAddTagEvent(int queryId, long gammaId, String word, long codedTag) { - if (queryId == joinQuery) { - logf("QueryId: [%d] GammaId: [%d] Word: [%s] Tag: [%d]", queryId, gammaId, word, codedTag); - } - } - - } - - @Override - protected void doWork(IProgressMonitor monitor) throws OseeCoreException { - tagListener = null; - final Set<Long> toTag = gammas; - if (!toTag.isEmpty()) { - TagQueueJoinQuery joinQuery = JoinUtility.createTagQueueJoinQuery(); - for (Long item : toTag) { - joinQuery.add(item); - } - joinQuery.store(); - - tagListener = new TagListener(); - Activator.getSearchTagger().tagByQueueQueryId(tagListener, joinQuery.getQueryId()); - synchronized (tagListener) { - try { - tagListener.wait(); - } catch (InterruptedException ex) { - OseeLog.log(Activator.class, Level.SEVERE, ex); - } - } - if (tagListener.isProcessing()) { - joinQuery.delete(); - } - - } else { - log("No Items to Tag."); - } - } -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllOperation.java deleted file mode 100644 index 2ea08d34e56..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerAllOperation.java +++ /dev/null @@ -1,229 +0,0 @@ -/******************************************************************************* - * 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.server.admin.search; - -import java.util.Collection; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.model.cache.AttributeTypeCache; -import org.eclipse.osee.framework.core.model.type.AttributeType; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.database.core.ConnectionHandler; -import org.eclipse.osee.framework.database.core.IOseeStatement; -import org.eclipse.osee.framework.database.core.IdJoinQuery; -import org.eclipse.osee.framework.database.core.JoinUtility; -import org.eclipse.osee.framework.database.core.TagQueueJoinQuery; -import org.eclipse.osee.framework.jdk.core.util.Lib; -import org.eclipse.osee.framework.search.engine.TagListenerAdapter; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public final class TaggerAllOperation extends AbstractOperation { - private static final int BATCH_SIZE = 1000; - - private static final String FIND_ALL_TAGGABLE_ATTRIBUTES = - "SELECT att.gamma_id FROM osee_join_id oji, osee_attribute att WHERE oji.query_id = ? AND oji.id = att.attr_type_id"; - - private static final String COUNT_ALL_TAGGABLE_ATTRIBUTES = FIND_ALL_TAGGABLE_ATTRIBUTES.replace("att.gamma_id", - "count(1)"); - - private static final String FIND_MISSING = - FIND_ALL_TAGGABLE_ATTRIBUTES + " AND att.gamma_id NOT IN (SELECT gamma_id FROM osee_search_tags)"; - - private static final String COUNT_MISSING = FIND_MISSING.replaceFirst("att.gamma_id", "count(1)"); - - private static final String FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH = - "SELECT DISTINCT att.gamma_id FROM osee_join_id jid1, osee_join_id jid2, osee_txs txs, osee_attribute att WHERE jid1.query_id = ? AND jid1.id = txs.branch_id AND txs.gamma_id = att.gamma_id AND att.attr_type_id = jid2.id and jid2.query_id = ?"; - - private static final String COUNT_TAGGABLE_ATTRIBUTES_BY_BRANCH = FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH.replace( - "DISTINCT att.gamma_id", "count(DISTINCT att.gamma_id)"); - - private static final String FIND_MISSING_BY_BRANCH = - FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH + " AND att.gamma_id NOT IN (SELECT gamma_id FROM osee_search_tags)"; - - private static final String COUNT_MISSING_BY_BRANCH = - COUNT_TAGGABLE_ATTRIBUTES_BY_BRANCH + " AND att.gamma_id NOT IN (SELECT gamma_id FROM osee_search_tags)"; - - private final Set<Integer> branchIds; - private final boolean tagOnlyMissingGammas; - private final AttributeTypeCache attTypeCache; - private TagProcessListener processor; - - public TaggerAllOperation(OperationLogger logger, AttributeTypeCache attTypeCache, Set<Integer> branchIds, boolean tagOnlyMissingGammas) { - super("Tag Attributes", Activator.PLUGIN_ID, logger); - this.branchIds = branchIds; - this.tagOnlyMissingGammas = tagOnlyMissingGammas; - this.attTypeCache = attTypeCache; - } - - private TagProcessListener process(long startTime, Collection<Integer> branchIds, boolean tagOnlyMissingGammas) throws OseeCoreException { - logTaggingStart(); - - IdJoinQuery branchJoin = JoinUtility.createIdJoinQuery(); - IdJoinQuery typeJoin = JoinUtility.createIdJoinQuery(); - Object[] params; - String countQuery; - String searchQuery; - - if (branchIds.isEmpty()) { - params = new Object[] {typeJoin.getQueryId()}; - if (tagOnlyMissingGammas) { - countQuery = COUNT_MISSING; - searchQuery = FIND_MISSING; - } else { - countQuery = COUNT_ALL_TAGGABLE_ATTRIBUTES; - searchQuery = FIND_ALL_TAGGABLE_ATTRIBUTES; - } - } else { - for (Integer id : branchIds) { - branchJoin.add(id); - } - branchJoin.store(); - params = new Object[] {branchJoin.getQueryId(), typeJoin.getQueryId()}; - if (tagOnlyMissingGammas) { - countQuery = COUNT_MISSING_BY_BRANCH; - searchQuery = FIND_MISSING_BY_BRANCH; - } else { - countQuery = COUNT_TAGGABLE_ATTRIBUTES_BY_BRANCH; - searchQuery = FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH; - } - } - - populateAttributeTypeJoin(typeJoin); - - int totalAttributes = ConnectionHandler.runPreparedQueryFetchInt(-1, countQuery, params); - TagProcessListener processor = new TagProcessListener(startTime, totalAttributes); - try { - fetchAndProcessGammas(processor, searchQuery, params); - } finally { - branchJoin.delete(); - } - return processor; - } - - private void logTaggingStart() { - StringBuilder builder = new StringBuilder(); - builder.append("Tagging"); - if (tagOnlyMissingGammas) { - builder.append(" (Only Missing)"); - } - builder.append(" Attributes for "); - if (branchIds.isEmpty()) { - builder.append("All Branches"); - } else { - builder.append("Branch(es) ").append(branchIds); - } - log(builder.toString()); - } - - private void fetchAndProcessGammas(TagProcessListener processor, String query, Object... params) throws OseeCoreException { - IOseeStatement chStmt = ConnectionHandler.getStatement(); - try { - chStmt.runPreparedQuery(query, params); - TagQueueJoinQuery joinQuery = JoinUtility.createTagQueueJoinQuery(); - while (chStmt.next()) { - long gammaId = chStmt.getLong("gamma_id"); - joinQuery.add(gammaId); - if (joinQuery.size() >= BATCH_SIZE) { - processor.storeAndAddQueryId(joinQuery); - joinQuery = JoinUtility.createTagQueueJoinQuery(); - } - } - processor.storeAndAddQueryId(joinQuery); - } finally { - chStmt.close(); - } - } - - private final class TagProcessListener extends TagListenerAdapter { - - private final Map<Integer, TagQueueJoinQuery> queryIdMap; - private int attributesProcessed; - private int queriesProcessed; - private final long startTime; - private final int totalAttributes; - - public TagProcessListener(long startTime, int totalAttributes) { - this.queryIdMap = new ConcurrentHashMap<Integer, TagQueueJoinQuery>(); - this.startTime = startTime; - this.totalAttributes = totalAttributes; - this.attributesProcessed = 0; - this.queriesProcessed = 0; - } - - public void storeAndAddQueryId(TagQueueJoinQuery joinQuery) throws OseeCoreException { - if (joinQuery.size() > 0) { - joinQuery.store(); - this.queryIdMap.put(joinQuery.getQueryId(), joinQuery); - Activator.getSearchTagger().tagByQueueQueryId(this, joinQuery.getQueryId()); - } - } - - public boolean isProcessingDone() { - return queriesProcessed == totalQueries(); - } - - public int totalQueries() { - int remainder = totalAttributes % 1000; - return totalAttributes / 1000 + (remainder > 0 ? 1 : 0); - } - - public void printStats() { - logf("QueryIds: [ %d of %d] Attributes: [%d of %d] - Elapsed Time = %s.", queriesProcessed, totalQueries(), - attributesProcessed, totalAttributes, Lib.getElapseString(startTime)); - } - - @Override - public void onAttributeTagComplete(int queryId, long gammaId, int totalTags, long processingTime) { - if (queryIdMap.containsKey(queryId)) { - attributesProcessed++; - if (attributesProcessed % 1000 == 0) { - printStats(); - } - } - } - - @Override - synchronized public void onTagQueryIdTagComplete(int queryId, long waitTime, long processingTime) { - TagQueueJoinQuery joinQuery = this.queryIdMap.get(queryId); - if (joinQuery != null) { - this.queryIdMap.remove(joinQuery); - queriesProcessed++; - if (isProcessingDone()) { - this.notify(); - } - } - } - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - long startTime = System.currentTimeMillis(); - processor = process(startTime, branchIds, tagOnlyMissingGammas); - processor.printStats(); - log("Tagging Complete"); - } - - private void populateAttributeTypeJoin(IdJoinQuery typeJoin) throws OseeCoreException { - for (AttributeType attributeType : attTypeCache.getAll()) { - if (attributeType.isTaggable()) { - typeJoin.add(attributeType.getId()); - } - } - typeJoin.store(); - } -}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllOperation.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllOperation.java deleted file mode 100644 index abd0e0ba385..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerDropAllOperation.java +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************************* - * 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.server.admin.search; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.exception.OseeCoreException; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.database.core.ConnectionHandler; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public final class TaggerDropAllOperation extends AbstractOperation { - - public TaggerDropAllOperation(OperationLogger logger) { - super("Drop All Search Tags", Activator.PLUGIN_ID, logger); - } - - @Override - protected void doWork(IProgressMonitor monitor) throws OseeCoreException { - ConnectionHandler.runPreparedUpdate("TRUNCATE osee_search_tags"); - } -} diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerStats.java b/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerStats.java deleted file mode 100644 index bab4ce8476f..00000000000 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/search/TaggerStats.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * 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.server.admin.search; - -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.operation.AbstractOperation; -import org.eclipse.osee.framework.core.operation.OperationLogger; -import org.eclipse.osee.framework.search.engine.ISearchEngineTagger; -import org.eclipse.osee.framework.search.engine.ITagItemStatistics; -import org.eclipse.osee.framework.search.engine.ITaggerStatistics; -import org.eclipse.osee.framework.server.admin.internal.Activator; - -/** - * @author Roberto E. Escobar - */ -public final class TaggerStats extends AbstractOperation { - - public TaggerStats(OperationLogger logger) { - super("Tag Engine Stats", Activator.PLUGIN_ID, logger); - } - - private String toString(ITagItemStatistics task) { - return String.format("id: [%d] - processed [%d] tags in [%d] ms", task.getGammaId(), task.getTotalTags(), - task.getProcessingTime()); - } - - @Override - protected void doWork(IProgressMonitor monitor) throws Exception { - ISearchEngineTagger tagger = Activator.getSearchTagger(); - - ITaggerStatistics stats = tagger.getStatistics(); - - log("\n----------------------------------------------"); - log(" Tagger Stats"); - log("----------------------------------------------"); - logf("Query Id Processing Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageQueryIdProcessingTime(), - stats.getLongestQueryIdProcessingTime()); - logf("Query Id Wait Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageQueryIdWaitTime(), - stats.getLongestQueryIdWaitTime()); - - logf("Attribute Processing Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageAttributeProcessingTime(), - stats.getLongestAttributeProcessingTime()); - logf("Attribute with longest processing time - %s", toString(stats.getLongestTask())); - logf("Attribute with most tags - %s", toString(stats.getMostTagsTask())); - logf("Total - QueryIds: [%d] Attributes: [%d] Tags: [%d]", stats.getTotalQueryIdsProcessed(), - stats.getTotalAttributesProcessed(), stats.getTotalTags()); - logf("Total Query Ids Waiting to be Processed - [%d]", tagger.getWorkersInQueue()); - logf("Total Query Ids in Tag Queue Table - [%d]", stats.getTotalQueryIdsInQueue()); - logf("Total Tags in System - [%d]\n", stats.getTagsInSystem()); - } -} diff --git a/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF index c0317f7d161..0373fae6c5d 100644 --- a/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.orcs.core/META-INF/MANIFEST.MF @@ -7,6 +7,7 @@ Bundle-Vendor: Eclipse Open System Engineering Environment Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Service-Component: OSGI-INF/*.xml Import-Package: com.google.common.collect;version="1.0.0", + org.eclipse.osee.console.admin, org.eclipse.osee.executor.admin, org.eclipse.osee.framework.core.data, org.eclipse.osee.framework.core.enums, @@ -15,6 +16,7 @@ Import-Package: com.google.common.collect;version="1.0.0", org.eclipse.osee.framework.core.model.cache, org.eclipse.osee.framework.core.model.change, org.eclipse.osee.framework.core.model.type, + org.eclipse.osee.framework.core.operation, org.eclipse.osee.framework.core.services, org.eclipse.osee.framework.core.util, org.eclipse.osee.framework.jdk.core.type, diff --git a/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.exchange.check.console.command.xml b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.exchange.check.console.command.xml new file mode 100644 index 00000000000..b59a8cae337 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.exchange.check.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.core.internal.console.BranchExchangeCheckCommand"> + <implementation class="org.eclipse.osee.orcs.core.internal.console.BranchExchangeCheckCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setOrcsApi" cardinality="1..1" interface="org.eclipse.osee.orcs.OrcsApi" name="OrcsApi" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.export.console.command.xml b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.export.console.command.xml new file mode 100644 index 00000000000..1a6660c9c9a --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.export.console.command.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.core.internal.console.BranchExportCommand"> + <implementation class="org.eclipse.osee.orcs.core.internal.console.BranchExportCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setOrcsApi" cardinality="1..1" interface="org.eclipse.osee.orcs.OrcsApi" name="OrcsApi" policy="static"/> + <reference bind="setCachingService" cardinality="1..1" interface="org.eclipse.osee.framework.core.services.IOseeCachingService" name="IOseeCachingService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.import.console.command.xml b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.import.console.command.xml new file mode 100644 index 00000000000..e036c7cf3e5 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.import.console.command.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.core.internal.console.BranchImportCommand"> + <implementation class="org.eclipse.osee.orcs.core.internal.console.BranchImportCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setOrcsApi" cardinality="1..1" interface="org.eclipse.osee.orcs.OrcsApi" name="OrcsApi" policy="static"/> + <reference bind="setCachingService" cardinality="1..1" interface="org.eclipse.osee.framework.core.services.IOseeCachingService" name="IOseeCachingService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.purge.console.command.xml b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.purge.console.command.xml new file mode 100644 index 00000000000..d56fa61b10d --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.branch.purge.console.command.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.core.internal.console.BranchPurgeCommand"> + <implementation class="org.eclipse.osee.orcs.core.internal.console.BranchPurgeCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setOrcsApi" cardinality="1..1" interface="org.eclipse.osee.orcs.OrcsApi" name="OrcsApi" policy="static"/> + <reference bind="setCachingService" cardinality="1..1" interface="org.eclipse.osee.framework.core.services.IOseeCachingService" name="IOseeCachingService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.update.cache.console.command.xml b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.update.cache.console.command.xml new file mode 100644 index 00000000000..c0db68d9ce4 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/OSGI-INF/orcs.update.cache.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.core.internal.console.CacheUpdateCommand"> + <implementation class="org.eclipse.osee.orcs.core.internal.console.CacheUpdateCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setCachingService" cardinality="1..1" interface="org.eclipse.osee.framework.core.services.IOseeCachingService" name="IOseeCachingService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.core/build.properties b/plugins/org.eclipse.osee.orcs.core/build.properties index 2410df16adb..88f87400214 100644 --- a/plugins/org.eclipse.osee.orcs.core/build.properties +++ b/plugins/org.eclipse.osee.orcs.core/build.properties @@ -10,4 +10,5 @@ additional.bundles = org.eclipse.osee.logger,\ org.eclipse.osee.framework.core.model,\ org.eclipse.core.runtime,\ com.google.collect,\ - org.eclipse.osee.executor.admin + org.eclipse.osee.executor.admin,\ + org.eclipse.osee.console.admin diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/admin/AbstractAdminCallable.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/admin/AbstractAdminCallable.java index f4ff2ddf28b..9d7b78ad6f7 100644 --- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/admin/AbstractAdminCallable.java +++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/admin/AbstractAdminCallable.java @@ -53,7 +53,7 @@ public abstract class AbstractAdminCallable<T> extends CancellableCallable<T> { result = innerCall(); } finally { if (logger.isTraceEnabled()) { - logger.trace("Branch [%s] completed in [%s]", getClass().getSimpleName(), Lib.getElapseString(startTime)); + logger.trace("Admin [%s] completed in [%s]", getClass().getSimpleName(), Lib.getElapseString(startTime)); } } return result; diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchExchangeCheckCommand.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchExchangeCheckCommand.java new file mode 100644 index 00000000000..4564424d8b5 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchExchangeCheckCommand.java @@ -0,0 +1,83 @@ +/******************************************************************************* + * 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.orcs.core.internal.console; + +import java.net.URI; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.executor.admin.CancellableCallable; +import org.eclipse.osee.orcs.OrcsApi; +import org.eclipse.osee.orcs.OrcsBranch; + +/** + * @author Roberto E. Escobar + */ +public class BranchExchangeCheckCommand implements ConsoleCommand { + + private OrcsApi orcsApi; + + public void setOrcsApi(OrcsApi orcsApi) { + this.orcsApi = orcsApi; + } + + public OrcsApi getOrcsApi() { + return orcsApi; + } + + @Override + public String getName() { + return "branch_check_exchange"; + } + + @Override + public String getDescription() { + return "Checks the integrity of a branch exchange file."; + } + + @Override + public String getUsage() { + return "uri=<EXCHANGE_FILE_LOCATION> - exchange file location relative to exchange storage path"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + List<String> importFiles = Arrays.asList(params.getArray("uri")); + OrcsBranch orcsBranch = getOrcsApi().getBranchOps(null); + return new CheckBranchExchangeCallable(console, orcsBranch, importFiles); + } + + private static class CheckBranchExchangeCallable extends CancellableCallable<Boolean> { + + private final Console console; + private final OrcsBranch orcsBranch; + private final List<String> importFiles; + + public CheckBranchExchangeCallable(Console console, OrcsBranch orcsBranch, List<String> importFiles) { + this.console = console; + this.orcsBranch = orcsBranch; + this.importFiles = importFiles; + } + + @Override + public Boolean call() throws Exception { + for (String fileToImport : importFiles) { + console.writeln("Checking branch exchange [%]", fileToImport); + URI uriToCheck = new URI("exchange://" + fileToImport); + orcsBranch.checkBranchExchangeIntegrity(uriToCheck); + } + return Boolean.TRUE; + } + } +} diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchExportCommand.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchExportCommand.java new file mode 100644 index 00000000000..0e0fc1320a1 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchExportCommand.java @@ -0,0 +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.orcs.core.internal.console; + +import java.net.URI; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.executor.admin.CancellableCallable; +import org.eclipse.osee.framework.core.data.IOseeBranch; +import org.eclipse.osee.framework.core.enums.BranchArchivedState; +import org.eclipse.osee.framework.core.enums.BranchType; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.core.model.cache.BranchCache; +import org.eclipse.osee.framework.core.model.cache.BranchFilter; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.core.util.Conditions; +import org.eclipse.osee.framework.jdk.core.type.PropertyStore; +import org.eclipse.osee.orcs.ExportOptions; +import org.eclipse.osee.orcs.OrcsApi; +import org.eclipse.osee.orcs.OrcsBranch; + +/** + * @author Roberto E. Escobar + */ +public final class BranchExportCommand implements ConsoleCommand { + + private OrcsApi orcsApi; + private IOseeCachingService cachingService; + + public void setOrcsApi(OrcsApi orcsApi) { + this.orcsApi = orcsApi; + } + + public OrcsApi getOrcsApi() { + return orcsApi; + } + + public void setCachingService(IOseeCachingService cachingService) { + this.cachingService = cachingService; + } + + public IOseeCachingService getCachingService() { + return cachingService; + } + + @Override + public String getName() { + return "branch_export"; + } + + @Override + public String getDescription() { + return "Export a specific set of branches into an exchange zip file."; + } + + @Override + public String getUsage() { + return "uri=<EXCHANGE_FILE_LOCATION> [compress=<TRUE|FALSE>] [minTx=<TX_ID>] [maxTx=<TX_ID>] [includeArchivedBranches=<TRUE|FALSE>] " + // + "[excludeBranchIds=<BRANCH_IDS,...>] [includeBranchIds=<BRANCH_IDS>]"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + String exportFileName = params.get("uri"); + boolean includeArchivedBranches = params.getBoolean("includeArchivedBranches"); + + PropertyStore options = new PropertyStore(); + if (params.exists("minTx")) { + options.put(ExportOptions.MIN_TXS.name(), params.getLong("minTx")); + } + if (params.exists("maxTx")) { + options.put(ExportOptions.MAX_TXS.name(), params.getLong("maxTx")); + } + + List<String> excludeBranchIds = Arrays.asList(params.getArray("excludeBranchIds")); + List<String> includeBranchIds = Arrays.asList(params.getArray("includeBranchIds")); + + OrcsBranch orcsBranch = getOrcsApi().getBranchOps(null); + return new ExportBranchCallable(console, orcsBranch, getCachingService().getBranchCache(), exportFileName, + options, includeArchivedBranches, includeBranchIds, excludeBranchIds); + } + + private static class ExportBranchCallable extends CancellableCallable<URI> { + + private final Console console; + private final OrcsBranch orcsBranch; + private final BranchCache branchCache; + private final PropertyStore options; + private final String exportFileName; + private final boolean includeArchivedBranches; + + private final List<String> includeBranchIds; + private final List<String> excludeBranchIds; + + public ExportBranchCallable(Console console, OrcsBranch orcsBranch, BranchCache branchCache, String exportFileName, PropertyStore options, boolean includeArchivedBranches, List<String> includeBranchIds, List<String> excludeBranchIds) { + this.console = console; + this.orcsBranch = orcsBranch; + this.branchCache = branchCache; + this.options = options; + this.exportFileName = exportFileName; + this.includeArchivedBranches = includeArchivedBranches; + this.includeBranchIds = includeBranchIds; + this.excludeBranchIds = excludeBranchIds; + } + + private List<IOseeBranch> getBranchesToExport() throws OseeCoreException { + List<IOseeBranch> branches = new LinkedList<IOseeBranch>(); + if (includeBranchIds.isEmpty()) { + BranchFilter filter; + if (includeArchivedBranches) { + filter = new BranchFilter(BranchArchivedState.ALL, BranchType.values()); + } else { + filter = new BranchFilter(BranchArchivedState.UNARCHIVED, BranchType.values()); + } + for (Branch branch : branchCache.getBranches(filter)) { + branches.add(branch); + } + } else { + for (String branchIdString : includeBranchIds) { + int branchId = Integer.parseInt(branchIdString); + branches.add(branchCache.getById(branchId)); + } + } + + if (!excludeBranchIds.isEmpty()) { + for (String branchIdString : excludeBranchIds) { + int branchId = Integer.parseInt(branchIdString); + Branch toExclude = branchCache.getById(branchId); + branches.remove(toExclude); + } + } + return branches; + } + + @Override + public URI call() throws Exception { + Conditions.checkNotNullOrEmpty(exportFileName, "exportFileName"); + List<IOseeBranch> branches = getBranchesToExport(); + console.writeln("Exporting: [%s] branches", branches.size()); + Callable<URI> callable = orcsBranch.exportBranch(branches, options, exportFileName); + return callable.call(); + } + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchImportCommand.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchImportCommand.java new file mode 100644 index 00000000000..5f26e257b5d --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchImportCommand.java @@ -0,0 +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.orcs.core.internal.console; + +import java.net.URI; +import java.util.Arrays; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.executor.admin.CancellableCallable; +import org.eclipse.osee.framework.core.data.IOseeBranch; +import org.eclipse.osee.framework.core.exception.OseeArgumentException; +import org.eclipse.osee.framework.core.model.cache.BranchCache; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.jdk.core.type.PropertyStore; +import org.eclipse.osee.orcs.ExportOptions; +import org.eclipse.osee.orcs.ImportOptions; +import org.eclipse.osee.orcs.OrcsApi; +import org.eclipse.osee.orcs.OrcsBranch; + +/** + * @author Roberto E. Escobar + */ +public final class BranchImportCommand implements ConsoleCommand { + + private OrcsApi orcsApi; + private IOseeCachingService cachingService; + + public void setOrcsApi(OrcsApi orcsApi) { + this.orcsApi = orcsApi; + } + + public OrcsApi getOrcsApi() { + return orcsApi; + } + + public void setCachingService(IOseeCachingService cachingService) { + this.cachingService = cachingService; + } + + public IOseeCachingService getCachingService() { + return cachingService; + } + + @Override + public String getName() { + return "branch_import"; + } + + @Override + public String getDescription() { + return "Import a specific set of branches from an exchange zip file"; + } + + @Override + public String getUsage() { + return "uri=<EXCHANGE_FILE_LOCATION,...> [branchIds=<BRANCH_IDS,...>] [minTx=<TX_ID>] [maxTx=<TX_ID>] [excludeBaselineTxs=<TRUE|FALSE>] [allAsRootBranches=<TRUE|FALSE>] [clean=<TRUE|FALSE>]"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + List<String> importFiles = Arrays.asList(params.getArray("uri")); + List<String> branchIds = Arrays.asList(params.getArray("branchIds")); + + PropertyStore options = new PropertyStore(); + if (params.exists("minTx")) { + options.put(ExportOptions.MIN_TXS.name(), params.getLong("minTx")); + } + if (params.exists("maxTx")) { + options.put(ExportOptions.MAX_TXS.name(), params.getLong("maxTx")); + } + options.put(ImportOptions.EXCLUDE_BASELINE_TXS.name(), params.getBoolean("excludeBaselineTxs")); + options.put(ImportOptions.ALL_AS_ROOT_BRANCHES.name(), params.getBoolean("allAsRootBranches")); + options.put(ImportOptions.CLEAN_BEFORE_IMPORT.name(), params.getBoolean("clean")); + + OrcsBranch orcsBranch = getOrcsApi().getBranchOps(null); + return new ImportBranchDelegateCallable(console, orcsBranch, getCachingService().getBranchCache(), options, + importFiles, branchIds); + } + + private static final class ImportBranchDelegateCallable extends CancellableCallable<Boolean> { + + private final Console console; + private final OrcsBranch orcsBranch; + private final BranchCache branchCache; + private final PropertyStore options; + private final List<String> importFiles; + private final List<String> branchIds; + + public ImportBranchDelegateCallable(Console console, OrcsBranch orcsBranch, BranchCache branchCache, PropertyStore options, List<String> importFiles, List<String> branchIds) { + super(); + this.console = console; + this.orcsBranch = orcsBranch; + this.branchCache = branchCache; + this.options = options; + this.importFiles = importFiles; + this.branchIds = branchIds; + } + + @Override + public Boolean call() throws Exception { + if (importFiles.isEmpty()) { + throw new OseeArgumentException("Files to import were not specified"); + } + + List<IOseeBranch> branches = new LinkedList<IOseeBranch>(); + for (String branchIdString : branchIds) { + IOseeBranch branch = branchCache.getById(Integer.parseInt(branchIdString)); + branches.add(branch); + } + + for (String fileToImport : importFiles) { + URI uri = new URI("exchange://" + fileToImport); + console.writeln("Importing from [%s]", uri); + orcsBranch.importBranch(uri, branches, options); + } + return Boolean.TRUE; + } + } +} diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchPurgeCommand.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchPurgeCommand.java new file mode 100644 index 00000000000..7e076b1e24f --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/BranchPurgeCommand.java @@ -0,0 +1,145 @@ +/******************************************************************************* + * 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.orcs.core.internal.console; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.executor.admin.CancellableCallable; +import org.eclipse.osee.framework.core.enums.BranchArchivedState; +import org.eclipse.osee.framework.core.enums.BranchState; +import org.eclipse.osee.framework.core.enums.BranchType; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.core.model.ReadableBranch; +import org.eclipse.osee.framework.core.model.cache.BranchCache; +import org.eclipse.osee.framework.core.model.cache.BranchFilter; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.core.util.Conditions; +import org.eclipse.osee.orcs.OrcsApi; +import org.eclipse.osee.orcs.OrcsBranch; +import org.eclipse.osee.orcs.core.internal.branch.BranchUtil; +import org.eclipse.osee.orcs.core.internal.branch.provider.BranchProvider; +import org.eclipse.osee.orcs.core.internal.branch.provider.MultiBranchProvider; + +/** + * @author Roberto E. Escobar + */ +public final class BranchPurgeCommand implements ConsoleCommand { + + private OrcsApi orcsApi; + private IOseeCachingService cachingService; + + public void setOrcsApi(OrcsApi orcsApi) { + this.orcsApi = orcsApi; + } + + public OrcsApi getOrcsApi() { + return orcsApi; + } + + public void setCachingService(IOseeCachingService cachingService) { + this.cachingService = cachingService; + } + + public IOseeCachingService getCachingService() { + return cachingService; + } + + @Override + public String getName() { + return "branch_purge"; + } + + @Override + public String getDescription() { + return "Permenatly remove all branches matching the passed in criteria"; + } + + @Override + public String getUsage() { + // includeChildren excludes baseline branches + return "[branchGuids=<BRANCH_GUID,..>] [includeChildren=<TRUE|FALSE>] [deletedAndArchivedOnly=<TRUE|FALSE>]"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + List<String> branchGuids = Arrays.asList(params.getArray("branchGuids")); + boolean includeChildren = params.getBoolean("includeChildren"); + boolean deletedAndArchivedOnly = params.getBoolean("deletedAndArchivedOnly"); + + OrcsBranch orcsBranch = getOrcsApi().getBranchOps(null); + return new PurgeBranchCallable(console, orcsBranch, getCachingService().getBranchCache(), branchGuids, + includeChildren, deletedAndArchivedOnly); + } + + private static class PurgeBranchCallable extends CancellableCallable<List<ReadableBranch>> { + + private final Console console; + private final OrcsBranch orcsBranch; + private final BranchCache branchCache; + private final List<String> branchGuids; + private final boolean includeChildren; + private final boolean deletedAndArchivedOnly; + + public PurgeBranchCallable(Console console, OrcsBranch orcsBranch, BranchCache branchCache, List<String> branchGuids, boolean includeChildren, boolean deletedAndArchivedOnly) { + this.console = console; + this.orcsBranch = orcsBranch; + this.branchCache = branchCache; + this.branchGuids = branchGuids; + this.includeChildren = includeChildren; + this.deletedAndArchivedOnly = deletedAndArchivedOnly; + } + + private Collection<Branch> getBranchesToPurge() throws OseeCoreException { + Set<Branch> branches = new HashSet<Branch>(); + for (String guid : branchGuids) { + branches.add(branchCache.getByGuid(guid)); + } + BranchFilter branchFilter; + if (deletedAndArchivedOnly) { + branchFilter = new BranchFilter(BranchArchivedState.ARCHIVED); + branchFilter.setBranchStates(BranchState.DELETED); + } else { + branchFilter = new BranchFilter(); + } + branchFilter.setNegatedBranchTypes(BranchType.BASELINE); + + BranchProvider provider = new MultiBranchProvider(includeChildren, branches, branchFilter); + return provider.getBranches(); + } + + @Override + public List<ReadableBranch> call() throws Exception { + Collection<Branch> branchesToPurge = getBranchesToPurge(); + Conditions.checkNotNull(branchesToPurge, "branchesToPurge"); + + List<ReadableBranch> purged = new LinkedList<ReadableBranch>(); + List<Branch> orderedBranches = BranchUtil.orderByParent(branchesToPurge); + int size = orderedBranches.size(); + int count = 0; + for (Branch aBranch : orderedBranches) { + console.writeln("Purging Branch [%s of %s]: [%s]", ++count, size, aBranch); + Callable<List<ReadableBranch>> callable = orcsBranch.purgeBranch(aBranch, false); + purged.addAll(callable.call()); + } + return purged; + } + } + +} diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/CacheUpdateCommand.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/CacheUpdateCommand.java new file mode 100644 index 00000000000..79fcea2e0dc --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/console/CacheUpdateCommand.java @@ -0,0 +1,119 @@ +/******************************************************************************* + * 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.orcs.core.internal.console; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.executor.admin.CancellableCallable; +import org.eclipse.osee.framework.core.enums.OseeCacheEnum; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.cache.IOseeCache; +import org.eclipse.osee.framework.core.services.IOseeCachingService; + +/** + * @author Roberto E. Escobar + */ +public class CacheUpdateCommand implements ConsoleCommand { + + private static final OseeCacheEnum[] reloadableCaches = { + OseeCacheEnum.ARTIFACT_TYPE_CACHE, + OseeCacheEnum.BRANCH_CACHE, + OseeCacheEnum.TRANSACTION_CACHE}; + + private IOseeCachingService cachingService; + + public IOseeCachingService getCachingService() { + return cachingService; + } + + public void setCachingService(IOseeCachingService cachingService) { + this.cachingService = cachingService; + } + + @Override + public String getName() { + return "update_cache"; + } + + @Override + public String getDescription() { + return "Updates server caches"; + } + + @Override + public String getUsage() { + StringBuilder builder = new StringBuilder(); + builder.append(" - Update all caches.\n"); + builder.append("cache=<"); + builder.append(Arrays.deepToString(reloadableCaches).replaceAll(",", " | ")); + builder.append("> - Caches to update.\n"); + return builder.toString(); + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + Set<OseeCacheEnum> cacheIds = new HashSet<OseeCacheEnum>(); + for (String cacheId : params.getArray("cacheId")) { + cacheIds.add(OseeCacheEnum.valueOf(cacheId.toUpperCase())); + } + if (cacheIds.isEmpty()) { + cacheIds.addAll(Arrays.asList(reloadableCaches)); + } + return new CacheUpdateCallable(console, getCachingService(), cacheIds, true); + } + + private final static class CacheUpdateCallable extends CancellableCallable<Boolean> { + + private final Console console; + private final IOseeCachingService cachingService; + private final Set<OseeCacheEnum> cacheIds; + private final boolean reload; + private final String verb; + + public CacheUpdateCallable(Console console, IOseeCachingService cachingService, Set<OseeCacheEnum> cacheIds, boolean reload) { + this.console = console; + this.cachingService = cachingService; + this.cacheIds = cacheIds; + this.reload = reload; + this.verb = reload ? "Reloaded" : "Cleared"; + } + + @Override + public Boolean call() throws OseeCoreException { + if (cacheIds.isEmpty()) { + if (reload) { + cachingService.reloadAll(); + } else { + cachingService.clearAll(); + } + console.writeln("%s the following caches: %s", verb, + Arrays.deepToString(OseeCacheEnum.values()).replaceAll(", SESSION_CACHE", "")); + } else { + for (OseeCacheEnum cacheId : cacheIds) { + IOseeCache<?, ?> cache = cachingService.getCache(cacheId); + if (reload) { + cache.reloadCache(); + } else { + cache.decacheAll(); + } + } + console.writeln("%s %s", verb, cacheIds); + } + return Boolean.TRUE; + } + } + +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.db.test/META-INF/MANIFEST.MF index 05760fd58fd..a88ec392bd6 100644 --- a/plugins/org.eclipse.osee.orcs.db.test/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.orcs.db.test/META-INF/MANIFEST.MF @@ -19,3 +19,4 @@ Import-Package: org.eclipse.osee.framework.core.data, org.junit.rules;version="4.8.2", org.junit.runner;version="4.8.2", org.junit.runners;version="4.8.2" +Require-Bundle: org.eclipse.osee.framework.core diff --git a/plugins/org.eclipse.osee.orcs.db/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.db/META-INF/MANIFEST.MF index 29d2b1a3575..3c19586905e 100644 --- a/plugins/org.eclipse.osee.orcs.db/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.orcs.db/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Bundle-Version: 0.9.9.qualifier Bundle-Vendor: Eclipse Open System Engineering Environment Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Service-Component: OSGI-INF/*.xml -Import-Package: org.eclipse.osee.database.schema, +Import-Package: org.eclipse.osee.console.admin, + org.eclipse.osee.database.schema, org.eclipse.osee.event, org.eclipse.osee.executor.admin, org.eclipse.osee.framework.core.data, diff --git a/plugins/org.eclipse.osee.orcs.db/OSGI-INF/consolidate.artifacts.console.command.xml b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/consolidate.artifacts.console.command.xml new file mode 100644 index 00000000000..a204b7f1086 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/consolidate.artifacts.console.command.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.db.internal.console.ConsolidateArtifactVersionsCommand"> + <implementation class="org.eclipse.osee.orcs.db.internal.console.ConsolidateArtifactVersionsCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/> + <reference bind="setDatabaseService" cardinality="1..1" interface="org.eclipse.osee.framework.database.IOseeDatabaseService" name="IOseeDatabaseService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.db/OSGI-INF/consolidate.relations.console.command.xml b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/consolidate.relations.console.command.xml new file mode 100644 index 00000000000..1010916a947 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/consolidate.relations.console.command.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.db.internal.console.ConsolidateRelationsCommand"> + <implementation class="org.eclipse.osee.orcs.db.internal.console.ConsolidateRelationsCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/> + <reference bind="setDatabaseService" cardinality="1..1" interface="org.eclipse.osee.framework.database.IOseeDatabaseService" name="IOseeDatabaseService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.db/OSGI-INF/fix.duplicate.attributes.console.command.xml b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/fix.duplicate.attributes.console.command.xml new file mode 100644 index 00000000000..c0cfb8b32e0 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/fix.duplicate.attributes.console.command.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.db.internal.console.FixDuplicateAttributesCommand"> + <implementation class="org.eclipse.osee.orcs.db.internal.console.FixDuplicateAttributesCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/> + <reference bind="setDatabaseService" cardinality="1..1" interface="org.eclipse.osee.framework.database.IOseeDatabaseService" name="IOseeDatabaseService" policy="static"/> + <reference bind="setCachingService" cardinality="1..1" interface="org.eclipse.osee.framework.core.services.IOseeCachingService" name="IOseeCachingService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.db/OSGI-INF/purge.relation.type.console.command.xml b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/purge.relation.type.console.command.xml new file mode 100644 index 00000000000..59e2ff2f622 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/purge.relation.type.console.command.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.db.internal.console.PurgeRelationTypeCommand"> + <implementation class="org.eclipse.osee.orcs.db.internal.console.PurgeRelationTypeCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/> + <reference bind="setDatabaseService" cardinality="1..1" interface="org.eclipse.osee.framework.database.IOseeDatabaseService" name="IOseeDatabaseService" policy="static"/> + <reference bind="setCachingService" cardinality="1..1" interface="org.eclipse.osee.framework.core.services.IOseeCachingService" name="IOseeCachingService" policy="static"/> + <reference bind="setIdentityService" cardinality="1..1" interface="org.eclipse.osee.framework.core.services.IdentityService" name="IdentityService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.db/OSGI-INF/purge.transaction.console.command.xml b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/purge.transaction.console.command.xml new file mode 100644 index 00000000000..6337c341e33 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/purge.transaction.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.db.internal.console.PurgeTransactionCommand"> + <implementation class="org.eclipse.osee.orcs.db.internal.console.PurgeTransactionCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setDatabaseService" cardinality="1..1" interface="org.eclipse.osee.framework.database.IOseeDatabaseService" name="IOseeDatabaseService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.db/OSGI-INF/tx.currents.console.command.xml b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/tx.currents.console.command.xml new file mode 100644 index 00000000000..5f740ee9053 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/tx.currents.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.db.internal.console.TxCurrentsCommand"> + <implementation class="org.eclipse.osee.orcs.db.internal.console.TxCurrentsCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setDatabaseService" cardinality="1..1" interface="org.eclipse.osee.framework.database.IOseeDatabaseService" name="IOseeDatabaseService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.db/OSGI-INF/tx.prune.console.command.xml b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/tx.prune.console.command.xml new file mode 100644 index 00000000000..fbf6765e580 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/OSGI-INF/tx.prune.console.command.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osee.orcs.db.internal.console.TxPruneCommand"> + <implementation class="org.eclipse.osee.orcs.db.internal.console.TxPruneCommand"/> + <service> + <provide interface="org.eclipse.osee.console.admin.ConsoleCommand"/> + </service> + <reference bind="setDatabaseService" cardinality="1..1" interface="org.eclipse.osee.framework.database.IOseeDatabaseService" name="IOseeDatabaseService" policy="static"/> +</scr:component> diff --git a/plugins/org.eclipse.osee.orcs.db/build.properties b/plugins/org.eclipse.osee.orcs.db/build.properties index d1d6ed90773..84f5166f881 100644 --- a/plugins/org.eclipse.osee.orcs.db/build.properties +++ b/plugins/org.eclipse.osee.orcs.db/build.properties @@ -16,4 +16,5 @@ additional.bundles = org.eclipse.osee.framework.database,\ org.eclipse.osee.orcs,\ org.eclipse.osee.event,\ org.eclipse.osee.executor.admin,\ - org.eclipse.osee.database.schema + org.eclipse.osee.database.schema,\ + org.eclipse.osee.console.admin diff --git a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/ConsolidateArtifactVersionTxOperation.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ConsolidateArtifactVersionDatabaseTxCallable.java index 2336909bce9..8b81396c898 100644 --- a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/ConsolidateArtifactVersionTxOperation.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ConsolidateArtifactVersionDatabaseTxCallable.java @@ -8,7 +8,7 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.database.operation; +package org.eclipse.osee.orcs.db.internal.callable; import static org.eclipse.osee.framework.core.enums.ModificationType.DELETED; import static org.eclipse.osee.framework.core.enums.ModificationType.INTRODUCED; @@ -17,25 +17,25 @@ import static org.eclipse.osee.framework.core.enums.ModificationType.MODIFIED; import static org.eclipse.osee.framework.core.enums.ModificationType.NEW; import java.util.ArrayList; import java.util.List; -import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.database.schema.DatabaseTxCallable; import org.eclipse.osee.framework.core.enums.ModificationType; import org.eclipse.osee.framework.core.enums.TxChange; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; -import org.eclipse.osee.framework.core.operation.OperationLogger; import org.eclipse.osee.framework.database.IOseeDatabaseService; -import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; import org.eclipse.osee.framework.database.core.ArtifactJoinQuery; import org.eclipse.osee.framework.database.core.ExportImportJoinQuery; import org.eclipse.osee.framework.database.core.IOseeStatement; import org.eclipse.osee.framework.database.core.JoinUtility; import org.eclipse.osee.framework.database.core.OseeConnection; -import org.eclipse.osee.framework.database.internal.Activator; +import org.eclipse.osee.framework.database.operation.Address; +import org.eclipse.osee.logger.Log; /** * @author Ryan D. Brooks */ -public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation { +public class ConsolidateArtifactVersionDatabaseTxCallable extends DatabaseTxCallable<Object> { private static final String SELECT_ARTIFACT_VERSIONS = "select * from osee_artifact order by art_id, gamma_id"; private static final String SELECT_ADDRESSING = @@ -76,8 +76,11 @@ public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation private int updateTxsCounter; private int deleteTxsCounter; - public ConsolidateArtifactVersionTxOperation(IOseeDatabaseService databaseService, OperationLogger logger) { - super(databaseService, "Consolidate Artifact Versions", Activator.PLUGIN_ID, logger); + private final Console console; + + public ConsolidateArtifactVersionDatabaseTxCallable(Log logger, IOseeDatabaseService databaseService, Console console) { + super(logger, databaseService, "Consolidate Artifact Versions"); + this.console = console; } private void init() throws OseeCoreException { @@ -187,28 +190,29 @@ public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation } } if (!knownCase) { - logf("unknown case: artifact id: %d branch_id: %d", previousArtifactId, previousBranchId); + console.writeln("unknown case: artifact id: %d branch_id: %d", previousArtifactId, previousBranchId); } } @Override - protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException { + protected Object handleTxWork(OseeConnection connection) throws OseeCoreException { + this.connection = connection; init(); findArtifactMods(); - logf("updateTxsCurrentModData size: %d", updateTxsCurrentModData.size()); - logf("addressingToDelete size: %d", addressingToDelete.size()); + console.writeln("updateTxsCurrentModData size: %d", updateTxsCurrentModData.size()); + console.writeln("addressingToDelete size: %d", addressingToDelete.size()); getDatabaseService().runBatchUpdate(connection, prepareSql(UPDATE_TXS_MOD_CURRENT, false), updateTxsCurrentModData); getDatabaseService().runBatchUpdate(connection, prepareSql(DELETE_TXS, false), addressingToDelete); findObsoleteGammas(); - logf("gamma join size: %d", gammaJoin.size()); + console.writeln("gamma join size: %d", gammaJoin.size()); - logf("Number of artifact version rows deleted: %d", + console.writeln("Number of artifact version rows deleted: %d", getDatabaseService().runBatchUpdate(connection, DELETE_ARTIFACT_VERSIONS, deleteArtifactVersionData)); deleteArtifactVersionData = null; @@ -221,11 +225,13 @@ public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation determineAffectedAddressingAndFix(true); gammaJoin.delete(connection); + + return null; } private void updataConflicts(String columnName) throws OseeCoreException { int count = getDatabaseService().runPreparedUpdate(connection, String.format(UPDATE_CONFLICTS, columnName)); - logf("updated %s in %d rows", columnName, count); + console.writeln("updated %s in %d rows", columnName, count); } private void findObsoleteGammas() throws OseeCoreException { @@ -258,7 +264,7 @@ public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation private void determineAffectedAddressingAndFix(boolean archived) throws OseeCoreException { try { - logf("query id: %d", gammaJoin.getQueryId()); + console.writeln("query id: %d", gammaJoin.getQueryId()); chStmt.runPreparedQuery(10000, String.format(SELECT_ADDRESSING, archived ? "_archived" : ""), gammaJoin.getQueryId()); @@ -321,7 +327,7 @@ public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation if (addressingToDelete.size() > 99960 || force) { deleteTxsCounter += getDatabaseService().runBatchUpdate(connection, prepareSql(DELETE_TXS, archived), addressingToDelete); - logf("Number of txs%s rows deleted: %d", archivedStr, deleteTxsCounter); + console.writeln("Number of txs%s rows deleted: %d", archivedStr, deleteTxsCounter); addressingToDelete.clear(); } @@ -329,7 +335,7 @@ public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation updateTxsCounter += getDatabaseService().runBatchUpdate(connection, prepareSql(UPDATE_TXS_GAMMAS, archived), updateAddressingData); - logf("Number of txs%s rows updated: %d", archivedStr, updateTxsCounter); + console.writeln("Number of txs%s rows updated: %d", archivedStr, updateTxsCounter); updateAddressingData.clear(); } @@ -344,4 +350,5 @@ public class ConsolidateArtifactVersionTxOperation extends AbstractDbTxOperation previousArtifactId = artifactId; netGamma = chStmt.getInt("gamma_id"); } + }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/ConsolidateRelationsTxOperation.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ConsolidateRelationsDatabaseTxCallable.java index fe9da980a10..e6de68d28e6 100644 --- a/plugins/org.eclipse.osee.framework.database/src/org/eclipse/osee/framework/database/operation/ConsolidateRelationsTxOperation.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ConsolidateRelationsDatabaseTxCallable.java @@ -8,30 +8,29 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.database.operation; +package org.eclipse.osee.orcs.db.internal.callable; import java.util.ArrayList; import java.util.List; -import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.database.schema.DatabaseTxCallable; import org.eclipse.osee.framework.core.enums.ModificationType; import org.eclipse.osee.framework.core.enums.TxChange; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; -import org.eclipse.osee.framework.core.operation.OperationLogger; import org.eclipse.osee.framework.database.IOseeDatabaseService; -import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; import org.eclipse.osee.framework.database.core.ConnectionHandler; import org.eclipse.osee.framework.database.core.ExportImportJoinQuery; import org.eclipse.osee.framework.database.core.IOseeStatement; import org.eclipse.osee.framework.database.core.JoinUtility; import org.eclipse.osee.framework.database.core.OseeConnection; -import org.eclipse.osee.framework.database.internal.Activator; import org.eclipse.osee.framework.jdk.core.util.Strings; +import org.eclipse.osee.logger.Log; /** * @author Ryan D. Brooks */ -public class ConsolidateRelationsTxOperation extends AbstractDbTxOperation { +public class ConsolidateRelationsDatabaseTxCallable extends DatabaseTxCallable<Object> { private static final String SELECT_RELATIONS = "select * from osee_relation_link order by rel_link_type_id, a_art_id, b_art_id, gamma_id"; @@ -63,14 +62,17 @@ public class ConsolidateRelationsTxOperation extends AbstractDbTxOperation { private int counter; private IOseeStatement chStmt; + private final Console console; + long previousNetGammaId; long previousObsoleteGammaId; int previousTransactionId; ModificationType netModType; TxChange netTxCurrent; - public ConsolidateRelationsTxOperation(IOseeDatabaseService databaseService, OperationLogger logger) { - super(databaseService, "Consolidate Relations", Activator.PLUGIN_ID, logger); + public ConsolidateRelationsDatabaseTxCallable(Log logger, IOseeDatabaseService databaseService, Console console) { + super(logger, databaseService, "Consolidate Relations"); + this.console = console; } private void init() throws OseeCoreException { @@ -94,19 +96,20 @@ public class ConsolidateRelationsTxOperation extends AbstractDbTxOperation { } @Override - protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException { + protected Object handleTxWork(OseeConnection connection) throws OseeCoreException { this.connection = connection; - log("Consolidating relations:"); + console.writeln("Consolidating relations:"); init(); findObsoleteRelations(); - log("gamma join size: " + gammaJoin.size()); + console.writeln("gamma join size: [%s]", gammaJoin.size()); determineAffectedAddressing(); updateGammas(); - log("...done."); + console.writeln("...done."); + return null; } private void findObsoleteRelations() throws OseeCoreException { @@ -140,7 +143,8 @@ public class ConsolidateRelationsTxOperation extends AbstractDbTxOperation { } if (materiallyDifferent) { counter++; - log("rel type: " + previousRelationTypeId + " A art id: " + previousArtifactAId + " B art id: " + previousArtiafctBId); + console.writeln("rel_type:[%s] a_art_id:[%s] b_art_id:[%s]", previousRelationTypeId, previousArtifactAId, + previousArtiafctBId); } } @@ -148,8 +152,8 @@ public class ConsolidateRelationsTxOperation extends AbstractDbTxOperation { gammaJoin.store(); try { - log("counter: " + counter); - log("query id: " + gammaJoin.getQueryId()); + console.writeln("counter: [%s]", counter); + console.writeln("query id: [%s]", gammaJoin.getQueryId()); chStmt.runPreparedQuery(10000, SELECT_RELATION_ADDRESSING, gammaJoin.getQueryId()); while (chStmt.next()) { @@ -228,13 +232,14 @@ public class ConsolidateRelationsTxOperation extends AbstractDbTxOperation { } private void updateGammas() throws OseeCoreException { - log("Number of txs rows deleted: " + ConnectionHandler.runBatchUpdate(connection, DELETE_TXS, addressingToDelete)); + console.writeln("Number of txs rows deleted: [%s]", + ConnectionHandler.runBatchUpdate(connection, DELETE_TXS, addressingToDelete)); - log("Number of relation rows deleted: " + ConnectionHandler.runBatchUpdate(connection, DELETE_RELATIONS, - relationDeleteData)); + console.writeln("Number of relation rows deleted: [%s]", + ConnectionHandler.runBatchUpdate(connection, DELETE_RELATIONS, relationDeleteData)); - log("Number of txs rows updated: " + ConnectionHandler.runBatchUpdate(connection, UPDATE_TXS_GAMMAS, - updateAddressingData)); + console.writeln("Number of txs rows updated: [%s]", + ConnectionHandler.runBatchUpdate(connection, UPDATE_TXS_GAMMAS, updateAddressingData)); } private void writeAddressingBackup(long obsoleteGammaId, int transactionId, long netGammaId, int modType, TxChange txCurrent) { @@ -250,7 +255,7 @@ public class ConsolidateRelationsTxOperation extends AbstractDbTxOperation { strB.append(","); strB.append(txCurrent.getValue()); strB.append("\n"); - log(strB.toString()); + console.writeln(strB.toString()); } private boolean isNextConceptualRelation(int relationTypeId, int artifactAId, int artiafctBId) { diff --git a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/DuplicateAttributesOperation.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/DuplicateAttributesDatabaseTxCallable.java index 91d85ce2a10..c30b4360f1a 100644 --- a/plugins/org.eclipse.osee.framework.server.admin/src/org/eclipse/osee/framework/server/admin/DuplicateAttributesOperation.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/DuplicateAttributesDatabaseTxCallable.java @@ -8,55 +8,57 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.framework.server.admin; +package org.eclipse.osee.orcs.db.internal.callable; /** * @author Ryan D. Brooks */ -import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.database.schema.DatabaseTxCallable; 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.model.cache.AttributeTypeCache; import org.eclipse.osee.framework.core.model.type.AttributeType; -import org.eclipse.osee.framework.core.operation.OperationLogger; import org.eclipse.osee.framework.database.IOseeDatabaseService; -import org.eclipse.osee.framework.database.core.AbstractDbTxOperation; import org.eclipse.osee.framework.database.core.ExportImportJoinQuery; import org.eclipse.osee.framework.database.core.IOseeStatement; import org.eclipse.osee.framework.database.core.IdJoinQuery; import org.eclipse.osee.framework.database.core.JoinUtility; import org.eclipse.osee.framework.database.core.OseeConnection; -import org.eclipse.osee.framework.server.admin.internal.Activator; +import org.eclipse.osee.logger.Log; -public final class DuplicateAttributesOperation extends AbstractDbTxOperation { +public final class DuplicateAttributesDatabaseTxCallable extends DatabaseTxCallable<Object> { private static final String SELECT_ATTRIBUTES = "select att1.gamma_id as gamma1, att2.gamma_id as gamma2 from osee_join_id oji, osee_attribute att1, osee_attribute att2 where oji.query_id = ? AND oji.id = att1.attr_type_id and att1.art_id = att2.art_id and att1.attr_type_id = att2.attr_type_id and att1.attr_id <> att2.attr_id"; private static final String SELECT_DUPLICATES = "select txs1.branch_id, txs1.gamma_id as gamma1, txs2.gamma_id as gamma2 from osee_join_export_import idj, osee_txs txs1, osee_txs txs2 where idj.query_id = ? and idj.id1 = txs1.gamma_id and idj.id2 = txs2.gamma_id and txs1.branch_id = txs2.branch_id and txs1.tx_current = ? and txs2.tx_current = ?"; - private final ExportImportJoinQuery gammaJoin; + + private final Console console; private final AttributeTypeCache attTypeCache; - public DuplicateAttributesOperation(OperationLogger logger, AttributeTypeCache attTypeCache, IOseeDatabaseService databaseService) throws OseeDataStoreException { - super(databaseService, "Duplicate Attributes", Activator.PLUGIN_ID, logger); - gammaJoin = JoinUtility.createExportImportJoinQuery(); + public DuplicateAttributesDatabaseTxCallable(Log logger, IOseeDatabaseService databaseService, Console console, AttributeTypeCache attTypeCache) { + super(logger, databaseService, "Duplicate Attributes"); + this.console = console; this.attTypeCache = attTypeCache; } @Override - protected void doTxWork(IProgressMonitor monitor, OseeConnection connection) throws OseeCoreException { + protected Object handleTxWork(OseeConnection connection) throws OseeCoreException { + ExportImportJoinQuery gammaJoin = JoinUtility.createExportImportJoinQuery(); try { - selectAttributes(connection); + selectAttributes(gammaJoin, connection); gammaJoin.store(connection); - selectDuplicates(connection); + selectDuplicates(gammaJoin, connection); } catch (Exception ex) { - log(ex); + console.write(ex); + getLogger().error(ex, "Error fixing duplicate attributes"); } finally { gammaJoin.delete(connection); } + return null; } - private void selectAttributes(OseeConnection connection) throws OseeCoreException { + private void selectAttributes(ExportImportJoinQuery gammaJoin, OseeConnection connection) throws OseeCoreException { IdJoinQuery typeJoin = JoinUtility.createIdJoinQuery(); populateAttributeTypeJoin(typeJoin); @@ -72,13 +74,13 @@ public final class DuplicateAttributesOperation extends AbstractDbTxOperation { } } - private void selectDuplicates(OseeConnection connection) throws OseeCoreException { + private void selectDuplicates(ExportImportJoinQuery gammaJoin, OseeConnection connection) throws OseeCoreException { IOseeStatement chStmt = getDatabaseService().getStatement(connection); try { chStmt.runPreparedQuery(SELECT_DUPLICATES, gammaJoin.getQueryId(), TxChange.CURRENT.getValue(), TxChange.CURRENT.getValue()); while (chStmt.next()) { - log("branch: " + chStmt.getInt("branch_id"), "gamma1: " + chStmt.getLong("gamma1"), + console.writeln("branch: " + chStmt.getInt("branch_id"), "gamma1: " + chStmt.getLong("gamma1"), "gamma2: " + chStmt.getLong("gamma2")); } } finally { @@ -94,4 +96,5 @@ public final class DuplicateAttributesOperation extends AbstractDbTxOperation { } typeJoin.store(); } + }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ExportBranchDatabaseCallable.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ExportBranchDatabaseCallable.java index 536dcaee111..8f5614df376 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ExportBranchDatabaseCallable.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ExportBranchDatabaseCallable.java @@ -31,10 +31,10 @@ 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.resource.management.IResourceLocatorManager; +import org.eclipse.osee.orcs.ExportOptions; import org.eclipse.osee.orcs.core.SystemPreferences; import org.eclipse.osee.orcs.db.internal.exchange.ExchangeUtil; import org.eclipse.osee.orcs.db.internal.exchange.ExportItemFactory; -import org.eclipse.osee.orcs.db.internal.exchange.ExportOptions; import org.eclipse.osee.orcs.db.internal.exchange.export.AbstractExportItem; import org.eclipse.osee.orcs.db.internal.resource.ResourceConstants; diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ImportBranchDatabaseCallable.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ImportBranchDatabaseCallable.java index 07c35073fce..deeced86b75 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ImportBranchDatabaseCallable.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/ImportBranchDatabaseCallable.java @@ -41,10 +41,10 @@ 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.logger.Log; +import org.eclipse.osee.orcs.ImportOptions; import org.eclipse.osee.orcs.core.SystemPreferences; import org.eclipse.osee.orcs.db.internal.exchange.ExchangeUtil; import org.eclipse.osee.orcs.db.internal.exchange.IOseeExchangeDataProvider; -import org.eclipse.osee.orcs.db.internal.exchange.ImportOptions; import org.eclipse.osee.orcs.db.internal.exchange.SavePointManager; import org.eclipse.osee.orcs.db.internal.exchange.StandardOseeDbExportDataProvider; import org.eclipse.osee.orcs.db.internal.exchange.TranslationManager; @@ -178,7 +178,7 @@ public class ImportBranchDatabaseCallable extends DatabaseCallable<URI> { savePointManager.setCurrentSetPointId("sourceSetup"); IExchangeTransformProvider transformProvider = new ExchangeTransformProvider(cachingService); - exchangeTransformer = new ExchangeTransformer(transformProvider, exchangeDataProcessor); + exchangeTransformer = new ExchangeTransformer(getDatabaseService(), transformProvider, exchangeDataProcessor); exchangeTransformer.applyTransforms(legacyLogger); savePointManager.setCurrentSetPointId("manifest"); diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/PurgeRelationTypeDatabaseTxCallable.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/PurgeRelationTypeDatabaseTxCallable.java new file mode 100644 index 00000000000..6eb5c435bd1 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/PurgeRelationTypeDatabaseTxCallable.java @@ -0,0 +1,119 @@ +/******************************************************************************* + * Copyright (c) 2011 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.orcs.db.internal.callable; + +import java.util.ArrayList; +import java.util.List; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.database.schema.DatabaseTxCallable; +import org.eclipse.osee.framework.core.exception.OseeArgumentException; +import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.cache.RelationTypeCache; +import org.eclipse.osee.framework.core.model.type.RelationType; +import org.eclipse.osee.framework.core.services.IdentityService; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.framework.database.core.IOseeStatement; +import org.eclipse.osee.framework.database.core.OseeConnection; +import org.eclipse.osee.logger.Log; + +/** + * Purges given relation types.<br/> + * <p> + * Tables involved: + * <li>osee_txs</li> + * <li>osee_txs_archived</li> + * <li>osee_relation_link</li> + * </p> + * <br/> + * + * @author Karol M. Wilk + */ +public final class PurgeRelationTypeDatabaseTxCallable extends DatabaseTxCallable<Object> { + private static final String RETRIEVE_GAMMAS_OF_REL_LINK_TXS = + "SELECT rel_link.gamma_id FROM osee_relation_link rel_link WHERE rel_link.rel_link_type_id = ?"; + + private static final String DELETE_BY_GAMMAS = "DELETE FROM %s WHERE gamma_id = ?"; + private static final String DELETE_FROM_CONFLICT_TABLE_SOURCE_SIDE = + "DELETE FROM osee_conflict WHERE source_gamma_id = ?"; + private static final String DELETE_FROM_CONFLICT_TABLE_DEST_SIDE = + "DELETE FROM osee_conflict WHERE dest_gamma_id = ?"; + + private final RelationTypeCache relationCache; + private final String[] typesToPurge; + private final boolean forcePurge; + private final IdentityService identityService; + private final Console console; + + public PurgeRelationTypeDatabaseTxCallable(Log logger, IOseeDatabaseService databaseService, IdentityService identityService, RelationTypeCache relationCache, Console console, boolean force, String... typesToPurge) { + super(logger, databaseService, "Purge Relation Type"); + this.identityService = identityService; + this.relationCache = relationCache; + this.console = console; + this.forcePurge = force; + this.typesToPurge = typesToPurge; + } + + @Override + protected Object handleTxWork(OseeConnection connection) throws OseeCoreException { + console.writeln(); + console.writeln(!forcePurge ? "Relation Types:" : "Purging relation types:"); + + List<Long> types = convertTypeNamesToUuids(); + boolean found = !types.isEmpty(); + if (forcePurge && found) { + console.writeln("Removing from osee_* tables..."); + processDeletes(connection, retrieveGammaIds(types)); + } + + console.writeln((found && !forcePurge) ? "To >DELETE Relation DATA!< add --force to confirm." : "Operation finished."); + return null; + } + + private List<Long> convertTypeNamesToUuids() throws OseeCoreException { + List<Long> guids = new ArrayList<Long>(); + for (String typeName : typesToPurge) { + try { + RelationType type = relationCache.getBySoleName(typeName); + console.writeln("Type [%s] found. Guid: [%s]", typeName, type.getGuid()); + guids.add(type.getGuid()); + } catch (OseeArgumentException ex) { + console.writeln("Type [%s] NOT found.", typeName); + console.writeln(ex); + } + } + return guids; + } + + private List<Integer[]> retrieveGammaIds(List<Long> types) throws OseeCoreException { + List<Integer[]> gammas = new ArrayList<Integer[]>(50000); + IOseeStatement chStmt = getDatabaseService().getStatement(); + try { + for (Long relationTypeId : types) { + chStmt.runPreparedQuery(RETRIEVE_GAMMAS_OF_REL_LINK_TXS, identityService.getLocalId(relationTypeId)); + while (chStmt.next()) { + gammas.add(new Integer[] {chStmt.getInt("gamma_id")}); + } + } + } finally { + chStmt.close(); + } + + return gammas; + } + + private void processDeletes(OseeConnection connection, List<Integer[]> gammas) throws OseeCoreException { + getDatabaseService().runBatchUpdate(connection, String.format(DELETE_BY_GAMMAS, "osee_txs"), gammas); + getDatabaseService().runBatchUpdate(connection, String.format(DELETE_BY_GAMMAS, "osee_txs_archived"), gammas); + getDatabaseService().runBatchUpdate(connection, String.format(DELETE_BY_GAMMAS, "osee_relation_link"), gammas); + getDatabaseService().runBatchUpdate(connection, String.format(DELETE_FROM_CONFLICT_TABLE_SOURCE_SIDE), gammas); + getDatabaseService().runBatchUpdate(connection, String.format(DELETE_FROM_CONFLICT_TABLE_DEST_SIDE), gammas); + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/ConsolidateArtifactVersionsCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/ConsolidateArtifactVersionsCommand.java new file mode 100644 index 00000000000..641fd2637fe --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/ConsolidateArtifactVersionsCommand.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2012 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.orcs.db.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.logger.Log; +import org.eclipse.osee.orcs.db.internal.callable.ConsolidateArtifactVersionDatabaseTxCallable; + +/** + * @author Roberto E. Escobar + */ +public class ConsolidateArtifactVersionsCommand implements ConsoleCommand { + + private Log logger; + private IOseeDatabaseService dbService; + + public Log getLogger() { + return logger; + } + + public void setLogger(Log logger) { + this.logger = logger; + } + + public IOseeDatabaseService getDatabaseService() { + return dbService; + } + + public void setDatabaseService(IOseeDatabaseService dbService) { + this.dbService = dbService; + } + + @Override + public String getName() { + return "db_consolidate_artifact_versions"; + } + + @Override + public String getDescription() { + return "Consolidate artifact versions - used to migrate to 0.9.2 database schema"; + } + + @Override + public String getUsage() { + return ""; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new ConsolidateArtifactVersionDatabaseTxCallable(getLogger(), getDatabaseService(), console); + } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/ConsolidateRelationsCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/ConsolidateRelationsCommand.java new file mode 100644 index 00000000000..f8fe0b12664 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/ConsolidateRelationsCommand.java @@ -0,0 +1,64 @@ +/******************************************************************************* + * Copyright (c) 2012 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.orcs.db.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.logger.Log; +import org.eclipse.osee.orcs.db.internal.callable.ConsolidateRelationsDatabaseTxCallable; + +/** + * @author Roberto E. Escobar + */ +public class ConsolidateRelationsCommand implements ConsoleCommand { + + private Log logger; + private IOseeDatabaseService dbService; + + public Log getLogger() { + return logger; + } + + public void setLogger(Log logger) { + this.logger = logger; + } + + public IOseeDatabaseService getDatabaseService() { + return dbService; + } + + public void setDatabaseService(IOseeDatabaseService dbService) { + this.dbService = dbService; + } + + @Override + public String getName() { + return "db_consolidate_relations"; + } + + @Override + public String getDescription() { + return "Consolidate rows of relations"; + } + + @Override + public String getUsage() { + return ""; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new ConsolidateRelationsDatabaseTxCallable(getLogger(), getDatabaseService(), console); + } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/FixDuplicateAttributesCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/FixDuplicateAttributesCommand.java new file mode 100644 index 00000000000..6286f7b4fc0 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/FixDuplicateAttributesCommand.java @@ -0,0 +1,75 @@ +/******************************************************************************* + * Copyright (c) 2012 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.orcs.db.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.logger.Log; +import org.eclipse.osee.orcs.db.internal.callable.DuplicateAttributesDatabaseTxCallable; + +/** + * @author Roberto E. Escobar + */ +public class FixDuplicateAttributesCommand implements ConsoleCommand { + + private Log logger; + private IOseeDatabaseService dbService; + private IOseeCachingService cachingService; + + public Log getLogger() { + return logger; + } + + public void setLogger(Log logger) { + this.logger = logger; + } + + public IOseeDatabaseService getDatabaseService() { + return dbService; + } + + public void setDatabaseService(IOseeDatabaseService dbService) { + this.dbService = dbService; + } + + public IOseeCachingService getCachingService() { + return cachingService; + } + + public void setCachingService(IOseeCachingService cachingService) { + this.cachingService = cachingService; + } + + @Override + public String getName() { + return "db_fix_duplicate_attributes"; + } + + @Override + public String getDescription() { + return "Detect and fix duplicate attributes"; + } + + @Override + public String getUsage() { + return ""; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + return new DuplicateAttributesDatabaseTxCallable(getLogger(), getDatabaseService(), console, + getCachingService().getAttributeTypeCache()); + } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeRelationTypeCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeRelationTypeCommand.java new file mode 100644 index 00000000000..e27050170df --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeRelationTypeCommand.java @@ -0,0 +1,89 @@ +/******************************************************************************* + * 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.orcs.db.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.core.services.IdentityService; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.logger.Log; +import org.eclipse.osee.orcs.db.internal.callable.PurgeRelationTypeDatabaseTxCallable; + +/** + * @author Roberto E. Escobar + */ +public class PurgeRelationTypeCommand implements ConsoleCommand { + + private Log logger; + private IOseeDatabaseService dbService; + private IOseeCachingService cachingService; + private IdentityService identityService; + + public Log getLogger() { + return logger; + } + + public void setLogger(Log logger) { + this.logger = logger; + } + + public IOseeDatabaseService getDatabaseService() { + return dbService; + } + + public void setDatabaseService(IOseeDatabaseService dbService) { + this.dbService = dbService; + } + + public IOseeCachingService getCachingService() { + return cachingService; + } + + public void setCachingService(IOseeCachingService cachingService) { + this.cachingService = cachingService; + } + + public IdentityService getIdentityService() { + return identityService; + } + + public void setIdentityService(IdentityService identityService) { + this.identityService = identityService; + } + + @Override + public String getName() { + return "db_purge_relation_type"; + } + + @Override + public String getDescription() { + return "Purges relation types from the database"; + } + + @Override + public String getUsage() { + return "[force=<TRUE|FALSE>] relTypes=<RELATION_TYPES,...>"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + boolean force = params.getBoolean("force"); + String[] typesToPurge = params.getArray("relTypes"); + + return new PurgeRelationTypeDatabaseTxCallable(getLogger(), getDatabaseService(), getIdentityService(), + getCachingService().getRelationTypeCache(), console, force, typesToPurge); + } + +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeTransactionCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeTransactionCommand.java new file mode 100644 index 00000000000..aec71db0311 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeTransactionCommand.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * 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.orcs.db.internal.console; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.framework.database.operation.PurgeTransactionOperation; +import org.eclipse.osee.orcs.db.internal.util.OperationCallableAdapter; +import org.eclipse.osee.orcs.db.internal.util.OperationLoggerAdapter; + +/** + * @author Roberto E. Escobar + */ +public class PurgeTransactionCommand implements ConsoleCommand { + + private IOseeDatabaseService dbService; + + public IOseeDatabaseService getDatabaseService() { + return dbService; + } + + public void setDatabaseService(IOseeDatabaseService dbService) { + this.dbService = dbService; + } + + @Override + public String getName() { + return "db_purge_transaction"; + } + + @Override + public String getDescription() { + return "Purges transactions from the database"; + } + + @Override + public String getUsage() { + return "txIds=<TX_IDS,...>"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + String[] stringIds = params.getArray("txIds"); + + final List<Integer> transactions = new ArrayList<Integer>(); + for (String arg : stringIds) { + transactions.add(Integer.parseInt(arg)); + } + + OperationLogger logger = new OperationLoggerAdapter(console); + IOperation operation = new PurgeTransactionOperation(getDatabaseService(), logger, transactions); + return new OperationCallableAdapter(operation); + } + +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/TxCurrentsCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/TxCurrentsCommand.java new file mode 100644 index 00000000000..6930f05c9d4 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/TxCurrentsCommand.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2012 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.orcs.db.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.orcs.db.internal.exchange.TxCurrentsAndModTypesCommand; +import org.eclipse.osee.orcs.db.internal.util.OperationCallableAdapter; +import org.eclipse.osee.orcs.db.internal.util.OperationLoggerAdapter; + +/** + * @author Roberto E. Escobar + */ +public class TxCurrentsCommand implements ConsoleCommand { + + private IOseeDatabaseService dbService; + + public IOseeDatabaseService getDatabaseService() { + return dbService; + } + + public void setDatabaseService(IOseeDatabaseService dbService) { + this.dbService = dbService; + } + + @Override + public String getName() { + return "db_tx_currents"; + } + + @Override + public String getDescription() { + return "Detect and fix tx current and mod types inconsistencies on archive txs or txs"; + } + + @Override + public String getUsage() { + return "[onTxsArchived=<TRUE|FALSE>]"; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + boolean isArchivedTable = params.getBoolean("onTxsArchived"); + OperationLogger logger = new OperationLoggerAdapter(console); + IOperation operation = new TxCurrentsAndModTypesCommand(getDatabaseService(), logger, isArchivedTable); + return new OperationCallableAdapter(operation); + } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/TxPruneCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/TxPruneCommand.java new file mode 100644 index 00000000000..842278cd6fc --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/TxPruneCommand.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright (c) 2012 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.orcs.db.internal.console; + +import java.util.concurrent.Callable; +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.console.admin.ConsoleCommand; +import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; +import org.eclipse.osee.framework.database.operation.PurgeUnusedBackingDataAndTransactions; +import org.eclipse.osee.orcs.db.internal.util.OperationCallableAdapter; +import org.eclipse.osee.orcs.db.internal.util.OperationLoggerAdapter; + +/** + * @author Roberto E. Escobar + */ +public class TxPruneCommand implements ConsoleCommand { + + private IOseeDatabaseService dbService; + + public IOseeDatabaseService getDatabaseService() { + return dbService; + } + + public void setDatabaseService(IOseeDatabaseService dbService) { + this.dbService = dbService; + } + + @Override + public String getName() { + return "db_tx_prune"; + } + + @Override + public String getDescription() { + return "Purge artifact, attribute, and relation versions that are not addressed or non-existent and purge empty transactions"; + } + + @Override + public String getUsage() { + return ""; + } + + @Override + public Callable<?> createCallable(Console console, ConsoleParameters params) { + OperationLogger logger = new OperationLoggerAdapter(console); + IOperation operation = new PurgeUnusedBackingDataAndTransactions(getDatabaseService(), logger); + return new OperationCallableAdapter(operation); + } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/DataStoreBackupApplication.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/DataStoreBackupApplication.java new file mode 100644 index 00000000000..562a13dc7bc --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/DataStoreBackupApplication.java @@ -0,0 +1,106 @@ +/******************************************************************************* + * 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.orcs.db.internal.console.inwork; + +/** + * @author Roberto E. Escobar + */ +public class DataStoreBackupApplication { + // implements IApplication { + // private static final String ALL_BRANCHES_QUERY = "select branch_id from osee_branch"; + // + // private List<Integer> getAllBranches() throws OseeCoreException { + // List<Integer> toReturn = new ArrayList<Integer>(); + // IOseeStatement chStmt = ConnectionHandler.getStatement(); + // try { + // chStmt.runPreparedQuery(100, ALL_BRANCHES_QUERY); + // while (chStmt.next()) { + // toReturn.add(chStmt.getInt("branch_id")); + // } + // } finally { + // chStmt.close(); + // } + // return toReturn; + // } + // + // private void transferToBackupLocation(IResourceLocator locator, File backupFolder) throws Exception { + // InputStream inputStream = null; + // OutputStream outputStream = null; + // try { + // IResource resource = Activator.getResourceManager().acquire(locator, new PropertyStore()); + // inputStream = resource.getContent(); + // + // outputStream = new BufferedOutputStream(new FileOutputStream(new File(backupFolder, resource.getName()))); + // + // Lib.inputStreamToOutputStream(inputStream, outputStream); + // } finally { + // try { + // if (inputStream != null) { + // inputStream.close(); + // } + // } finally { + // if (outputStream != null) { + // outputStream.flush(); + // outputStream.close(); + // } + // } + // } + // } + // + // @Override + // public Object start(IApplicationContext context) throws Exception { + // try { + // String backupName = "osee_" + Lib.getDateTimeString(); + // + // PropertyStore options = new PropertyStore(); + // options.put(ExportOptions.COMPRESS.name(), true); + // + // List<Integer> branchIds = getAllBranches(); + // + // int totalBranches = branchIds.size(); + // OseeLog.logf(Activator.class, Level.INFO, "Exporting [%s] branch%s", totalBranches, + // totalBranches == 1 ? "" : "es"); + // + // IResourceLocator exportLocator = Activator.getBranchExchange().exportBranch(backupName, options, branchIds); + // + // OseeLog.logf(Activator.class, Level.INFO, "Verifying export file integrity [%s]", exportLocator.getLocation()); + // + // IResourceLocator exportCheckLocator = Activator.getBranchExchange().checkIntegrity(exportLocator); + // OseeLog.logf(Activator.class, Level.INFO, "Verified [%s]", exportCheckLocator.getLocation()); + // + // OseeLog.logf(Activator.class, Level.INFO, "Completed export - [%s] branch%s", totalBranches, + // totalBranches == 1 ? "" : "es"); + // + // String backupPath = (String) context.getArguments().get("osee.backup.path"); + // if (Strings.isValid(backupPath)) { + // if (!backupPath.endsWith(File.separator)) { + // backupPath = backupPath + File.separator; + // } + // File backupFolder = new File(backupPath); + // backupFolder.mkdirs(); + // transferToBackupLocation(exportLocator, backupFolder); + // transferToBackupLocation(exportCheckLocator, backupFolder); + // + // Activator.getResourceManager().delete(exportLocator); + // Activator.getResourceManager().delete(exportCheckLocator); + // } + // } catch (Throwable ex) { + // OseeLog.log(Activator.class, Level.SEVERE, ex); + // } + // return IApplication.EXIT_OK; + // } + // + // @Override + // public void stop() { + // // + // } + +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/SearchStats.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/SearchStats.java new file mode 100644 index 00000000000..c7fab71f10e --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/SearchStats.java @@ -0,0 +1,34 @@ +/******************************************************************************* + * 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.orcs.db.internal.console.inwork; + + +/** + * @author Roberto E. Escobar + */ +public class SearchStats { + + // public SearchStats(OperationLogger logger) { + // super("Search Engine Stats", Activator.PLUGIN_ID, logger); + // } + // + // @Override + // protected void doWork(IProgressMonitor monitor) { + // ISearchStatistics stats = Activator.getSearchEngine().getStatistics(); + // log("\n----------------------------------------------"); + // log(" Search Stats"); + // log("----------------------------------------------"); + // logf("Total Searches - [%d]", stats.getTotalSearches()); + // logf("Search Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageSearchTime(), + // stats.getLongestSearchTime()); + // logf("Longest Search - %s", stats.getLongestSearch()); + // } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/SearchTaggerCommandProvider.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/SearchTaggerCommandProvider.java new file mode 100644 index 00000000000..17b0bf9d6e7 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/SearchTaggerCommandProvider.java @@ -0,0 +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.orcs.db.internal.console.inwork; + + +/** + * @author Roberto E. Escobar + */ +public final class SearchTaggerCommandProvider { + // private final ISchedulingRule tagMutex = new MutexSchedulingRule(); + // private Job tagAllJob; + // + // public Job _tag_all(CommandInterpreter ci) { + // OperationLogger logger = new CommandInterpreterLogger(ci); + // + // Set<Integer> branchIds = new LinkedHashSet<Integer>(); + // boolean tagOnlyMissingGammas = false; + // String arg = ci.nextArgument(); + // while (arg != null) { + // if (Strings.isValid(arg)) { + // if (arg.equals("-missing")) { + // tagOnlyMissingGammas = true; + // } else { + // branchIds.add(new Integer(arg)); + // } + // } + // arg = ci.nextArgument(); + // } + // + // AttributeTypeCache attTypeCache = Activator.getOseeCachingService().getAttributeTypeCache(); + // + // tagAllJob = + // Operations.executeAsJob(new TaggerAllOperation(logger, attTypeCache, branchIds, tagOnlyMissingGammas), false, + // tagMutex); + // return tagAllJob; + // } + // + // public void _tag_all_stop(CommandInterpreter ci) { + // tagAllJob.cancel(); + // } + // + // public Job _drop_all_tags(CommandInterpreter ci) { + // OperationLogger logger = new CommandInterpreterLogger(ci); + // return Operations.executeAsJob(new TaggerDropAllOperation(logger), false, tagMutex); + // } + // + // public Job _tagger_stats(CommandInterpreter ci) { + // TaggerStats stats = new TaggerStats(new CommandInterpreterLogger(ci)); + // return Operations.executeAsJob(stats, false); + // } + // + // public void _tagger_stats_clear(CommandInterpreter ci) { + // Activator.getSearchTagger().clearStatistics(); + // } + // + // public Job _search_stats(CommandInterpreter ci) { + // OperationLogger logger = new CommandInterpreterLogger(ci); + // return Operations.executeAsJob(new SearchStats(logger), false); + // } + // + // public void _search_stats_clear(CommandInterpreter ci) { + // Activator.getSearchEngine().clearStatistics(); + // } + // + // public Job _tag(CommandInterpreter ci) { + // OperationLogger logger = new CommandInterpreterLogger(ci); + // + // Set<Long> gammas = new HashSet<Long>(); + // String arg; + // while ((arg = ci.nextArgument()) != null) { + // gammas.add(new Long(arg)); + // } + // return Operations.executeAsJob(new TagItemOperation(logger, gammas), false, tagMutex); + // } + // + // @Override + // public String getHelp() { + // StringBuilder sb = new StringBuilder(); + // sb.append("\n---OSEE Search & Tag Commands---\n"); + // sb.append(" tag_all [-missing] [<branchId>] - tag all attributes in a branch or tag all attributes in all branches if id not specified\n"); + // sb.append(" tag_all_stop - stop tagging all attributes\n"); + // sb.append(" tag [<gammaId> <gammaId> ...]- tag individual item\n"); + // sb.append(" tagger_stats - get tagger stats\n"); + // sb.append(" tagger_stats_clear - clear tagger stats\n"); + // sb.append(" search_stats - get tagger stats\n"); + // sb.append(" search_stats_clear - clear tagger stats\n"); + // return sb.toString(); + // } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TagItemOperation.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TagItemOperation.java new file mode 100644 index 00000000000..333ef3c7f2f --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TagItemOperation.java @@ -0,0 +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.orcs.db.internal.console.inwork; + +/** + * @author Roberto E. Escobar + */ +public class TagItemOperation { + // + // + // private final Set<Long> gammas; + // private TagListener tagListener = null; + // + // public TagItemOperation(OperationLogger logger, Set<Long> gammas) { + // super("Tag Individual Items", Activator.PLUGIN_ID, logger); + // this.gammas = gammas; + // } + // + // private final class TagListener extends TagListenerAdapter { + // private int joinQuery; + // private boolean isProcessing; + // + // public TagListener() { + // this.isProcessing = true; + // this.joinQuery = -1; + // } + // + // @Override + // public void onTagQueryIdSubmit(int queryId) { + // joinQuery = queryId; + // } + // + // public boolean isProcessing() { + // return isProcessing; + // } + // + // @Override + // public void onAttributeTagComplete(int queryId, long gammaId, int totalTags, long processingTime) { + // if (queryId == joinQuery) { + // logf("GammaId: [%d] Tags: [%d] Processed In: [%d] ms", gammaId, totalTags, processingTime); + // } + // } + // + // @Override + // synchronized public void onTagQueryIdTagComplete(int queryId, long waitTime, long processingTime) { + // if (queryId == joinQuery) { + // this.isProcessing = false; + // this.notify(); + // } + // } + // + // @Override + // public void onAttributeAddTagEvent(int queryId, long gammaId, String word, long codedTag) { + // if (queryId == joinQuery) { + // logf("QueryId: [%d] GammaId: [%d] Word: [%s] Tag: [%d]", queryId, gammaId, word, codedTag); + // } + // } + // + // } + // + // @Override + // protected void doWork(IProgressMonitor monitor) throws OseeCoreException { + // tagListener = null; + // final Set<Long> toTag = gammas; + // if (!toTag.isEmpty()) { + // TagQueueJoinQuery joinQuery = JoinUtility.createTagQueueJoinQuery(); + // for (Long item : toTag) { + // joinQuery.add(item); + // } + // joinQuery.store(); + // + // tagListener = new TagListener(); + // Activator.getSearchTagger().tagByQueueQueryId(tagListener, joinQuery.getQueryId()); + // synchronized (tagListener) { + // try { + // tagListener.wait(); + // } catch (InterruptedException ex) { + // OseeLog.log(Activator.class, Level.SEVERE, ex); + // } + // } + // if (tagListener.isProcessing()) { + // joinQuery.delete(); + // } + // + // } else { + // log("No Items to Tag."); + // } + // } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerAllOperation.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerAllOperation.java new file mode 100644 index 00000000000..dcfb0c8b2b0 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerAllOperation.java @@ -0,0 +1,211 @@ +/******************************************************************************* + * 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.orcs.db.internal.console.inwork; + + +/** + * @author Roberto E. Escobar + */ +public final class TaggerAllOperation { + // private static final int BATCH_SIZE = 1000; + // + // private static final String FIND_ALL_TAGGABLE_ATTRIBUTES = + // "SELECT att.gamma_id FROM osee_join_id oji, osee_attribute att WHERE oji.query_id = ? AND oji.id = att.attr_type_id"; + // + // private static final String COUNT_ALL_TAGGABLE_ATTRIBUTES = FIND_ALL_TAGGABLE_ATTRIBUTES.replace("att.gamma_id", + // "count(1)"); + // + // private static final String FIND_MISSING = + // FIND_ALL_TAGGABLE_ATTRIBUTES + " AND att.gamma_id NOT IN (SELECT gamma_id FROM osee_search_tags)"; + // + // private static final String COUNT_MISSING = FIND_MISSING.replaceFirst("att.gamma_id", "count(1)"); + // + // private static final String FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH = + // "SELECT DISTINCT att.gamma_id FROM osee_join_id jid1, osee_join_id jid2, osee_txs txs, osee_attribute att WHERE jid1.query_id = ? AND jid1.id = txs.branch_id AND txs.gamma_id = att.gamma_id AND att.attr_type_id = jid2.id and jid2.query_id = ?"; + // + // private static final String COUNT_TAGGABLE_ATTRIBUTES_BY_BRANCH = FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH.replace( + // "DISTINCT att.gamma_id", "count(DISTINCT att.gamma_id)"); + // + // private static final String FIND_MISSING_BY_BRANCH = + // FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH + " AND att.gamma_id NOT IN (SELECT gamma_id FROM osee_search_tags)"; + // + // private static final String COUNT_MISSING_BY_BRANCH = + // COUNT_TAGGABLE_ATTRIBUTES_BY_BRANCH + " AND att.gamma_id NOT IN (SELECT gamma_id FROM osee_search_tags)"; + // + // private final Set<Integer> branchIds; + // private final boolean tagOnlyMissingGammas; + // private final AttributeTypeCache attTypeCache; + // private TagProcessListener processor; + // + // public TaggerAllOperation(OperationLogger logger, AttributeTypeCache attTypeCache, Set<Integer> branchIds, boolean tagOnlyMissingGammas) { + // super("Tag Attributes", Activator.PLUGIN_ID, logger); + // this.branchIds = branchIds; + // this.tagOnlyMissingGammas = tagOnlyMissingGammas; + // this.attTypeCache = attTypeCache; + // } + // + // private TagProcessListener process(long startTime, Collection<Integer> branchIds, boolean tagOnlyMissingGammas) throws OseeCoreException { + // logTaggingStart(); + // + // IdJoinQuery branchJoin = JoinUtility.createIdJoinQuery(); + // IdJoinQuery typeJoin = JoinUtility.createIdJoinQuery(); + // Object[] params; + // String countQuery; + // String searchQuery; + // + // if (branchIds.isEmpty()) { + // params = new Object[] {typeJoin.getQueryId()}; + // if (tagOnlyMissingGammas) { + // countQuery = COUNT_MISSING; + // searchQuery = FIND_MISSING; + // } else { + // countQuery = COUNT_ALL_TAGGABLE_ATTRIBUTES; + // searchQuery = FIND_ALL_TAGGABLE_ATTRIBUTES; + // } + // } else { + // for (Integer id : branchIds) { + // branchJoin.add(id); + // } + // branchJoin.store(); + // params = new Object[] {branchJoin.getQueryId(), typeJoin.getQueryId()}; + // if (tagOnlyMissingGammas) { + // countQuery = COUNT_MISSING_BY_BRANCH; + // searchQuery = FIND_MISSING_BY_BRANCH; + // } else { + // countQuery = COUNT_TAGGABLE_ATTRIBUTES_BY_BRANCH; + // searchQuery = FIND_TAGGABLE_ATTRIBUTES_BY_BRANCH; + // } + // } + // + // populateAttributeTypeJoin(typeJoin); + // + // int totalAttributes = ConnectionHandler.runPreparedQueryFetchInt(-1, countQuery, params); + // TagProcessListener processor = new TagProcessListener(startTime, totalAttributes); + // try { + // fetchAndProcessGammas(processor, searchQuery, params); + // } finally { + // branchJoin.delete(); + // } + // return processor; + // } + // + // private void logTaggingStart() { + // StringBuilder builder = new StringBuilder(); + // builder.append("Tagging"); + // if (tagOnlyMissingGammas) { + // builder.append(" (Only Missing)"); + // } + // builder.append(" Attributes for "); + // if (branchIds.isEmpty()) { + // builder.append("All Branches"); + // } else { + // builder.append("Branch(es) ").append(branchIds); + // } + // log(builder.toString()); + // } + // + // private void fetchAndProcessGammas(TagProcessListener processor, String query, Object... params) throws OseeCoreException { + // IOseeStatement chStmt = ConnectionHandler.getStatement(); + // try { + // chStmt.runPreparedQuery(query, params); + // TagQueueJoinQuery joinQuery = JoinUtility.createTagQueueJoinQuery(); + // while (chStmt.next()) { + // long gammaId = chStmt.getLong("gamma_id"); + // joinQuery.add(gammaId); + // if (joinQuery.size() >= BATCH_SIZE) { + // processor.storeAndAddQueryId(joinQuery); + // joinQuery = JoinUtility.createTagQueueJoinQuery(); + // } + // } + // processor.storeAndAddQueryId(joinQuery); + // } finally { + // chStmt.close(); + // } + // } + // + // private final class TagProcessListener extends TagListenerAdapter { + // + // private final Map<Integer, TagQueueJoinQuery> queryIdMap; + // private int attributesProcessed; + // private int queriesProcessed; + // private final long startTime; + // private final int totalAttributes; + // + // public TagProcessListener(long startTime, int totalAttributes) { + // this.queryIdMap = new ConcurrentHashMap<Integer, TagQueueJoinQuery>(); + // this.startTime = startTime; + // this.totalAttributes = totalAttributes; + // this.attributesProcessed = 0; + // this.queriesProcessed = 0; + // } + // + // public void storeAndAddQueryId(TagQueueJoinQuery joinQuery) throws OseeCoreException { + // if (joinQuery.size() > 0) { + // joinQuery.store(); + // this.queryIdMap.put(joinQuery.getQueryId(), joinQuery); + // Activator.getSearchTagger().tagByQueueQueryId(this, joinQuery.getQueryId()); + // } + // } + // + // public boolean isProcessingDone() { + // return queriesProcessed == totalQueries(); + // } + // + // public int totalQueries() { + // int remainder = totalAttributes % 1000; + // return totalAttributes / 1000 + (remainder > 0 ? 1 : 0); + // } + // + // public void printStats() { + // logf("QueryIds: [ %d of %d] Attributes: [%d of %d] - Elapsed Time = %s.", queriesProcessed, totalQueries(), + // attributesProcessed, totalAttributes, Lib.getElapseString(startTime)); + // } + // + // @Override + // public void onAttributeTagComplete(int queryId, long gammaId, int totalTags, long processingTime) { + // if (queryIdMap.containsKey(queryId)) { + // attributesProcessed++; + // if (attributesProcessed % 1000 == 0) { + // printStats(); + // } + // } + // } + // + // @Override + // synchronized public void onTagQueryIdTagComplete(int queryId, long waitTime, long processingTime) { + // TagQueueJoinQuery joinQuery = this.queryIdMap.get(queryId); + // if (joinQuery != null) { + // this.queryIdMap.remove(joinQuery); + // queriesProcessed++; + // if (isProcessingDone()) { + // this.notify(); + // } + // } + // } + // } + // + // @Override + // protected void doWork(IProgressMonitor monitor) throws Exception { + // long startTime = System.currentTimeMillis(); + // processor = process(startTime, branchIds, tagOnlyMissingGammas); + // processor.printStats(); + // log("Tagging Complete"); + // } + // + // private void populateAttributeTypeJoin(IdJoinQuery typeJoin) throws OseeCoreException { + // for (AttributeType attributeType : attTypeCache.getAll()) { + // if (attributeType.isTaggable()) { + // typeJoin.add(attributeType.getId()); + // } + // } + // typeJoin.store(); + // } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerDropAllOperation.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerDropAllOperation.java new file mode 100644 index 00000000000..ffbff418bd5 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerDropAllOperation.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * 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.orcs.db.internal.console.inwork; + + +/** + * @author Roberto E. Escobar + */ +public final class TaggerDropAllOperation { + + // public TaggerDropAllOperation(OperationLogger logger) { + // super("Drop All Search Tags", Activator.PLUGIN_ID, logger); + // } + // + // @Override + // protected void doWork(IProgressMonitor monitor) throws OseeCoreException { + // ConnectionHandler.runPreparedUpdate("TRUNCATE osee_search_tags"); + // } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerStats.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerStats.java new file mode 100644 index 00000000000..914153ddd3a --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/inwork/TaggerStats.java @@ -0,0 +1,52 @@ +/******************************************************************************* + * 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.orcs.db.internal.console.inwork; + + +/** + * @author Roberto E. Escobar + */ +public final class TaggerStats { + + // public TaggerStats(OperationLogger logger) { + // super("Tag Engine Stats", Activator.PLUGIN_ID, logger); + // } + // + // private String toString(ITagItemStatistics task) { + // return String.format("id: [%d] - processed [%d] tags in [%d] ms", task.getGammaId(), task.getTotalTags(), + // task.getProcessingTime()); + // } + // + // @Override + // protected void doWork(IProgressMonitor monitor) throws Exception { + // ISearchEngineTagger tagger = Activator.getSearchTagger(); + // + // ITaggerStatistics stats = tagger.getStatistics(); + // + // log("\n----------------------------------------------"); + // log(" Tagger Stats"); + // log("----------------------------------------------"); + // logf("Query Id Processing Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageQueryIdProcessingTime(), + // stats.getLongestQueryIdProcessingTime()); + // logf("Query Id Wait Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageQueryIdWaitTime(), + // stats.getLongestQueryIdWaitTime()); + // + // logf("Attribute Processing Time - avg: [%s] ms - longest: [%s] ms", stats.getAverageAttributeProcessingTime(), + // stats.getLongestAttributeProcessingTime()); + // logf("Attribute with longest processing time - %s", toString(stats.getLongestTask())); + // logf("Attribute with most tags - %s", toString(stats.getMostTagsTask())); + // logf("Total - QueryIds: [%d] Attributes: [%d] Tags: [%d]", stats.getTotalQueryIdsProcessed(), + // stats.getTotalAttributesProcessed(), stats.getTotalTags()); + // logf("Total Query Ids Waiting to be Processed - [%d]", tagger.getWorkersInQueue()); + // logf("Total Query Ids in Tag Queue Table - [%d]", stats.getTotalQueryIdsInQueue()); + // logf("Total Tags in System - [%d]\n", stats.getTagsInSystem()); + // } +} diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ExportItemFactory.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ExportItemFactory.java index 0f14d1d6980..ce68e430939 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ExportItemFactory.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ExportItemFactory.java @@ -26,6 +26,7 @@ import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.resource.management.IResourceLocatorManager; import org.eclipse.osee.framework.resource.management.IResourceManager; import org.eclipse.osee.logger.Log; +import org.eclipse.osee.orcs.ExportOptions; import org.eclipse.osee.orcs.db.internal.exchange.export.AbstractExportItem; import org.eclipse.osee.orcs.db.internal.exchange.export.DbTableExportItem; import org.eclipse.osee.orcs.db.internal.exchange.export.ManifestExportItem; diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TranslationManager.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TranslationManager.java index 19027fb7bd7..ff7a970b243 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TranslationManager.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TranslationManager.java @@ -18,6 +18,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.database.core.OseeConnection; import org.eclipse.osee.framework.jdk.core.type.PropertyStore; +import org.eclipse.osee.orcs.ImportOptions; public class TranslationManager { private static final String INSERT_INTO_IMPORT_MAP = diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TxCurrentsAndModTypesCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TxCurrentsAndModTypesCommand.java index c03ab777900..3d96abb2a77 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TxCurrentsAndModTypesCommand.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/TxCurrentsAndModTypesCommand.java @@ -15,6 +15,7 @@ import java.util.List; import org.eclipse.osee.framework.core.operation.CompositeOperation; import org.eclipse.osee.framework.core.operation.IOperation; import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.database.operation.InvalidTxCurrentsAndModTypes; /** @@ -22,19 +23,19 @@ import org.eclipse.osee.framework.database.operation.InvalidTxCurrentsAndModType */ public class TxCurrentsAndModTypesCommand extends CompositeOperation { - public TxCurrentsAndModTypesCommand(OperationLogger logger, boolean archived) { - super("TxCurrents And Mod Types", "Plugin Id", logger, buildSubOperations(logger, archived)); + public TxCurrentsAndModTypesCommand(IOseeDatabaseService db, OperationLogger logger, boolean archived) { + super("TxCurrents And Mod Types", "Plugin Id", logger, buildSubOperations(db, logger, archived)); } - private static List<IOperation> buildSubOperations(OperationLogger logger, boolean archived) { + private static List<IOperation> buildSubOperations(IOseeDatabaseService db, OperationLogger logger, boolean archived) { List<IOperation> operations = new ArrayList<IOperation>(3); - operations.add(buildFixOperation(logger, archived, "1/3 ", "osee_artifact", "art_id")); - operations.add(buildFixOperation(logger, archived, "2/3 ", "osee_attribute", "attr_id")); - operations.add(buildFixOperation(logger, archived, "3/3 ", "osee_relation_link", "rel_link_id")); + operations.add(buildFixOperation(db, logger, archived, "1/3 ", "osee_artifact", "art_id")); + operations.add(buildFixOperation(db, logger, archived, "2/3 ", "osee_attribute", "attr_id")); + operations.add(buildFixOperation(db, logger, archived, "3/3 ", "osee_relation_link", "rel_link_id")); return operations; } - private static IOperation buildFixOperation(OperationLogger logger, boolean archived, String operationName, String tableName, String columnName) { - return new InvalidTxCurrentsAndModTypes(operationName, tableName, columnName, logger, true, archived); + private static IOperation buildFixOperation(IOseeDatabaseService db, OperationLogger logger, boolean archived, String operationName, String tableName, String columnName) { + return new InvalidTxCurrentsAndModTypes(db, operationName, tableName, columnName, logger, true, archived); } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/export/ManifestExportItem.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/export/ManifestExportItem.java index ffa0d3d9836..b0b80f5a55f 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/export/ManifestExportItem.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/export/ManifestExportItem.java @@ -17,8 +17,8 @@ import org.eclipse.osee.framework.core.data.OseeCodeVersion; import org.eclipse.osee.framework.database.core.OseeInfo; import org.eclipse.osee.framework.jdk.core.type.PropertyStore; import org.eclipse.osee.logger.Log; +import org.eclipse.osee.orcs.ExportOptions; import org.eclipse.osee.orcs.db.internal.exchange.ExportImportXml; -import org.eclipse.osee.orcs.db.internal.exchange.ExportOptions; import org.eclipse.osee.orcs.db.internal.exchange.handler.ExportItem; /** diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/handler/BranchDataSaxHandler.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/handler/BranchDataSaxHandler.java index b716a25fb0d..db7bef89841 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/handler/BranchDataSaxHandler.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/handler/BranchDataSaxHandler.java @@ -28,8 +28,8 @@ import org.eclipse.osee.framework.database.core.IOseeStatement; import org.eclipse.osee.framework.database.core.OseeConnection; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.logger.Log; +import org.eclipse.osee.orcs.ImportOptions; import org.eclipse.osee.orcs.db.internal.exchange.ExchangeDb; -import org.eclipse.osee.orcs.db.internal.exchange.ImportOptions; /** * @author Roberto E. Escobar diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/ExchangeTransformer.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/ExchangeTransformer.java index 282f927ee03..64996aac646 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/ExchangeTransformer.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/ExchangeTransformer.java @@ -14,18 +14,21 @@ import java.util.Collection; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.operation.OperationLogger; import org.eclipse.osee.framework.core.util.Conditions; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.orcs.db.internal.exchange.handler.ExportItem; import org.osgi.framework.Version; public class ExchangeTransformer { + private final IOseeDatabaseService dbService; private final IExchangeTransformProvider provider; private final ExchangeDataProcessor processor; private Collection<IOseeExchangeVersionTransformer> transformers; - public ExchangeTransformer(IExchangeTransformProvider provider, ExchangeDataProcessor processor) { + public ExchangeTransformer(IOseeDatabaseService dbService, IExchangeTransformProvider provider, ExchangeDataProcessor processor) { + this.dbService = dbService; this.provider = provider; this.processor = processor; } @@ -48,7 +51,7 @@ public class ExchangeTransformer { public void applyFinalTransforms(OperationLogger logger) throws Exception { Conditions.checkNotNull(transformers, "transformers", "forgot to call apply transforms first"); for (IOseeExchangeVersionTransformer transform : transformers) { - transform.finalizeTransform(processor, logger); + transform.finalizeTransform(dbService, processor, logger); } transformers = null; } diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/IOseeExchangeVersionTransformer.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/IOseeExchangeVersionTransformer.java index 8af90b1b4dd..5e214b18261 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/IOseeExchangeVersionTransformer.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/IOseeExchangeVersionTransformer.java @@ -12,6 +12,7 @@ package org.eclipse.osee.orcs.db.internal.exchange.transform; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.osgi.framework.Version; /** @@ -23,5 +24,5 @@ public interface IOseeExchangeVersionTransformer { public abstract Version getMaxVersion(); - public abstract void finalizeTransform(ExchangeDataProcessor processor, OperationLogger logger) throws OseeCoreException; + public abstract void finalizeTransform(IOseeDatabaseService dbService, ExchangeDataProcessor processor, OperationLogger logger) throws OseeCoreException; } diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_8_3Transformer.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_8_3Transformer.java index fd097b2eb8e..3ce7bc0e9bd 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_8_3Transformer.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_8_3Transformer.java @@ -13,6 +13,7 @@ package org.eclipse.osee.orcs.db.internal.exchange.transform; import java.util.regex.Pattern; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.jdk.core.text.rules.ReplaceAll; import org.eclipse.osee.framework.jdk.core.type.HashCollection; import org.eclipse.osee.orcs.db.internal.exchange.handler.ExportItem; @@ -41,7 +42,7 @@ public class V0_8_3Transformer implements IOseeExchangeVersionTransformer { } @Override - public void finalizeTransform(ExchangeDataProcessor ruleProcessor, OperationLogger logger) { + public void finalizeTransform(IOseeDatabaseService dbService, ExchangeDataProcessor ruleProcessor, OperationLogger logger) { // } diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_0Transformer.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_0Transformer.java index f443d3a14a5..000798023cb 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_0Transformer.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_0Transformer.java @@ -15,6 +15,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.cache.AbstractOseeCache; import org.eclipse.osee.framework.core.operation.OperationLogger; import org.eclipse.osee.framework.core.services.IOseeCachingService; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.jdk.core.text.rules.ReplaceAll; import org.eclipse.osee.framework.jdk.core.util.io.xml.SaxTransformer; import org.eclipse.osee.orcs.db.internal.exchange.handler.ExportItem; @@ -64,7 +65,7 @@ public class V0_9_0Transformer implements IOseeExchangeVersionTransformer { } @Override - public void finalizeTransform(ExchangeDataProcessor processor, OperationLogger logger) { + public void finalizeTransform(IOseeDatabaseService dbService, ExchangeDataProcessor processor, OperationLogger logger) { // } diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_2Transformer.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_2Transformer.java index 4fe4be20c5b..f31c3974412 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_2Transformer.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_2Transformer.java @@ -28,6 +28,7 @@ import org.eclipse.osee.framework.core.exception.OseeExceptions; import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.core.operation.OperationLogger; import org.eclipse.osee.framework.core.operation.Operations; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.eclipse.osee.framework.database.operation.Address; import org.eclipse.osee.framework.jdk.core.text.rules.ReplaceAll; import org.eclipse.osee.framework.jdk.core.type.HashCollection; @@ -81,9 +82,9 @@ public class V0_9_2Transformer implements IOseeExchangeVersionTransformer { } @Override - public void finalizeTransform(ExchangeDataProcessor processor, OperationLogger logger) throws OseeCoreException { - Operations.executeWorkAndCheckStatus(new TxCurrentsAndModTypesCommand(logger, false)); - Operations.executeWorkAndCheckStatus(new TxCurrentsAndModTypesCommand(logger, true)); + public void finalizeTransform(IOseeDatabaseService dbService, ExchangeDataProcessor processor, OperationLogger logger) throws OseeCoreException { + Operations.executeWorkAndCheckStatus(new TxCurrentsAndModTypesCommand(dbService, logger, false)); + Operations.executeWorkAndCheckStatus(new TxCurrentsAndModTypesCommand(dbService, logger, true)); } private List<Integer> convertBranchTable(ExchangeDataProcessor processor) throws OseeCoreException { diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_4Transformer.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_4Transformer.java index f4c8fe3658e..72580e3573b 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_4Transformer.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/transform/V0_9_4Transformer.java @@ -11,6 +11,7 @@ package org.eclipse.osee.orcs.db.internal.exchange.transform; import org.eclipse.osee.framework.core.operation.OperationLogger; +import org.eclipse.osee.framework.database.IOseeDatabaseService; import org.osgi.framework.Version; /** @@ -30,7 +31,7 @@ public class V0_9_4Transformer implements IOseeExchangeVersionTransformer { } @Override - public void finalizeTransform(ExchangeDataProcessor processor, OperationLogger logger) { + public void finalizeTransform(IOseeDatabaseService dbService, ExchangeDataProcessor processor, OperationLogger logger) { // } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/util/OperationCallableAdapter.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/util/OperationCallableAdapter.java new file mode 100644 index 00000000000..fd76ed0d54f --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/util/OperationCallableAdapter.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2012 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.orcs.db.internal.util; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.osee.executor.admin.CancellableCallable; +import org.eclipse.osee.framework.core.operation.IOperation; +import org.eclipse.osee.framework.core.operation.Operations; + +/** + * @author Roberto E. Escobar + */ +public class OperationCallableAdapter extends CancellableCallable<IStatus> { + + private final IOperation operation; + + public OperationCallableAdapter(IOperation operation) { + this.operation = operation; + } + + @Override + public IStatus call() throws Exception { + IStatus status = Operations.executeWork(operation); + Operations.checkForErrorStatus(status); + return status; + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/util/OperationLoggerAdapter.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/util/OperationLoggerAdapter.java new file mode 100644 index 00000000000..1275da87998 --- /dev/null +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/util/OperationLoggerAdapter.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2010 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.orcs.db.internal.util; + +import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.framework.core.operation.OperationLogger; + +/** + * @author Ryan D. Brooks + */ +public class OperationLoggerAdapter extends OperationLogger { + private final Console ci; + + public OperationLoggerAdapter(Console ci) { + this.ci = ci; + } + + @Override + public void log(String... row) { + for (String cell : row) { + ci.write(cell); + ci.write(" "); + } + ci.writeln(); + } + + @Override + public void log(Throwable th) { + ci.writeln(th); + } +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ExportOptions.java b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/ExportOptions.java index e03b8298ae0..4c031655c49 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ExportOptions.java +++ b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/ExportOptions.java @@ -8,7 +8,7 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.orcs.db.internal.exchange; +package org.eclipse.osee.orcs; /** * @author Roberto E. Escobar diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ImportOptions.java b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/ImportOptions.java index d0444480b48..9ff7ac39060 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/exchange/ImportOptions.java +++ b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/ImportOptions.java @@ -8,7 +8,7 @@ * Contributors: * Boeing - initial API and implementation *******************************************************************************/ -package org.eclipse.osee.orcs.db.internal.exchange; +package org.eclipse.osee.orcs; /** * @author Roberto E. Escobar diff --git a/plugins/org.eclipse.osee.support.config/launchConfig/OSEE.X.Server.launch b/plugins/org.eclipse.osee.support.config/launchConfig/OSEE.X.Server.launch index b2fd2835cbd..5f2462e91ef 100644 --- a/plugins/org.eclipse.osee.support.config/launchConfig/OSEE.X.Server.launch +++ b/plugins/org.eclipse.osee.support.config/launchConfig/OSEE.X.Server.launch @@ -20,9 +20,9 @@ <stringAttribute key="pde.version" value="3.3"/> <booleanAttribute key="show_selected_only" value="false"/> <stringAttribute key="target_bundles" value="ch.qos.logback.classic@default:default,ch.qos.logback.core@default:default,ch.qos.logback.slf4j@default:false,com.google.collect@default:default,com.google.inject@default:default,com.ibm.icu@default:default,javax.activation@default:default,javax.mail.glassfish@default:default,javax.servlet@default:default,javax.xml@default:default,org.antlr.runtime@default:default,org.aopalliance@default:default,org.apache.commons.codec@default:default,org.apache.commons.httpclient@default:default,org.apache.commons.lang@default:default,org.apache.commons.logging@default:default,org.apache.log4j@default:default,org.apache.xerces@default:default,org.apache.xml.resolver@default:default,org.apache.xml.serializer@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.compare.diff@default:default,org.eclipse.emf.compare.match@default:default,org.eclipse.emf.compare@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.servletbridge.extensionbundle@default:false,org.eclipse.equinox.transforms.hook@default:false,org.eclipse.equinox.util@default:default,org.eclipse.equinox.weaving.hook@default:false,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.team.core@default:default,org.eclipse.xtext.logging@default:false,org.eclipse.xtext.util@default:default,org.eclipse.xtext@default:default,org.h2@default:default,org.hamcrest.core@default:default,org.junit*4.8.2.v4_8_2_v20110321-1705@default:default,org.mortbay.jetty.server@default:default,org.mortbay.jetty.util@default:default,org.objectweb.asm@default:default,org.slf4j.api@default:default,org.slf4j.jcl@default:default"/> -<stringAttribute key="timestamp" value="1329958743981"/> +<stringAttribute key="timestamp" value="1330468850179"/> <booleanAttribute key="tracing" value="false"/> <booleanAttribute key="useCustomFeatures" value="false"/> <booleanAttribute key="useDefaultConfigArea" value="true"/> -<stringAttribute key="workspace_bundles" value="com.sun.jersey@default:default,com.vaadin@default:default,javax.ws.rs@default:default,org.eclipse.osee.database.schema@default:default,org.eclipse.osee.database@default:default,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.distributed@default:default,org.eclipse.osee.event.osgi@default:default,org.eclipse.osee.event@default:default,org.eclipse.osee.executor.admin.test@default:false,org.eclipse.osee.executor.admin@default:default,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.core.server@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.h2@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.logging.test@default:false,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.manager.servlet@default:default,org.eclipse.osee.framework.resource.management.test@default:false,org.eclipse.osee.framework.resource.management@default:default,org.eclipse.osee.logback.config@default:false,org.eclipse.osee.logger.slf4j@default:default,org.eclipse.osee.logger@default:default,org.eclipse.osee.orcs.core.integration.test@default:false,org.eclipse.osee.orcs.core.test@default:false,org.eclipse.osee.orcs.core@default:default,org.eclipse.osee.orcs.db.mock@default:default,org.eclipse.osee.orcs.db.test@default:false,org.eclipse.osee.orcs.db@default:default,org.eclipse.osee.orcs.rest@default:default,org.eclipse.osee.orcs@default:default,org.eclipse.osee.rest.admin@default:default,org.eclipse.osee.vaadin.themes@default:false,org.eclipse.osee.vaadin.widgets@default:default,org.eclipse.osee.vaadin@default:default,org.jvnet.mimepull@default:default"/> +<stringAttribute key="workspace_bundles" value="com.sun.jersey@default:default,com.vaadin@default:default,javax.ws.rs@default:default,org.eclipse.osee.console.admin@default:default,org.eclipse.osee.database.schema@default:default,org.eclipse.osee.database@default:default,org.eclipse.osee.demo.db.connection@default:default,org.eclipse.osee.distributed@default:default,org.eclipse.osee.event.osgi@default:default,org.eclipse.osee.event@default:default,org.eclipse.osee.executor.admin.test@default:false,org.eclipse.osee.executor.admin@default:default,org.eclipse.osee.framework.core.dsl.integration.test@default:false,org.eclipse.osee.framework.core.dsl.integration@default:default,org.eclipse.osee.framework.core.dsl@default:default,org.eclipse.osee.framework.core.message@default:default,org.eclipse.osee.framework.core.model.test@default:false,org.eclipse.osee.framework.core.model@default:default,org.eclipse.osee.framework.core.server@default:default,org.eclipse.osee.framework.core.test@default:false,org.eclipse.osee.framework.core@default:default,org.eclipse.osee.framework.database.test@default:false,org.eclipse.osee.framework.database@default:default,org.eclipse.osee.framework.h2@default:default,org.eclipse.osee.framework.jdk.core.test@default:false,org.eclipse.osee.framework.jdk.core@default:default,org.eclipse.osee.framework.logging.test@default:false,org.eclipse.osee.framework.logging@default:default,org.eclipse.osee.framework.manager.servlet@default:default,org.eclipse.osee.framework.resource.management.test@default:false,org.eclipse.osee.framework.resource.management@default:default,org.eclipse.osee.logback.config@default:false,org.eclipse.osee.logger.slf4j@default:default,org.eclipse.osee.logger@default:default,org.eclipse.osee.orcs.core.integration.test@default:false,org.eclipse.osee.orcs.core.test@default:false,org.eclipse.osee.orcs.core@default:default,org.eclipse.osee.orcs.db.mock@default:default,org.eclipse.osee.orcs.db.test@default:false,org.eclipse.osee.orcs.db@default:default,org.eclipse.osee.orcs.rest@default:default,org.eclipse.osee.orcs@default:default,org.eclipse.osee.rest.admin@default:default,org.eclipse.osee.vaadin.themes@default:false,org.eclipse.osee.vaadin.widgets@default:default,org.eclipse.osee.vaadin@default:default,org.jvnet.mimepull@default:default"/> </launchConfiguration> |