You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@aurora.apache.org by Kevin Sweeney <ke...@apache.org> on 2015/07/23 02:07:34 UTC

Review Request 36713: Make Storage.Work an interface instead of an abstract class.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36713/
-----------------------------------------------------------

Review request for Aurora, Bill Farner and Zameer Manji.


Repository: aurora


Description
-------

Make `Storage.Work` and friends interfaces instead of abstract classes.

This allows you to pass lambdas and method references to calls to `storage.work`. The main ripple is that as interface methods, `apply` and `execute` must be public. This was done programmatically with a sed script.


Diffs
-----

  src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java 5716f23e7a3e4179624c3dddc6e3350a7074b4d8 
  src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 3931d02810137c0b397a315323ef60c5fd2f191f 
  src/jmh/java/org/apache/aurora/benchmark/ThriftApiBenchmarks.java c3f8b251d80d86323e364c978e77b5615d1f9f65 
  src/jmh/java/org/apache/aurora/benchmark/UpdateStoreBenchmarks.java cc4274103a8b4577fcbbbceac6d38496bac0c5cd 
  src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 32751896b43e7b0e92b1b9166f7606ab816425ef 
  src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java ede8517ff2bf989bd091aca97e2a667c5c61d1f5 
  src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java a33bb8ba7e70fd4a9bc3ad0f6f8c6ae661e65367 
  src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java 0081c5c95f8079a218078d62f47cf2d6f7a259c0 
  src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 7c8a00809365b5d9f28acf9832147bbbdbbc2b48 
  src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java ef88d98f621fc8a2320cadf66182e0dca8d2b97b 
  src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java b86bd281082b37d415237009db0bdae7eb29a570 
  src/main/java/org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage.java 64aa10d15fb2caa8d5be08ed2b57cd2f6e7e1aa2 
  src/main/java/org/apache/aurora/scheduler/storage/Storage.java 21f6a642df48b66614e210be4a9a99d3cd823501 
  src/main/java/org/apache/aurora/scheduler/storage/backup/Recovery.java fb0dbaec0f4cbd1ad12b808d795299b736552c6b 
  src/main/java/org/apache/aurora/scheduler/storage/backup/TemporaryStorage.java d0156d330deb5d862fa54513fdbb6561d1c91548 
  src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java f1916a874798fa14faf588a8def02618a6ede698 
  src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java 82be3670338bfd976cf4ea0d93632c93703da016 
  src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java 64b5b9548506b25fecce5113341f25b35b0f0e47 
  src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java 22786dedd0db014f518eb5701a985559d189adad 
  src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java ff067013f9b634506dbd7cbd015f9e129831e72a 
  src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java 7894668854ff4fae68168719dce2790916c6b548 
  src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java b8d88c7e299aebaea5e6ed5ae91d70cc8461ed32 
  src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java 25d8da67a3f8fe3d8b385932743a3d34dec4d25e 
  src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerTest.java 52af3642eb64a8895a625539d7c5b29ac9d6aad4 
  src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java 262f6686ff4c4c4aa7e32ad026c65f813d15c8c5 
  src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java ed834bce2f1502605a8ef83d2812eea184bcc0a9 
  src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java c7329c93329811daa6341d6cd0e08de6d347671a 
  src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java 775bb71f94582020643c12fd19a15d0d6732c699 
  src/test/java/org/apache/aurora/scheduler/storage/StorageBackfillTest.java a76ae48fc63dfeff24c733507dd6bcac30ef2629 
  src/test/java/org/apache/aurora/scheduler/storage/db/DbAttributeStoreTest.java a7de023249dc2f84eee9798d02181f6c52414547 
  src/test/java/org/apache/aurora/scheduler/storage/db/DbStorageTest.java 15a95897aff0a414c0087140a09e12ee3d67ace7 
  src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java eabce167191b77cb7f44055f1b0edfc74dfdcf5a 
  src/test/java/org/apache/aurora/scheduler/storage/mem/InMemTaskStoreTest.java 77efffb3a89d8ae54e7e0e4879c5dda2a6d9b4c8 
  src/test/java/org/apache/aurora/scheduler/storage/mem/StorageTransactionTest.java 4ae194c4f86b609729cfdfdaeda369733efae0b2 
  src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java f5e1dd0ad205bd6e87b660cc7849a0bd92c787a7 

