diff options
author | donald.g.dunne | 2016-06-27 21:12:34 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2016-07-29 06:18:28 +0000 |
commit | 0ff6aba5036081c457be0ecff42f3c4f3feb543f (patch) | |
tree | 8b13d7a05cf3fbdb64247cd69040b47e940cb471 /plugins/org.eclipse.osee.orcs.account.admin | |
parent | 318b5413f15d3e014e23a790043e8b9b1202ac73 (diff) | |
download | org.eclipse.osee-0ff6aba5036081c457be0ecff42f3c4f3feb543f.tar.gz org.eclipse.osee-0ff6aba5036081c457be0ecff42f3c4f3feb543f.tar.xz org.eclipse.osee-0ff6aba5036081c457be0ecff42f3c4f3feb543f.zip |
feature[ats_ATS286643]: HLR - Implement Types Versioning
Change-Id: I9d68d8b17295bbb6986917db495811cc6eae25cc
Diffstat (limited to 'plugins/org.eclipse.osee.orcs.account.admin')
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(); + } + +} |