Examples of Coordination


Examples of org.osgi.service.coordinator.Coordination

  }
 
  public synchronized Region getRegion() throws BundleException, IOException, InvalidSyntaxException, URISyntaxException {
    if (region == null) {
      region = createRegion(getId());
      Coordination coordination = Activator.getInstance().getCoordinator().peek();
      coordination.addParticipant(new Participant() {
        @Override
        public void ended(Coordination arg0) throws Exception {
          // Nothing.
        }
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

      return ((BundleRevision)resource).getBundle().getBundleId();
    return -1;
  }
 
  public static void installResource(Resource resource, BasicSubsystem subsystem) {
    Coordination coordination = Utils.createCoordination(subsystem);
    try {
      ResourceInstaller.newInstance(coordination, resource, subsystem).install();
    }
    catch (Throwable t) {
      coordination.fail(t);
    }
    finally {
      try {
        coordination.end();
      }
      catch (CoordinationException e) {
        logger.error("Resource could not be installed", e);
      }
    }
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

    }

    public void test_createCoordination()
    {
        final String name = "test";
        final Coordination c1 = coordinator.create(name, 0);
        assertNotNull(c1);
        assertEquals(name, c1.getName());
        assertNull(coordinator.peek());
        assertNull(c1.getFailure());
        assertFalse(c1.isTerminated());
        assertTrue(c1.getParticipants().isEmpty());

        Exception cause = new Exception();
        assertTrue(c1.fail(cause));
        assertSame(cause, c1.getFailure());
        assertTrue(c1.isTerminated());
        assertNull(coordinator.peek());

        assertFalse(c1.fail(new Exception()));
        try
        {
            c1.end();
            fail("Expected CoordinationException.FAILED on end() after fail()");
        }
        catch (CoordinationException ce)
        {
            // expected failed
            assertEquals(CoordinationException.FAILED, ce.getType());
        }

        final Coordination c2 = coordinator.create(name, 0);
        assertNotNull(c2);
        assertEquals(name, c2.getName());
        assertNull(coordinator.peek());
        assertNull(c2.getFailure());
        assertFalse(c2.isTerminated());
        assertTrue(c2.getParticipants().isEmpty());

        c2.end();
        assertNull(c2.getFailure());
        assertTrue(c2.isTerminated());
        assertNull(coordinator.peek());

        assertFalse(c2.fail(new Exception()));
        try
        {
            c2.end();
            fail("Expected CoordinationException.ALREADY_ENDED on second end()");
        }
        catch (CoordinationException ce)
        {
            // expected already terminated
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

    }

    public void test_beginCoordination()
    {
        final String name = "test";
        final Coordination c1 = coordinator.begin(name, 0);
        assertNotNull(c1);
        assertEquals(name, c1.getName());

        assertEquals(c1, coordinator.peek());
        assertEquals(c1, coordinator.pop());

        assertNull(coordinator.peek());
        c1.push();
        assertEquals(c1, coordinator.peek());

        c1.end();
        assertNull(coordinator.peek());

        final Coordination c2 = coordinator.begin(name, 0);
        assertNotNull(c2);
        assertEquals(name, c2.getName());
        assertEquals(c2, coordinator.peek());
        c2.fail(new Exception());
        assertNotNull(coordinator.peek());
        try {
            c2.end();
            fail("Exception should be thrown");
        } catch (CoordinationException ce) {
            // ignore
        }
        assertNull(coordinator.peek());
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

    public void test_beginCoordination_stack()
    {
        final String name = "test";

        final Coordination c1 = coordinator.begin(name, 0);
        assertNotNull(c1);
        assertEquals(name, c1.getName());
        assertEquals(c1, coordinator.peek());

        final Coordination c2 = coordinator.begin(name, 0);
        assertNotNull(c2);
        assertEquals(name, c2.getName());
        assertEquals(c2, coordinator.peek());

        c2.end();
        assertEquals(c1, coordinator.peek());

        c1.end();
        assertNull(coordinator.peek());
    }
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

    public void test_beginCoordination_stack2()
    {
        final String name = "test";

        final Coordination c1 = coordinator.begin(name, 0);
        assertNotNull(c1);
        assertEquals(name, c1.getName());
        assertEquals(c1, coordinator.peek());

        final Coordination c2 = coordinator.begin(name, 0);
        assertNotNull(c2);
        assertEquals(name, c2.getName());
        assertEquals(c2, coordinator.peek());

        c1.end();
        assertNull(coordinator.peek());

        try
        {
            c2.end();
            fail("c2 is already terminated");
        }
        catch (CoordinationException ce)
        {
            assertEquals(CoordinationException.ALREADY_ENDED, ce.getType());
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

    }

    public void test_addParticipant_with_ended()
    {
        final String name = "test";
        final Coordination c1 = coordinator.create(name, 0);

        final MockParticipant p1 = new MockParticipant();
        c1.addParticipant(p1);
        assertTrue(c1.getParticipants().contains(p1));
        assertEquals(1, c1.getParticipants().size());

        c1.end();
        assertTrue(p1.ended);
        assertFalse(p1.failed);
        assertEquals(c1, p1.c);

        // assert order of call
        final Coordination c2 = coordinator.create(name, 0);
        final MockParticipant p21 = new MockParticipant();
        final MockParticipant p22 = new MockParticipant();
        c2.addParticipant(p21);
        c2.addParticipant(p22);
        assertTrue(c2.getParticipants().contains(p21));
        assertTrue(c2.getParticipants().contains(p22));
        assertEquals(2, c2.getParticipants().size());

        c2.end();
        assertTrue(p21.ended);
        assertEquals(c2, p21.c);
        assertTrue(p22.ended);
        assertEquals(c2, p22.c);
        assertTrue("p22 must be called before p21", p22.time < p21.time);

        // assert order of call with two registrations
        final Coordination c3 = coordinator.create(name, 0);
        final MockParticipant p31 = new MockParticipant();
        final MockParticipant p32 = new MockParticipant();
        c3.addParticipant(p31);
        c3.addParticipant(p32);
        c3.addParticipant(p31); // should be "ignored"
        assertTrue(c3.getParticipants().contains(p31));
        assertTrue(c3.getParticipants().contains(p32));
        assertEquals(2, c3.getParticipants().size());

        c3.end();
        assertTrue(p31.ended);
        assertEquals(c3, p31.c);
        assertTrue(p32.ended);
        assertEquals(c3, p32.c);
        assertTrue("p32 must be called before p31", p32.time < p31.time);
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

    }

    public void test_addParticipant_with_failed()
    {
        final String name = "test";
        final Coordination c1 = coordinator.create(name, 0);

        final MockParticipant p1 = new MockParticipant();
        c1.addParticipant(p1);
        assertTrue(c1.getParticipants().contains(p1));
        assertEquals(1, c1.getParticipants().size());

        c1.fail(new Exception());
        assertFalse(p1.ended);
        assertTrue(p1.failed);
        assertEquals(c1, p1.c);

        // assert order of call
        final Coordination c2 = coordinator.create(name, 0);
        final MockParticipant p21 = new MockParticipant();
        final MockParticipant p22 = new MockParticipant();
        c2.addParticipant(p21);
        c2.addParticipant(p22);
        assertTrue(c2.getParticipants().contains(p21));
        assertTrue(c2.getParticipants().contains(p22));
        assertEquals(2, c2.getParticipants().size());

        c2.fail(new Exception());
        assertTrue(p21.failed);
        assertEquals(c2, p21.c);
        assertTrue(p22.failed);
        assertEquals(c2, p22.c);
        assertTrue("p22 must be called before p21", p22.time < p21.time);

        // assert order of call with two registrations
        final Coordination c3 = coordinator.create(name, 0);
        final MockParticipant p31 = new MockParticipant();
        final MockParticipant p32 = new MockParticipant();
        c3.addParticipant(p31);
        c3.addParticipant(p32);
        c3.addParticipant(p31); // should be "ignored"
        assertTrue(c3.getParticipants().contains(p31));
        assertTrue(c3.getParticipants().contains(p32));
        assertEquals(2, c3.getParticipants().size());

        c3.fail(new Exception());
        assertTrue(p31.failed);
        assertEquals(c3, p31.c);
        assertTrue(p32.failed);
        assertEquals(c3, p32.c);
        assertTrue("p31 must be called before p32", p32.time < p31.time);
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

    }

    public void test_Coordination_timeout() throws InterruptedException
    {
        final String name = "test";
        final Coordination c1 = coordinator.create(name, 200);
        final MockParticipant p1 = new MockParticipant();
        c1.addParticipant(p1);
        assertTrue(c1.getParticipants().contains(p1));
        assertEquals(1, c1.getParticipants().size());

        // wait for the coordination to time out
        Thread.sleep(250);

        // expect coordination to have terminated
        assertTrue(c1.isTerminated());
        assertSame(Coordination.TIMEOUT, c1.getFailure());

        // expect Participant.failed() being called
        assertTrue(p1.failed);
        assertEquals(c1, p1.c);
    }
View Full Code Here

Examples of org.osgi.service.coordinator.Coordination

        final MockParticipant p1 = new MockParticipant();

        // ensure short timeout for participation
        mgr.configure(200);

        final Coordination c1 = coordinator.create(name1, 0);
        c1.addParticipant(p1);
        assertTrue(c1.getParticipants().contains(p1));
        assertEquals(1, c1.getParticipants().size());

        // preset p1PartFailure to be be sure the participation actually starts
        p1.addParticipantFailure(new Exception("Not Started yet"));

        Thread c2Thread = new Thread()
        {
            @Override
            public void run()
            {
                final Coordination c2 = coordinator.create(name2, 0);
                try
                {
                    p1.addParticipantFailure(null);
                    c2.addParticipant(p1);
                }
                catch (Throwable t)
                {
                    p1.addParticipantFailure(t);
                }
                finally
                {
                    c2.end();
                }
            }
        };
        c2Thread.start();
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.