Diff: https://reviews.apache.org/r/36713/diff/


Testing
-------

./gradlew -Pq build


Thanks,

Kevin Sweeney


Re: Review Request 36713: Make Storage.Work an interface instead of an abstract class.

Posted by Kevin Sweeney <ke...@apache.org>.

> On July 22, 2015, 5:52 p.m., Zameer Manji wrote:
> > src/main/java/org/apache/aurora/scheduler/storage/Storage.java, line 136
> > <https://reviews.apache.org/r/36713/diff/1/?file=1019274#file1019274line136>
> >
> >     Unsure if making this non final is desired.

It's a limitation of interfaces due to backwards-compatibility - they can't impose restrictions on their implementers. In practice I don't think this is likely to be a problem as writing out `Void apply` is ugly and should trigger a code smell warning.


- Kevin


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36713/#review92694
-----------------------------------------------------------


On July 22, 2015, 5:07 p.m., Kevin Sweeney wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36713/
> -----------------------------------------------------------
> 
> (Updated July 22, 2015, 5:07 p.m.)
> 
> 
> Review request for Aurora, Bill Farner and Zameer Manji.
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Make `Storage.Work` and friends interfaces instead of abstract classes.
> 
> This allows you to pass lambdas and method references to calls to `storage.work`. The main ripple is that as interface methods, `apply` and `execute` must be public. This was done programmatically with a sed script.
> 
> 
> Diffs
> -----
> 
>   src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java 5716f23e7a3e4179624c3dddc6e3350a7074b4d8 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 3931d02810137c0b397a315323ef60c5fd2f191f 
>   src/jmh/java/org/apache/aurora/benchmark/ThriftApiBenchmarks.java c3f8b251d80d86323e364c978e77b5615d1f9f65 
>   src/jmh/java/org/apache/aurora/benchmark/UpdateStoreBenchmarks.java cc4274103a8b4577fcbbbceac6d38496bac0c5cd 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 32751896b43e7b0e92b1b9166f7606ab816425ef 
>   src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java ede8517ff2bf989bd091aca97e2a667c5c61d1f5 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java a33bb8ba7e70fd4a9bc3ad0f6f8c6ae661e65367 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java 0081c5c95f8079a218078d62f47cf2d6f7a259c0 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 7c8a00809365b5d9f28acf9832147bbbdbbc2b48 
>   src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java ef88d98f621fc8a2320cadf66182e0dca8d2b97b 
>   src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java b86bd281082b37d415237009db0bdae7eb29a570 
>   src/main/java/org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage.java 64aa10d15fb2caa8d5be08ed2b57cd2f6e7e1aa2 
>   src/main/java/org/apache/aurora/scheduler/storage/Storage.java 21f6a642df48b66614e210be4a9a99d3cd823501 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/Recovery.java fb0dbaec0f4cbd1ad12b808d795299b736552c6b 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/TemporaryStorage.java d0156d330deb5d862fa54513fdbb6561d1c91548 
>   src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java f1916a874798fa14faf588a8def02618a6ede698 
>   src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java 82be3670338bfd976cf4ea0d93632c93703da016 
>   src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java 64b5b9548506b25fecce5113341f25b35b0f0e47 
>   src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java 22786dedd0db014f518eb5701a985559d189adad 
>   src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java ff067013f9b634506dbd7cbd015f9e129831e72a 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java 7894668854ff4fae68168719dce2790916c6b548 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java b8d88c7e299aebaea5e6ed5ae91d70cc8461ed32 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java 25d8da67a3f8fe3d8b385932743a3d34dec4d25e 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerTest.java 52af3642eb64a8895a625539d7c5b29ac9d6aad4 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java 262f6686ff4c4c4aa7e32ad026c65f813d15c8c5 
>   src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java ed834bce2f1502605a8ef83d2812eea184bcc0a9 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java c7329c93329811daa6341d6cd0e08de6d347671a 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java 775bb71f94582020643c12fd19a15d0d6732c699 
>   src/test/java/org/apache/aurora/scheduler/storage/StorageBackfillTest.java a76ae48fc63dfeff24c733507dd6bcac30ef2629 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbAttributeStoreTest.java a7de023249dc2f84eee9798d02181f6c52414547 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbStorageTest.java 15a95897aff0a414c0087140a09e12ee3d67ace7 
>   src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java eabce167191b77cb7f44055f1b0edfc74dfdcf5a 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/InMemTaskStoreTest.java 77efffb3a89d8ae54e7e0e4879c5dda2a6d9b4c8 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/StorageTransactionTest.java 4ae194c4f86b609729cfdfdaeda369733efae0b2 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java f5e1dd0ad205bd6e87b660cc7849a0bd92c787a7 
> 
> Diff: https://reviews.apache.org/r/36713/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew -Pq build
> 
> 
> Thanks,
> 
> Kevin Sweeney
> 
>


