aurora-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sweeney" <kevi...@apache.org>
Subject Re: Review Request 36713: Make Storage.Work an interface instead of an abstract class.
Date Thu, 23 Jul 2015 01:09:57 GMT


> 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
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message