/* * Copyright 2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import com.arjuna.ats.arjuna.common.Uid; import com.arjuna.ats.arjuna.AtomicAction; import io.vertx.core.AbstractVerticle; import io.vertx.core.shareddata.LocalMap; import org.jboss.stm.Container; public class SampleVerticle2 extends AbstractVerticle { public void start() { LocalMap<String, String> map = vertx.sharedData().getLocalMap("demo.mymap"); Container<Sample> theContainer = new Container<>("Demo", Container.TYPE.PERSISTENT, Container.MODEL.SHARED); String uidName = map.get(ClientVerticle.LEADER); Sample obj1 = theContainer.clone(new SampleLockable(10), new Uid(uidName)); AtomicAction A = new AtomicAction(); int value = -1; int initialValue = -1; boolean shouldCommit = true; A.begin(); try { initialValue = obj1.value(); obj1.increment(); } catch (final Throwable ex) { ex.printStackTrace(); shouldCommit = false; } try { if (shouldCommit) { obj1.increment(); value = obj1.value(); } } catch (final Throwable ex) { ex.printStackTrace(); shouldCommit = false; } if (shouldCommit) A.commit(); else { A.abort(); value = -1; } System.err.println("SampleVerticle2 initialised state with: "+value); if (value == initialValue +2) System.err.println("SampleVerticle2 SUCCEEDED!"); else System.err.println("SampleVerticle2 FAILED!"); } }