Re: Review Request 36713: Make Storage.Work an interface instead of an abstract class.

Posted by Zameer Manji <zm...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36713/#review92694
-----------------------------------------------------------

Ship it!


LGTM modulo concerns of making apply non-final. This smells like potential trouble in the future but I don't think the impact will be high.


src/main/java/org/apache/aurora/scheduler/storage/Storage.java (line 136)
<https://reviews.apache.org/r/36713/#comment146925>

    Unsure if making this non final is desired.


- Zameer Manji


On July 22, 2015, 5:07 p.m., Kevin Sweeney wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36713/
> -----------------------------------------------------------
> 
> (Updated July 22, 2015, 5:07 p.m.)
> 
> 
> Review request for Aurora, Bill Farner and Zameer Manji.
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Make `Storage.Work` and friends interfaces instead of abstract classes.
> 
> This allows you to pass lambdas and method references to calls to `storage.work`. The main ripple is that as interface methods, `apply` and `execute` must be public. This was done programmatically with a sed script.
> 
> 
> Diffs
> -----
> 
>   src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java 5716f23e7a3e4179624c3dddc6e3350a7074b4d8 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 3931d02810137c0b397a315323ef60c5fd2f191f 
>   src/jmh/java/org/apache/aurora/benchmark/ThriftApiBenchmarks.java c3f8b251d80d86323e364c978e77b5615d1f9f65 
>   src/jmh/java/org/apache/aurora/benchmark/UpdateStoreBenchmarks.java cc4274103a8b4577fcbbbceac6d38496bac0c5cd 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 32751896b43e7b0e92b1b9166f7606ab816425ef 
>   src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java ede8517ff2bf989bd091aca97e2a667c5c61d1f5 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java a33bb8ba7e70fd4a9bc3ad0f6f8c6ae661e65367 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java 0081c5c95f8079a218078d62f47cf2d6f7a259c0 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 7c8a00809365b5d9f28acf9832147bbbdbbc2b48 
>   src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java ef88d98f621fc8a2320cadf66182e0dca8d2b97b 
>   src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java b86bd281082b37d415237009db0bdae7eb29a570 
>   src/main/java/org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage.java 64aa10d15fb2caa8d5be08ed2b57cd2f6e7e1aa2 
>   src/main/java/org/apache/aurora/scheduler/storage/Storage.java 21f6a642df48b66614e210be4a9a99d3cd823501 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/Recovery.java fb0dbaec0f4cbd1ad12b808d795299b736552c6b 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/TemporaryStorage.java d0156d330deb5d862fa54513fdbb6561d1c91548 
>   src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java f1916a874798fa14faf588a8def02618a6ede698 
>   src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java 82be3670338bfd976cf4ea0d93632c93703da016 
>   src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java 64b5b9548506b25fecce5113341f25b35b0f0e47 
>   src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java 22786dedd0db014f518eb5701a985559d189adad 
>   src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java ff067013f9b634506dbd7cbd015f9e129831e72a 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java 7894668854ff4fae68168719dce2790916c6b548 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java b8d88c7e299aebaea5e6ed5ae91d70cc8461ed32 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java 25d8da67a3f8fe3d8b385932743a3d34dec4d25e 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerTest.java 52af3642eb64a8895a625539d7c5b29ac9d6aad4 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java 262f6686ff4c4c4aa7e32ad026c65f813d15c8c5 
>   src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java ed834bce2f1502605a8ef83d2812eea184bcc0a9 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java c7329c93329811daa6341d6cd0e08de6d347671a 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java 775bb71f94582020643c12fd19a15d0d6732c699 
>   src/test/java/org/apache/aurora/scheduler/storage/StorageBackfillTest.java a76ae48fc63dfeff24c733507dd6bcac30ef2629 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbAttributeStoreTest.java a7de023249dc2f84eee9798d02181f6c52414547 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbStorageTest.java 15a95897aff0a414c0087140a09e12ee3d67ace7 
>   src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java eabce167191b77cb7f44055f1b0edfc74dfdcf5a 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/InMemTaskStoreTest.java 77efffb3a89d8ae54e7e0e4879c5dda2a6d9b4c8 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/StorageTransactionTest.java 4ae194c4f86b609729cfdfdaeda369733efae0b2 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java f5e1dd0ad205bd6e87b660cc7849a0bd92c787a7 
> 
> Diff: https://reviews.apache.org/r/36713/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew -Pq build
> 
> 
> Thanks,
> 
> Kevin Sweeney
> 
>


