Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordonald.g.dunne2016-06-27 21:12:34 +0000
committerRyan D. Brooks2016-07-29 06:18:28 +0000
commit0ff6aba5036081c457be0ecff42f3c4f3feb543f (patch)
tree8b13d7a05cf3fbdb64247cd69040b47e940cb471 /plugins/org.eclipse.osee.orcs.account.admin
parent318b5413f15d3e014e23a790043e8b9b1202ac73 (diff)
downloadorg.eclipse.osee-0ff6aba5036081c457be0ecff42f3c4f3feb543f.tar.gz
org.eclipse.osee-0ff6aba5036081c457be0ecff42f3c4f3feb543f.tar.xz
org.eclipse.osee-0ff6aba5036081c457be0ecff42f3c4f3feb543f.zip
feature[ats_ATS286643]: HLR - Implement Types Versioning
Diffstat (limited to 'plugins/org.eclipse.osee.orcs.account.admin')
-rw-r--r--plugins/org.eclipse.osee.orcs.account.admin/.project6
-rw-r--r--plugins/org.eclipse.osee.orcs.account.admin/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/oauth.dbinit.types.xml10
-rw-r--r--plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorage.java3
-rw-r--r--plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorageProvider.java18
-rw-r--r--plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/OAuthDbInit.java45
6 files changed, 82 insertions, 3 deletions
diff --git a/plugins/org.eclipse.osee.orcs.account.admin/.project b/plugins/org.eclipse.osee.orcs.account.admin/.project
index 322c9e73939..35d217dc72c 100644
--- a/plugins/org.eclipse.osee.orcs.account.admin/.project
+++ b/plugins/org.eclipse.osee.orcs.account.admin/.project
@@ -6,6 +6,11 @@
</projects>
<buildSpec>
<buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
@@ -29,5 +34,6 @@
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
</natures>
</projectDescription>
diff --git a/plugins/org.eclipse.osee.orcs.account.admin/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.orcs.account.admin/META-INF/MANIFEST.MF
index 6f7f499be6a..27034a79250 100644
--- a/plugins/org.eclipse.osee.orcs.account.admin/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.osee.orcs.account.admin/META-INF/MANIFEST.MF
@@ -28,5 +28,6 @@ Import-Package: com.google.common.base;version="15.0.0",
org.eclipse.osee.orcs.data,
org.eclipse.osee.orcs.search,
org.eclipse.osee.orcs.transaction,
- org.eclipse.osee.orcs.utility
+ org.eclipse.osee.orcs.utility,
+ org.osgi.service.event;version="1.3.1"
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/oauth.dbinit.types.xml b/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/oauth.dbinit.types.xml
new file mode 100644
index 00000000000..80fa9bcb1ba
--- /dev/null
+++ b/plugins/org.eclipse.osee.orcs.account.admin/OSGI-INF/oauth.dbinit.types.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" immediate="true">
+ <implementation class="org.eclipse.osee.orcs.account.admin.internal.oauth.OAuthDbInit"/>
+ <service>
+ <provide interface="org.osgi.service.event.EventHandler"/>
+ </service>
+ <property name="event.topics" type="String" value="orcs/dbinit/importTypes"/>
+ <reference bind="setLogger" cardinality="1..1" interface="org.eclipse.osee.logger.Log" name="Log" policy="static"/>
+ <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.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorage.java b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorage.java
index 560be3fffa1..ca2bfe9262c 100644
--- a/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorage.java
+++ b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorage.java
@@ -173,7 +173,7 @@ public class ClientStorage {
return newQuery().andUuid(OAUTH_TYPES.getUuid()).andTypeEquals(OAUTH_TYPES.getArtifactType()).getResults();
}
- public void storeTypes(InputSupplier<? extends InputStream> resource) {
+ public ArtifactId storeTypes(InputSupplier<? extends InputStream> resource) {
TransactionBuilder tx = newTransaction(null, "Initialize OAuth Type Definitions");
ArtifactId artifactId = tx.createArtifact(OAUTH_TYPES);
InputStream stream = null;
@@ -188,6 +188,7 @@ public class ClientStorage {
tx.commit();
reloadTypes();
+ return artifactId;
}
private void reloadTypes() {
diff --git a/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorageProvider.java b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorageProvider.java
index 0eb05163ab5..c4e42bb181f 100644
--- a/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorageProvider.java
+++ b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/ClientStorageProvider.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.osee.orcs.account.admin.internal.oauth;
+import static org.eclipse.osee.framework.core.enums.CoreBranches.COMMON;
import com.google.common.io.InputSupplier;
import com.google.gson.GsonBuilder;
import java.io.BufferedInputStream;
@@ -19,10 +20,16 @@ import java.net.URL;
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;
import org.eclipse.osee.framework.core.data.BranchId;
+import org.eclipse.osee.framework.core.data.OrcsTypesData;
+import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
import org.eclipse.osee.framework.core.enums.CoreBranches;
+import org.eclipse.osee.framework.core.enums.CoreTupleTypes;
+import org.eclipse.osee.framework.core.enums.SystemUser;
import org.eclipse.osee.framework.jdk.core.type.LazyObject;
import org.eclipse.osee.logger.Log;
import org.eclipse.osee.orcs.OrcsApi;
+import org.eclipse.osee.orcs.data.ArtifactReadable;
+import org.eclipse.osee.orcs.transaction.TransactionBuilder;
/**
* @author Roberto E. Escobar
@@ -53,8 +60,17 @@ public class ClientStorageProvider extends LazyObject<ClientStorage> {
ClientStorage clientStorage = new ClientStorage(logger, builder, orcsApi, storageBranch);
if (!clientStorage.typesExist()) {
- clientStorage.storeTypes(newTypesSupplier());
+ InputSupplier<InputStream> newTypesSupplier = newTypesSupplier();
+ ArtifactReadable typeArt = (ArtifactReadable) clientStorage.storeTypes(newTypesSupplier);
+
+ TransactionBuilder tx = orcsApi.getTransactionFactory().createTransaction(COMMON.getId(),
+ SystemUser.OseeSystem, "Add OseeTypeDef OAuth Tuple to Common Branch");
+ tx.addTuple2(CoreTupleTypes.OseeTypeDef, OrcsTypesData.OSEE_TYPE_VERSION,
+ typeArt.getAttributes(CoreAttributeTypes.UriGeneralStringData).iterator().next());
+
+ tx.commit();
}
+
return clientStorage;
}
diff --git a/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/OAuthDbInit.java b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/OAuthDbInit.java
new file mode 100644
index 00000000000..4decc4f86f2
--- /dev/null
+++ b/plugins/org.eclipse.osee.orcs.account.admin/src/org/eclipse/osee/orcs/account/admin/internal/oauth/OAuthDbInit.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2016 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.account.admin.internal.oauth;
+
+import org.eclipse.osee.logger.Log;
+import org.eclipse.osee.orcs.OrcsApi;
+import org.eclipse.osee.orcs.data.OrcsTopicEvents;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventHandler;
+
+/**
+ * Handler for {@link OrcsTopicEvents.DBINIT_IMPORT_TYPES}
+ *
+ * @author Donald G. Dunne
+ */
+public class OAuthDbInit implements EventHandler {
+
+ private static Log logger;
+ private static OrcsApi orcsApi;
+
+ public void setLogger(Log logger) {
+ OAuthDbInit.logger = logger;
+ }
+
+ public void setOrcsApi(OrcsApi orcsApi) {
+ OAuthDbInit.orcsApi = orcsApi;
+ }
+
+ @Override
+ public void handleEvent(Event event) {
+ ClientStorageProvider provider = new ClientStorageProvider();
+ provider.setLogger(logger);
+ provider.setOrcsApi(orcsApi);
+ provider.createLoaderTask().run();
+ }
+
+}

Back to the top