@Test
public void testLifecycle() throws Exception {
Config config = ConfigFactory.empty();
SharedResourcesBrokerImpl<GobblinScopeTypes> topBroker = SharedResourcesBrokerFactory.createDefaultTopLevelBroker(config,
GobblinScopeTypes.GLOBAL.defaultScopeInstance());
SharedResourcesBrokerImpl<GobblinScopeTypes> jobBroker =
topBroker.newSubscopedBuilder(new JobScopeInstance("myJob", "job123")).build();
SharedResourcesBrokerImpl<GobblinScopeTypes>
containerBroker = topBroker.newSubscopedBuilder(GobblinScopeTypes.CONTAINER.defaultScopeInstance()).build();
SharedResourcesBrokerImpl<GobblinScopeTypes> taskBroker = jobBroker.newSubscopedBuilder(new TaskScopeInstance("taskabc"))
.withAdditionalParentBroker(containerBroker).build();
TestFactory.SharedResource jobResource =
taskBroker.getSharedResourceAtScope(new TestFactory<GobblinScopeTypes>(), new TestResourceKey("myKey"), GobblinScopeTypes.JOB);
TestFactory.SharedResource taskResource =
taskBroker.getSharedResourceAtScope(new TestFactory<GobblinScopeTypes>(), new TestResourceKey("myKey"), GobblinScopeTypes.TASK);
Assert.assertFalse(jobResource.isClosed());
Assert.assertFalse(taskResource.isClosed());
taskBroker.close();
Assert.assertFalse(jobResource.isClosed());
Assert.assertTrue(taskResource.isClosed());
TestFactory.SharedResource taskResource2 =
taskBroker.getSharedResourceAtScope(new TestFactory<GobblinScopeTypes>(), new TestResourceKey("myKey"), GobblinScopeTypes.TASK);
Assert.assertNotEquals(taskResource, taskResource2);
topBroker.close();
Assert.assertTrue(jobResource.isClosed());
Assert.assertTrue(taskResource.isClosed());
}