Re: Review Request 36713: Make Storage.Work an interface instead of an abstract class.

Posted by Aurora ReviewBot <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36713/#review92693
-----------------------------------------------------------

Ship it!


Master (38c2e76) is green with this patch.
  ./build-support/jenkins/build.sh

I will refresh this build result if you post a review containing "@ReviewBot retry"

- Aurora ReviewBot


On July 23, 2015, 12:07 a.m., Kevin Sweeney wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36713/
> -----------------------------------------------------------
> 
> (Updated July 23, 2015, 12:07 a.m.)
> 
> 
> Review request for Aurora, Bill Farner and Zameer Manji.
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Make `Storage.Work` and friends interfaces instead of abstract classes.
> 
> This allows you to pass lambdas and method references to calls to `storage.work`. The main ripple is that as interface methods, `apply` and `execute` must be public. This was done programmatically with a sed script.
> 
> 
> Diffs
> -----
> 
>   src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java 5716f23e7a3e4179624c3dddc6e3350a7074b4d8 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 3931d02810137c0b397a315323ef60c5fd2f191f 
>   src/jmh/java/org/apache/aurora/benchmark/ThriftApiBenchmarks.java c3f8b251d80d86323e364c978e77b5615d1f9f65 
>   src/jmh/java/org/apache/aurora/benchmark/UpdateStoreBenchmarks.java cc4274103a8b4577fcbbbceac6d38496bac0c5cd 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 32751896b43e7b0e92b1b9166f7606ab816425ef 
>   src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java ede8517ff2bf989bd091aca97e2a667c5c61d1f5 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java a33bb8ba7e70fd4a9bc3ad0f6f8c6ae661e65367 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java 0081c5c95f8079a218078d62f47cf2d6f7a259c0 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 7c8a00809365b5d9f28acf9832147bbbdbbc2b48 
>   src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java ef88d98f621fc8a2320cadf66182e0dca8d2b97b 
>   src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java b86bd281082b37d415237009db0bdae7eb29a570 
>   src/main/java/org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage.java 64aa10d15fb2caa8d5be08ed2b57cd2f6e7e1aa2 
>   src/main/java/org/apache/aurora/scheduler/storage/Storage.java 21f6a642df48b66614e210be4a9a99d3cd823501 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/Recovery.java fb0dbaec0f4cbd1ad12b808d795299b736552c6b 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/TemporaryStorage.java d0156d330deb5d862fa54513fdbb6561d1c91548 
>   src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java f1916a874798fa14faf588a8def02618a6ede698 
>   src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java 82be3670338bfd976cf4ea0d93632c93703da016 
>   src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java 64b5b9548506b25fecce5113341f25b35b0f0e47 
>   src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java 22786dedd0db014f518eb5701a985559d189adad 
>   src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java ff067013f9b634506dbd7cbd015f9e129831e72a 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java 7894668854ff4fae68168719dce2790916c6b548 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java b8d88c7e299aebaea5e6ed5ae91d70cc8461ed32 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java 25d8da67a3f8fe3d8b385932743a3d34dec4d25e 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerTest.java 52af3642eb64a8895a625539d7c5b29ac9d6aad4 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java 262f6686ff4c4c4aa7e32ad026c65f813d15c8c5 
>   src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java ed834bce2f1502605a8ef83d2812eea184bcc0a9 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java c7329c93329811daa6341d6cd0e08de6d347671a 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java 775bb71f94582020643c12fd19a15d0d6732c699 
>   src/test/java/org/apache/aurora/scheduler/storage/StorageBackfillTest.java a76ae48fc63dfeff24c733507dd6bcac30ef2629 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbAttributeStoreTest.java a7de023249dc2f84eee9798d02181f6c52414547 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbStorageTest.java 15a95897aff0a414c0087140a09e12ee3d67ace7 
>   src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java eabce167191b77cb7f44055f1b0edfc74dfdcf5a 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/InMemTaskStoreTest.java 77efffb3a89d8ae54e7e0e4879c5dda2a6d9b4c8 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/StorageTransactionTest.java 4ae194c4f86b609729cfdfdaeda369733efae0b2 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java f5e1dd0ad205bd6e87b660cc7849a0bd92c787a7 
> 
> Diff: https://reviews.apache.org/r/36713/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew -Pq build
> 
> 
> Thanks,
> 
> Kevin Sweeney
> 
>


