private void flushSource() { try { r.begin(); Pipe pipe = newPipeInstance(); Object source = sourceId.fetch(); r.driver().pipes().flux(pipe, source); r.commit(); } finally { if (r.isTransactionInProgress()) { r.rollback(); } } }
public void delete() { r.destroy(this); }
private static void atomicRollback(Repository r) { if (r.isTransactionInProgress()) { r.rollback(); } }
private boolean beginTransactionForPipes() { if (isTransactionInProgress()) { return false; } begin(); return true; }
private static void atomicCommit(Repository r, boolean rollback) { if (r.isTransactionInProgress()) { if (rollback) { throw new RuntimeException( "Running on devserver or unit tests? To test cross-group, default_high_rep_job_policy_unapplied_job_pct must be > 0"); } r.commit(); } }
private void destroyInternal(IdRef<?> id) { boolean newTransaction = beginTransactionForPipesOnDestroy(id); try { refluxPipes(id); driver().persistence().destroy(id); invalidateCache(id); // TODO: Pipes - cleanup sinks if (newTransaction) { commit(); } } finally { if (newTransaction && isTransactionInProgress()) { rollback(); } } }
private void saveInternal(Object object) { boolean newTransaction = beginTransactionForPipesOnSave(object); try { updateExistingPipes(object); rawSave(object); invalidateCache(object); fluxPipes(object); if (newTransaction) { commit(); } } finally { if (newTransaction && isTransactionInProgress()) { rollback(); } } logger.finer("saved"); }
private boolean confirm() { if (!yawp.driver().environment().isProduction()) { return true; } if (!params.containsKey(CONFIRM_PARAM)) { return false; } String confirmTime = params.get(CONFIRM_PARAM); Long confirm = Long.parseLong(confirmTime); long time = System.currentTimeMillis(); if (confirm > time || confirm < time - 60000) { return false; } return true; }
@Test public void testSaveAndChange() { BasicObject object1 = new BasicObject("xpto"); BasicObject object2 = new BasicObject("xpto"); r1.save(object1); r2.save(object2); assertNotNull(r1.query(BasicObject.class).fetch(object1.getId())); assertNotNull(r2.query(BasicObject.class).fetch(object2.getId())); object1.setStringValue("lala"); r1.save(object1); assertNull(r1.query(BasicObject.class).where("stringValue", "=", "xpto").first()); assertNotNull(r2.query(BasicObject.class).where("stringValue", "=", "xpto").first()); } }
private void setNamespace() { String ns = params.get(NS_PARAM); if (ns != null) { yawp.namespace(ns); } }
private void commitIfChanged() { if (sinksToSave.isEmpty()) { r.rollback(); return; } for (IdRef<SinkMarker> id : sinkMarkersToSave) { async.save(getSinkMarkerFromCache(id)); } for (IdRef<?> sinkId : sinksToSave) { logSave(sinkId); // TODO: support pipes at async repository operations r.save(sinkCache.get(sinkId)); } // TODO: destroy empty sinks? r.commit(); }
protected QueryBuilder<?> query() { return r.query(endpointClazz); }
@Before public void before() { r1 = Repository.r("ns1").setFeatures(yawp.getFeatures()); r2 = Repository.r("ns2").setFeatures(yawp.getFeatures()); }
public void execute() { try { r.beginX(); cacheSinkMarkers(); executeWorks(); commitIfChanged(); } finally { if (r.isTransactionInProgress()) { r.rollback(); } } }
public String getUri() { StringBuilder sb = new StringBuilder(); if (parentId != null) { sb.append(parentId.getUri()); } sb.append(r.getFeatures().getByClazz(this.clazz).getEndpointPath()); sb.append("/"); sb.append(id != null ? id : name); return sb.toString(); }