@Override public void run() throws OseeCoreException { Conditions.checkNotNull(configuration, "DbInitConfiguration Info"); OseeClientProperties.setInDbInit(true); createOseeDatastore(); Bundle bundle = Platform.getBundle("org.eclipse.osee.framework.skynet.core"); int state = bundle.getState(); if (state != Bundle.ACTIVE) { try { bundle.start(); } catch (BundleException ex) { throw new OseeCoreException(ex); } } IOseeCachingService service = DatabaseInitActivator.getInstance().getCachingService(); service.clearAll(); IOseeDatabaseService databaseService = DatabaseInitActivator.getInstance().getDatabaseService(); databaseService.getSequence().clear(); IdentityService identityService = DatabaseInitActivator.getInstance().getIdentityService(); identityService.clear(); Branch systemRoot = BranchManager.getSystemRootBranch(); Conditions.checkNotNull(systemRoot, "System root was not created - "); ClientSessionManager.releaseSession(); ClientSessionManager.authenticate( new BaseCredentialProvider() { @Override public OseeCredential getCredential() { OseeCredential credential = super.getCredential(); credential.setUserName(SystemUser.BootStrap.getName()); return credential; } }); List<String> oseeTypes = configuration.getOseeTypeExtensionIds(); Conditions.checkExpressionFailOnTrue(oseeTypes.isEmpty(), "osee types cannot be empty"); OseeTypesSetup oseeTypesSetup = new OseeTypesSetup(); oseeTypesSetup.execute(oseeTypes); service.clearAll(); }
private void handleBranchSelectEnabled(boolean isSelected) { setSelectable(true); if (ClientSessionManager.isSessionValid() != true) { statusLabel.setText(AUTHENTICATION_WARNING_MESSAGE); setSelectable(false); isSelected = false; } branchSelectEnabled.setSelection(isSelected); branchSelectComposite.setEnabled(isSelected); for (Control control : branchSelectComposite.getChildren()) { control.setEnabled(isSelected); } }
public void restoreWidgetValues(boolean saveAsArtifact, String[] branchIds, String lastSelected) { branchSelectEnabled.setSelection(saveAsArtifact && ClientSessionManager.isSessionValid()); branchSelectComposite.restoreWidgetValues(branchIds, lastSelected); }
@Override public ArrayList<ChangeBuilder> acquireChanges() throws OseeCoreException { Map<Integer, ChangeBuilder> attributesWasValueCache = new HashMap<Integer, ChangeBuilder>(); Map<Integer, ModificationType> artModTypes = new HashMap<Integer, ModificationType>(); Set<Integer> modifiedArtifacts = new HashSet<Integer>(); IOseeStatement chStmt = ConnectionHandler.getStatement(); boolean hasBranch = getSourceBranch() != null; long time = System.currentTimeMillis(); try { if (getMonitor() != null) { getMonitor().subTask("Gathering Attribute Changes"); } TransactionRecord fromTransactionId; TransactionRecord toTransaction; boolean hasSpecificArtifact = getSpecificArtifact() != null; for (ChangeBuilder changeBuilder : getChangeBuilders()) { // cache in map for performance look ups artModTypes.put(changeBuilder.getArtId(), changeBuilder.getModType()); } // Changes per a branch if (hasBranch) { fromTransactionId = getSourceBranch().getBaseTransaction(); toTransaction = TransactionManager.getHeadTransaction(getSourceBranch()); chStmt.runPreparedQuery( ClientSessionManager.getSql(OseeSql.CHANGE_BRANCH_ATTRIBUTE_IS), getSourceBranch().getId(), fromTransactionId.getId()); } // Changes per transaction number else { toTransaction = getTransaction(); if (hasSpecificArtifact) { chStmt.runPreparedQuery( ClientSessionManager.getSql(OseeSql.CHANGE_TX_ATTRIBUTE_IS_FOR_SPECIFIC_ARTIFACT), toTransaction.getBranchId(), toTransaction.getId(), getSpecificArtifact().getArtId()); fromTransactionId = getTransaction(); } else { chStmt.runPreparedQuery( ClientSessionManager.getSql(OseeSql.CHANGE_TX_ATTRIBUTE_IS), toTransaction.getBranchId(), toTransaction.getId()); fromTransactionId = TransactionManager.getPriorTransaction(toTransaction); } } loadIsValues( getSourceBranch(), getArtIds(), getChangeBuilders(), getNewAndDeletedArtifactIds(), getMonitor(), attributesWasValueCache, artModTypes, modifiedArtifacts, chStmt, hasBranch, time, fromTransactionId, toTransaction, hasSpecificArtifact); loadAttributeWasValues( getSourceBranch(), getTransaction(), getArtIds(), getMonitor(), attributesWasValueCache, hasBranch); } finally { chStmt.close(); } return getChangeBuilders(); }
private void loadAttributeWasValues( Branch sourceBranch, TransactionRecord transactionId, Set<Integer> artIds, IProgressMonitor monitor, Map<Integer, ChangeBuilder> attributesWasValueCache, boolean hasBranch) throws OseeCoreException, OseeDataStoreException { if (!artIds.isEmpty()) { int sqlParamter; // Will either be a branch id or transaction id Branch wasValueBranch; String sql; if (hasBranch) { wasValueBranch = sourceBranch; sql = ClientSessionManager.getSql(OseeSql.CHANGE_BRANCH_ATTRIBUTE_WAS); sqlParamter = wasValueBranch.getId(); } else { wasValueBranch = transactionId.getBranch(); sql = ClientSessionManager.getSql(OseeSql.CHANGE_TX_ATTRIBUTE_WAS); sqlParamter = transactionId.getId(); } int queryId = ArtifactLoader.getNewQueryId(); Timestamp insertTime = GlobalTime.GreenwichMeanTimestamp(); List<Object[]> datas = new LinkedList<Object[]>(); IOseeStatement chStmt = ConnectionHandler.getStatement(); try { // insert into the artifact_join_table for (int artId : artIds) { datas.add( new Object[] { queryId, insertTime, artId, wasValueBranch.getId(), SQL3DataType.INTEGER }); } ArtifactLoader.insertIntoArtifactJoin(datas); chStmt.runPreparedQuery(sql, sqlParamter, queryId); int previousAttrId = -1; while (chStmt.next()) { int attrId = chStmt.getInt("attr_id"); if (previousAttrId != attrId) { String wasValue = chStmt.getString("was_value"); if (attributesWasValueCache.containsKey(attrId) && attributesWasValueCache.get(attrId) instanceof AttributeChangeBuilder) { AttributeChangeBuilder changeBuilder = (AttributeChangeBuilder) attributesWasValueCache.get(attrId); if (changeBuilder.getArtModType() != ModificationType.NEW) { if (changeBuilder.getModType() != ModificationType.DELETED && changeBuilder.getModType() != ModificationType.ARTIFACT_DELETED) { changeBuilder.setModType(ModificationType.MODIFIED); } changeBuilder.setWasValue(wasValue); } } previousAttrId = attrId; } } } finally { ArtifactLoader.clearQuery(queryId); chStmt.close(); } if (getMonitor() != null) { monitor.worked(12); } } }