Re: Review Request 36713: Make Storage.Work an interface instead of an abstract class.

Posted by Bill Farner <wf...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/36713/#review92715
-----------------------------------------------------------

Ship it!


Nice!

- Bill Farner


On July 23, 2015, 12:07 a.m., Kevin Sweeney wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/36713/
> -----------------------------------------------------------
> 
> (Updated July 23, 2015, 12:07 a.m.)
> 
> 
> Review request for Aurora, Bill Farner and Zameer Manji.
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> Make `Storage.Work` and friends interfaces instead of abstract classes.
> 
> This allows you to pass lambdas and method references to calls to `storage.work`. The main ripple is that as interface methods, `apply` and `execute` must be public. This was done programmatically with a sed script.
> 
> 
> Diffs
> -----
> 
>   src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java 5716f23e7a3e4179624c3dddc6e3350a7074b4d8 
>   src/jmh/java/org/apache/aurora/benchmark/StatusUpdateBenchmark.java 3931d02810137c0b397a315323ef60c5fd2f191f 
>   src/jmh/java/org/apache/aurora/benchmark/ThriftApiBenchmarks.java c3f8b251d80d86323e364c978e77b5615d1f9f65 
>   src/jmh/java/org/apache/aurora/benchmark/UpdateStoreBenchmarks.java cc4274103a8b4577fcbbbceac6d38496bac0c5cd 
>   src/main/java/org/apache/aurora/scheduler/SchedulerLifecycle.java 32751896b43e7b0e92b1b9166f7606ab816425ef 
>   src/main/java/org/apache/aurora/scheduler/TaskStatusHandlerImpl.java ede8517ff2bf989bd091aca97e2a667c5c61d1f5 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJob.java a33bb8ba7e70fd4a9bc3ad0f6f8c6ae661e65367 
>   src/main/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImpl.java 0081c5c95f8079a218078d62f47cf2d6f7a259c0 
>   src/main/java/org/apache/aurora/scheduler/mesos/MesosSchedulerImpl.java 7c8a00809365b5d9f28acf9832147bbbdbbc2b48 
>   src/main/java/org/apache/aurora/scheduler/pruning/TaskHistoryPruner.java ef88d98f621fc8a2320cadf66182e0dca8d2b97b 
>   src/main/java/org/apache/aurora/scheduler/scheduling/TaskThrottler.java b86bd281082b37d415237009db0bdae7eb29a570 
>   src/main/java/org/apache/aurora/scheduler/storage/CallOrderEnforcingStorage.java 64aa10d15fb2caa8d5be08ed2b57cd2f6e7e1aa2 
>   src/main/java/org/apache/aurora/scheduler/storage/Storage.java 21f6a642df48b66614e210be4a9a99d3cd823501 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/Recovery.java fb0dbaec0f4cbd1ad12b808d795299b736552c6b 
>   src/main/java/org/apache/aurora/scheduler/storage/backup/TemporaryStorage.java d0156d330deb5d862fa54513fdbb6561d1c91548 
>   src/main/java/org/apache/aurora/scheduler/storage/db/RowGarbageCollector.java f1916a874798fa14faf588a8def02618a6ede698 
>   src/main/java/org/apache/aurora/scheduler/storage/log/LogStorage.java 82be3670338bfd976cf4ea0d93632c93703da016 
>   src/main/java/org/apache/aurora/scheduler/storage/log/SnapshotStoreImpl.java 64b5b9548506b25fecce5113341f25b35b0f0e47 
>   src/main/java/org/apache/aurora/scheduler/thrift/SchedulerThriftInterface.java 22786dedd0db014f518eb5701a985559d189adad 
>   src/main/java/org/apache/aurora/scheduler/updater/JobUpdateControllerImpl.java ff067013f9b634506dbd7cbd015f9e129831e72a 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/AuroraCronJobTest.java 7894668854ff4fae68168719dce2790916c6b548 
>   src/test/java/org/apache/aurora/scheduler/cron/quartz/CronJobManagerImplTest.java b8d88c7e299aebaea5e6ed5ae91d70cc8461ed32 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerImplTest.java 25d8da67a3f8fe3d8b385932743a3d34dec4d25e 
>   src/test/java/org/apache/aurora/scheduler/scheduling/TaskSchedulerTest.java 52af3642eb64a8895a625539d7c5b29ac9d6aad4 
>   src/test/java/org/apache/aurora/scheduler/state/StateManagerImplTest.java 262f6686ff4c4c4aa7e32ad026c65f813d15c8c5 
>   src/test/java/org/apache/aurora/scheduler/stats/ResourceCounterTest.java ed834bce2f1502605a8ef83d2812eea184bcc0a9 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractCronJobStoreTest.java c7329c93329811daa6341d6cd0e08de6d347671a 
>   src/test/java/org/apache/aurora/scheduler/storage/AbstractTaskStoreTest.java 775bb71f94582020643c12fd19a15d0d6732c699 
>   src/test/java/org/apache/aurora/scheduler/storage/StorageBackfillTest.java a76ae48fc63dfeff24c733507dd6bcac30ef2629 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbAttributeStoreTest.java a7de023249dc2f84eee9798d02181f6c52414547 
>   src/test/java/org/apache/aurora/scheduler/storage/db/DbStorageTest.java 15a95897aff0a414c0087140a09e12ee3d67ace7 
>   src/test/java/org/apache/aurora/scheduler/storage/log/LogStorageTest.java eabce167191b77cb7f44055f1b0edfc74dfdcf5a 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/InMemTaskStoreTest.java 77efffb3a89d8ae54e7e0e4879c5dda2a6d9b4c8 
>   src/test/java/org/apache/aurora/scheduler/storage/mem/StorageTransactionTest.java 4ae194c4f86b609729cfdfdaeda369733efae0b2 
>   src/test/java/org/apache/aurora/scheduler/updater/JobUpdaterIT.java f5e1dd0ad205bd6e87b660cc7849a0bd92c787a7 
> 
> Diff: https://reviews.apache.org/r/36713/diff/
> 
> 
> Testing
> -------
> 
> ./gradlew -Pq build
> 
> 
> Thanks,
> 
> Kevin Sweeney
> 
>