polygene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nic...@apache.org
Subject [1/3] zest-java git commit: ZEST-130 - FIrst attempt at the Quartz integration issue. Doesn't work. Quartz is too complex and has not been able to separate its concerns well enough, forcing all new JobStore implementations to do a lot more work than shou
Date Sat, 05 Dec 2015 09:20:16 GMT
Repository: zest-java
Updated Branches:
  refs/heads/ZEST-130 [created] 551c04d59


http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/java/org/apache/library/scheduler/SchedulerTest.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/library/scheduler/SchedulerTest.java
b/libraries/scheduler/src/test/java/org/apache/library/scheduler/SchedulerTest.java
new file mode 100644
index 0000000..2832ec1
--- /dev/null
+++ b/libraries/scheduler/src/test/java/org/apache/library/scheduler/SchedulerTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *
+ */
+
+package org.apache.library.scheduler;
+
+import java.util.Date;
+import org.apache.zest.api.entity.Identity;
+import org.apache.zest.api.unitofwork.UnitOfWork;
+import org.apache.zest.api.usecase.UsecaseBuilder;
+import org.apache.zest.bootstrap.AssemblyException;
+import org.apache.zest.bootstrap.ModuleAssembly;
+import org.apache.zest.entitystore.memory.MemoryEntityStoreService;
+import org.apache.zest.library.scheduler.SchedulerAssembler;
+import org.apache.zest.library.scheduler.SchedulerService;
+import org.apache.zest.library.scheduler.ZestJob;
+import org.apache.zest.library.scheduler.ZestJobDetail;
+import org.apache.zest.spi.uuid.UuidIdentityGeneratorService;
+import org.apache.zest.test.AbstractZestTest;
+import org.apache.zest.valueserialization.jackson.JacksonValueSerializationAssembler;
+import org.apache.zest.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+import org.junit.Test;
+import org.quartz.CronExpression;
+import org.quartz.CronTrigger;
+import org.quartz.Job;
+import org.quartz.JobDetail;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.Trigger;
+
+import static org.quartz.CronScheduleBuilder.cronSchedule;
+import static org.quartz.TriggerBuilder.newTrigger;
+
+public class SchedulerTest extends AbstractZestTest
+{
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        new SchedulerAssembler().assemble( module );
+        module.services( MemoryEntityStoreService.class );
+        module.services( UuidIdentityGeneratorService.class );
+        new JacksonValueSerializationAssembler().assemble( module );
+        module.entities( ZestJob.class ).withMixins( HelloJob.class );
+    }
+
+    @Test
+    public void givenSchedulerWhenScheduleJobExpectJobExecuted()
+        throws Exception
+    {
+        try(UnitOfWork uow = module.newUnitOfWork( UsecaseBuilder.newUsecase( "testing" ))
)
+        {
+            SchedulerService underTest = module.findService( SchedulerService.class ).get();
+            ZestJob job = uow.newEntity( ZestJob.class, "job://group1.job1" );
+            ZestJobDetail details = underTest.createJobDetails( job );
+
+            CronTrigger trigger = newTrigger()
+                .withIdentity("trigger1", "group1")
+                .withSchedule(cronSchedule("* * * * * ?"))
+                .build();
+            underTest.getScheduler().scheduleJob( details, trigger );
+            uow.complete();
+
+        }
+        Thread.sleep(15000);
+    }
+
+    public static abstract class HelloJob
+        implements ZestJob
+    {
+        @Override
+        public void execute( JobExecutionContext context )
+            throws JobExecutionException
+        {
+            System.out.println("Hello, Quartz!");
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/AbstractSchedulerTest.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/AbstractSchedulerTest.java
b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/AbstractSchedulerTest.java
deleted file mode 100644
index 02d5636..0000000
--- a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/AbstractSchedulerTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2010-2014, Paul Merlin.
- *
- * 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.
- */
-package org.apache.zest.library.scheduler;
-
-import org.apache.zest.api.entity.EntityBuilder;
-import org.apache.zest.api.entity.IdentityGenerator;
-import org.apache.zest.api.unitofwork.UnitOfWork;
-import org.apache.zest.api.value.ValueSerialization;
-import org.apache.zest.bootstrap.AssemblyException;
-import org.apache.zest.bootstrap.ModuleAssembly;
-import org.apache.zest.bootstrap.ServiceDeclaration;
-import org.apache.zest.entitystore.memory.MemoryEntityStoreService;
-import org.apache.zest.index.rdf.assembly.RdfMemoryStoreAssembler;
-import org.apache.zest.spi.uuid.UuidIdentityGeneratorService;
-import org.apache.zest.test.AbstractZestTest;
-import org.apache.zest.test.EntityTestAssembler;
-import org.apache.zest.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-public abstract class AbstractSchedulerTest
-    extends AbstractZestTest
-{
-    @Override
-    public final void assemble( ModuleAssembly assembly )
-        throws AssemblyException
-    {
-        assembly.entities( FooTask.class );
-
-        assembly.services( MemoryEntityStoreService.class );
-        assembly.services( UuidIdentityGeneratorService.class).withMixins( CountingIdentityGeneratorService.class
);
-        assembly.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON
);
-        new RdfMemoryStoreAssembler().assemble( assembly );
-
-        onAssembly( assembly );
-    }
-
-    protected abstract void onAssembly( ModuleAssembly module )
-        throws AssemblyException;
-
-    protected final FooTask createFooTask( UnitOfWork uow, String name, String input )
-    {
-        EntityBuilder<FooTask> builder = uow.newEntityBuilder( FooTask.class );
-        FooTask task = builder.instance();
-        task.name().set( name );
-        task.input().set( input );
-        return builder.newInstance();
-    }
-
-    public static class CountingIdentityGeneratorService
-        implements IdentityGenerator
-    {
-        int counter = 0;
-
-        @Override
-        public String generate( Class<?> compositeType )
-        {
-            return compositeType.getSimpleName() + ":" + counter++;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/Constants.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/Constants.java
b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/Constants.java
deleted file mode 100644
index 55de82f..0000000
--- a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/Constants.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2010-2014, Paul Merlin.
- * Copyright (c) 2012, Niclas Hedhman.
- *
- * 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.
- */
-package org.apache.zest.library.scheduler;
-
-// TODO Rename to TestConstants
-public interface Constants
-{
-    String BAR = "bar";
-    String BAZAR = "bazar";
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
deleted file mode 100644
index ad210a2..0000000
--- a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/CronScheduleTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.
- *
- */
-
-package org.apache.zest.library.scheduler;
-
-import org.apache.zest.api.entity.EntityBuilder;
-import org.apache.zest.api.unitofwork.UnitOfWork;
-import org.apache.zest.api.value.ValueSerialization;
-import org.apache.zest.bootstrap.AssemblyException;
-import org.apache.zest.bootstrap.ModuleAssembly;
-import org.apache.zest.entitystore.memory.MemoryEntityStoreService;
-import org.apache.zest.spi.uuid.UuidIdentityGeneratorService;
-import org.apache.zest.test.AbstractZestTest;
-import org.apache.zest.valueserialization.orgjson.OrgJsonValueSerializationService;
-import org.joda.time.DateTime;
-import org.junit.Test;
-
-import static org.hamcrest.number.IsCloseTo.closeTo;
-import static org.junit.Assert.assertThat;
-
-public class CronScheduleTest extends AbstractZestTest
-{
-    @Override
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.services( OrgJsonValueSerializationService.class )
-            .taggedWith( ValueSerialization.Formats.JSON );
-        module.services( MemoryEntityStoreService.class );
-        module.services( UuidIdentityGeneratorService.class );
-        module.entities( CronSchedule.class );
-        module.entities( Task.class ).withMixins( DummyTask.class );
-    }
-
-    @Test
-    public void given15SecondCronWhenRequestingNextExpectEvery15Seconds()
-        throws Exception
-    {
-
-        UnitOfWork work = module.newUnitOfWork();
-        EntityBuilder<Task> builder1 = work.newEntityBuilder( Task.class );
-        builder1.instance().name().set( "abc" );
-        Task task = builder1.newInstance();
-        EntityBuilder<CronSchedule> builder = work.newEntityBuilder( CronSchedule.class
);
-        builder.instance().start().set( DateTime.now() );
-        builder.instance().task().set( task );
-        builder.instance().cronExpression().set( "*/15 * * * * *" );
-        CronSchedule schedule = builder.newInstance();
-        long runAt = schedule.nextRun( System.currentTimeMillis() );
-        for( int i = 0; i < 1000; i++ )
-        {
-            long nextRun = schedule.nextRun( runAt + 1000 );  // Needs to push forward one
second...
-            assertThat( "At:" + i, (double) nextRun, closeTo( runAt + 15000, 50 ) );
-        }
-        work.discard();
-    }
-
-    public static abstract class DummyTask implements Task
-    {
-        @Override
-        public void run()
-        {
-            System.out.println( "Dummy" );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/FooTask.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/FooTask.java
b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/FooTask.java
deleted file mode 100644
index 63fbee4..0000000
--- a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/FooTask.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2010-2014, Paul Merlin.
- *
- * 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.
- */
-package org.apache.zest.library.scheduler;
-
-import org.apache.zest.api.common.Optional;
-import org.apache.zest.api.common.UseDefaults;
-import org.apache.zest.api.entity.Identity;
-import org.apache.zest.api.injection.scope.This;
-import org.apache.zest.api.mixin.Mixins;
-import org.apache.zest.api.property.Property;
-import org.apache.zest.api.unitofwork.concern.UnitOfWorkPropagation;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.apache.zest.api.unitofwork.concern.UnitOfWorkPropagation.Propagation.REQUIRES_NEW;
-
-@Mixins( FooTask.Mixin.class )
-public interface FooTask
-    extends Task, Identity
-{
-    Property<String> input();
-
-    @Optional
-    Property<String> output();
-
-    @UseDefaults
-    Property<Integer> runCounter();
-
-    abstract class Mixin
-        implements Task
-    {
-        private static final Logger LOGGER = LoggerFactory.getLogger( FooTask.class );
-
-        @This
-        private FooTask me;
-
-        @Override
-        public void run()
-        {
-            LOGGER.info( "FooTask.run({})", me.input().get() );
-            synchronized( this )
-            {
-                me.runCounter().set( me.runCounter().get() + 1 );
-                LOGGER.info( "Identity: " + me.identity().get() );
-                LOGGER.info( " Counter: " + me.runCounter().get() );
-            }
-            if( me.input().get().equals( Constants.BAZAR ) )
-            {
-                if( me.output().get() == null )
-                {
-                    me.output().set( Constants.BAR );
-                }
-                else
-                {
-                    me.output().set( me.output().get() + Constants.BAR );
-                }
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/SchedulerTest.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/SchedulerTest.java
b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/SchedulerTest.java
deleted file mode 100644
index 15a356c..0000000
--- a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/SchedulerTest.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 2010-2014, Paul Merlin. All Rights Reserved.
- * Copyright (c) 2012, Niclas Hedhman. All Rights Reserved.
- *
- * 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.
- */
-package org.apache.zest.library.scheduler;
-
-import java.util.concurrent.Callable;
-import org.apache.zest.api.common.Visibility;
-import org.apache.zest.api.unitofwork.UnitOfWork;
-import org.apache.zest.api.unitofwork.UnitOfWorkCompletionException;
-import org.apache.zest.api.usecase.Usecase;
-import org.apache.zest.api.usecase.UsecaseBuilder;
-import org.apache.zest.bootstrap.AssemblyException;
-import org.apache.zest.bootstrap.ModuleAssembly;
-import org.apache.zest.library.scheduler.bootstrap.SchedulerAssembler;
-import org.apache.zest.library.scheduler.timeline.Timeline;
-import org.joda.time.DateTime;
-import org.joda.time.Interval;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static com.jayway.awaitility.Awaitility.await;
-import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.apache.zest.functional.Iterables.count;
-import static org.apache.zest.library.scheduler.Constants.BAR;
-import static org.apache.zest.library.scheduler.Constants.BAZAR;
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.junit.Assert.assertThat;
-
-public class SchedulerTest
-    extends AbstractSchedulerTest
-{
-    private static final Logger LOGGER = LoggerFactory.getLogger( SchedulerTest.class );
-
-    @Override
-    protected void onAssembly( ModuleAssembly testAssembly )
-        throws AssemblyException
-    {
-        @SuppressWarnings( "UnnecessaryLocalVariable" )
-        ModuleAssembly moduleAssembly = testAssembly;
-
-        @SuppressWarnings( "UnnecessaryLocalVariable" )
-        ModuleAssembly configModuleAssembly = testAssembly;
-
-        // START SNIPPET: assembly
-        new SchedulerAssembler().visibleIn( Visibility.application )
-            .withConfig( configModuleAssembly, Visibility.layer )
-            .withTimeline()
-            .assemble( moduleAssembly );
-        // END SNIPPET: assembly
-    }
-
-    @Test
-    public void testTaskWithoutScheduling()
-        throws UnitOfWorkCompletionException
-    {
-        Usecase usecase = UsecaseBuilder.newUsecase( "testTask" );
-        String taskId;
-        try( UnitOfWork uow = module.newUnitOfWork( usecase ) )
-        {
-            FooTask task = createFooTask( uow, "TestTask", BAZAR );
-            taskId = task.identity().get();
-            task.run();
-            uow.complete();
-        }
-        try( UnitOfWork uow = module.newUnitOfWork( usecase ) )
-        {
-            FooTask task = uow.get( FooTask.class, taskId );
-            assertThat( task.runCounter().get(), equalTo( 1 ) );
-            assertThat( task.output().get(), equalTo( BAR ) );
-        }
-    }
-
-    @Test
-    public void testMinutely()
-        throws UnitOfWorkCompletionException
-    {
-        Usecase usecase = UsecaseBuilder.newUsecase( "TestMinutely" );
-        DateTime start = new DateTime();
-        String taskIdentity;
-        long sleepMillis;
-        try( UnitOfWork uow = module.newUnitOfWork( usecase ) )
-        {
-            Scheduler scheduler = module.findService( Scheduler.class ).get();
-
-            FooTask task = createFooTask( uow, usecase.name(), BAZAR );
-            taskIdentity = task.identity().get();
-
-            DateTime expectedRun = start.withMillisOfSecond( 0 ).withSecondOfMinute( 0 ).plusMinutes(
1 );
-            scheduler.scheduleCron( task, "@minutely" );
-
-            uow.complete();
-
-            sleepMillis = new Interval( start, expectedRun ).toDurationMillis();
-            LOGGER.info( "Task scheduled on {} to be run at {}", start.getMillis(), expectedRun.getMillis()
);
-        }
-
-        await( usecase.name() )
-            .atMost( sleepMillis + 5000, MILLISECONDS )
-            .until( taskOutput( taskIdentity ), equalTo( 1 ) );
-
-        //noinspection unused
-        try( UnitOfWork uow = module.newUnitOfWork( usecase ) )
-        {
-            Timeline timeline = module.findService( Timeline.class ).get();
-            DateTime now = new DateTime();
-
-            // Queries returning past records
-            assertThat( count( timeline.getLastRecords( 5 ) ),
-                        is( 2L ) );
-            assertThat( count( timeline.getRecords( start.getMillis(), now.getMillis() )
),
-                        is( 2L ) );
-
-            // Queries returning future records
-            assertThat( count( timeline.getNextRecords( 4 ) ),
-                        is( 4L ) );
-            assertThat( count( timeline.getRecords( now.getMillis() + 100, now.plusMinutes(
5 ).getMillis() ) ),
-                        is( 5L ) );
-
-            // Queries returning mixed past and future records
-            assertThat( count( timeline.getRecords( start.getMillis(), now.plusMinutes( 5
).getMillis() ) ),
-                        is( 7L ) );
-        }
-    }
-
-    @Test
-    public void testOnce()
-        throws UnitOfWorkCompletionException, InterruptedException
-    {
-        System.setProperty( "zest.entity.print.state", Boolean.TRUE.toString() );
-        final Usecase usecase = UsecaseBuilder.newUsecase( "TestOnce" );
-        final String taskIdentity;
-        Scheduler scheduler = module.findService( Scheduler.class ).get();
-
-        Schedule schedule1;
-        Schedule schedule2;
-        Schedule schedule3;
-        Schedule schedule4;
-        try( UnitOfWork uow = module.newUnitOfWork( usecase ) )
-        {
-            FooTask task = createFooTask( uow, usecase.name(), BAZAR );
-            taskIdentity = task.identity().get();
-
-            schedule1 = scheduler.scheduleOnce( task, 1 );
-            schedule2 = scheduler.scheduleOnce( task, 2 );
-            schedule3 = scheduler.scheduleOnce( task, 3 );
-            schedule4 = scheduler.scheduleOnce( task, 4 );
-
-            uow.complete();
-        }
-        await( usecase.name() )
-            .atMost( 6, SECONDS )
-            .until( taskOutput( taskIdentity ), equalTo( 4 ) );
-
-        try( UnitOfWork uow = module.newUnitOfWork( usecase ) )
-        {
-            schedule1 = uow.get( schedule1 );
-            schedule2 = uow.get( schedule2 );
-            schedule3 = uow.get( schedule3 );
-            schedule4 = uow.get( schedule4 );
-            assertThat(schedule1.cancelled().get(), equalTo( false ));
-            assertThat(schedule2.cancelled().get(), equalTo( false ));
-            assertThat(schedule3.cancelled().get(), equalTo( false ));
-            assertThat(schedule4.cancelled().get(), equalTo( false ));
-            assertThat(schedule1.done().get(), equalTo( true ));
-            assertThat(schedule2.done().get(), equalTo( true ));
-            assertThat(schedule3.done().get(), equalTo( true ));
-            assertThat(schedule4.done().get(), equalTo( true ));
-            assertThat(schedule1.running().get(), equalTo( false ));
-            assertThat(schedule2.running().get(), equalTo( false ));
-            assertThat(schedule3.running().get(), equalTo( false ));
-            assertThat(schedule4.running().get(), equalTo( false ));
-        }
-    }
-
-    private Callable<Integer> taskOutput( final String taskIdentity )
-    {
-        return () -> {
-            try( UnitOfWork uow = module.newUnitOfWork() )
-            {
-                FooTask task = uow.get( FooTask.class, taskIdentity );
-                Integer count = task.runCounter().get();
-                uow.discard();
-                return count;
-            }
-        };
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/docsupport/SchedulerDocs.java
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/docsupport/SchedulerDocs.java
b/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/docsupport/SchedulerDocs.java
deleted file mode 100644
index 998d36b..0000000
--- a/libraries/scheduler/src/test/java/org/apache/zest/library/scheduler/docsupport/SchedulerDocs.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2010-2014, Paul Merlin.
- * Copyright (c) 2012, Niclas Hedhman.
- *
- * 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.
- */
-package org.apache.zest.library.scheduler.docsupport;
-
-import org.apache.zest.api.association.Association;
-import org.apache.zest.api.injection.scope.Service;
-import org.apache.zest.api.injection.scope.This;
-import org.apache.zest.api.property.Property;
-import org.apache.zest.api.unitofwork.concern.UnitOfWorkDiscardOn;
-import org.apache.zest.api.unitofwork.concern.UnitOfWorkPropagation;
-import org.apache.zest.api.unitofwork.concern.UnitOfWorkRetry;
-import org.apache.zest.library.scheduler.Scheduler;
-import org.apache.zest.library.scheduler.Task;
-import org.apache.zest.library.scheduler.Schedule;
-import org.apache.zest.library.scheduler.timeline.Timeline;
-
-public class SchedulerDocs
-{
-
-    // START SNIPPET: timeline
-    @Service
-    Timeline timeline;
-// END SNIPPET: timeline
-
-    // START SNIPPET: 2
-    @Service
-    Scheduler scheduler;
-
-    public void method()
-    {
-        MyTaskEntity myTask = todo();
-        Schedule schedule = scheduler.scheduleOnce( myTask, 10 );
-        // myTask will be run in 10 seconds from now
-    }
-
-    // END SNIPPET: 2
-    MyTaskEntity todo()
-    {
-        return null;
-    }
-
-    // START SNIPPET: 1
-    interface MyTaskEntity extends Task
-    {
-        Property<String> myTaskState();
-
-        Association<AnotherEntity> anotherEntity();
-    }
-
-    class MyTaskMixin implements Runnable
-    {
-        @This
-        MyTaskEntity me;
-
-        @Override
-        public void run()
-        {
-            me.myTaskState().set( me.anotherEntity().get().doSomeStuff( me.myTaskState().get()
) );
-        }
-    }
-
-    // END SNIPPET: 1
-    interface AnotherEntity
-    {
-        String doSomeStuff( String p );
-    }
-
-    public class MyTask implements Runnable
-    {
-
-        // START SNIPPET: strategy
-        @Override
-        @UnitOfWorkRetry( retries = 3 )
-        @UnitOfWorkDiscardOn( IllegalArgumentException.class )
-        @UnitOfWorkPropagation( value = UnitOfWorkPropagation.Propagation.REQUIRES_NEW, usecase
= "Load Data" )
-        public void run()
-        {
-            // END SNIPPET: strategy
-
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/551c04d5/libraries/scheduler/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/libraries/scheduler/src/test/resources/logback-test.xml b/libraries/scheduler/src/test/resources/logback-test.xml
deleted file mode 100644
index 256127e..0000000
--- a/libraries/scheduler/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
--->
-<configuration>
-
-    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>@%-10thread %-5level %logger{20} - %msg%n</Pattern>
-        </layout>
-    </appender>
-
-    <root level="info">
-        <appender-ref ref="stdout" />
-    </root>
-
-    <logger name="org.apache.zest.library.scheduler" level="trace"/>
-
-</configuration>
\ No newline at end of file


Mime
View raw message