You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/08/02 12:53:15 UTC
[isis] branch v2 updated: batch update source format:
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/v2 by this push:
new fb7c44c batch update source format:
fb7c44c is described below
commit fb7c44c7f4b7466fc4067c685c53aa9678a6c224
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Aug 2 14:53:00 2019 +0200
batch update source format:
- Add missing '@Override' annotations
- Correct indentation
- Add file header (JAutodoc)
---
.../org/apache/isis/applib/IsisApplibModule.java | 2 +-
.../org/apache/isis/applib/PropertyResource.java | 4 +-
.../org/apache/isis/applib/adapters/Parser.java | 2 +-
.../isis/applib/annotation/DomainService.java | 50 +-
.../applib/annotation/DomainServiceLayout.java | 48 +-
.../isis/applib/annotation/NatureOfService.java | 64 +-
.../apache/isis/applib/annotation/Property.java | 10 +-
.../apache/isis/applib/annotation/Redirect.java | 2 +-
.../apache/isis/applib/annotation/SemanticsOf.java | 12 +-
.../applib/client/ActionParameterListBuilder.java | 30 +-
.../apache/isis/applib/client/ResponseDigest.java | 58 +-
.../apache/isis/applib/client/RestfulClient.java | 58 +-
.../isis/applib/client/auth/BasicAuthFilter.java | 10 +-
.../applib/client/log/RestfulLoggingFilter.java | 72 +-
.../events/ActionArgumentUsabilityEvent.java | 4 +-
.../events/ActionArgumentVisibilityEvent.java | 4 +-
.../applib/events/domain/ActionDomainEvent.java | 42 +-
.../apache/isis/applib/events/sse/EventStream.java | 10 +-
.../isis/applib/events/sse/EventStreamService.java | 2 +-
.../isis/applib/events/sse/EventStreamSource.java | 14 +-
.../isis/applib/layout/menubars/MenuBars.java | 4 +-
.../applib/layout/menubars/MenuBarsAbstract.java | 14 +-
.../layout/menubars/bootstrap3/BS3MenuBars.java | 28 +-
.../apache/isis/applib/mixins/MixinConstants.java | 10 +-
.../isis/applib/mixins/dto/Dto_downloadXml.java | 12 +-
.../isis/applib/mixins/dto/Dto_downloadXsd.java | 28 +-
.../mixins/layout/Object_downloadLayoutXml.java | 20 +-
.../applib/mixins/layout/Object_openRestApi.java | 10 +-
.../metamodel/Object_downloadMetaModelXml.java | 42 +-
.../mixins/metamodel/Object_objectIdentifier.java | 6 +-
.../applib/mixins/metamodel/Object_objectType.java | 6 +-
.../background/BackgroundCommandService.java | 5 +-
.../services/background/BackgroundService.java | 2 +-
.../isis/applib/services/command/Command.java | 28 +-
.../applib/services/command/CommandDefault.java | 6 +-
.../exceprecog/ExceptionRecognizerAbstract.java | 8 +-
.../exceprecog/ExceptionRecognizerComposite.java | 2 +-
.../applib/services/factory/FactoryService.java | 8 +-
.../applib/services/grid/GridLoaderService.java | 2 +-
.../isis/applib/services/grid/GridService.java | 2 +-
.../isis/applib/services/iactn/Interaction.java | 2 +-
.../applib/services/inject/ServiceInjector.java | 16 +-
.../isis/applib/services/layout/LayoutService.java | 2 +-
.../isis/applib/services/menu/MenuBarsService.java | 6 +-
.../applib/services/message/MessageService.java | 6 +-
.../applib/services/metamodel/DomainModel.java | 4 +-
.../services/metamodel/MetaModelServicesMenu.java | 18 +-
.../QueryResultsCacheInternal.java | 8 +-
.../applib/services/registry/ServiceRegistry.java | 10 +-
.../applib/services/wrapper/WrapperFactory.java | 4 +-
.../isis/applib/services/xactn/Transaction.java | 6 +-
.../isis/applib/services/xactn/TransactionId.java | 18 +-
.../applib/services/xactn/TransactionService.java | 8 +-
.../org/apache/isis/applib/tree/LazyTreeNode.java | 2 +-
.../org/apache/isis/applib/util/JaxbAdapters.java | 66 +-
.../java/org/apache/isis/applib/util/JaxbUtil.java | 4 +-
.../org/apache/isis/applib/util/ReasonBuffer2.java | 3 +-
.../java/org/apache/isis/applib/util/ToString.java | 8 +-
.../java/org/apache/isis/applib/value/Blob.java | 2 +-
.../apache/isis/applib/value/BlobClobFactory.java | 232 +--
.../QueryDefaultTest_withStart_or_withCount.java | 14 +-
.../ExceptionRecognizerCompositeTest.java | 2 +-
.../exceprecog/ExceptionRecognizerForTypeTest.java | 8 +-
.../exceprecog/ExceptionRecognizerGeneralTest.java | 4 +-
.../interaction/InteractionDefaultTest_next.java | 2 +-
.../urlencoding/UrlEncodingServiceTest.java | 16 +-
.../XmlSnapshotServiceAbstractTest.java | 18 +-
.../org/apache/isis/applib/tree/TreePathTest.java | 36 +-
.../java/org/apache/isis/applib/util/Invoice.java | 4 +-
.../org/apache/isis/applib/util/InvoiceItem.java | 8 +-
.../apache/isis/applib/util/NumberedEvaluator.java | 1 +
.../applib/util/ObjectContractsTest_compareTo.java | 56 +-
.../ObjectContractsTest_equals_and_hashCode.java | 27 +-
.../applib/util/ObjectContractsTest_toString.java | 23 +-
.../isis/applib/value/BlobTest_constructor.java | 2 +-
.../isis/applib/value/ClobTest_constructor.java | 2 +-
.../commons/internal/memento/MementosTest.java | 162 +-
.../org/apache/isis/schema/utils/Roundtrip.java | 24 +-
.../java/org/apache/isis/commons/ZipWriter.java | 108 +-
.../org/apache/isis/commons/collections/Bin.java | 309 ++--
.../apache/isis/commons/collections/Bin_Empty.java | 64 +-
.../isis/commons/collections/Bin_Multiple.java | 66 +-
.../isis/commons/collections/Bin_Singleton.java | 60 +-
.../isis/commons/collections/Cardinality.java | 36 +-
.../isis/commons/internal/assertions/_Assert.java | 4 +-
.../isis/commons/internal/base/_Blackhole.java | 14 +-
.../apache/isis/commons/internal/base/_Casts.java | 90 +-
.../apache/isis/commons/internal/base/_Either.java | 102 +-
.../apache/isis/commons/internal/base/_Lazy.java | 8 +-
.../isis/commons/internal/base/_NullSafe.java | 10 +-
.../isis/commons/internal/base/_Strings.java | 76 +-
.../commons/internal/base/_Strings_FastSplit.java | 60 +-
.../internal/base/_Strings_HtmlEscaper.java | 10 +-
.../internal/base/_Strings_KeyValuePair.java | 8 +-
.../internal/base/_Strings_SplitIterator.java | 2 +-
.../apache/isis/commons/internal/base/_Timing.java | 30 +-
.../apache/isis/commons/internal/base/_Tuples.java | 8 +-
.../apache/isis/commons/internal/base/_With.java | 4 +-
.../isis/commons/internal/collections/_Arrays.java | 10 +-
.../commons/internal/collections/_Collections.java | 4 +-
.../isis/commons/internal/collections/_Inbox.java | 100 +-
.../isis/commons/internal/collections/_Lists.java | 4 +-
.../isis/commons/internal/collections/_Maps.java | 16 +-
.../commons/internal/collections/_Multimaps.java | 14 +-
.../isis/commons/internal/collections/_Sets.java | 4 +-
.../isis/commons/internal/concurrent/_Tasks.java | 188 +--
.../isis/commons/internal/context/_Context.java | 104 +-
.../internal/context/_Context_ThreadLocal.java | 162 +-
.../context/_Context_ThreadLocal_Singleton.java | 70 +-
.../apache/isis/commons/internal/debug/_Probe.java | 78 +-
.../commons/internal/exceptions/_Exceptions.java | 52 +-
.../commons/internal/functions/_Functions.java | 6 +-
.../commons/internal/functions/_Predicates.java | 4 +-
.../isis/commons/internal/ioc/BeanAdapter.java | 2 +-
.../apache/isis/commons/internal/ioc/BeanSort.java | 14 +-
.../commons/internal/ioc/BeanSortClassifier.java | 2 +-
.../commons/internal/ioc/LifecycleContext.java | 10 +-
.../commons/internal/ioc/PriorityConstants.java | 8 +-
.../commons/internal/ioc/cdi/BeanAdapterCDI.java | 14 +-
.../isis/commons/internal/ioc/cdi/CdiPlugin.java | 4 +-
.../apache/isis/commons/internal/ioc/cdi/_CDI.java | 158 +-
.../commons/internal/ioc/cdi/_CDI_Lifecycle.java | 6 +-
.../internal/ioc/spring/BeanAdapterSpring.java | 14 +-
.../commons/internal/ioc/spring/EventSpring.java | 14 +-
.../isis/commons/internal/ioc/spring/_Spring.java | 108 +-
.../isis/commons/internal/memento/_Mementos.java | 58 +-
.../beantyperegistry/BeanTypeRegistryPlugin.java | 6 +-
.../plugins/environment/DeploymentType.java | 4 +-
.../plugins/environment/IsisSystemEnvironment.java | 54 +-
.../environment/IsisSystemEnvironmentPlugin.java | 8 +-
.../plugins/ioc/ConversationContextHandle.java | 14 +-
.../plugins/ioc/ConversationContextService.java | 6 +-
.../ioc/ConversationContextServiceDefault.java | 8 +-
.../isis/commons/internal/reflection/_Reflect.java | 46 +-
.../isis/commons/internal/resources/_Json.java | 60 +-
.../commons/internal/resources/_Resources.java | 6 +-
.../FutureWithIndexIntoFutureOfList.java | 2 +-
.../threadpool/ThreadPoolExecutionMode.java | 12 +-
.../internal/threadpool/ThreadPoolSizeAdvisor.java | 10 +-
.../internal/threadpool/ThreadPoolSupport.java | 46 +-
.../isis/commons/internal/base/BytesTest.java | 326 ++--
.../isis/commons/internal/base/NullSafeTest.java | 160 +-
.../isis/commons/internal/base/ReductionTest.java | 82 +-
.../isis/commons/internal/base/StringsTest.java | 544 +++----
.../apache/isis/commons/internal/cdi/CDITest.java | 38 +-
.../internal/cdi/ValidQualifierForTesting.java | 2 +-
.../commons/internal/compare/ComparatorsTest.java | 238 +--
.../isis/commons/internal/context/ContextTest.java | 88 +-
.../commons/internal/resources/ResourcesTest.java | 14 +-
.../internal/threadpool/ThreadPoolSupportTest.java | 52 +-
.../apache/isis/config/ConfigurationConstants.java | 30 +-
.../org/apache/isis/config/IsisConfiguration.java | 60 +-
.../main/java/org/apache/isis/config/Presets.java | 36 +-
.../beans/IsisBeanScanInterceptorForSpring.java | 46 +-
.../apache/isis/config/beans/WebAppConfigBean.java | 16 +-
.../org/apache/isis/config/internal/_Config.java | 40 +-
.../isis/config/internal/_Config_Instance.java | 26 +-
.../config/internal/_Config_LifecycleResource.java | 32 +-
.../isis/config/internal/_Config_Parsers.java | 26 +-
.../apache/isis/config/internal/_Config_trim.java | 8 +-
.../config/property/ConfigPropertyAbstract.java | 1 +
.../config/property/ConfigPropertyBoolean.java | 13 +-
.../isis/config/property/ConfigPropertyEnum.java | 3 +-
.../isis/config/property/ConfigPropertyString.java | 1 +
.../isis/config/registry/IsisBeanTypeRegistry.java | 66 +-
.../apache/isis/config/registry/TypeMetaData.java | 92 +-
.../config/IsisConfiguration_createSubsetTest.java | 36 +-
.../isis/config/IsisConfiguration_primingTest.java | 20 +-
.../config/IsisConfiguration_specialCharTest.java | 6 +-
.../config/IsisConfiguration_whitespaceTest.java | 4 +-
.../commons/internal/reflection/ReflectTest.java | 92 +-
.../facets/param/name/ParameterNameFacetTest.java | 65 +-
.../ServiceInjectorTestUsingCodegenPlugin.java | 44 +-
.../files/FilesTest_deleteFiles.java | 8 +-
.../ImposteriserTestUsingCodegenPlugin.java | 12 +-
.../ExceptionRecognizerTranslate.java | 2 +-
.../IsisIntegrationTestAbstact.java | 4 +-
.../isis/integtestsupport/ThrowableMatchers.java | 2 +-
.../apache/isis/mavenplugin/IsisMojoAbstract.java | 202 +--
.../apache/isis/mavenplugin/IsisMojoSwagger.java | 164 +-
.../apache/isis/mavenplugin/IsisMojoValidate.java | 68 +-
.../org/apache/isis/mavenplugin/IsisMojoXsd.java | 218 +--
.../isis/mavenplugin/MetaModelProcessor.java | 24 +-
.../IsisMavenPlugin_SpringContextConfig.java | 2 +-
.../IsisMavenPlugin_SpringContextLauncher.java | 86 +-
.../org/apache/isis/mavenplugin/util/Log4j.java | 28 +-
.../apache/isis/metamodel/MetaModelContext.java | 56 +-
.../metamodel/MetaModelContext_forTesting.java | 106 +-
.../isis/metamodel/MetaModelContext_usingCDI.java | 228 +--
.../metamodel/MetaModelContext_usingSpring.java | 230 +--
.../apache/isis/metamodel/MetaModelContexts.java | 4 +-
.../isis/metamodel/ServiceInjector_forTesting.java | 18 +-
.../isis/metamodel/ServiceRegistry_forTesting.java | 48 +-
.../isis/metamodel/adapter/ObjectAdapter.java | 16 +-
.../adapter/ObjectAdapterByIdProvider.java | 24 +-
.../metamodel/adapter/ObjectAdapterProvider.java | 75 +-
.../adapter/concurrency/ConcurrencyChecking.java | 4 +-
.../org/apache/isis/metamodel/adapter/oid/Oid.java | 34 +-
.../isis/metamodel/adapter/oid/Oid_Marshaller.java | 14 +-
.../isis/metamodel/adapter/oid/Oid_Parented.java | 2 +-
.../isis/metamodel/adapter/oid/Oid_Root.java | 22 +-
.../isis/metamodel/adapter/oid/Oid_State.java | 4 +-
.../isis/metamodel/adapter/oid/Oid_Value.java | 10 +-
.../isis/metamodel/adapter/oid/ParentedOid.java | 4 +-
.../apache/isis/metamodel/adapter/oid/RootOid.java | 6 +-
.../isis/metamodel/adapter/version/Version.java | 40 +-
.../standard/AuthorizationFacetAbstract.java | 2 +-
.../isis/metamodel/commons/ClassExtensions.java | 2 +-
.../apache/isis/metamodel/commons/ClassUtil.java | 12 +-
.../commons/MethodInvocationPreprocessor.java | 10 +-
.../isis/metamodel/commons/ResourceUtil.java | 2 +-
.../isis/metamodel/facetapi/FacetAbstract.java | 10 +-
.../isis/metamodel/facetapi/FacetHolder.java | 14 +-
.../isis/metamodel/facetapi/FacetHolderImpl.java | 24 +-
.../apache/isis/metamodel/facetapi/FacetUtil.java | 16 +-
.../isis/metamodel/facetapi/MetaModelRefiner.java | 8 +-
.../apache/isis/metamodel/facets/Annotations.java | 42 +-
.../isis/metamodel/facets/CollectionUtils.java | 8 +-
.../isis/metamodel/facets/DomainEventHelper.java | 50 +-
.../metamodel/facets/FacetFactoryAbstract.java | 2 +-
.../isis/metamodel/facets/FacetedMethod.java | 2 +-
.../isis/metamodel/facets/ImperativeFacet.java | 4 +-
.../MethodPrefixBasedFacetFactoryAbstract.java | 16 +-
.../facets/actcoll/typeof/TypeOfFacet.java | 2 +-
.../invocation/ActionDomainEventFacetAbstract.java | 4 +-
...ctionInvocationFacetForDomainEventAbstract.java | 24 +-
...ionFacetForDomainEventFromActionAnnotation.java | 2 +-
.../PrototypeFacetForActionAnnotation.java | 2 +-
.../annotation/HomePageFacetAnnotationFactory.java | 14 +-
.../actions/layout/ActionLayoutFacetFactory.java | 2 +-
...uFacetDerivedFromDomainServiceFacetFactory.java | 2 +-
.../facets/all/i18n/NamedFacetTranslated.java | 4 +-
.../collections/CollectionFacetAbstract.java | 4 +-
.../CollectionAccessorFacetViaAccessor.java | 2 +-
.../clear/CollectionClearFacetFactory.java | 2 +-
.../clear/CollectionClearFacetViaAccessor.java | 2 +-
...ectionAddToFacetForDomainEventFromAbstract.java | 4 +-
...acetForDomainEventFromCollectionAnnotation.java | 2 +-
.../modify/CollectionDomainEventFacetAbstract.java | 2 +-
...nRemoveFromFacetForDomainEventFromAbstract.java | 2 +-
...acetForDomainEventFromCollectionAnnotation.java | 4 +-
.../javautilcollection/JavaArrayFacet.java | 10 +-
.../javautilcollection/JavaCollectionFacet.java | 12 +-
.../layout/SortedByFacetForCollectionXml.java | 4 +-
.../facets/collections/modify/CollectionFacet.java | 6 +-
.../annotation/SortedByFacetAnnotationFactory.java | 4 +-
.../facets/fallback/FallbackFacetFactory.java | 2 +-
.../metamodel/facets/jaxb/JaxbFacetFactory.java | 4 +-
.../disabled/DisabledFacetAbstractImpl.java | 2 +-
.../autocomplete/AutoCompleteFacetAbstract.java | 2 +-
.../BookmarkPolicyFacetFallbackFactory.java | 4 +-
.../object/callbacks/CallbackFacetAbstract.java | 2 +-
.../choices/ChoicesFacetFromBoundedAbstract.java | 18 +-
.../facets/object/choices/QueryFindAllChoices.java | 26 +-
.../object/defaults/DefaultedFacetAbstract.java | 2 +-
.../object/defaults/DefaultsProviderUtil.java | 4 +-
.../annotcfg/DefaultedFacetAnnotation.java | 2 +-
.../DomainObjectAnnotationFacetFactory.java | 20 +-
...EventDefaultFacetForDomainObjectAnnotation.java | 2 +-
...EventDefaultFacetForDomainObjectAnnotation.java | 2 +-
...EventDefaultFacetForDomainObjectAnnotation.java | 2 +-
...atableObjectFacetForDomainObjectAnnotation.java | 2 +-
...ObjectLayoutAnnotationUsingCssClassUiEvent.java | 8 +-
...wModelLayoutAnnotationUsingCssClassUiEvent.java | 6 +-
.../DomainObjectLayoutFacetFactory.java | 2 +-
...aViewModelLayoutAnnotationUsingIconUiEvent.java | 4 +-
...inObjectLayoutAnnotationUsingLayoutUiEvent.java | 4 +-
...iewModelLayoutAnnotationUsingLayoutUiEvent.java | 4 +-
...ainObjectLayoutAnnotationUsingTitleUiEvent.java | 2 +-
...ViewModelLayoutAnnotationUsingTitleUiEvent.java | 6 +-
.../DomainServiceFacetAnnotationFactory.java | 26 +-
.../DomainServiceLayoutFacetAbstract.java | 2 +-
.../DomainServiceLayoutFacetFactory.java | 10 +-
.../object/encodeable/EncodableFacetAbstract.java | 4 +-
.../annotcfg/EncodableFacetFromConfiguration.java | 2 +-
.../facets/object/entity/EntityFacet.java | 6 +-
.../facets/object/entity/EntityFacetSimple.java | 6 +-
.../facets/object/grid/GridFacetDefault.java | 9 +-
.../RemoveAnnotatedMethodsFacetFactory.java | 22 +-
.../ignore/javalang/RemoveMethodsFacetFactory.java | 12 +-
.../facets/object/mixin/MixinFacetAbstract.java | 2 +-
.../mixin/MixinFacetForDomainObjectAnnotation.java | 2 +-
.../object/mixin/MixinFacetForMixinAnnotation.java | 2 +-
.../NavigableParentAnnotationFacetFactory.java | 2 +-
.../ObjectSpecIdFacetDerivedFromClassName.java | 2 +-
...jectSpecIdFacetDerivedFromClassNameFactory.java | 26 +-
.../impl/ObjectValidPropertiesFacetImpl.java | 2 +-
.../object/parseable/ParseableFacetAbstract.java | 2 +-
.../facets/object/parseable/ParserUtil.java | 12 +-
.../annotcfg/ParseableFacetFromConfiguration.java | 2 +-
.../parser/ParseableFacetUsingParser.java | 2 +-
.../object/projection/ProjectionFacetAbstract.java | 4 +-
.../ProjectionFacetFromProjectingProperty.java | 10 +-
.../RecreatableObjectFacetAbstract.java | 2 +-
...ObjectFacetDeclarativeInitializingAbstract.java | 206 +--
...creatableObjectFacetForViewModelAnnotation.java | 2 +-
...ableObjectFacetForXmlRootElementAnnotation.java | 2 +-
.../annotation/TitleFacetViaTitleAnnotation.java | 90 +-
.../facets/object/value/ValueFacetAbstract.java | 6 +-
.../value/annotcfg/ValueFacetAnnotation.java | 4 +-
.../annotcfg/ValueFacetFromConfiguration.java | 2 +-
.../vsp/ValueFacetUsingSemanticsProvider.java | 2 +-
.../ValueSemanticsProviderAndFacetAbstract.java | 2 +-
.../value/vsp/ValueSemanticsProviderUtil.java | 16 +-
.../facets/object/viewmodel/ViewModelFacet.java | 32 +-
.../objectvalue/observe/ObserveFacetAbstract.java | 2 +-
.../ActionParameterAutoCompleteFacetViaMethod.java | 2 +-
.../method/ActionChoicesFacetViaMethod.java | 2 +-
.../ActionParameterDefaultsFacetViaMethod.java | 18 +-
.../ActionParameterDisabledFacetViaMethod.java | 2 +-
...tionParameterDisabledFacetViaMethodFactory.java | 2 +-
.../hide/ActionParameterHiddenFacetAbstract.java | 2 +-
.../ActionParameterHiddenFacetViaMethod.java | 2 +-
.../NamedFacetForParameterUsingReflection.java | 8 +-
.../ParameterNameFacetFactoryUsingReflection.java | 10 +-
.../PropertyOrCollectionAccessorFacetAbstract.java | 2 +-
.../accessor/PropertyAccessorFacetViaAccessor.java | 2 +-
.../method/PropertyChoicesFacetViaMethod.java | 4 +-
...pertyDefaultFacetDerivedFromDefaultedFacet.java | 2 +-
.../properties/projection/ProjectingFacet.java | 1 +
.../projection/ProjectingFacetAbstract.java | 2 +-
.../ProjectingFacetFromPropertyAnnotation.java | 10 +-
.../property/PropertyAnnotationFacetFactory.java | 2 +-
...ropertyClearFacetForDomainEventFromDefault.java | 4 +-
...rFacetForDomainEventFromPropertyAnnotation.java | 4 +-
.../modify/PropertyDomainEventFacetAbstract.java | 6 +-
.../modify/PropertyDomainEventFacetDefault.java | 6 +-
...pertyDomainEventFacetForPropertyAnnotation.java | 4 +-
...opertySetterFacetForDomainEventFromDefault.java | 2 +-
...rFacetForDomainEventFromPropertyAnnotation.java | 2 +-
...tySetterOrClearFacetForDomainEventAbstract.java | 8 +-
.../observe/ObserveFacetForPropertyAnnotation.java | 4 +-
.../value/blobs/BlobValueSemanticsProvider.java | 2 +-
.../BooleanPrimitiveValueSemanticsProvider.java | 32 +-
.../facets/value/booleans/BooleanValueFacet.java | 10 +-
.../BooleanWrapperValueSemanticsProvider.java | 42 +-
.../datesql/JavaSqlDateValueSemanticsProvider.java | 2 +-
.../metamodel/interactions/InteractionUtils.java | 2 +-
...arameterChoicesFacetFromParentedCollection.java | 2 +-
.../param/DeriveFacetsPostProcessor.java | 22 +-
.../isis/metamodel/progmodel/FacetFactorySet.java | 2 +-
.../progmodel/ProgrammingModelAbstract.java | 12 +-
.../progmodel/ProgrammingModelService.java | 2 +-
.../dflt/ProgrammingModelFacetsJava8.java | 4 +-
.../metamodel/services/ServiceInjectorDefault.java | 44 +-
.../isis/metamodel/services/ServiceUtil.java | 128 +-
.../services/appfeat/ApplicationFeature.java | 6 +-
.../services/appfeat/ApplicationFeatureId.java | 16 +-
.../ApplicationFeatureRepositoryDefault.java | 34 +-
.../services/events/MetamodelEventService.java | 78 +-
.../events/MetamodelEventSupport_Spring.java | 18 +-
.../services/grid/GridLoaderServiceDefault.java | 2 +-
.../services/grid/GridReaderUsingJaxb.java | 8 +-
.../services/grid/GridServiceDefault.java | 10 +-
.../services/grid/GridSystemServiceAbstract.java | 8 +-
.../grid/bootstrap3/GridSystemServiceBS3.java | 46 +-
.../services/homepage/HomePageAction.java | 10 +-
.../services/layout/LayoutServiceDefault.java | 30 +-
.../services/message/MessageServiceNoop.java | 12 +-
.../services/metamodel/DomainMemberDefault.java | 38 +-
.../services/metamodel/DomainModelDefault.java | 10 +-
.../services/metamodel/MetaModelExportSupport.java | 4 +-
.../services/metamodel/MetaModelExporter.java | 44 +-
.../metamodel/MetaModelServiceDefault.java | 34 +-
.../persistsession/ObjectAdapterService.java | 2 +-
.../PersistenceSessionServiceInternal.java | 2 +-
.../services/registry/ServiceRegistryDefault.java | 40 +-
.../services/swagger/SwaggerServiceDefault.java | 6 +-
.../services/swagger/internal/Generation.java | 24 +-
.../metamodel/services/swagger/internal/Util.java | 8 +-
.../services/title/TitleServiceDefault.java | 2 +-
.../spec/ElementSpecificationProvider.java | 2 +-
.../isis/metamodel/spec/FreeStandingList.java | 8 +-
.../apache/isis/metamodel/spec/ManagedObject.java | 38 +-
.../isis/metamodel/spec/ManagedObjectState.java | 46 +-
.../apache/isis/metamodel/spec/ObjectSpecId.java | 40 +-
.../isis/metamodel/spec/ObjectSpecification.java | 34 +-
.../isis/metamodel/spec/feature/ObjectAction.java | 114 +-
.../spec/feature/ObjectActionContainer.java | 4 +-
.../spec/feature/ObjectActionParameter.java | 4 +-
.../metamodel/spec/feature/ObjectAssociation.java | 12 +-
.../spec/feature/ObjectAssociationContainer.java | 2 +-
.../specloader/InjectorMethodEvaluatorDefault.java | 72 +-
.../metamodel/specloader/IntrospectionMode.java | 14 +-
.../MetaModelValidatorServiceDefault.java | 20 +-
.../specloader/ProgrammingModelServiceDefault.java | 10 +-
.../metamodel/specloader/SpecificationLoader.java | 150 +-
.../specloader/SpecificationLoaderDefault.java | 888 +++++------
.../specloader/postprocessor/PostProcessor.java | 12 +-
.../specloader/specimpl/ContributeeMember.java | 8 +-
.../specloader/specimpl/FacetedMethodsBuilder.java | 12 +-
.../specloader/specimpl/IntrospectionState.java | 4 +-
.../specloader/specimpl/MixedInMember.java | 2 +-
.../specimpl/ObjectActionContributee.java | 6 +-
.../specloader/specimpl/ObjectActionDefault.java | 36 +-
.../specloader/specimpl/ObjectActionMixedIn.java | 2 +-
.../specimpl/ObjectActionParameterAbstract.java | 22 +-
.../ObjectActionParameterContributeeAbstract.java | 2 +-
.../specimpl/ObjectAssociationAbstract.java | 2 +-
.../specloader/specimpl/ObjectMemberAbstract.java | 2 +-
.../specimpl/ObjectSpecificationAbstract.java | 172 +--
.../OneToManyActionParameterContributee.java | 2 +-
.../specimpl/OneToManyAssociationContributee.java | 2 +-
.../specimpl/OneToManyAssociationDefault.java | 6 +-
.../specimpl/OneToManyAssociationMixedIn.java | 42 +-
.../OneToOneActionParameterContributee.java | 2 +-
.../specimpl/OneToOneAssociationContributee.java | 2 +-
.../specimpl/OneToOneAssociationDefault.java | 22 +-
.../specimpl/OneToOneAssociationMixedIn.java | 2 +-
.../specimpl/dflt/ObjectSpecificationDefault.java | 55 +-
.../CollectionFacetOnStandaloneList.java | 6 +-
.../ObjectSpecificationOnStandaloneList.java | 12 +-
.../validator/MetaModelDeficiencies.java | 4 +-
.../validator/MetaModelValidatorAbstract.java | 4 +-
.../MetaModelValidatorToCheckModuleExtent.java | 64 +-
.../isis/metamodel/util/snapshot/XmlSchema.java | 10 +-
.../isis/metamodel/util/snapshot/XmlSnapshot.java | 1634 ++++++++++----------
.../metamodel/MetaModelContext_configTest.java | 24 +-
.../adapter/oid/OidMarshallerTest_marshall.java | 6 +-
.../oid/OidMarshallerTest_roundtripping.java | 10 +-
.../adapter/oid/OidMarshallerTest_unmarshal.java | 98 +-
.../isis/metamodel/adapter/oid/OidVersionTest.java | 22 +-
...idDefaultTest_valueSemantics_whenTransient.java | 2 +-
.../metamodel/adapter/oid/RootOidTest_create.java | 14 +-
.../adapter/oid/VersionTest_valueSemantics.java | 10 +-
.../metamodel/adapter/version/VersionTest.java | 10 +-
.../adapter/version/VersionTest_differs.java | 4 +-
.../metamodel/commons/ListUtilsTest_adjust.java | 14 +-
.../metamodel/commons/ListUtilsTest_insert.java | 18 +-
.../commons/ListUtilsTest_mutableCopy.java | 32 +-
.../commons/StringUtils_NormalizedTest.java | 20 +-
.../metamodel/commons/TypesTest_filteredList.java | 2 +-
.../facetapi/FeatureTypeTest_identifierFor.java | 30 +-
.../facets/AbstractFacetFactoryJUnit4TestCase.java | 30 +-
.../metamodel/facets/AbstractFacetFactoryTest.java | 12 +-
...notations_getAnnotations_on_Parameter_Test.java | 20 +-
.../isis/metamodel/facets/CollectionUtilsTest.java | 4 +-
...nEventHelperTest_newActionInteractionEvent.java | 8 +-
...HelperTest_newCollectionDomainEvent_forAdd.java | 8 +-
...perTest_newCollectionDomainEvent_forRemove.java | 6 +-
...HelperTest_newPropertyDomainEvent_forClear.java | 18 +-
...elperTest_newPropertyDomainEvent_forModify.java | 18 +-
.../metamodel/facets/ObjectAdapterUtilsTest.java | 2 +-
.../org/apache/isis/metamodel/facets/Utils.java | 8 +-
.../actions/ActionMethodsFacetFactoryTest.java | 86 +-
.../action/ActionAnnotationFacetFactoryTest.java | 10 +-
...nnotationFacetFactoryTest_ActionInvocation.java | 6 +-
.../ActionAnnotationFacetFactoryTest_Command.java | 4 +-
.../ActionAnnotationFacetFactoryTest_Hidden.java | 2 +-
...ctionAnnotationFacetFactoryTest_Invocation.java | 22 +-
...ctionAnnotationFacetFactoryTest_Publishing.java | 10 +-
...ctionAnnotationFacetFactoryTest_RestrictTo.java | 6 +-
...tionLayoutAnnotationFacetFactoryJunit4Test.java | 184 +--
...nLayoutXmlLayoutAnnotationFacetFactoryTest.java | 2 +-
...etDerivedFromDomainServiceFacetFactoryTest.java | 138 +-
...etDerivedFromDomainServiceFacetFactoryTest.java | 72 +-
.../CollectionFieldMethodsFacetFactoryTest.java | 4 +-
.../CollectionAnnotationFacetFactoryTest.java | 16 +-
...stedAnnotationOnCollectionFacetFactoryTest.java | 2 +-
.../ViewModelSemanticCheckingFacetFactoryTest.java | 2 +-
...okmarkableAnnotationFacetFactoryTest_class.java | 2 +-
.../object/defaults/DefaultedFacetFactoryTest.java | 10 +-
.../ObjectDisabledMethodFacetFactoryTest.java | 2 +-
.../DomainObjectAnnotationFacetFactoryTest.java | 54 +-
.../DomainObjectLayoutFactoryTest.java | 26 +-
.../title/TitleFacetViaMethodsFactoryTest.java | 2 +-
.../TitleAnnotationFacetFactoryTest.java | 16 +-
.../TitleFacetViaTitleAnnotationTest.java | 6 +-
.../NavigableParentAnnotationFacetFactoryTest.java | 94 +-
.../annotation/NavigableParentTestSamples.java | 70 +-
...SpecIdFacetDerivedFromClassNameFactoryTest.java | 2 +-
.../parseable/ParseableFacetUsingParserTest.java | 6 +-
.../ordering/memberorder/DeweyOrderSetTest.java | 4 +-
.../MemberOrderAnnotationFacetFactoryTest.java | 2 +-
.../memberorder/MemberOrderComparatorTest.java | 2 +-
.../ParameterAnnotationFacetFactoryTest.java | 48 +-
...lableAnnotationOnParameterFacetFactoryTest.java | 2 +-
...RegExAnnotationOnParameterFacetFactoryTest.java | 2 +-
.../PropertyMethodsFacetFactoryTest.java | 38 +-
...romptStyleFacetFromPropertyAnnotation_Test.java | 2 +-
...sabledAnnotationOnPropertyFacetFactoryTest.java | 2 +-
.../MandatoryAnnotationFacetFactoryTest.java | 2 +-
...sistedAnnotationOnPropertyFacetFactoryTest.java | 2 +-
.../PropertyAnnotationFacetFactoryTest.java | 34 +-
...llableAnnotationOnPropertyFacetFactoryTest.java | 2 +-
.../RegExAnnotationOnPropertyFacetFactoryTest.java | 2 +-
...SpecificationValidatingInteractionMoreTest.java | 16 +-
...isfySpecificationValidatingInteractionTest.java | 36 +-
.../BigDecimalValueSemanticsProviderTest.java | 4 +-
.../value/BigIntValueSemanticsProviderTest.java | 2 +-
.../value/ByteValueSemanticsProviderTest.java | 2 +-
.../value/DoubleValueSemanticsProviderTest.java | 2 +-
.../value/FloatValueSemanticsProviderTest.java | 2 +-
.../ImageValueSemanticsProviderAbstractTest.java | 2 +-
.../value/IntValueSemanticsProviderTest.java | 2 +-
.../JavaSqlDateValueSemanticsProviderTest.java | 2 +-
.../JavaSqlTimeValueSemanticsProviderTest.java | 2 +-
.../JavaUtilDateValueSemanticsProviderTest.java | 2 +-
.../PercentageValueSemanticsProviderTest.java | 2 +-
.../value/ShortValueSemanticsProviderTest.java | 2 +-
.../ValueSemanticsProviderAbstractTestCase.java | 18 +-
...odaLocalDateTimeValueSemanticsProviderTest.java | 4 +-
...jectAssociationPredicatesTest_visibleWhere.java | 70 +-
.../services/ServiceInjectorDefaultTest.java | 40 +-
.../ServiceInjectorDefaultTest_usingFields.java | 48 +-
...erviceInjectorDefaultTest_validateServices.java | 8 +-
...InjectorDefaultTest_validateServices_happy.java | 28 +-
.../services/appfeat/ApplicationFeatureIdTest.java | 24 +-
.../ApplicationFeatureRepositoryDefaultTest.java | 11 +-
...eptionRecognizerDocDefault_recognizes_Test.java | 8 +-
.../isis/metamodel/services/grid/BS3GridTest.java | 4 +-
.../services/menubars/BS3MenuBarsTest.java | 2 +-
.../metamodel/MetaModelServiceDefaultTest.java | 72 +-
.../specloader/ServiceInitializerTest.java | 28 +-
.../specloader/SpecificationCacheDefaultTest.java | 16 +-
.../SpecificationLoaderTestAbstract.java | 38 +-
.../specloader/SpecificationLoaderTest_array.java | 14 +-
.../ClassSubstitutorTest_getClass.java | 6 +-
...ionParameterAbstractTest_getId_and_getName.java | 8 +-
.../specimpl/ObjectAssociationAbstractTest.java | 10 +-
...ObjectAssociationAbstractTest_alwaysHidden.java | 10 +-
.../testspec/ObjectSpecificationStub.java | 26 +-
.../codegen/ClassLoadingStrategyAdvisor.java | 18 +-
.../codegen/ProxyFactoryPluginUsingByteBuddy.java | 6 +-
...eContext_ensureCompatibleAcceptHeader_Test.java | 2 +-
...tfulObjectsApplicationExceptionMapper_Test.java | 2 +-
.../datanucleus/metamodel/JdoPropertyUtils.java | 8 +-
.../isis/jdo/entities/JdoEntityTypeRegistry.java | 10 +-
...eptionRecognizerCompositeForJdoObjectStore.java | 2 +-
.../JdoDiscriminatorAnnotationFacetFactory.java | 10 +-
...doPersistenceCapableAnnotationFacetFactory.java | 4 +-
.../facets/object/query/JdoNamedQuery.java | 8 +-
...DerivedFromJdoColumnAnnotationFacetFactory.java | 4 +-
...ndatoryFromJdoColumnAnnotationFacetFactory.java | 22 +-
...DerivedFromJdoColumnAnnotationFacetFactory.java | 4 +-
.../IsisPlatformTransactionManagerForJdo.java | 136 +-
.../isis/jdo/persistence/IsisTransactionJdo.java | 4 +-
.../jdo/persistence/IsisTransactionManagerJdo.java | 100 +-
.../jdo/persistence/PersistenceSessionBase.java | 6 +-
...onRecognizerCompositeForJdoObjectStoreTest.java | 6 +-
...LIntegrityConstraintViolationExceptionTest.java | 2 +-
...AnnotationFacetFactoryTest_refineMetaModel.java | 78 +-
.../org/apache/isis/jdo/IsisBootDataNucleus.java | 22 +-
.../PersistenceQueryFindAllInstancesProcessor.java | 6 +-
...sistenceQueryFindUsingApplibQueryProcessor.java | 14 +-
.../queries/PersistenceQueryProcessorAbstract.java | 4 +-
.../isis/jdo/jdosupport/IsisJdoSupportDN5.java | 20 +-
.../isis/jdo/jdosupport/IsisJdoSupport_v3_2.java | 8 +-
.../mixins/Persistable_datanucleusIdLong.java | 2 +-
.../mixins/Persistable_datanucleusVersionLong.java | 2 +-
.../Persistable_datanucleusVersionTimestamp.java | 2 +-
.../mixins/Persistable_downloadJdoMetadata.java | 2 +-
.../isis/jdo/persistence/DNStoreManagerType.java | 30 +-
.../DataNucleusApplicationComponents5.java | 12 +-
.../jdo/persistence/IsisLifecycleListener.java | 22 +-
.../isis/jdo/persistence/PersistenceSession5.java | 1622 +++++++++----------
.../persistence/PersistenceSessionFactory5.java | 36 +-
.../org/apache/isis/jdo/persistence/Utils.java | 2 +-
...atastoreIdentityAnnotationFacetFactoryTest.java | 2 +-
...JdoDiscriminatorAnnotationFacetFactoryTest.java | 6 +-
...rsistenceCapableAnnotationFacetFactoryTest.java | 6 +-
...vedFromJdoColumnAnnotationFacetFactoryTest.java | 10 +-
...vedFromJdoColumnAnnotationFacetFactoryTest.java | 28 +-
...impleObjectWithColumnAllowsNullAnnotations.java | 20 +-
.../adapterfactory/pojo/PojoAdapterTest.java | 78 +-
.../transaction/PojoAdapterBuilder.java | 26 +-
.../runtime/system/ObjectMemberAbstractTest.java | 4 +-
.../WrapperFactoryDefaultTest_wrappedObject.java | 70 +-
...FactoryDefaultTest_wrappedObject_transient.java | 28 +-
.../isis/security/shiro/IsisBootSecurityShiro.java | 8 +-
.../isis/security/shiro/ShiroSecurityContext.java | 2 +-
.../apache/isis/security/shiro/WebModuleShiro.java | 80 +-
.../shiro/authentication/ShiroAuthenticator.java | 8 +-
.../shiro/authorization/ShiroAuthorizor.java | 4 +-
.../PermissionToRoleMapperFromIni.java | 4 +-
.../isis/security/shiro/permrolemapper/Util.java | 20 +-
.../shiro/IsisPermissionTest_setParts.java | 4 +-
.../shiro/IsisPermissionTest_typicalUsage.java | 24 +-
...AuthenticatorOrAuthorizorTest_authenticate.java | 8 +-
...ticatorOrAuthorizorTest_isVisibleInAnyRole.java | 14 +-
.../PermissionToRoleMapperFromIniTest.java | 2 +-
.../PermissionToRoleMapperFromStringTest.java | 6 +-
.../jee_support/IsisCDIBeanScanInterceptor.java | 14 +-
.../org/apache/isis/runtime/spring/IsisBoot.java | 20 +-
.../apache/isis/wrapper/WrapperFactoryDefault.java | 2 +
.../DelegatingInvocationHandlerDefault.java | 2 +-
.../handlers/DomainObjectInvocationHandler.java | 36 +-
.../background/BackgroundCommandExecution.java | 2 +-
.../background/BackgroundServiceDefault.java | 48 +-
.../background/CommandExecutionAbstract.java | 2 +-
.../background/CommandExecutorServiceDefault.java | 94 +-
.../background/CommandInvocationHandler.java | 18 +-
.../background/ForkingInvocationHandler.java | 22 +-
.../background/InvocationHandlerFactory.java | 5 +-
.../InvocationHandlerFactoryFallback.java | 18 +-
...andlerFactoryUsingBackgroundCommandService.java | 6 +-
.../bookmarks/BookmarkServiceInternalDefault.java | 48 +-
.../confmenu/ConfigurationViewServiceDefault.java | 16 +-
.../services/email/EmailServiceDefault.java | 4 +-
.../services/eventbus/EventBusServiceSpring.java | 2 +-
.../factory/FactoryServiceInternalDefault.java | 48 +-
.../homepage/HomePageResolverServiceDefault.java | 128 +-
.../isis/runtime/services/i18n/po/PoReader.java | 6 +-
.../services/i18n/po/TranslationServicePo.java | 6 +-
.../services/i18n/po/TranslationServicePoMenu.java | 10 +-
.../menubars/MenuBarsLoaderServiceDefault.java | 34 +-
.../menubars/bootstrap3/MenuBarsServiceBS3.java | 116 +-
.../persist/ObjectAdapterServiceDefault.java | 122 +-
.../services/publish/PublishedObjectsDefault.java | 8 +-
.../publish/PublishingServiceInternalDefault.java | 6 +-
.../services/sse/EventStreamServiceDefault.java | 24 +-
.../userreg/EmailNotificationServiceDefault.java | 2 +-
.../services/xactn/TransactionServiceSpring.java | 156 +-
.../runtime/services/ServiceInstantiatorTest.java | 2 +-
.../runtime/services/i18n/po/PoReaderTest.java | 8 +-
.../org/apache/isis/webapp/IsisBootWebApp.java | 8 +-
.../isis/webapp/IsisWebAppContextInitializer.java | 10 +-
.../isis/webapp/IsisWebAppContextListener.java | 130 +-
.../org/apache/isis/webapp/modules/WebModule.java | 28 +-
.../isis/webapp/modules/WebModuleContext.java | 118 +-
.../webapp/modules/h2console/H2ManagerMenu.java | 20 +-
.../modules/h2console/WebModuleH2Console.java | 62 +-
.../logonlog/WebModuleLogOnExceptionLogger.java | 8 +-
.../modules/resources/ResourceCachingFilter.java | 6 +-
.../webapp/modules/resources/ResourceServlet.java | 46 +-
.../ResourceServlet_HtmlTemplateVariables.java | 12 +-
.../resources/WebModuleStaticResources.java | 18 +-
.../modules/sse/ServerSentEventsServlet.java | 12 +-
.../modules/sse/WebModuleServerSentEvents.java | 8 +-
.../isis/runtime/memento/CollectionData.java | 10 +-
.../org/apache/isis/runtime/memento/Memento.java | 18 +-
.../isis/runtime/memento/ObjectAdapterMemento.java | 56 +-
.../memento/ObjectAdapterMementoCollection.java | 18 +-
.../memento/ObjectAdapterMementoSupport.java | 8 +-
.../ObjectAdapterMementoSupport_usingLKG.java | 8 +-
.../memento/ObjectAdapterMementoUsingSupport.java | 8 +-
.../isis/runtime/memento/StandaloneData.java | 2 +-
.../persistence/FixturesInstalledState.java | 60 +-
.../persistence/FixturesInstalledStateHolder.java | 2 +-
.../persistence/adapter/ObjectAdapterForBean.java | 8 +-
.../runtime/persistence/adapter/PojoAdapter.java | 36 +-
.../isis/runtime/system/SystemConstants.java | 8 +-
.../isis/runtime/system/context/IsisContext.java | 36 +-
.../system/context/session/AppLifecycleEvent.java | 16 +-
.../system/context/session/RuntimeContext.java | 32 +-
.../system/context/session/RuntimeContextBase.java | 74 +-
.../context/session/RuntimeEventService.java | 72 +-
.../session/RuntimeEventSupport_Spring.java | 4 +-
.../context/session/SessionLifecycleEvent.java | 20 +-
.../JdoPersistenceLifecycleService.java | 220 +--
.../runtime/system/persistence/ObjectFactory.java | 2 +-
.../persistence/PersistenceQueryFactory.java | 6 +-
.../system/persistence/PersistenceSession.java | 53 +-
.../adaptermanager/ObjectAdapterContext.java | 16 +-
.../ObjectAdapterContext_DependencyInjection.java | 6 +-
...ObjectAdapterContext_LifecycleEventSupport.java | 12 +-
.../ObjectAdapterContext_MementoSupport.java | 44 +-
.../ObjectAdapterContext_NewIdentifier.java | 12 +-
...ctAdapterContext_ObjectAdapterByIdProvider.java | 76 +-
...ObjectAdapterContext_ObjectAdapterProvider.java | 62 +-
.../ObjectAdapterContext_ObjectCreation.java | 28 +-
.../ObjectAdapterContext_OidProviders.java | 14 +-
.../ObjectAdapterContext_ServiceLookup.java | 32 +-
.../adaptermanager/ObjectAdapterLegacy.java | 10 +-
.../adaptermanager/factories/OidFactory.java | 8 +-
.../factories/OidFactory_Builder.java | 14 +-
.../runtime/system/session/IsisRequestCycle.java | 4 +-
.../isis/runtime/system/session/IsisSession.java | 146 +-
.../runtime/system/session/IsisSessionFactory.java | 4 +-
.../system/session/IsisSessionFactoryDefault.java | 50 +-
.../transaction/AuditingServiceInternal.java | 2 +-
.../transaction/ChangedObjectsServiceInternal.java | 54 +-
.../transaction/IsisTransactionAspectSupport.java | 56 +-
.../system/transaction/IsisTransactionObject.java | 114 +-
.../transaction/IsisTransactionPlaceholder.java | 4 +-
.../PersistenceSessionServiceInternalDefault.java | 26 +-
.../system/transaction/PreAndPostValues.java | 8 +-
.../system/transaction/TransactionLatch.java | 26 +-
.../JavaObjectWithBasicProgramConventions.java | 2 +-
.../system/ObjectActionLayoutXmlDefaultTest.java | 8 +-
.../system/OneToManyAssociationDefaultTest.java | 8 +-
.../runtime/system/TestObjectWithCollection.java | 2 +-
.../isis/security/IsisBootSecurityBypass.java | 4 +-
.../authentication/AuthenticationRequest.java | 4 +-
.../AuthenticationRequestAbstract.java | 2 +-
.../authentication/AuthenticationSession.java | 4 +-
.../AuthenticationSessionAbstract.java | 8 +-
.../AuthenticationRequestLogonFixture.java | 2 +-
.../manager/AuthenticationManager.java | 14 +-
.../manager/AuthorizationManagerStandard.java | 16 +-
.../standard/AuthenticationManagerStandard.java | 26 +-
.../standard/RandomCodeGenerator10Chars.java | 2 +-
.../authentication/standard/Registrar.java | 8 +-
.../authentication/standard/SimpleSession.java | 2 +-
.../authorization/standard/Authorizor.java | 4 +-
.../standard/AuthenticatorDefaultTest.java | 2 +-
.../viewer/restfulobjects/applib/util/Parser.java | 82 +-
.../restfulobjects/applib/util/PathNode.java | 4 +-
.../viewer/restfulobjects/applib/JsonFixture.java | 4 +-
.../JsonRepresentationTest_asInputStream.java | 4 +-
.../JsonRepresentationTest_getBigDecimal.java | 2 +-
.../JsonRepresentationTest_getLink_isLink.java | 2 +-
...JsonRepresentationTest_streamArrayElements.java | 8 +-
.../JsonRepresentationTest_streamMapEntries.java | 4 +-
...RepresentationTypeTest_lookup_ContractTest.java | 10 +-
.../applib/RestfulHttpMethodTest_setUp.java | 8 +-
...equestParameterTest_valueOf_xrofollowlinks.java | 4 +-
.../client/RestfulResponse_HeaderTest_Warning.java | 2 +-
.../restfulobjects/applib/util/Parser_Test.java | 62 +-
.../Parser_forJaxRsMediaType_ContractTest.java | 10 +-
.../applib/util/PathNodeTest_equalsHashcode.java | 2 +-
.../viewer/restfulobjects/rendering/OidUtils.java | 28 +-
.../restfulobjects/rendering/RendererContext.java | 20 +-
.../rendering/ReprRendererAbstract.java | 2 +-
.../RestfulObjectsApplicationException.java | 4 +-
.../domainobjects/ActionResultReprRenderer.java | 4 +-
.../domainobjects/DomainObjectReprRenderer.java | 4 +-
.../rendering/domainobjects/JsonValueEncoder.java | 20 +-
.../rendering/domainobjects/ListReprRenderer.java | 10 +-
.../ObjectCollectionReprRenderer.java | 4 +-
.../domaintypes/DomainTypeReprRenderer.java | 8 +-
.../rendering/service/RepresentationService.java | 2 +-
.../acceptheader/AcceptHeaderServiceForRest.java | 10 +-
.../conneg/ContentNegotiationServiceAbstract.java | 4 +-
.../ContentNegotiationServiceOrgApacheIsisV1.java | 18 +-
.../rendering/util/FollowSpecUtil.java | 4 +-
.../rendering/LinkFollowSpecsTest_follow.java | 8 +-
.../JsonValueEncoderTest_asAdapter.java | 4 +-
.../JsonValueEncoderTest_asObject.java | 10 +-
.../restfulobjects/IsisBootWebRestfulObjects.java | 6 +-
.../IsisRestfulObjectsSessionFilter.java | 12 +-
.../restfulobjects/WebModuleRestfulObjects.java | 52 +-
.../restfulobjects/server/ResourceContext.java | 2 +-
.../server/mappers/ExceptionMapperAbstract.java | 20 +-
.../ExceptionMapperForRuntimeException.java | 34 +-
.../resources/DomainObjectResourceServerside.java | 8 +-
.../server/resources/DomainResourceHelper.java | 100 +-
.../resources/DomainServiceResourceServerside.java | 20 +-
.../server/resources/HealthResourceServerside.java | 6 +-
.../server/resources/HomePageReprRenderer.java | 2 +-
.../resources/ObjectAdapterUpdateHelper.java | 10 +-
.../server/resources/ResourceAbstract.java | 18 +-
.../server/resources/SwaggerSpecResource.java | 8 +-
.../server/resources/UserReprRenderer.java | 4 +-
.../IsisTransactionFilterForRestfulObjects.java | 12 +-
.../server/ResourceContextTest_getArg.java | 36 +-
..._ensureCompatibleAcceptHeader_ContractTest.java | 34 +-
.../viewer/wicket/viewer/IsisBootWebWicket.java | 180 +--
.../wicket/viewer/IsisWicketApplication.java | 438 +++---
.../viewer/IsisWicketApplication_Experimental.java | 10 +-
...rgetRespondListenerToResetQueryResultCache.java | 2 +-
.../isis/viewer/wicket/viewer/WebModuleWicket.java | 18 +-
.../imagecache/ImageResourceCacheClassPath.java | 2 +-
.../wicket/AuthenticatedWebSessionForIsis.java | 2 +-
.../wicket/ConverterForObjectAdapterMemento.java | 2 +-
.../integration/wicket/WebRequestCycleForIsis.java | 528 +++----
.../ObjectAdapterMementoSupportUsingSpring.java | 108 +-
.../viewer/services/DeepLinkServiceWicket.java | 6 +-
.../services/EmailNotificationServiceWicket.java | 8 +-
.../wicket/viewer/services/Object_clearHints.java | 2 +-
.../viewer/settings/IsisResourceSettings.java | 4 +-
.../viewer/IsisWicketApplication_Defaults.java | 8 +-
.../wicket/viewer/IsisWicketApplication_Pages.java | 8 +-
...uthenticatedWebSessionForIsis_Authenticate.java | 4 +-
.../AuthenticatedWebSessionForIsis_SignIn.java | 2 +-
.../pages/PageClassListDefault_Instantiation.java | 4 +-
.../wicket/model/mementos/CollectionMemento.java | 2 +-
.../mementos/ObjectAdapterMemento_Legacy.java | 1094 ++++++-------
.../viewer/wicket/model/models/ActionModel.java | 32 +-
.../wicket/model/models/BookmarkTreeNode.java | 4 +-
.../wicket/model/models/EntityCollectionModel.java | 8 +-
.../viewer/wicket/model/models/EntityModel.java | 10 +-
.../viewer/wicket/model/models/ModelAbstract.java | 2 +-
.../viewer/wicket/model/models/ScalarModel.java | 17 +-
.../model/models/ScalarModelWithMultiPending.java | 4 +-
.../wicket/model/models/ServiceActionsModel.java | 10 +-
.../models/LowestCommonSuperclassClosureTest.java | 8 +-
.../ActionResultResponseHandlingStrategy.java | 2 +-
.../actionresponse/ActionResultResponseType.java | 12 +-
.../entityactions/AdditionalLinksPanel.java | 24 +-
.../actionmenu/entityactions/LinkAndLabelUtil.java | 4 +-
.../serviceactions/ServiceActionUtil.java | 12 +-
.../serviceactions/ServiceActionsPanel.java | 32 +-
.../serviceactions/ServiceActionsPanelFactory.java | 2 +-
.../actionpromptsb/ActionPromptSidebar.java | 4 +-
.../collection/AssociatedWithActionsHelper.java | 2 +-
.../selector/CollectionSelectorHelper.java | 2 +-
.../CollectionContentsAsAjaxTablePanel.java | 108 +-
.../ajaxtable/IsisAjaxFallbackDataTable.java | 2 +-
.../ajaxtable/IsisAjaxNavigationToolbar.java | 12 +-
.../ajaxtable/IsisTotalRecordsToolbar.java | 10 +-
.../ajaxtable/PrototypingMessageProvider.java | 12 +-
.../columns/ObjectAdapterPropertyColumn.java | 2 +-
.../summary/CollectionContentsAsSummary.java | 2 +-
.../CollectionContentsAsSummaryFactory.java | 78 +-
.../components/entity/fieldset/PropertyGroup.java | 36 +-
.../entity/icontitle/EntityIconAndTitlePanel.java | 8 +-
.../wicket/ui/components/footer/CreditImage.java | 2 +-
.../wicket/ui/components/footer/FooterPanel.java | 18 +-
.../wicket/ui/components/layout/bs3/col/Col.java | 26 +-
.../property/PropertyFormExecutorStrategy.java | 2 +-
.../PropertyEditPromptHeaderPanel.java | 8 +-
.../ui/components/scalars/DateFormatSettings.java | 22 +-
.../ui/components/scalars/ScalarPanelAbstract.java | 6 +-
.../components/scalars/ScalarPanelAbstract2.java | 22 +-
.../scalars/ScalarPanelSelect2Abstract.java | 4 +-
.../scalars/ScalarPanelTextFieldAbstract.java | 6 +-
.../ScalarPanelTextFieldDatePickerAbstract.java | 2 +-
.../datepicker/TextFieldWithDateTimePicker.java | 4 +-
.../isisapplib/IsisBlobOrClobPanelAbstract.java | 68 +-
.../scalars/isisapplib/IsisPasswordPanel.java | 2 +-
.../jdk8time/DateConverterForJdk8Abstract.java | 2 +-
.../jdkdates/DateConverterForJavaAbstract.java | 14 +-
.../scalars/jdkdates/JavaUtilDatePanel.java | 2 +-
.../components/scalars/markup/MarkupComponent.java | 12 +-
.../scalars/markup/MarkupComponent_observing.java | 14 +-
.../scalars/markup/MarkupComponent_reloadJs.java | 6 +-
.../ui/components/scalars/markup/MarkupPanel.java | 10 +-
.../scalars/markup/MarkupPanelFactories.java | 32 +-
.../scalars/markup/StandaloneMarkupPanel.java | 6 +-
.../components/scalars/primitive/BooleanPanel.java | 4 +-
.../scalars/reference/ReferencePanel.java | 6 +-
.../ui/components/scalars/uuid/UuidConverter.java | 4 +-
.../valuechoices/ValueChoicesSelect2Panel.java | 2 +-
.../components/tree/IsisToWicketTreeAdapter.java | 6 +-
.../ui/components/tree/StandaloneTreePanel.java | 4 +-
.../wicket/ui/components/tree/TreePanel.java | 6 +-
.../components/tree/themes/TreeThemeProvider.java | 8 +-
.../tree/themes/TreeThemeProviderDefault.java | 2 +-
.../wicket/ui/components/welcome/WelcomePanel.java | 4 +-
.../ui/components/widgets/favicon/Favicon.java | 2 +-
.../linkandlabel/ActionLinkFactoryAbstract.java | 10 +-
.../ui/components/widgets/navbar/BrandLogo.java | 2 +-
.../ui/components/widgets/navbar/BrandName.java | 8 +-
...tAdapterMementoProviderForReferenceChoices.java | 10 +-
...entoProviderForReferenceObjectAutoComplete.java | 14 +-
...derForReferenceParamOrPropertyAutoComplete.java | 10 +-
.../themepicker/IsisWicketThemeSupport.java | 34 +-
.../themepicker/IsisWicketThemeSupportDefault.java | 58 +-
.../widgets/themepicker/ThemeChooser.java | 8 +-
.../isis/viewer/wicket/ui/pages/PageAbstract.java | 29 +-
.../ui/pages/accmngt/EmailAvailableValidator.java | 20 +-
.../EmailVerificationUrlServiceDefault.java | 6 +-
.../pages/accmngt/UsernameAvailableValidator.java | 20 +-
.../password_reset/PasswordResetEmailPanel.java | 22 +-
.../accmngt/password_reset/PasswordResetPanel.java | 8 +-
.../ui/pages/accmngt/register/RegisterPanel.java | 6 +-
.../accmngt/signup/RegistrationFormPanel.java | 20 +-
.../isis/viewer/wicket/ui/pages/home/HomePage.java | 10 +-
.../wicket/ui/pages/login/IsisSignInPanel.java | 8 +-
.../wicket/ui/pages/mmverror/MmvErrorPage.java | 2 +-
.../isis/viewer/wicket/ui/panels/FormAbstract.java | 2 +-
.../wicket/ui/panels/FormExecutorDefault.java | 18 +-
.../viewer/wicket/ui/panels/PanelAbstract.java | 4 +-
.../isis/viewer/wicket/ui/util/SSESupport.java | 2 +-
.../isis/viewer/wicket/ui/util/Tooltips.java | 16 +-
.../ui/ComponentFactoryAbstractTest_init.java | 24 +-
...ollectionContentsSelectorDropdownPanelTest.java | 8 +-
.../jdkdates/DateConverterForJavaSqlDateTest.java | 8 +-
.../jdkdates/DateConverterForJavaUtilDateTest.java | 14 +-
...BigDecimalConverterWithScaleTest_roundtrip.java | 48 +-
.../jodatime/DateConverterForJodaDateTimeTest.java | 18 +-
.../DateConverterForJodaLocalDateTest.java | 8 +-
.../DateConverterForJodaLocalDateTimeTest.java | 16 +-
.../DateConverterForJdk8LocalDateTest.java | 8 +-
.../DateConverterForJdk8LocalDateTimeTest.java | 16 +-
.../DateConverterForJdk8OffsetDateTimeTest.java | 30 +-
.../scalars/uuid/UuidConverterTest_roundtrip.java | 6 +-
...tAdapterMementoProviderForValueChoicesTest.java | 2 +-
.../viewer/wicket/ui/errors/JGrowlUtilTest.java | 2 +-
.../main/java/domainapp/application/DemoApp.java | 26 +-
.../domainapp/application/DemoAppManifest.java | 52 +-
.../dom/actions/assoc/AssociatedActionDemo.java | 6 +-
.../dom/actions/assoc/AssociatedActionMenu.java | 4 +-
.../java/domainapp/dom/actions/assoc/DemoItem.java | 6 +-
.../dom/actions/async/AsyncActionDemo.java | 16 +-
.../dom/actions/async/AsyncActionMenu.java | 4 +-
.../java/domainapp/dom/actions/async/DemoTask.java | 18 +-
.../domainapp/dom/actions/async/TaskProgress.java | 22 +-
.../domainapp/dom/actions/depargs/DemoItem.java | 8 +-
.../actions/depargs/DependentArgsActionDemo.java | 8 +-
.../DependentArgsActionDemo_useAutoComplete.java | 28 +-
.../DependentArgsActionDemo_useChoices.java | 20 +-
.../DependentArgsActionDemo_useDefault.java | 20 +-
.../DependentArgsActionDemo_useDisable.java | 22 +-
.../depargs/DependentArgsActionDemo_useHide.java | 20 +-
.../actions/depargs/DependentArgsActionMenu.java | 4 +-
.../java/domainapp/dom/actions/depargs/Parity.java | 4 +-
.../main/java/domainapp/dom/error/ErrorDemo.java | 7 +-
.../main/java/domainapp/dom/error/ErrorMenu.java | 4 +-
.../error/service/DemoErrorReportingService.java | 46 +-
.../java/domainapp/dom/events/EventLogEntry.java | 28 +-
.../java/domainapp/dom/events/EventLogMenu.java | 40 +-
.../domainapp/dom/events/EventLogRepository.java | 20 +-
.../java/domainapp/dom/events/EventSubscriber.java | 74 +-
.../java/domainapp/dom/homepage/DemoHomePage.java | 11 +-
.../src/main/java/domainapp/dom/jee/JeeDemo.java | 13 +-
.../java/domainapp/dom/jee/JeeDemoService.java | 2 +-
.../src/main/java/domainapp/dom/jee/JeeMenu.java | 4 +-
.../src/main/java/domainapp/dom/tabs/TabDemo.java | 21 +-
.../src/main/java/domainapp/dom/tabs/TabMenu.java | 4 +-
.../java/domainapp/dom/tooltip/TooltipDemo.java | 59 +-
.../java/domainapp/dom/tooltip/TooltipMenu.java | 4 +-
.../src/main/java/domainapp/dom/tree/FileNode.java | 102 +-
.../java/domainapp/dom/tree/FileNodeFactory.java | 20 +-
.../domainapp/dom/tree/FileSystemTreeAdapter.java | 68 +-
.../src/main/java/domainapp/dom/tree/TreeDemo.java | 56 +-
.../main/java/domainapp/dom/tree/TreeDemoMenu.java | 14 +-
.../domainapp/dom/types/FeaturedTypesMenu.java | 8 +-
.../java/domainapp/dom/types/blob/BlobDemo.java | 34 +-
.../dom/types/blob/BlobDemo_downloadLogo.java | 6 +-
.../domainapp/dom/types/blob/DemoBlobStore.java | 82 +-
.../java/domainapp/dom/types/text/TextDemo.java | 16 +-
.../domainapp/dom/types/time/TemporalDemo.java | 31 +-
.../src/main/java/domainapp/utils/DemoStub.java | 126 +-
.../main/java/domainapp/webapp/Notification.java | 20 +-
.../domainapp/webapp/NotificationsResource.java | 8 +-
.../java/domainapp/application/HelloWorldApp.java | 20 +-
.../application/HelloWorldAppManifest.java | 26 +-
.../main/java/domainapp/dom/HelloWorldModule.java | 2 +-
.../java/domainapp/dom/impl/HelloWorldObject.java | 4 +-
.../java/domainapp/dom/impl/HelloWorldObjects.java | 6 +-
.../src/main/java/domainapp/dom/types/Name.java | 18 +
.../src/main/java/domainapp/dom/types/Notes.java | 18 +
...mainAppFixtureScriptsSpecificationProvider.java | 3 +-
.../fixture/scenarios/DomainAppDemo.java | 8 +-
.../application/manifest/SimpleAppManifest.java | 28 +-
.../services/health/HealthCheckServiceImpl.java | 18 +
.../services/homepage/HomePageViewModel.java | 2 +-
.../application/bdd/specs/RunIntegBddSpecs.java | 2 +-
.../bdd/specs/SimpleObjectsStepDef.java | 86 +-
.../integtests/SpringIntegrationTest.java | 8 +-
.../integtests/mml/MetaModelService_IntegTest.java | 24 +-
.../integtests/smoke/Smoke_IntegTest.java | 4 +-
.../domainapp/modules/simple/SimpleModule.java | 26 +-
.../modules/simple/SimpleModuleManifest.java | 18 +-
.../modules/simple/dom/impl/SimpleObject.java | 4 +-
.../modules/simple/dom/impl/SimpleObjects.java | 16 +-
.../domainapp/modules/simple/dom/types/Name.java | 20 +-
.../domainapp/modules/simple/dom/types/Notes.java | 18 +
.../simple/fixture/SimpleObject_persona.java | 6 +-
.../simple/dom/impl/SimpleObjects_Test.java | 1 +
.../integtests/SimpleModuleIntegTestAbstract.java | 8 +-
.../integtests/SimpleModuleManifestForTesting.java | 18 +-
.../integtests/tests/SimpleObject_IntegTest.java | 32 +-
.../integtests/tests/SimpleObjects_IntegTest.java | 16 +-
.../main/java/domainapp/application/SimpleApp.java | 22 +-
.../java/org/apache/isis/testdomain/jdo/Book.java | 17 +-
.../org/apache/isis/testdomain/jdo/Inventory.java | 6 +-
.../isis/testdomain/jdo/InventoryManager.java | 22 +-
.../isis/testdomain/jdo/InventoryRepository.java | 56 +-
.../isis/testdomain/jdo/JdoTestApplication.java | 2 +-
.../isis/testdomain/jdo/JdoTestDomainModule.java | 28 +-
.../jdo/JdoTestDomainModule_withShiro.java | 54 +-
.../isis/testdomain/jdo/JdoTestDomainPersona.java | 36 +-
.../org/apache/isis/testdomain/jdo/Product.java | 8 +-
.../apache/isis/testdomain/ldap/LdapConstants.java | 26 +-
.../apache/isis/testdomain/rest/RestService.java | 118 +-
.../org/apache/isis/testdomain/Util_H2Console.java | 6 +-
.../testdomain/auditing/AuditerServiceTest.java | 4 +-
.../bootstrapping/JdoBootstrappingTest.java | 164 +-
.../JdoBootstrappingTest_usingFixtures.java | 50 +-
.../SpringServiceProvisioningTest.java | 56 +-
.../commandexecution/BackgroundExecutionTest.java | 68 +-
.../eventhandling/SpringEventPublishingTest.java | 84 +-
.../isis/testdomain/ldap/LdapEmbeddedServer.java | 88 +-
.../testdomain/ldap/LdapEmbeddedServerTest.java | 36 +-
.../isis/testdomain/ldap/LdapServerService.java | 34 +-
.../publishing/PublisherServiceTest.java | 4 +-
.../isis/testdomain/rest/RestServiceTest.java | 62 +-
.../isis/testdomain/shiro/AbstractShiroTest.java | 36 +-
.../isis/testdomain/shiro/ShiroLdapTest.java | 186 +--
.../isis/testdomain/shiro/ShiroSecmanLdapTest.java | 278 ++--
.../shiro/ShiroSecmanLdap_restfulStressTest.java | 134 +-
.../isis/testdomain/shiro/ShiroSecmanTest.java | 180 +--
.../isis/testdomain/shiro/ShiroSimpleTest.java | 26 +-
.../apache/isis/extensions/asciidoc/AsciiDoc.java | 10 +-
.../extensions/asciidoc/AsciiDocComponent.java | 8 +-
.../extensions/asciidoc/AsciiDocConverter.java | 56 +-
.../extensions/fixtures/FixturesEventService.java | 30 +-
.../fixtures/FixturesLifecyleService.java | 36 +-
.../isis/extensions/fixtures/IsisBootFixtures.java | 10 +-
.../IsisIntegrationTestAbstactWithFixtures.java | 2 +-
.../fixturescripts/BuilderScriptAbstract.java | 2 +-
.../fixtures/fixturescripts/FixtureScript.java | 2 +-
.../fixtures/fixturescripts/FixtureScripts.java | 58 +-
.../fixturescripts/SimpleFixtureScript.java | 4 +-
.../fixturespec/FixtureScriptsDefault.java | 8 +-
.../QueryResultsCacheControlInternal.java | 2 +-
.../legacy/setup/PersonaEnumPersistAll.java | 4 +-
.../fixturescripts/ExecutionParameters_Test.java | 12 +-
.../apache/isis/extensions/markdown/Markdown.java | 10 +-
.../extensions/markdown/MarkdownComponent.java | 12 +-
.../extensions/markdown/MarkdownConverter.java | 102 +-
.../isis/extensions/secman/api/SecurityModule.java | 6 +-
.../secman/api/SecurityModuleConfig.java | 34 +-
.../isis/extensions/secman/api/SecurityRealm.java | 4 +-
.../secman/api/SecurityRealmCharacteristic.java | 2 +-
.../secman/api/SecurityRealmService.java | 4 +-
.../api/permission/ApplicationPermission.java | 4 +-
.../ApplicationPermissionRepository.java | 10 +-
.../api/permission/ApplicationPermissionValue.java | 294 ++--
.../permission/ApplicationPermissionValueSet.java | 32 +-
.../PermissionsEvaluationServiceAbstract.java | 12 +-
...PermissionsEvaluationServiceAllowBeatsVeto.java | 6 +-
...PermissionsEvaluationServiceVetoBeatsAllow.java | 8 +-
.../secman/api/role/ApplicationRole.java | 8 +-
.../secman/api/role/ApplicationRoleRepository.java | 10 +-
.../secman/api/tenancy/ApplicationTenancy.java | 4 +-
.../api/tenancy/ApplicationTenancyRepository.java | 6 +-
.../secman/api/user/ApplicationUser.java | 17 +-
.../secman/api/user/ApplicationUserRepository.java | 18 +-
.../secman/api/user/ApplicationUserStatus.java | 6 +-
.../jbcrypt/IsisBootSecmanEncryptionJbcrypt.java | 2 +-
.../secman/model/IsisBootSecmanModel.java | 2 +-
.../secman/model/app/feature/ApplicationClass.java | 30 +-
.../model/app/feature/ApplicationClassAction.java | 28 +-
.../app/feature/ApplicationClassCollection.java | 26 +-
.../model/app/feature/ApplicationClassMember.java | 21 +-
.../app/feature/ApplicationClassProperty.java | 36 +-
.../app/feature/ApplicationFeatureViewModel.java | 594 +++----
.../app/feature/ApplicationFeatureViewModels.java | 60 +-
.../model/app/feature/ApplicationPackage.java | 20 +-
.../app/feature/ApplicationPermission_feature.java | 10 +-
.../user/ApplicationUser_filterPermissions.java | 26 +-
.../app/user/ApplicationUser_permissions.java | 16 +-
.../secman/model/app/user/MeService.java | 18 +-
.../model/app/user/UserPermissionViewModel.java | 152 +-
.../dom/permission/ApplicationPermissionMenu.java | 90 +-
.../secman/model/dom/role/ApplicationRoleMenu.java | 32 +-
.../model/dom/tenancy/ApplicationTenancyMenu.java | 36 +-
.../secman/model/dom/user/ApplicationUserMenu.java | 24 +-
.../secman/model/dom/user/HasUsername_open.java | 6 +-
.../facets/TenantedAuthorizationFacetFactory.java | 10 +-
.../secman/jdo/IsisBootSecmanPersistenceJdo.java | 2 +-
.../jdo/dom/permission/ApplicationPermission.java | 222 +--
.../permission/ApplicationPermissionFactory.java | 2 +-
.../ApplicationPermissionRepository.java | 98 +-
.../secman/jdo/dom/role/ApplicationRole.java | 190 +--
.../jdo/dom/role/ApplicationRoleFactory.java | 2 +-
.../jdo/dom/role/ApplicationRoleRepository.java | 14 +-
.../secman/jdo/dom/tenancy/ApplicationTenancy.java | 150 +-
.../jdo/dom/tenancy/ApplicationTenancyFactory.java | 2 +-
.../dom/tenancy/ApplicationTenancyRepository.java | 16 +-
.../secman/jdo/dom/user/ApplicationUser.java | 216 +--
.../jdo/dom/user/ApplicationUserFactory.java | 2 +-
.../jdo/dom/user/ApplicationUserRepository.java | 16 +-
.../secman/jdo/seed/SeedSecurityModuleService.java | 18 +-
.../jdo/seed/SeedUsersAndRolesFixtureScript.java | 10 +-
.../AbstractRoleAndPermissionsFixtureScript.java | 26 +-
.../scripts/AbstractUserAndRolesFixtureScript.java | 24 +-
.../IsisModuleSecurityAdminRoleAndPermissions.java | 8 +-
.../seed/scripts/IsisModuleSecurityAdminUser.java | 6 +-
...oduleSecurityRegularUserRoleAndPermissions.java | 22 +-
...tyModuleAppUserRegistrationServiceAbstract.java | 2 +-
.../secman/shiro/AuthInfoForApplicationUser.java | 4 +-
...ticationStrategyForIsisModuleSecurityRealm.java | 6 +-
.../secman/shiro/IsisBootSecmanRealmShiro.java | 2 +-
.../secman/shiro/IsisModuleSecurityRealm.java | 104 +-
.../secman/shiro/PrincipalForApplicationUser.java | 10 +-
.../shiro/SecurityRealmServiceUsingShiro.java | 8 +-
.../isis/extensions/secman/shiro/ShiroUtils.java | 2 +-
.../specsupport/ObjectFactoryForIntegration.java | 2 +-
.../java/org/apache/isis/specsupport/specs/V.java | 4 +-
.../wicket/excel/CollectionContentsAsExcel.java | 6 +-
.../viewer/wicket/excel/ExcelFileDownloadLink.java | 40 +-
.../viewer/wicket/excel/ExcelFileModel.java | 400 ++---
.../viewer/wicket/excel/Util_TimeConversion.java | 40 +-
1068 files changed, 16894 insertions(+), 16703 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/IsisApplibModule.java b/core/applib/src/main/java/org/apache/isis/applib/IsisApplibModule.java
index 8fd07eb..ac8ec24 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/IsisApplibModule.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/IsisApplibModule.java
@@ -40,7 +40,7 @@ public class IsisApplibModule {
private static final long serialVersionUID = 1L;
}
public abstract static class LayoutUiEvent<S>
- extends org.apache.isis.applib.events.ui.LayoutUiEvent<S> {
+ extends org.apache.isis.applib.events.ui.LayoutUiEvent<S> {
private static final long serialVersionUID = 1L;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/PropertyResource.java b/core/applib/src/main/java/org/apache/isis/applib/PropertyResource.java
index 0ca81be..84af182 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/PropertyResource.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/PropertyResource.java
@@ -32,7 +32,7 @@ public final class PropertyResource {
public static PropertyResource ofClassContext(final Class<?> resourceContext, final String resourceName) {
return new PropertyResource(resourceContext, resourceName);
}
-
+
PropertyResource(final Class<?> resourceContext, final String resourceName) {
this.resourceContext = resourceContext;
this.resourceName = resourceName;
@@ -53,7 +53,7 @@ public final class PropertyResource {
}
void loadPropsInto(final Map<String, String> props) {
-
+
final Properties properties = new Properties();
try {
try (final InputStream stream = resourceContext.getResourceAsStream(resourceName)) {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java b/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java
index fa5f772..703441f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/adapters/Parser.java
@@ -113,7 +113,7 @@ public interface Parser<T> {
* <tt>May 2, 2007</tt>, but its editable form might be <tt>20070502</tt>.
*/
String parseableTitleOf(T existing);
-
+
/**
* The max length of objects that can be parsed (if any).
* A return type of -1 corresponds to unlimited.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
index 8fdc833..4023001 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainService.java
@@ -55,31 +55,31 @@ public @interface DomainService {
* The nature of this service, eg for menus, contributed actions, repository.
*/
NatureOfService nature() default NatureOfService.VIEW;
-
-//TODO[2140] deprecated, remove?
-// /**
-// * Number in Dewey Decimal format representing the order.
-// *
-// * <p>
-// * Same convention as {@link MemberOrder#sequence()}. If not specified, placed after any named.
-// * </p>
-// *
-// * <p>
-// * Either this attribute or {@link DomainServiceLayout#menuOrder()} can be used; they are equivalent.
-// * Typically this attribute is used for services with a {@link #nature() nature} of
-// * {@link NatureOfService#DOMAIN domain} (these are not visible in the UI) whereas
-// * {@link DomainServiceLayout#menuOrder()} is used for services with a nature of
-// * {@link NatureOfService#VIEW_MENU_ONLY} (which do appear in the UI)
-// * </p>
-// *
-// * <p>
-// * The default value is set to "Integer.MAX_VALUE - 100" so that any domain services intended to override the
-// * default implementations provided by the framework itself will do so without having to specify the
-// * menuOrder (with the exception of <tt>EventBusServiceJdo</tt>, all framework implementations have a
-// * default order greater than Integer.MAX_VALUE - 50).
-// * </p>
-// */
-// String menuOrder() default Constants.MENU_ORDER_DEFAULT ;
+
+ //TODO[2140] deprecated, remove?
+ // /**
+ // * Number in Dewey Decimal format representing the order.
+ // *
+ // * <p>
+ // * Same convention as {@link MemberOrder#sequence()}. If not specified, placed after any named.
+ // * </p>
+ // *
+ // * <p>
+ // * Either this attribute or {@link DomainServiceLayout#menuOrder()} can be used; they are equivalent.
+ // * Typically this attribute is used for services with a {@link #nature() nature} of
+ // * {@link NatureOfService#DOMAIN domain} (these are not visible in the UI) whereas
+ // * {@link DomainServiceLayout#menuOrder()} is used for services with a nature of
+ // * {@link NatureOfService#VIEW_MENU_ONLY} (which do appear in the UI)
+ // * </p>
+ // *
+ // * <p>
+ // * The default value is set to "Integer.MAX_VALUE - 100" so that any domain services intended to override the
+ // * default implementations provided by the framework itself will do so without having to specify the
+ // * menuOrder (with the exception of <tt>EventBusServiceJdo</tt>, all framework implementations have a
+ // * default order greater than Integer.MAX_VALUE - 50).
+ // * </p>
+ // */
+ // String menuOrder() default Constants.MENU_ORDER_DEFAULT ;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
index aff1a8a..abc7fc1 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/DomainServiceLayout.java
@@ -54,28 +54,28 @@ public @interface DomainServiceLayout {
*/
MenuBar menuBar() default MenuBar.NOT_SPECIFIED;
-//TODO[2140] DomainServiceLayout
-// /**
-// * Number in Dewey Decimal format representing the order.
-// *
-// * <p>
-// * Same convention as {@link org.apache.isis.applib.annotation.MemberOrder#sequence()}. If not specified, placed after any named.
-// * </p>
-// *
-// * <p>
-// * Either this attribute or {@link DomainService#menuOrder()} can be used; they are equivalent.
-// * Typically this attribute is used for services with a {@link DomainService#nature() nature} of
-// * {@link NatureOfService#VIEW_MENU_ONLY} (these are visible in the UI) whereas
-// * {@link DomainService#menuOrder()} is used for services with a nature of
-// * {@link NatureOfService#DOMAIN domain} (which do not appear in the UI).
-// * </p>
-// *
-// * <p>
-// * The default value is set to "Integer.MAX_VALUE - 100" so that any domain services intended to override the
-// * default implementations provided by the framework itself will do so without having to specify the
-// * menuOrder (with the exception of <tt>EventBusServiceJdo</tt>, all framework implementations have a
-// * default order greater than Integer.MAX_VALUE - 50).
-// * </p>
-// */
-// String menuOrder() default Constants.MENU_ORDER_DEFAULT;
+ //TODO[2140] DomainServiceLayout
+ // /**
+ // * Number in Dewey Decimal format representing the order.
+ // *
+ // * <p>
+ // * Same convention as {@link org.apache.isis.applib.annotation.MemberOrder#sequence()}. If not specified, placed after any named.
+ // * </p>
+ // *
+ // * <p>
+ // * Either this attribute or {@link DomainService#menuOrder()} can be used; they are equivalent.
+ // * Typically this attribute is used for services with a {@link DomainService#nature() nature} of
+ // * {@link NatureOfService#VIEW_MENU_ONLY} (these are visible in the UI) whereas
+ // * {@link DomainService#menuOrder()} is used for services with a nature of
+ // * {@link NatureOfService#DOMAIN domain} (which do not appear in the UI).
+ // * </p>
+ // *
+ // * <p>
+ // * The default value is set to "Integer.MAX_VALUE - 100" so that any domain services intended to override the
+ // * default implementations provided by the framework itself will do so without having to specify the
+ // * menuOrder (with the exception of <tt>EventBusServiceJdo</tt>, all framework implementations have a
+ // * default order greater than Integer.MAX_VALUE - 50).
+ // * </p>
+ // */
+ // String menuOrder() default Constants.MENU_ORDER_DEFAULT;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
index 183b957..5d9794a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/NatureOfService.java
@@ -31,46 +31,46 @@ package org.apache.isis.applib.annotation;
*/
public enum NatureOfService {
- /**
- * The service's actions appear in the viewer, for example in the menu bar.
- */
- VIEW,
+ /**
+ * The service's actions appear in the viewer, for example in the menu bar.
+ */
+ VIEW,
- /**
- * The services actions should only be visible in the REST API exposed by the Restful Objects viewer.
- */
- VIEW_REST_ONLY,
+ /**
+ * The services actions should only be visible in the REST API exposed by the Restful Objects viewer.
+ */
+ VIEW_REST_ONLY,
- /**
- * The service's actions do not appear on menus and are not contributed.
- */
- DOMAIN,
+ /**
+ * The service's actions do not appear on menus and are not contributed.
+ */
+ DOMAIN,
- ;
+ ;
- // -- BASIC PREDICATES
+ // -- BASIC PREDICATES
- public boolean isViewRestOnly() {
- return this == VIEW_REST_ONLY;
- }
+ public boolean isViewRestOnly() {
+ return this == VIEW_REST_ONLY;
+ }
- public boolean isView() {
- return this == VIEW;
- }
+ public boolean isView() {
+ return this == VIEW;
+ }
- public boolean isDomain() {
- return this == DOMAIN;
- }
+ public boolean isDomain() {
+ return this == DOMAIN;
+ }
- // -- ADVANCED PREDICATES
+ // -- ADVANCED PREDICATES
- /**
- * @implNote introduced as a refactoring step, should be removed if no longer required
- */
- public boolean isContributingToViewer() {
- return
- //this != NatureOfService.VIEW_MENU_ONLY &&
- this != NatureOfService.DOMAIN;
- }
+ /**
+ * @implNote introduced as a refactoring step, should be removed if no longer required
+ */
+ public boolean isContributingToViewer() {
+ return
+ //this != NatureOfService.VIEW_MENU_ONLY &&
+ this != NatureOfService.DOMAIN;
+ }
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Property.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
index 69972dd..e66d2b2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
@@ -254,11 +254,11 @@ public @interface Property {
* @see <a href="http://www.w3schools.com/tags/att_input_accept.asp">http://www.w3schools.com</a>
*/
String fileAccept() default "";
-
-
-
-
-
+
+
+
+
+
/**
* TODO
*
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Redirect.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Redirect.java
index da75e16..fe999c8 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Redirect.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Redirect.java
@@ -26,7 +26,7 @@ import javax.xml.bind.annotation.XmlType;
*/
@XmlType(
namespace = "http://isis.apache.org/applib/layout/component"
-)
+ )
public enum Redirect {
/**
* As defined by configuration property <code>isis.viewer.wicket.redirectEvenIfSameObject</code>
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java
index e20d33b..553f2c7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/SemanticsOf.java
@@ -35,7 +35,7 @@ public enum SemanticsOf {
* </ul>
*/
SAFE_AND_REQUEST_CACHEABLE,
-
+
/**
* Safe, with no side-effects. In other words, a query-only action.
* <ul>
@@ -46,7 +46,7 @@ public enum SemanticsOf {
* </ul>
*/
SAFE,
-
+
/**
* Post-conditions are always the same, irrespective as to how many times called.
* <ul>
@@ -57,7 +57,7 @@ public enum SemanticsOf {
* </ul>
*/
IDEMPOTENT,
-
+
/**
* Neither safe nor idempotent; every invocation is likely to change the state of the object.
* <ul>
@@ -69,7 +69,7 @@ public enum SemanticsOf {
* </ul>
*/
NON_IDEMPOTENT,
-
+
/**
* Post-conditions are always the same, irrespective as to how many times called.
* <p>
@@ -82,7 +82,7 @@ public enum SemanticsOf {
* </ul>
*/
IDEMPOTENT_ARE_YOU_SURE,
-
+
/**
* Neither safe nor idempotent; every invocation is likely to change the state of the object.
* <p>
@@ -95,7 +95,7 @@ public enum SemanticsOf {
* <li>Example: Increasing the quantity of a line item in an Order by 1.</li>
*/
NON_IDEMPOTENT_ARE_YOU_SURE,
-
+
/**
* Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta
* annotations or superclasses/interfaces).
diff --git a/core/applib/src/main/java/org/apache/isis/applib/client/ActionParameterListBuilder.java b/core/applib/src/main/java/org/apache/isis/applib/client/ActionParameterListBuilder.java
index 6fe0eee..7bc74ed 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/client/ActionParameterListBuilder.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/client/ActionParameterListBuilder.java
@@ -31,14 +31,14 @@ import javax.ws.rs.client.Entity;
public class ActionParameterListBuilder {
private final Map<String, String> actionParameters = new LinkedHashMap<>();
-
+
public ActionParameterListBuilder addActionParameter(String parameterName, String parameterValue) {
actionParameters.put(parameterName, parameterValue != null
? value("\"" + parameterValue + "\"")
: value(JSON_NULL_LITERAL));
return this;
}
-
+
public ActionParameterListBuilder addActionParameter(String parameterName, int parameterValue) {
actionParameters.put(parameterName, value(""+parameterValue));
return this;
@@ -48,55 +48,55 @@ public class ActionParameterListBuilder {
actionParameters.put(parameterName, value(""+parameterValue));
return this;
}
-
+
public ActionParameterListBuilder addActionParameter(String parameterName, byte parameterValue) {
actionParameters.put(parameterName, value(""+parameterValue));
return this;
}
-
+
public ActionParameterListBuilder addActionParameter(String parameterName, short parameterValue) {
actionParameters.put(parameterName, value(""+parameterValue));
return this;
}
-
+
public ActionParameterListBuilder addActionParameter(String parameterName, double parameterValue) {
actionParameters.put(parameterName, value(""+parameterValue));
return this;
}
-
+
public ActionParameterListBuilder addActionParameter(String parameterName, float parameterValue) {
actionParameters.put(parameterName, value(""+parameterValue));
return this;
}
-
+
public ActionParameterListBuilder addActionParameter(String parameterName, boolean parameterValue) {
actionParameters.put(parameterName, value(""+parameterValue));
return this;
}
-
+
public Entity<String> build() {
-
+
final StringBuilder sb = new StringBuilder();
sb.append("{\n")
.append(actionParameters.entrySet().stream()
.map(this::toJson)
.collect(Collectors.joining(",\n")))
.append("\n}");
-
+
return Entity.json(sb.toString());
}
-
+
// -- HELPER
-
+
private final static String JSON_NULL_LITERAL = "null";
private String value(String valueLiteral) {
return "{\"value\" : " + valueLiteral + "}";
}
-
+
private String toJson(Map.Entry<String, String> entry) {
return " \""+entry.getKey()+"\": "+entry.getValue();
}
-
-
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/client/ResponseDigest.java b/core/applib/src/main/java/org/apache/isis/applib/client/ResponseDigest.java
index e65de5f..24099d2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/client/ResponseDigest.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/client/ResponseDigest.java
@@ -39,7 +39,7 @@ public class ResponseDigest<T> {
public static <T> ResponseDigest<T> of(Response response, Class<T> entityType) {
return new ResponseDigest<>(response, entityType).digest();
}
-
+
/** a-synchronous response failure processing */
public static <T> ResponseDigest<T> ofAsyncFailure(
Future<Response> asyncResponse,
@@ -52,110 +52,110 @@ public class ResponseDigest<T> {
} catch (Exception e) {
response = null;
}
-
+
final ResponseDigest<T> failureDigest = new ResponseDigest<>(response, entityType);
return failureDigest.digestAsyncFailure(asyncResponse.isCancelled(), failure);
}
-
+
private final Response response;
private final Class<T> entityType;
-
+
private T entity;
private Exception failureCause;
-
-
+
+
protected ResponseDigest(Response response, Class<T> entityType) {
this.response = response;
this.entityType = entityType;
}
-
+
public boolean isSuccess() {
return !isFailure();
}
-
+
public boolean isFailure() {
return failureCause!=null;
}
-
+
public T get(){
return entity;
}
-
+
public Exception getFailureCause(){
return failureCause;
}
-
+
public T ifSuccessGetOrElseMap(Function<Exception, T> failureMapper) {
return isSuccess()
? get()
: failureMapper.apply(getFailureCause());
}
-
+
public <X> X ifSuccessMapOrElseMap(Function<T, X> successMapper, Function<Exception, X> failureMapper) {
return isSuccess()
? successMapper.apply(get())
: failureMapper.apply(getFailureCause());
}
-
+
// -- HELPER
-
+
private ResponseDigest<T> digest() {
-
+
if(response==null) {
entity = null;
failureCause = new NoSuchElementException();
return this;
}
-
+
if(!response.hasEntity()) {
entity = null;
failureCause = new NoSuchElementException(defaultFailureMessage(response));
return this;
}
-
+
if(response.getStatusInfo().getFamily() != Family.SUCCESSFUL) {
entity = null;
failureCause = new RestfulClientException(defaultFailureMessage(response));
return this;
}
-
+
try {
entity = response.readEntity(entityType);
} catch (Exception e) {
entity = null;
failureCause = new RestfulClientException("failed to read JAX-RS response content", e);
}
-
+
return this;
}
-
+
private ResponseDigest<T> digestAsyncFailure(boolean isCancelled, Exception failure) {
entity = null;
-
+
if(isCancelled) {
failureCause = new RestfulClientException("Async JAX-RS request was canceled", failure);
return this;
}
-
+
if(response==null) {
failureCause = new RestfulClientException("Async JAX-RS request failed", failure);
return this;
}
-
+
failureCause = new RestfulClientException("Async JAX-RS request failed "
+ defaultFailureMessage(response), failure);
return this;
-
+
}
-
+
private String defaultFailureMessage(Response response) {
String failureMessage = "non-successful JAX-RS response: " +
String.format("%s (Http-Status-Code: %d)",
response.getStatusInfo().getReasonPhrase(),
response.getStatus());
-
+
if(response.hasEntity()) {
try {
String jsonContent = _Strings.read((InputStream) response.getEntity(), StandardCharsets.UTF_8);
@@ -164,11 +164,11 @@ public class ResponseDigest<T> {
// ignore
}
}
-
+
return failureMessage;
}
-
-
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/client/RestfulClient.java b/core/applib/src/main/java/org/apache/isis/applib/client/RestfulClient.java
index 87ed68b..1019e94 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/client/RestfulClient.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/client/RestfulClient.java
@@ -91,7 +91,7 @@ Future<Response> asyncResponse = request
CompletableFuture<ResponseDigest<MyObject>> digestFuture =
client.digest(asyncResponse, MyObject.class);
-
+
ResponseDigest<MyObject> digest = digestFuture.get(); // blocking
}
@@ -130,22 +130,22 @@ if(digest.isSuccess()) {
*/
@Log4j2
public class RestfulClient {
-
+
public static String DEFAULT_RESPONSE_CONTENT_TYPE = "application/json;profile=\"urn:org.apache.isis/v1\"";
private RestfulClientConfig clientConfig;
private Client client;
-
+
public static RestfulClient ofConfig(RestfulClientConfig clientConfig) {
RestfulClient restClient = new RestfulClient();
restClient.init(clientConfig);
return restClient;
}
-
+
public void init(RestfulClientConfig clientConfig) {
this.clientConfig = clientConfig;
client = ClientBuilder.newClient();
-
+
registerDefaultJsonProvider();
registerBasicAuthFilter();
registerRequestDebugLoggingFilter();
@@ -154,17 +154,17 @@ public class RestfulClient {
public RestfulClientConfig getConfig() {
return clientConfig;
}
-
+
public Client getJaxRsClient() {
return client;
}
-
+
// -- REQUEST BUILDER
-
+
public Builder request(String path, SuppressionType ... suppressionTypes) {
return request(path, SuppressionType.setOf(suppressionTypes));
}
-
+
public Builder request(String path, EnumSet<SuppressionType> suppressionTypes) {
final String responseContentType = DEFAULT_RESPONSE_CONTENT_TYPE
+ toSuppressionLiteral(suppressionTypes);
@@ -173,40 +173,40 @@ public class RestfulClient {
}
// -- ARGUMENT BUILDER
-
+
public ActionParameterListBuilder arguments() {
return new ActionParameterListBuilder();
}
-
+
// -- RESPONSE PROCESSING (SYNC)
-
+
public <T> ResponseDigest<T> digest(Response response, Class<T> entityType) {
return ResponseDigest.of(response, entityType);
}
-
+
// -- RESPONSE PROCESSING (ASYNC)
-
+
public <T> CompletableFuture<ResponseDigest<T>> digest(
final Future<Response> asyncResponse,
final Class<T> entityType) {
-
+
final CompletableFuture<ResponseDigest<T>> completableFuture = CompletableFuture.supplyAsync(()->{
try {
Response response = asyncResponse.get();
ResponseDigest<T> digest = digest(response, entityType);
-
+
return digest;
-
+
} catch (Exception e) {
return ResponseDigest.ofAsyncFailure(asyncResponse, entityType, e);
}
});
-
+
return completableFuture;
}
-
+
// -- FILTER
-
+
private void registerDefaultJsonProvider() {
try {
Class<?> MOXyJsonProvider = _Context.loadClass("org.eclipse.persistence.jaxb.rs.MOXyJsonProvider");
@@ -217,7 +217,7 @@ public class RestfulClient {
+ " Are you missing a maven dependency?");
}
}
-
+
private void registerBasicAuthFilter() {
if(clientConfig.isUseBasicAuth()){
final Credentials credentials = Credentials.of(
@@ -226,15 +226,15 @@ public class RestfulClient {
client.register(BasicAuthFilter.of(credentials));
}
}
-
+
private void registerRequestDebugLoggingFilter() {
if(clientConfig.isUseRequestDebugLogging()){
client.register(new RestfulLoggingFilter());
}
}
-
+
// -- HELPER
-
+
private String relativePathToUri(String path) {
final String baseUri = _Strings.suffix(clientConfig.getRestfulBase(), "/");
while(path.startsWith("/")) {
@@ -242,20 +242,20 @@ public class RestfulClient {
}
return baseUri + path;
}
-
+
private String toSuppressionLiteral(EnumSet<SuppressionType> suppressionTypes) {
final String suppressionSetLiteral = stream(suppressionTypes)
.map(SuppressionType::name)
.collect(Collectors.joining(","));
-
+
if(_Strings.isNotEmpty(suppressionSetLiteral)) {
return ";suppress=" + suppressionSetLiteral;
}
-
+
return "";
}
-
-
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/client/auth/BasicAuthFilter.java b/core/applib/src/main/java/org/apache/isis/applib/client/auth/BasicAuthFilter.java
index f0af247..2e5932b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/client/auth/BasicAuthFilter.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/client/auth/BasicAuthFilter.java
@@ -62,15 +62,15 @@ public class BasicAuthFilter implements ClientRequestFilter {
return "" + user + ":" + pass;
}
}
-
+
public static BasicAuthFilter of(Credentials credentials) {
BasicAuthFilter filter = new BasicAuthFilter();
filter.setCredentials(credentials);
return filter;
}
-
+
private Credentials credentials = Credentials.empty();
-
+
public Credentials getCredentials() {
return credentials;
}
@@ -85,7 +85,7 @@ public class BasicAuthFilter implements ClientRequestFilter {
}
// -- HELPER
-
+
private String getAuthorizationValue() {
try {
return "Basic " + DatatypeConverter.printBase64Binary(credentials.toString().getBytes("UTF-8"));
@@ -93,5 +93,5 @@ public class BasicAuthFilter implements ClientRequestFilter {
throw new IllegalStateException("Cannot encode with UTF-8", ex);
}
}
-
+
}
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/client/log/RestfulLoggingFilter.java b/core/applib/src/main/java/org/apache/isis/applib/client/log/RestfulLoggingFilter.java
index 062cabe..6213592 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/client/log/RestfulLoggingFilter.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/client/log/RestfulLoggingFilter.java
@@ -45,7 +45,7 @@ public class RestfulLoggingFilter implements ClientRequestFilter, ClientResponse
public void filter(ClientRequestContext requestContext) throws IOException {
final String endpoint = requestContext.getUri().toString();
final String method = requestContext.getMethod();
-
+
Exception acceptableMediaTypeParsingFailure;
try {
@SuppressWarnings("unused")
@@ -56,32 +56,32 @@ public class RestfulLoggingFilter implements ClientRequestFilter, ClientResponse
}
final String acceptHeaderParsing = acceptableMediaTypeParsingFailure != null
? "Failed to parse accept header, cause: " + acceptableMediaTypeParsingFailure.getMessage()
- : "OK";
-
- final String headers = requestContext.getStringHeaders().entrySet().stream()
- .map(entry->entry.toString())
- .map(this::obscureAuthHeader)
- .collect(Collectors.joining(",\n\t"));
-
- final String requestBody = requestContext.getEntity().toString();
-
- final StringBuilder sb = new StringBuilder();
- sb.append("\n")
- .append("---------- JAX-RS REQUEST -------------\n")
- .append("uri: ").append(endpoint).append("\n")
- .append("method: ").append(method).append("\n")
- .append("accept-header-parsing: ").append(acceptHeaderParsing).append("\n")
- .append("headers: \n\t").append(headers).append("\n")
- .append("request-body: ").append(requestBody).append("\n")
- .append("----------------------------------------\n")
- ;
-
- log.info(sb.toString());
+ : "OK";
+
+ final String headers = requestContext.getStringHeaders().entrySet().stream()
+ .map(entry->entry.toString())
+ .map(this::obscureAuthHeader)
+ .collect(Collectors.joining(",\n\t"));
+
+ final String requestBody = requestContext.getEntity().toString();
+
+ final StringBuilder sb = new StringBuilder();
+ sb.append("\n")
+ .append("---------- JAX-RS REQUEST -------------\n")
+ .append("uri: ").append(endpoint).append("\n")
+ .append("method: ").append(method).append("\n")
+ .append("accept-header-parsing: ").append(acceptHeaderParsing).append("\n")
+ .append("headers: \n\t").append(headers).append("\n")
+ .append("request-body: ").append(requestBody).append("\n")
+ .append("----------------------------------------\n")
+ ;
+
+ log.info(sb.toString());
}
-
+
@Override
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
-
+
final InputStream inputStream = responseContext.getEntityStream();
final String responseBody;
if(inputStream!=null) {
@@ -90,38 +90,38 @@ public class RestfulLoggingFilter implements ClientRequestFilter, ClientResponse
} else {
responseBody = "null";
}
-
+
final StringBuilder sb = new StringBuilder();
sb.append("\n")
.append("---------- JAX-RS RESPONSE -------------\n")
.append("response-body: ").append(responseBody).append("\n")
.append("----------------------------------------\n")
;
-
+
log.info(sb.toString());
-
+
}
-
+
// -- HELPER
-
+
private final String basicAuthMagic = "Authorization=[Basic ";
-
+
String obscureAuthHeader(String keyValueLiteral) {
if(_Strings.isEmpty(keyValueLiteral)) {
return keyValueLiteral;
}
if(keyValueLiteral.startsWith(basicAuthMagic)) {
-
+
final String obscured = _Strings.padEnd(basicAuthMagic, keyValueLiteral.length() - 1, '*') + "]";
return obscured;
-
+
}
return keyValueLiteral;
}
-
-
-
-
+
+
+
+
}
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java b/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java
index ecd0b6f..4fa08c3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentUsabilityEvent.java
@@ -63,7 +63,7 @@ public class ActionArgumentUsabilityEvent extends UsabilityEvent {
@Override
public String getReasonMessage() {
- return String.format("Invalid action argument. Position: %s. Reason: %s", this.getPosition(), super.getReasonMessage());
+ return String.format("Invalid action argument. Position: %s. Reason: %s", this.getPosition(), super.getReasonMessage());
}
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java b/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java
index 9bd35b2..2fe8584 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/ActionArgumentVisibilityEvent.java
@@ -63,7 +63,7 @@ public class ActionArgumentVisibilityEvent extends VisibilityEvent {
@Override
public String getReasonMessage() {
- return String.format("Invalid action argument. Position: %s. Reason: %s", this.getPosition(), super.getReasonMessage());
+ return String.format("Invalid action argument. Position: %s. Reason: %s", this.getPosition(), super.getReasonMessage());
}
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/domain/ActionDomainEvent.java b/core/applib/src/main/java/org/apache/isis/applib/events/domain/ActionDomainEvent.java
index bf31b84..b60be05 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/domain/ActionDomainEvent.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/domain/ActionDomainEvent.java
@@ -73,26 +73,26 @@ public abstract class ActionDomainEvent<S> extends AbstractDomainEvent<S> {
public ActionDomainEvent() {
}
-// // -- command
-// private Command command;
-//
-// /**
-// * @deprecated - use {@link CommandContext#getCommand()} to obtain the current {@link Command}.
-// */
-// @Deprecated
-// public Command getCommand() {
-// return command;
-// }
-//
-// /**
-// * Not API - set by the framework.
-// *
-// * @deprecated - the corresponding {@link #getCommand()} should not be called, instead use {@link CommandContext#getCommand()} to obtain the current {@link Command}.
-// */
-// @Deprecated
-// public void setCommand(Command command) {
-// this.command = command;
-// }
+ // // -- command
+ // private Command command;
+ //
+ // /**
+ // * @deprecated - use {@link CommandContext#getCommand()} to obtain the current {@link Command}.
+ // */
+ // @Deprecated
+ // public Command getCommand() {
+ // return command;
+ // }
+ //
+ // /**
+ // * Not API - set by the framework.
+ // *
+ // * @deprecated - the corresponding {@link #getCommand()} should not be called, instead use {@link CommandContext#getCommand()} to obtain the current {@link Command}.
+ // */
+ // @Deprecated
+ // public void setCommand(Command command) {
+ // this.command = command;
+ // }
// -- actionSemantics
@@ -147,12 +147,14 @@ public abstract class ActionDomainEvent<S> extends AbstractDomainEvent<S> {
/**
* Populated only for mixins; holds the underlying domain object that the mixin contributes to.
*/
+ @Override
public Object getMixedIn() {
return mixedIn;
}
/**
* Not API - set by the framework.
*/
+ @Override
public void setMixedIn(final Object mixedIn) {
this.mixedIn = mixedIn;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStream.java b/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStream.java
index 1f8b3ff..0115330 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStream.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStream.java
@@ -36,12 +36,12 @@ public interface EventStream {
Class<?> getSourceType();
void listenWhile(Predicate<EventStreamSource> listener);
-
+
void fire(EventStreamSource source);
-
+
void close();
-
+
void awaitClose() throws InterruptedException;
-
-
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamService.java b/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamService.java
index 3db4cbd..37630df 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamService.java
@@ -34,7 +34,7 @@ public interface EventStreamService {
SIMPLE,
REQUIRES_NEW_SESSION
}
-
+
Optional<EventStream> lookupByType(Class<?> sourceType);
void submit(EventStreamSource task, ExecutionBehavior executionBehavior);
diff --git a/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamSource.java b/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamSource.java
index f28316d..8d67184 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamSource.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/events/sse/EventStreamSource.java
@@ -32,11 +32,11 @@ import org.apache.isis.applib.value.Markup;
public interface EventStreamSource {
void run(EventStream eventStream);
-
+
Markup getPayload();
-
+
// -- PROPERTY ANNOTATION DEFAULT
-
+
/**
* This class is the default for the
* {@link org.apache.isis.applib.annotation.Property#observe()} annotation attribute.
@@ -52,11 +52,11 @@ public interface EventStreamSource {
public Markup getPayload() {
return new Markup();
}
-
+
}
-
+
// -- BASIC PREDICATES
-
+
public static boolean isObservable(Class<?> type) {
if(type==null) {
return false;
@@ -66,5 +66,5 @@ public interface EventStreamSource {
}
return !type.equals(Noop.class);
}
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBars.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBars.java
index c99b6b6..1be7b9e 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBars.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBars.java
@@ -25,11 +25,11 @@ import org.apache.isis.applib.layout.component.ServiceActionLayoutData;
public interface MenuBars {
- @FunctionalInterface
+ @FunctionalInterface
interface Visitor {
void visit(final ServiceActionLayoutData serviceActionLayoutData);
}
-
+
String getTnsAndSchemaLocation();
void setTnsAndSchemaLocation(final String tnsAndSchemaLocation);
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
index 171bd93..a99eb21 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/MenuBarsAbstract.java
@@ -53,15 +53,15 @@ public abstract class MenuBarsAbstract implements MenuBars, Serializable {
@Programmatic
@XmlTransient
public LinkedHashMap<String, ServiceActionLayoutData> getAllServiceActionsByObjectTypeAndId() {
-
- val serviceActionsByObjectTypeAndId =
- _Maps.<String, ServiceActionLayoutData>newLinkedHashMap();
-
+
+ val serviceActionsByObjectTypeAndId =
+ _Maps.<String, ServiceActionLayoutData>newLinkedHashMap();
+
visit(serviceActionLayoutData -> {
- serviceActionsByObjectTypeAndId
- .put(serviceActionLayoutData.getObjectTypeAndId(), serviceActionLayoutData);
+ serviceActionsByObjectTypeAndId
+ .put(serviceActionLayoutData.getObjectTypeAndId(), serviceActionLayoutData);
});
-
+
return serviceActionsByObjectTypeAndId;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBars.java b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBars.java
index 02421b9..d52e577 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBars.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/layout/menubars/bootstrap3/BS3MenuBars.java
@@ -127,25 +127,25 @@ public class BS3MenuBars extends org.apache.isis.applib.layout.menubars.MenuBars
@Override public void postVisit(final BS3MenuSection menuSection) { }
@Override public void visit(final ServiceActionLayoutData serviceActionLayoutData) { }
-
+
// -- PREDEFINED SHORTCUTS
-
+
public static VisitorAdapter visitingMenuSections(Consumer<BS3MenuSection> onVisit) {
- return new VisitorAdapter() {
- @Override public void visit(final BS3MenuSection section) {
- onVisit.accept(section);
- }
- };
+ return new VisitorAdapter() {
+ @Override public void visit(final BS3MenuSection section) {
+ onVisit.accept(section);
+ }
+ };
}
-
+
public static VisitorAdapter visitingMenus(Consumer<BS3Menu> onVisit) {
- return new VisitorAdapter() {
- @Override public void visit(final BS3Menu menu) {
- onVisit.accept(menu);
- }
- };
+ return new VisitorAdapter() {
+ @Override public void visit(final BS3Menu menu) {
+ onVisit.accept(menu);
+ }
+ };
}
-
+
}
@Override
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/MixinConstants.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/MixinConstants.java
index e1911e3..8f7046a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/MixinConstants.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/MixinConstants.java
@@ -24,9 +24,9 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class MixinConstants {
- public static final String METADATA_LAYOUT_GROUPNAME = "metadata";
- public static final String FILENAME_PROPERTY_NAME = "File name";
- public static final String FILENAME_PROPERTY_DESCRIPTION = "File name extension can be omitted.";
-
-
+ public static final String METADATA_LAYOUT_GROUPNAME = "metadata";
+ public static final String FILENAME_PROPERTY_NAME = "File name";
+ public static final String FILENAME_PROPERTY_DESCRIPTION = "File name extension can be omitted.";
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java
index e1879c0..009d13f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXml.java
@@ -57,11 +57,11 @@ public class Dto_downloadXml {
)
@MemberOrder(sequence = "500.1")
public Object act(
-
- // PARAM 0
- @ParameterLayout(
- named = MixinConstants.FILENAME_PROPERTY_NAME,
- describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
+
+ // PARAM 0
+ @ParameterLayout(
+ named = MixinConstants.FILENAME_PROPERTY_NAME,
+ describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
final String fileName) {
val xmlString = jaxbService.toXml(holder);
@@ -69,7 +69,7 @@ public class Dto_downloadXml {
}
// -- PARAM 0
-
+
public String default0Act() {
return holder.getClass().getName();
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
index 71e7b5c..974b93c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/Dto_downloadXsd.java
@@ -61,20 +61,20 @@ public class Dto_downloadXsd {
)
@MemberOrder(sequence = "500.2")
public Object act(
-
- // PARAM 0
- @ParameterLayout(
- named = MixinConstants.FILENAME_PROPERTY_NAME,
- describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
+
+ // PARAM 0
+ @ParameterLayout(
+ named = MixinConstants.FILENAME_PROPERTY_NAME,
+ describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
final String fileName,
-
+
// PARAM 1
final JaxbService.IsisSchemas isisSchemas) {
val schemaMap = jaxbService.toXsd(holder, isisSchemas);
if(schemaMap.isEmpty()) {
- val msg = String.format(
+ val msg = String.format(
"No schemas were generated for %s; programming error?",
holder.getClass().getName());
messageService.warnUser(msg);
@@ -87,39 +87,39 @@ public class Dto_downloadXsd {
}
val zipWriter = ZipWriter.newInstance();
-
+
for (Map.Entry<String, String> entry : schemaMap.entrySet()) {
val namespaceUri = entry.getKey();
val schemaText = entry.getValue();
zipWriter.nextEntry(zipEntryNameFor(namespaceUri), writer->{
- writer.write(schemaText);
+ writer.write(schemaText);
});
}
-
+
return BlobClobFactory.blobZip(fileName, zipWriter.toBytes());
}
// -- PARAM 0
-
+
public String default0Act() {
return holder.getClass().getName();
}
// -- PARAM 1
-
+
public JaxbService.IsisSchemas default1Act() {
return JaxbService.IsisSchemas.IGNORE;
}
// -- HELPER
-
+
private static String zipEntryNameFor(final String namespaceUri) {
return namespaceUri + ".xsd";
}
// -- DEPENDENCIES
-
+
@Inject MessageService messageService;
@Inject JaxbService jaxbService;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
index c500d6b..877316d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_downloadLayoutXml.java
@@ -58,13 +58,13 @@ public class Object_downloadLayoutXml {
)
@MemberOrder(name = MixinConstants.METADATA_LAYOUT_GROUPNAME, sequence = "700.1")
public Object act(
-
- // PARAM 0
- @ParameterLayout(
- named = MixinConstants.FILENAME_PROPERTY_NAME,
- describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
+
+ // PARAM 0
+ @ParameterLayout(
+ named = MixinConstants.FILENAME_PROPERTY_NAME,
+ describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
final String fileName,
-
+
// PARAM 1
final LayoutService.Style style) {
@@ -73,17 +73,17 @@ public class Object_downloadLayoutXml {
}
// -- PARAM 0 (fileName)
-
+
public String default0Act() {
return holder.getClass().getSimpleName() + ".layout";
}
-
+
// -- PARAM 1 (style)
-
+
public LayoutService.Style default1Act() {
return LayoutService.Style.NORMALIZED;
}
-
+
// -- DEPENDENCIES
@Inject LayoutService layoutService;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java
index e220df0..524b4d6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/layout/Object_openRestApi.java
@@ -63,12 +63,12 @@ public class Object_openRestApi {
val objType = bookmark.getObjectType();
val objId = bookmark.getIdentifier();
val restfulPathIfAny = _Resources.getRestfulPathIfAny();
-
+
return restfulPathIfAny!=null
- ? new LocalResourcePath(String.format(
- "/%s/objects/%s/%s", restfulPathIfAny, objType, objId))
- : new LocalResourcePath(String.format(
- "/objects/%s/%s", objType, objId));
+ ? new LocalResourcePath(String.format(
+ "/%s/objects/%s/%s", restfulPathIfAny, objType, objId))
+ : new LocalResourcePath(String.format(
+ "/objects/%s/%s", objType, objId));
}
@Inject BookmarkService bookmarkService;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java
index cee515f..1f1bc9b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_downloadMetaModelXml.java
@@ -52,44 +52,44 @@ public class Object_downloadMetaModelXml {
domainEvent = ActionDomainEvent.class,
semantics = SemanticsOf.SAFE,
restrictTo = RestrictTo.PROTOTYPING
- )
+ )
@ActionLayout(
contributed = Contributed.AS_ACTION,
cssClassFa = "fa-download",
position = ActionLayout.Position.PANEL_DROPDOWN
- )
+ )
@MemberOrder(name = MixinConstants.METADATA_LAYOUT_GROUPNAME, sequence = "700.2")
public Object act(
-
- // PARAM 0
- @ParameterLayout(
- named = MixinConstants.FILENAME_PROPERTY_NAME,
- describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
+
+ // PARAM 0
+ @ParameterLayout(
+ named = MixinConstants.FILENAME_PROPERTY_NAME,
+ describedAs = MixinConstants.FILENAME_PROPERTY_DESCRIPTION)
final String fileName) {
- val pkg = holder.getClass().getPackage().getName();
-
+ val pkg = holder.getClass().getPackage().getName();
+
val config =
new MetaModelService.Config()
- .withIgnoreNoop()
- .withIgnoreAbstractClasses()
- .withIgnoreInterfaces()
- .withIgnoreBuiltInValueTypes()
- .withPackagePrefix(pkg);
-
+ .withIgnoreNoop()
+ .withIgnoreAbstractClasses()
+ .withIgnoreInterfaces()
+ .withIgnoreBuiltInValueTypes()
+ .withPackagePrefix(pkg);
+
val metamodelDto = metaModelService.exportMetaModel(config);
val className = holder.getClass().getName();
-
+
val domainClassDtos = metamodelDto.getDomainClassDto();
domainClassDtos.removeIf(classDto->!Objects.equals(classDto.getId(), className));
-
+
val xmlString = jaxbService.toXml(metamodelDto);
return BlobClobFactory.clobXml(fileName, xmlString);
-
+
}
-
+
// -- PARAM 0
public String default0Act() {
@@ -97,11 +97,11 @@ public class Object_downloadMetaModelXml {
}
// -- DEPENDENCIES
-
+
@Inject MetaModelService metaModelService;
@Inject JaxbService jaxbService;
@Inject MetaModelServicesMenu metaModelServicesMenu;
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
index c8bf105..c5573ca 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectIdentifier.java
@@ -48,10 +48,10 @@ public class Object_objectIdentifier {
@Action(
domainEvent = ActionDomainEvent.class,
semantics = SemanticsOf.SAFE
- )
+ )
@ActionLayout(
- contributed = Contributed.AS_ASSOCIATION,
- hidden = Where.ALL_TABLES)
+ contributed = Contributed.AS_ASSOCIATION,
+ hidden = Where.ALL_TABLES)
@Property()
@MemberOrder(name = MixinConstants.METADATA_LAYOUT_GROUPNAME, sequence = "700.2")
public String prop() {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java
index c86135c..44fe4fe 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/metamodel/Object_objectType.java
@@ -48,10 +48,10 @@ public class Object_objectType {
@Action(
domainEvent = ActionDomainEvent.class,
semantics = SemanticsOf.SAFE
- )
+ )
@ActionLayout(
- contributed = Contributed.AS_ASSOCIATION,
- hidden = Where.ALL_TABLES)
+ contributed = Contributed.AS_ASSOCIATION,
+ hidden = Where.ALL_TABLES)
@Property()
@MemberOrder(name = MixinConstants.METADATA_LAYOUT_GROUPNAME, sequence = "700.1")
public String prop() {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
index a148f20..a41b0dc 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundCommandService.java
@@ -46,13 +46,14 @@ public interface BackgroundCommandService extends AutoCloseable {
final String targetClassName,
final String targetActionName,
final String targetArgs);
-
+
/**
* @since 2.0
*/
// refined from AutoCloseable to not throw catched exceptions
+ @Override
default void close() {
-
+
}
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
index 2e6de33..ef23918 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/background/BackgroundService.java
@@ -51,6 +51,6 @@ public interface BackgroundService {
* signature of the action to be invoked in the background.
*/
<T> T executeMixin(Class<T> mixinClass, Object mixedIn);
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java b/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
index b9ee9de..ce84f41 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/command/Command.java
@@ -114,7 +114,7 @@ public interface Command extends HasUniqueId {
* </p>
*/
String getTargetAction();
-
+
// -- arguments (property)
/**
@@ -293,7 +293,7 @@ public interface Command extends HasUniqueId {
* <b>NOT API</b>: intended to be called only by the framework.
*/
public static interface Internal {
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*
@@ -336,7 +336,7 @@ public interface Command extends HasUniqueId {
*/
void setTargetAction(String targetAction);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*
@@ -344,27 +344,27 @@ public interface Command extends HasUniqueId {
* Implementation notes: set when the action is invoked (in the <tt>ActionInvocationFacet</tt>).
*/
void setArguments(final String arguments);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*/
void setExecutor(final Executor executor);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*/
void setResult(Bookmark resultBookmark);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*/
void setException(String stackTrace);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*/
void setParent(final Command parent);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*
@@ -378,7 +378,7 @@ public interface Command extends HasUniqueId {
* {@link Interaction.Execution#setCompletedAt(Timestamp)}.
*/
void setCompletedAt(Timestamp completedAt);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*
@@ -409,12 +409,12 @@ public interface Command extends HasUniqueId {
* Implementation notes: set when the action is invoked (in the <tt>ActionInvocationFacet</t>).
*/
void setTargetClass(String targetClass);
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*/
void setPersistence(final CommandPersistence persistence);
-
+
/**
* Hint that this {@link Command} should be persisted, if possible.
*
@@ -424,13 +424,13 @@ public interface Command extends HasUniqueId {
* @see #getPersistence()
*/
void setPersistHint(boolean persistHint);
-
+
}
-
+
/**
* <b>NOT API</b>: intended to be called only by the framework.
*/
@Programmatic @Deprecated // bad API design
Internal internal();
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java
index f13b5a8..d8b97be 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDefault.java
@@ -204,9 +204,9 @@ public class CommandDefault implements Command {
return toString.toString(this);
}
-
+
// -- FRAMEWORK INTERNATA
-
+
private final Command.Internal INTERNAL = new Command.Internal() {
@Override
public void setMemberIdentifier(String actionIdentifier) {
@@ -273,7 +273,7 @@ public class CommandDefault implements Command {
CommandDefault.this.executor = executor;
}
};
-
+
@Override
public Command.Internal internal() {
return INTERNAL;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
index bd1535d..8fcdfe2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerAbstract.java
@@ -119,9 +119,9 @@ public abstract class ExceptionRecognizerAbstract implements ExceptionRecognizer
@Override
@PostConstruct
public void init() {
- //FIXME[2039]
-// final String prop = properties.get(KEY_LOG_RECOGNIZED_EXCEPTIONS);
-// this.logRecognizedExceptions = Boolean.parseBoolean(prop);
+ //FIXME[2039]
+ // final String prop = properties.get(KEY_LOG_RECOGNIZED_EXCEPTIONS);
+ // this.logRecognizedExceptions = Boolean.parseBoolean(prop);
}
@Override
@@ -167,5 +167,5 @@ public abstract class ExceptionRecognizerAbstract implements ExceptionRecognizer
}
@Inject protected TranslationService translationService;
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
index 575b73e..4e0e7ed 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerComposite.java
@@ -59,7 +59,7 @@ public class ExceptionRecognizerComposite implements ExceptionRecognizer {
add(er);
}
}
-
+
public ExceptionRecognizerComposite(final Stream<? extends ExceptionRecognizer> exceptionRecognizers) {
exceptionRecognizers.forEach(this::add);
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java b/core/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java
index 7320cff..07a904f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/factory/FactoryService.java
@@ -72,7 +72,7 @@ public interface FactoryService {
* @apiNote EXPERIMENTAL
*/
<T> T viewModel(Class<T> viewModelClass, @Nullable String mementoStr);
-
+
/**
* Creates a new ViewModel instance
* @param viewModelClass
@@ -80,8 +80,8 @@ public interface FactoryService {
* @apiNote EXPERIMENTAL
*/
default <T> T viewModel(Class<T> viewModelClass) {
- return viewModel(viewModelClass, /*mementoStr*/null);
+ return viewModel(viewModelClass, /*mementoStr*/null);
}
-
-
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
index 532d216..8e24948 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridLoaderService.java
@@ -46,7 +46,7 @@ public interface GridLoaderService {
*/
@Programmatic
Grid load(final Class<?> domainClass);
-
+
/**
* Returns a new instance of a {@link Grid} for the specified domain class, eg from a
* <code>layout.xml</code> file, else <code>null</code>.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
index 0f7ca43..a057ffc 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/grid/GridService.java
@@ -103,7 +103,7 @@ public interface GridService {
*/
@Programmatic
Grid minimal(Grid grid);
-
+
/**
* Returns a new instance of a {@link Grid} for the specified domain class, eg from a
* <code>[domainClass].layout.[layout].xml</code> file, else <code>null</code>.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
index e804461..73dda2c 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
@@ -318,7 +318,7 @@ public class Interaction implements HasUniqueId {
adder.increment();
return adder.intValue();
}
-
+
private LongAdder newAdder(String ignore) {
final LongAdder adder = new LongAdder();
adder.decrement();
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java b/core/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java
index dd3ee79..4353622 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/inject/ServiceInjector.java
@@ -36,21 +36,21 @@ import lombok.val;
public interface ServiceInjector {
<T> T injectServicesInto(final T domainObject, Consumer<InjectionPoint> onNotResolvable);
-
+
default <T> T injectServicesInto(final T domainObject) {
return injectServicesInto(domainObject, injectionPoint->{
-
+
val injectionPointName = injectionPoint.toString();
val requiredType = injectionPoint.getDeclaredType();
val msg = String
.format("Could not resolve injection point [%s] in target '%s' of required type '%s'",
- injectionPointName,
- domainObject.getClass().getName(),
- requiredType);
+ injectionPointName,
+ domainObject.getClass().getName(),
+ requiredType);
throw new NoSuchElementException(msg);
});
-
+
}
-
-
+
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
index 66a48ff..ce40087 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/layout/LayoutService.java
@@ -76,7 +76,7 @@ public interface LayoutService {
* Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
*/
byte[] toZip(final Style style);
-
+
/**
* Obtains the serialized XML form of the menu bars layout ({@link MenuBarsService}).
* @param type - either the current menubars (could be loaded from a file) or the fallback (obtained from metamodel facets)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java b/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
index b8232b1..a9d24a9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/menu/MenuBarsService.java
@@ -23,14 +23,14 @@ import org.apache.isis.applib.layout.menubars.MenuBars;
public interface MenuBarsService {
enum Type {
-
- /**
+
+ /**
* Either derived from annotations or as obtained elsewhere
* (eg using the {@link MenuBarsLoaderService} if the
* default implementation of this service is in use).
*/
DEFAULT,
-
+
/**
* As derived from annotations.
*/
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java b/core/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java
index 97d88c1..83b668d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/message/MessageService.java
@@ -52,13 +52,13 @@ public interface MessageService {
@Programmatic
String informUser(TranslatableString message, final Class<?> contextClass, final String contextMethod);
-
+
/**
* Override of {@link MessageService#informUser(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
*/
@Programmatic
String informUser(TranslatableString message, final String translationContext);
-
+
/**
* Warn the user about a situation with the specified message. The container
* should guarantee to display this warning to the user, and will typically
@@ -86,7 +86,7 @@ public interface MessageService {
*/
@Programmatic
String warnUser(TranslatableString message, final Class<?> contextClass, final String contextMethod);
-
+
/**
* Override of {@link MessageService#warnUser(TranslatableString, Class, String)}, but with last two parameters combined into a context string.
*/
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/DomainModel.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/DomainModel.java
index 5861459..6449a35 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/DomainModel.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/DomainModel.java
@@ -21,7 +21,7 @@ package org.apache.isis.applib.services.metamodel;
import java.util.List;
public interface DomainModel {
-
+
public List<DomainMember> getDomainMembers();
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
index 1c6530b..38ad62f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/metamodel/MetaModelServicesMenu.java
@@ -112,36 +112,36 @@ public class MetaModelServicesMenu {
public static class DownloadMetaModelXmlEvent extends ActionDomainEvent {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
}
@Action(
domainEvent = DownloadMetaModelXmlEvent.class,
semantics = SemanticsOf.SAFE,
restrictTo = RestrictTo.PROTOTYPING
- )
+ )
@ActionLayout(
cssClassFa = "fa-download",
named = "Download Meta Model (XML)"
- )
+ )
@MemberOrder(sequence="500.500.2")
public Clob downloadMetaModelXml(
@ParameterLayout(named = ".xml file name")
final String fileName,
@ParameterLayout(named = "Packages",
- describedAs="Subset of the complete meta model, only including packages starting with given prefix.")
+ describedAs="Subset of the complete meta model, only including packages starting with given prefix.")
final List<String> packages,
@ParameterLayout(named = "Ignore Interfaces")
@Parameter(optionality=Optionality.MANDATORY)
final boolean ignoreInterfaces
- ) {
+ ) {
MetaModelService.Config config =
new MetaModelService.Config()
- .withIgnoreNoop()
- .withIgnoreAbstractClasses()
- .withIgnoreInterfaces()
- .withIgnoreBuiltInValueTypes();
+ .withIgnoreNoop()
+ .withIgnoreAbstractClasses()
+ .withIgnoreInterfaces()
+ .withIgnoreBuiltInValueTypes();
for (final String pkg : packages) {
config = config.withPackagePrefix(pkg);
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
index 438d946..91e9c4f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
@@ -140,13 +140,13 @@ public class QueryResultsCacheInternal implements QueryResultsCache, WithTransac
}
// -- HELPER
-
+
@Autowired(required = false)
protected List<QueryResultCacheControl> cacheControl;
-
+
private boolean isIgnoreCache() {
- return _NullSafe.stream(cacheControl)
- .anyMatch(c->c.isIgnoreCache());
+ return _NullSafe.stream(cacheControl)
+ .anyMatch(c->c.isIgnoreCache());
}
}
\ No newline at end of file
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/registry/ServiceRegistry.java b/core/applib/src/main/java/org/apache/isis/applib/services/registry/ServiceRegistry.java
index 3b837f6..2749ab3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/registry/ServiceRegistry.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/registry/ServiceRegistry.java
@@ -84,23 +84,23 @@ public interface ServiceRegistry {
* Streams all bean adapters of given BeanSort.
*/
default Stream<BeanAdapter> streamRegisteredBeansOfSort(BeanSort sort) {
- return streamRegisteredBeans()
- .filter(beanAdapter->beanAdapter.getManagedObjectSort()==sort);
+ return streamRegisteredBeans()
+ .filter(beanAdapter->beanAdapter.getManagedObjectSort()==sort);
}
/**
* Returns all bean adapters that have been registered.
*/
public Stream<BeanAdapter> streamRegisteredBeans();
-
+
/**
* Returns a registered bean of given {@code name}.
*
* @param id - corresponds to the ObjectSpecificationId of the bean's type
*/
public Optional<BeanAdapter> lookupRegisteredBeanById(String id);
-
-
+
+
public default BeanAdapter lookupRegisteredBeanByNameElseFail(String id) {
return lookupRegisteredBeanById(id).orElseThrow(
()->_Exceptions.unrecoverable(
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 32d5354..b7240b9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -92,7 +92,7 @@ public interface WrapperFactory {
* Validate all business rules but do not execute.
*/
NO_EXECUTE(true, false, true);
-
+
private final boolean enforceRules;
private final boolean execute;
private final boolean failFast;
@@ -222,7 +222,7 @@ public interface WrapperFactory {
*/
@Programmatic
<T> T wrapTry(T domainObject);
-
+
/**
* Convenience method for {@link #wrap(Object, ExecutionMode)} with {@link ExecutionMode#NO_EXECUTE},
* to make this feature more discoverable.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/xactn/Transaction.java b/core/applib/src/main/java/org/apache/isis/applib/services/xactn/Transaction.java
index 319c349..c7c7fac 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/xactn/Transaction.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/xactn/Transaction.java
@@ -25,9 +25,9 @@ import org.apache.isis.applib.annotation.Programmatic;
* Representation of the current transaction, which conceptually wraps the underlying transaction context's transaction.
*/
public interface Transaction {
-
- @Programmatic
- TransactionId getId();
+
+ @Programmatic
+ TransactionId getId();
/**
* Flush all changes to the object store.
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java b/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java
index 3cbe227..b884fdb 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionId.java
@@ -27,19 +27,19 @@ import lombok.Data;
@Data(staticConstructor = "of")
public final class TransactionId implements HasUniqueId {
- private final UUID uniqueId;
-
- /**
+ private final UUID uniqueId;
+
+ /**
* The {@link HasUniqueId#getUniqueId()} is (as of 1.13.0) actually an identifier for the request/
* interaction, and there can actually be multiple transactions within such a request/interaction.
* The sequence (0-based) is used to distinguish such.
*/
- private final int sequence;
+ private final int sequence;
+
+ private final static TransactionId EMPTY = TransactionId.of(UUID.fromString("0000-00-00-00-000000"), 0);
- private final static TransactionId EMPTY = TransactionId.of(UUID.fromString("0000-00-00-00-000000"), 0);
-
- public static TransactionId empty() {
- return EMPTY;
- }
+ public static TransactionId empty() {
+ return EMPTY;
+ }
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java b/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
index 0e02c3b..65c9b56 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/xactn/TransactionService.java
@@ -23,13 +23,13 @@ import java.util.function.Supplier;
public interface TransactionService {
- public enum Policy {
+ public enum Policy {
UNLESS_MARKED_FOR_ABORT,
ALWAYS
}
-
- TransactionId currentTransactionId();
-
+
+ TransactionId currentTransactionId();
+
/**
* Flush all changes to the object store.
*
diff --git a/core/applib/src/main/java/org/apache/isis/applib/tree/LazyTreeNode.java b/core/applib/src/main/java/org/apache/isis/applib/tree/LazyTreeNode.java
index 6315b65..f34b28f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/tree/LazyTreeNode.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/tree/LazyTreeNode.java
@@ -129,7 +129,7 @@ public class LazyTreeNode<T> implements TreeNode<T> {
return indexOneBased.intValue()-1;
}
-
+
private boolean isEqualTo(TreeNode<T> other) {
if(other==null) {
return false;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java b/core/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java
index 2bcb3f6..b0f2f10 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/util/JaxbAdapters.java
@@ -49,9 +49,9 @@ import org.apache.isis.commons.internal.base._Strings;
public final class JaxbAdapters {
// -- MARKUP
-
+
public static final class MarkupAdapter extends XmlAdapter<String, Markup> {
-
+
private final static Base64.Encoder encoder = Base64.getEncoder();
private final static Base64.Decoder decoder = Base64.getDecoder();
@@ -74,18 +74,18 @@ public final class JaxbAdapters {
}
}
-
+
// -- BLOB
-
+
public static final class BlobAdapter extends XmlAdapter<String, Blob> {
// copy pasted code from BlobValueSemanticsProvider
-
- @Override
- public Blob unmarshal(String data) throws Exception {
- if(data==null) {
+
+ @Override
+ public Blob unmarshal(String data) throws Exception {
+ if(data==null) {
return null;
}
- final int colonIdx = data.indexOf(':');
+ final int colonIdx = data.indexOf(':');
final String name = data.substring(0, colonIdx);
final int colon2Idx = data.indexOf(":", colonIdx+1);
final String mimeTypeBase = data.substring(colonIdx+1, colon2Idx);
@@ -96,66 +96,74 @@ public final class JaxbAdapters {
} catch (MimeTypeParseException e) {
throw new RuntimeException(e);
}
- }
-
- @Override
- public String marshal(Blob blob) throws Exception {
- if(blob==null) {
+ }
+
+ @Override
+ public String marshal(Blob blob) throws Exception {
+ if(blob==null) {
return null;
}
- return blob.getName() + ":" +
- blob.getMimeType().getBaseType() + ":" +
- _Strings.ofBytes(_Bytes.encodeToBase64(Base64.getEncoder(), blob.getBytes()),
- StandardCharsets.UTF_8);
- }
-
+ return blob.getName() + ":" +
+ blob.getMimeType().getBaseType() + ":" +
+ _Strings.ofBytes(_Bytes.encodeToBase64(Base64.getEncoder(), blob.getBytes()),
+ StandardCharsets.UTF_8);
+ }
+
}
-
-
+
+
// -- TEMPORAL VALUE TYPES
-
+
public static final class DateAdapter extends XmlAdapter<String, java.util.Date> {
+ @Override
public java.util.Date unmarshal(String v) throws Exception {
return new java.util.Date(Long.parseLong(v));
}
+ @Override
public String marshal(java.util.Date v) throws Exception {
return Long.toString(v.getTime());
}
}
-
+
public static final class SqlDateAdapter extends XmlAdapter<String, java.sql.Date> {
+ @Override
public java.sql.Date unmarshal(String v) throws Exception {
return java.sql.Date.valueOf(v);
}
+ @Override
public String marshal(java.sql.Date v) throws Exception {
return v.toString();
}
}
-
+
public static final class SqlTimestampAdapter extends XmlAdapter<String, java.sql.Timestamp> {
+ @Override
public java.sql.Timestamp unmarshal(String v) throws Exception {
return new java.sql.Timestamp(Long.parseLong(v));
}
+ @Override
public String marshal(java.sql.Timestamp v) throws Exception {
return Long.toString(v.getTime());
}
}
-
+
public static final class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
+ @Override
public LocalDate unmarshal(String v) throws Exception {
return LocalDate.parse(v);
}
+ @Override
public String marshal(LocalDate v) throws Exception {
return v.toString();
}
@@ -164,10 +172,12 @@ public final class JaxbAdapters {
public static final class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
+ @Override
public LocalDateTime unmarshal(String v) throws Exception {
return LocalDateTime.parse(v);
}
+ @Override
public String marshal(LocalDateTime v) throws Exception {
return v.toString();
}
@@ -176,14 +186,16 @@ public final class JaxbAdapters {
public static final class OffsetDateTimeAdapter extends XmlAdapter<String, OffsetDateTime> {
+ @Override
public OffsetDateTime unmarshal(String v) throws Exception {
return OffsetDateTime.parse(v);
}
+ @Override
public String marshal(OffsetDateTime v) throws Exception {
return v.toString();
}
}
-
+
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java b/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java
index b072838..db7b1a3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/util/JaxbUtil.java
@@ -49,7 +49,7 @@ import lombok.val;
public class JaxbUtil {
private JaxbUtil(){}
-
+
// -- READ
public static <T> T fromXml(
@@ -72,7 +72,7 @@ public class JaxbUtil {
val s = _Resources.loadAsStringUtf8(contextClass, resourceName);
return fromXml(new StringReader(s), dtoClass);
}
-
+
// -- WRITE
public static <T> String toXml(final T dto) {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/util/ReasonBuffer2.java b/core/applib/src/main/java/org/apache/isis/applib/util/ReasonBuffer2.java
index f9abc70..c10f0ba 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/util/ReasonBuffer2.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/util/ReasonBuffer2.java
@@ -50,7 +50,7 @@ public class ReasonBuffer2 {
public static ConditionAndReason create(final Condition condition, final String reason) {
return reason != null
? new ConditionAndReason(condition, reason)
- : null;
+ : null;
}
private ConditionAndReason(final Condition condition, final String reason) {
@@ -219,6 +219,7 @@ public class ReasonBuffer2 {
return new ReasonBuffer2(mode, prefix);
}
+ @Override
public String toString() {
return "ReasonBuffer2.ReasonBuffer2Builder(mode=" + this.mode + ", prefix=" + this.prefix + ")";
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/util/ToString.java b/core/applib/src/main/java/org/apache/isis/applib/util/ToString.java
index 58e8775..129c52d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/util/ToString.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/util/ToString.java
@@ -40,7 +40,7 @@ public class ToString<T> {
Objects.requireNonNull(getter);
return new ToString<>(name, getter, false);
}
-
+
public static <T> ToString<T> toStringOmmitIfAbsent(String name, Function<? super T, ?> getter) {
Objects.requireNonNull(name);
Objects.requireNonNull(getter);
@@ -65,7 +65,7 @@ public class ToString<T> {
getters.add(getter);
return this;
}
-
+
public ToString<T> thenToStringOmmitIfAbsent(String name, Function<? super T, ?> getter){
Objects.requireNonNull(name);
Objects.requireNonNull(getter);
@@ -108,9 +108,9 @@ public class ToString<T> {
);
}
-
+
// -- HELPER
-
+
private void addBit(boolean bit) {
final int index = names.size();
if(bit) {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java b/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java
index 14a0c26..79f0b48 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/value/Blob.java
@@ -38,7 +38,7 @@ public final class Blob implements NamedWithMimeType {
* </pre>
*/
private static final long serialVersionUID = 5659679806709601263L;
-
+
private final MimeType mimeType;
private final byte[] bytes;
private final String name;
diff --git a/core/applib/src/main/java/org/apache/isis/applib/value/BlobClobFactory.java b/core/applib/src/main/java/org/apache/isis/applib/value/BlobClobFactory.java
index 289142e..2930be7 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/value/BlobClobFactory.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/value/BlobClobFactory.java
@@ -32,120 +32,120 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class BlobClobFactory {
- /**
- * see https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc
- */
- public static enum Type {
- txt("text/plain"),
- xml("xml/plain"),
- zip("application/zip"),
- json("application/json"),
- xlsx("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
- ;
- final String base;
- final MimeType mimeType;
-
- private Type(String baseType) {
- this.base = baseType;
- try {
- this.mimeType = new MimeType(baseType);
- } catch (MimeTypeParseException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- public String getFileNameWithExtension(String fileName) {
- return asFileNameWithExtension(fileName, name());
- }
- }
-
- /**
- * Returns a new {@link Blob} of given {@code type}, {@code fileName} and {@code content}.
- * <p>
- * {@code fileName} may or may not include the desired filename extension, anyway it
- * is guaranteed, that the resulting Blob has the appropriate extension as dictated by
- * the given {@code Type}'s name.
- * <p>
- * For more fine-grained control use one of the {@link Blob} constructors directly.
- * @param type
- * @param fileName - may or may not include the desired filename extension
- * @param content
- * @return new {@link Blob}
- */
- public static Blob blob(Type type, String fileName, byte[] content){
- return blob(type, fileName, type.name(), content);
- }
-
- /** To explicitly specify the fileNameExtension, otherwise use {@link #blob(Type, String, byte[])} */
- public static Blob blob(Type type, String fileName, String fileNameExtension, byte[] content){
- return new Blob(asFileNameWithExtension(fileName, fileNameExtension), type.mimeType, content);
- }
-
- /**
- * Returns a new {@link Clob} of given {@code type}, {@code fileName} and {@code content}.
- * <p>
- * {@code fileName} may or may not include the desired filename extension, anyway it
- * is guaranteed, that the resulting Blob has the appropriate extension as dictated by
- * the given {@code Type}'s name.
- * <p>
- * For more fine-grained control use one of the {@link Clob} constructors directly.
- * @param type
- * @param fileName - may or may not include the desired filename extension
- * @param content
- * @return new {@link Clob}
- */
- public static Clob clob(Type type, String fileName, CharSequence content){
- return clob(type, fileName, type.name(), content);
- }
-
- /** To explicitly specify the fileNameExtension, otherwise use {@link #clob(Type, String, String)} */
- public static Clob clob(Type type, String fileName, String fileNameExtension, CharSequence content){
- return new Clob(asFileNameWithExtension(fileName, fileNameExtension), type.mimeType, content);
- }
-
- // -- SHORTCUTS - BLOB
-
- /** A shortcut, see {@link #blob(Type, String, byte[])} */
- public static Blob blobTxt(String fileName, byte[] content) {
- return blob(Type.txt, fileName, content);
- }
-
- /** A shortcut, see {@link #blob(Type, String, byte[])} */
- public static Blob blobXml(String fileName, byte[] content) {
- return blob(Type.xml, fileName, content);
- }
-
- /** A shortcut, see {@link #blob(Type, String, byte[])} */
- public static Blob blobZip(String fileName, byte[] content) {
- return blob(Type.zip, fileName, content);
- }
-
- /** A shortcut, see {@link #blob(Type, String, byte[])} */
- public static Blob blobJson(String fileName, byte[] content) {
- return blob(Type.json, fileName, content);
- }
-
- /** A shortcut, see {@link #blob(Type, String, byte[])} */
- public static Blob blobXlsx(String fileName, byte[] content) {
- return blob(Type.xlsx, fileName, content);
- }
-
- // -- SHORTCUTS - CLOB
-
- /** A shortcut, see {@link #clob(Type, String, String)} */
- public static Clob clobTxt(String fileName, CharSequence content) {
- return clob(Type.txt, fileName, content);
- }
-
- /** A shortcut, see {@link #clob(Type, String, String)} */
- public static Clob clobXml(String fileName, CharSequence content) {
- return clob(Type.xml, fileName, content);
- }
-
- /** A shortcut, see {@link #clob(Type, String, String)} */
- public static Clob clobJson(String fileName, CharSequence content) {
- return clob(Type.json, fileName, content);
- }
-
-
+ /**
+ * see https://stackoverflow.com/questions/4212861/what-is-a-correct-mime-type-for-docx-pptx-etc
+ */
+ public static enum Type {
+ txt("text/plain"),
+ xml("xml/plain"),
+ zip("application/zip"),
+ json("application/json"),
+ xlsx("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+ ;
+ final String base;
+ final MimeType mimeType;
+
+ private Type(String baseType) {
+ this.base = baseType;
+ try {
+ this.mimeType = new MimeType(baseType);
+ } catch (MimeTypeParseException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
+ public String getFileNameWithExtension(String fileName) {
+ return asFileNameWithExtension(fileName, name());
+ }
+ }
+
+ /**
+ * Returns a new {@link Blob} of given {@code type}, {@code fileName} and {@code content}.
+ * <p>
+ * {@code fileName} may or may not include the desired filename extension, anyway it
+ * is guaranteed, that the resulting Blob has the appropriate extension as dictated by
+ * the given {@code Type}'s name.
+ * <p>
+ * For more fine-grained control use one of the {@link Blob} constructors directly.
+ * @param type
+ * @param fileName - may or may not include the desired filename extension
+ * @param content
+ * @return new {@link Blob}
+ */
+ public static Blob blob(Type type, String fileName, byte[] content){
+ return blob(type, fileName, type.name(), content);
+ }
+
+ /** To explicitly specify the fileNameExtension, otherwise use {@link #blob(Type, String, byte[])} */
+ public static Blob blob(Type type, String fileName, String fileNameExtension, byte[] content){
+ return new Blob(asFileNameWithExtension(fileName, fileNameExtension), type.mimeType, content);
+ }
+
+ /**
+ * Returns a new {@link Clob} of given {@code type}, {@code fileName} and {@code content}.
+ * <p>
+ * {@code fileName} may or may not include the desired filename extension, anyway it
+ * is guaranteed, that the resulting Blob has the appropriate extension as dictated by
+ * the given {@code Type}'s name.
+ * <p>
+ * For more fine-grained control use one of the {@link Clob} constructors directly.
+ * @param type
+ * @param fileName - may or may not include the desired filename extension
+ * @param content
+ * @return new {@link Clob}
+ */
+ public static Clob clob(Type type, String fileName, CharSequence content){
+ return clob(type, fileName, type.name(), content);
+ }
+
+ /** To explicitly specify the fileNameExtension, otherwise use {@link #clob(Type, String, String)} */
+ public static Clob clob(Type type, String fileName, String fileNameExtension, CharSequence content){
+ return new Clob(asFileNameWithExtension(fileName, fileNameExtension), type.mimeType, content);
+ }
+
+ // -- SHORTCUTS - BLOB
+
+ /** A shortcut, see {@link #blob(Type, String, byte[])} */
+ public static Blob blobTxt(String fileName, byte[] content) {
+ return blob(Type.txt, fileName, content);
+ }
+
+ /** A shortcut, see {@link #blob(Type, String, byte[])} */
+ public static Blob blobXml(String fileName, byte[] content) {
+ return blob(Type.xml, fileName, content);
+ }
+
+ /** A shortcut, see {@link #blob(Type, String, byte[])} */
+ public static Blob blobZip(String fileName, byte[] content) {
+ return blob(Type.zip, fileName, content);
+ }
+
+ /** A shortcut, see {@link #blob(Type, String, byte[])} */
+ public static Blob blobJson(String fileName, byte[] content) {
+ return blob(Type.json, fileName, content);
+ }
+
+ /** A shortcut, see {@link #blob(Type, String, byte[])} */
+ public static Blob blobXlsx(String fileName, byte[] content) {
+ return blob(Type.xlsx, fileName, content);
+ }
+
+ // -- SHORTCUTS - CLOB
+
+ /** A shortcut, see {@link #clob(Type, String, String)} */
+ public static Clob clobTxt(String fileName, CharSequence content) {
+ return clob(Type.txt, fileName, content);
+ }
+
+ /** A shortcut, see {@link #clob(Type, String, String)} */
+ public static Clob clobXml(String fileName, CharSequence content) {
+ return clob(Type.xml, fileName, content);
+ }
+
+ /** A shortcut, see {@link #clob(Type, String, String)} */
+ public static Clob clobJson(String fileName, CharSequence content) {
+ return clob(Type.json, fileName, content);
+ }
+
+
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/query/QueryDefaultTest_withStart_or_withCount.java b/core/applib/src/test/java/org/apache/isis/applib/query/QueryDefaultTest_withStart_or_withCount.java
index 00c0c0b..56a129c 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/query/QueryDefaultTest_withStart_or_withCount.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/query/QueryDefaultTest_withStart_or_withCount.java
@@ -25,14 +25,14 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class QueryDefaultTest_withStart_or_withCount {
-
+
private QueryDefault<Customer> queryDefault;
@Rule
public ExpectedException thrown= ExpectedException.none();
-
+
static class Customer {}
-
+
@Before
public void setUp() throws Exception {
queryDefault = new QueryDefault<Customer>(Customer.class, "findByLastName", "lastName", "Smith");
@@ -48,7 +48,7 @@ public class QueryDefaultTest_withStart_or_withCount {
@Test
public void typicalHappyCase() throws Exception {
final QueryDefault<Customer> q = queryDefault.withStart(10L).withCount(5L);
-
+
assertThat(q, is(queryDefault));
assertThat(q.getStart(), is(10L));
assertThat(q.getCount(), is(5L));
@@ -57,7 +57,7 @@ public class QueryDefaultTest_withStart_or_withCount {
@Test
public void happyCase_startOnly() throws Exception {
final QueryDefault<Customer> q = queryDefault.withStart(10L);
-
+
assertThat(q, is(queryDefault));
assertThat(q.getStart(), is(10L));
assertThat(q.getCount(), is(0L));
@@ -66,7 +66,7 @@ public class QueryDefaultTest_withStart_or_withCount {
@Test
public void happyCase_startZero() throws Exception {
final QueryDefault<Customer> q = queryDefault.withStart(0);
-
+
assertThat(q, is(queryDefault));
assertThat(q.getStart(), is(0L));
}
@@ -80,7 +80,7 @@ public class QueryDefaultTest_withStart_or_withCount {
@Test
public void happyCase_countOnly() throws Exception {
final QueryDefault<Customer> q = queryDefault.withCount(20L);
-
+
assertThat(q, is(queryDefault));
assertThat(q.getStart(), is(0L));
assertThat(q.getCount(), is(20L));
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
index e933dd4..23ffa90 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerCompositeTest.java
@@ -76,7 +76,7 @@ public class ExceptionRecognizerCompositeTest {
context.ignoring(mockServiceRegistry);
context.ignoring(mockTranslationService);
}
-
+
@Test
public void whenEmpty() {
assertThat(composite.recognize(new RuntimeException()), is(nullValue()));
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForTypeTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForTypeTest.java
index 65c8d4c..12dd7c3 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForTypeTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerForTypeTest.java
@@ -36,7 +36,7 @@ public class ExceptionRecognizerForTypeTest {
public FooException() {
super("foo");
}
-
+
}
static class BarException extends Exception {
private static final long serialVersionUID = 1L;
@@ -44,14 +44,14 @@ public class ExceptionRecognizerForTypeTest {
super("bar");
}
}
-
+
private Function<String,String> prepend = new Function<String, String>() {
@Override
public String apply(String input) {
return "pre: " + input;
}
};
-
+
@Test
public void whenRecognized() {
ersForType = new ExceptionRecognizerForType(FooException.class);
@@ -70,5 +70,5 @@ public class ExceptionRecognizerForTypeTest {
assertThat(ersForType.recognize(new FooException()), is("pre: foo"));
}
-
+
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java
index d5775b3..ed1453ab 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/ExceptionRecognizerGeneralTest.java
@@ -37,10 +37,10 @@ public class ExceptionRecognizerGeneralTest {
super("foo");
}
}
-
+
private final static Predicate<Throwable> ALWAYS_TRUE = __->true;
private final static Predicate<Throwable> ALWAYS_FALSE = __->false;
-
+
@Test
public void whenRecognized() {
ersGeneral = new ExceptionRecognizerAbstract(ALWAYS_TRUE){};
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java b/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java
index 9ce7b14..be130aa 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/interaction/InteractionDefaultTest_next.java
@@ -31,7 +31,7 @@ public class InteractionDefaultTest_next {
@Test
public void test() {
final Interaction interaction = new Interaction();
-
+
assertThat(interaction.next("foo"), is(0));
assertThat(interaction.next("foo"), is(1));
assertThat(interaction.next("bar"), is(0));
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceTest.java
index eb8db5f..5aa90f2 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceTest.java
@@ -31,20 +31,20 @@ public class UrlEncodingServiceTest {
@Before
public void setUp() throws Exception {
- serviceWithCompression = new UrlEncodingServiceWithCompression();
- serviceBaseEncoding = new UrlEncodingServiceUsingBaseEncodingAbstract(){};
+ serviceWithCompression = new UrlEncodingServiceWithCompression();
+ serviceBaseEncoding = new UrlEncodingServiceUsingBaseEncodingAbstract(){};
}
@Test
public void roundtrip() throws Exception {
- roundtrip(serviceBaseEncoding, false);
+ roundtrip(serviceBaseEncoding, false);
}
-
+
@Test
public void roundtrip_with_compression() throws Exception {
- roundtrip(serviceWithCompression, true);
+ roundtrip(serviceWithCompression, true);
}
-
+
private void roundtrip(UrlEncodingService service, boolean testIsCompressing) throws Exception {
final String original = "0-theme-entityPageContainer-entity-rows-2-rowContents-1-col-tabGroups-1-panel-tabPanel-rows-1-rowContents-1-col-fieldSets-1-memberGroup-properties-1-property-scalarTypeContainer-scalarIfRegular-associatedActionLinksBelow-additionalLinkList-additionalLinkItem-0-additionalLink";
@@ -55,9 +55,9 @@ public class UrlEncodingServiceTest {
Assert.assertThat(decoded, is(equalTo(original)));
if(testIsCompressing) {
- Assert.assertThat(original.length(), is(greaterThan(encoded.length())));
+ Assert.assertThat(original.length(), is(greaterThan(encoded.length())));
}
-
+
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
index afa2c58..07caa0e 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotServiceAbstractTest.java
@@ -36,23 +36,23 @@ public class XmlSnapshotServiceAbstractTest {
private XmlSnapshotServiceAbstract xmlSnapshotService;
private String xmlStr;
-
+
@Before
public void setUp() throws Exception {
xmlStr = _Resources.loadAsString(
- XmlSnapshotServiceAbstractTest.class,
- "XmlSnapshotServiceAbstractTest.xml",
- Charset.forName("UTF-8"));
+ XmlSnapshotServiceAbstractTest.class,
+ "XmlSnapshotServiceAbstractTest.xml",
+ Charset.forName("UTF-8"));
xmlSnapshotService = new XmlSnapshotServiceForUnitTesting();
-
+
}
-
+
@Test
public void test() {
Locale locale = Locale.getDefault();
-
+
Locale[] locales = new Locale[]{Locale.getDefault(), lookupLocale("en", "US"), lookupLocale("en", "GB"), lookupLocale("es", "ES")};
for (Locale eachLocal : locales) {
try {
@@ -61,7 +61,7 @@ public class XmlSnapshotServiceAbstractTest {
Document xmlDoc = xmlSnapshotService.asDocument(xmlStr);
Element rootEl = xmlDoc.getDocumentElement();
-
+
assertThat(
xmlSnapshotService.getChildElementValue(rootEl, "app:someString", String.class), is("OXF"));
assertThat(
@@ -98,7 +98,7 @@ public class XmlSnapshotServiceAbstractTest {
throw new IllegalArgumentException("no such locale:" + language + "_" + country);
}
-
+
static class XmlSnapshotServiceForUnitTesting extends XmlSnapshotServiceAbstract {
@Override
diff --git a/core/applib/src/test/java/org/apache/isis/applib/tree/TreePathTest.java b/core/applib/src/test/java/org/apache/isis/applib/tree/TreePathTest.java
index da88947..bd1becc 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/tree/TreePathTest.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/tree/TreePathTest.java
@@ -26,23 +26,23 @@ import static org.junit.Assert.assertThat;
public class TreePathTest {
- @Test
- public void rootConstructor() {
- final TreePath treePath = TreePath.root();
- assertThat(treePath.isRoot(), Matchers.is(true));
- assertThat(treePath.toString(), Matchers.is("/0"));
- }
+ @Test
+ public void rootConstructor() {
+ final TreePath treePath = TreePath.root();
+ assertThat(treePath.isRoot(), Matchers.is(true));
+ assertThat(treePath.toString(), Matchers.is("/0"));
+ }
+
+ @Test
+ public void samePathsShouldBeEqual() {
+ final TreePath treePath1 = TreePath.of(0, 1, 2, 3);
+ final TreePath treePath2 = TreePath.of(0, 1, 2, 3);
+ assertEquals(treePath1, treePath2);
+ assertEquals(treePath1.hashCode(), treePath2.hashCode());
+ assertEquals(treePath1.isRoot(), treePath2.isRoot());
+ assertEquals(treePath1.toString(), treePath2.toString());
+
+ assertThat(treePath1.toString(), Matchers.is("/0/1/2/3"));
+ }
- @Test
- public void samePathsShouldBeEqual() {
- final TreePath treePath1 = TreePath.of(0, 1, 2, 3);
- final TreePath treePath2 = TreePath.of(0, 1, 2, 3);
- assertEquals(treePath1, treePath2);
- assertEquals(treePath1.hashCode(), treePath2.hashCode());
- assertEquals(treePath1.isRoot(), treePath2.isRoot());
- assertEquals(treePath1.toString(), treePath2.toString());
-
- assertThat(treePath1.toString(), Matchers.is("/0/1/2/3"));
- }
-
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java b/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
index 96139f8..dfd7900 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
@@ -19,7 +19,7 @@ package org.apache.isis.applib.util;
@SuppressWarnings("deprecation")
class Invoice implements Comparable<Invoice>{
private static final String KEY_PROPERTIES = "number";
-
+
private String number;
public String getNumber() {
return number;
@@ -27,7 +27,7 @@ class Invoice implements Comparable<Invoice>{
public void setNumber(String number) {
this.number = number;
}
- @Override
+ @Override
public String toString() {
return ObjectContracts.toString(this, KEY_PROPERTIES);
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java b/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
index 372bef9..8c79a0e 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
@@ -43,7 +43,7 @@ class InvoiceItem implements Comparable<InvoiceItem> {
public void setProductCode(String productCode) {
this.productCode = productCode;
}
-
+
private Integer quantity;
public Integer getQuantity() {
return quantity;
@@ -51,7 +51,7 @@ class InvoiceItem implements Comparable<InvoiceItem> {
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
-
+
private Boolean rush;
public Boolean isRush() {
return rush;
@@ -59,9 +59,9 @@ class InvoiceItem implements Comparable<InvoiceItem> {
public void setRush(Boolean rush) {
this.rush = rush;
}
-
+
private static final String KEY_PROPERTIES = "invoice desc, productCode asc, quantity asc nullsLast, rush desc nullsLast";
-
+
@Override
public String toString() {
return ObjectContracts.toString(this, KEY_PROPERTIES);
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/NumberedEvaluator.java b/core/applib/src/test/java/org/apache/isis/applib/util/NumberedEvaluator.java
index aa2e6cd..51a550c 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/NumberedEvaluator.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/NumberedEvaluator.java
@@ -20,6 +20,7 @@ import org.apache.isis.applib.util.ObjectContracts.ToStringEvaluator;
public class NumberedEvaluator implements ToStringEvaluator {
+ @Override
public boolean canEvaluate(Object o) {
return o instanceof Numbered;
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
index 21bed94..f31bafd 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
@@ -42,34 +42,34 @@ public class ObjectContractsTest_compareTo extends ComparableContractTest_compar
@Override
protected List<List<org.apache.isis.applib.util.InvoiceItem>> orderedTuples() {
return listOf(
- listOf(
- // invoice desc, ...
- InvoiceItem.newInvoiceItem(null, null, null, null)
- ,InvoiceItem.newInvoiceItem(inv456, null, null, null)
- ,InvoiceItem.newInvoiceItem(inv456, null, null, null)
- ,InvoiceItem.newInvoiceItem(inv123, null, null, null)
- )
- ,listOf(
- // ..., productCode asc, ...
- InvoiceItem.newInvoiceItem(inv123, null, null, null)
- ,InvoiceItem.newInvoiceItem(inv123, "A", null, null)
- ,InvoiceItem.newInvoiceItem(inv123, "A", null, null)
- ,InvoiceItem.newInvoiceItem(inv123, "B", null, null)
- )
- ,listOf(
- // ..., quantity asc nullsLast,...
- InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), null)
- ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(2), null)
- ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(2), null)
- ,InvoiceItem.newInvoiceItem(inv123, "A", null, null)
- )
- ,listOf(
- // ..., rush desc nullsLast
- InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), true)
- ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), false)
- ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), false)
- ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), null)
- )
+ listOf(
+ // invoice desc, ...
+ InvoiceItem.newInvoiceItem(null, null, null, null)
+ ,InvoiceItem.newInvoiceItem(inv456, null, null, null)
+ ,InvoiceItem.newInvoiceItem(inv456, null, null, null)
+ ,InvoiceItem.newInvoiceItem(inv123, null, null, null)
+ )
+ ,listOf(
+ // ..., productCode asc, ...
+ InvoiceItem.newInvoiceItem(inv123, null, null, null)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", null, null)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", null, null)
+ ,InvoiceItem.newInvoiceItem(inv123, "B", null, null)
+ )
+ ,listOf(
+ // ..., quantity asc nullsLast,...
+ InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), null)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(2), null)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(2), null)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", null, null)
+ )
+ ,listOf(
+ // ..., rush desc nullsLast
+ InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), true)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), false)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), false)
+ ,InvoiceItem.newInvoiceItem(inv123, "A", new Integer(1), null)
+ )
);
}
}
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
index 78f8a94..f553f03 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
@@ -28,6 +28,7 @@ public class ObjectContractsTest_equals_and_hashCode extends ValueTypeContractTe
private Invoice3 inv123;
private Invoice3 inv456;
+ @Override
@Before
public void setUp() throws Exception {
inv123 = new Invoice3();
@@ -39,20 +40,20 @@ public class ObjectContractsTest_equals_and_hashCode extends ValueTypeContractTe
@Override
protected List<InvoiceItem3> getObjectsWithSameValue() {
return _Lists.of(
- InvoiceItem3.newInvoiceItem(inv123, "A", new Integer(1)),
- InvoiceItem3.newInvoiceItem(inv123, "A", new Integer(1))
+ InvoiceItem3.newInvoiceItem(inv123, "A", new Integer(1)),
+ InvoiceItem3.newInvoiceItem(inv123, "A", new Integer(1))
);
}
@Override
protected List<InvoiceItem3> getObjectsWithDifferentValue() {
return _Lists.of(
- InvoiceItem3.newInvoiceItem(null, "A", new Integer(2)),
- InvoiceItem3.newInvoiceItem(inv456, "A", new Integer(2)),
- InvoiceItem3.newInvoiceItem(inv123, null, new Integer(1)),
- InvoiceItem3.newInvoiceItem(inv123, "A", new Integer(2)),
- InvoiceItem3.newInvoiceItem(inv123, "B", new Integer(1)),
- InvoiceItem3.newInvoiceItem(inv123, "A", null)
+ InvoiceItem3.newInvoiceItem(null, "A", new Integer(2)),
+ InvoiceItem3.newInvoiceItem(inv456, "A", new Integer(2)),
+ InvoiceItem3.newInvoiceItem(inv123, null, new Integer(1)),
+ InvoiceItem3.newInvoiceItem(inv123, "A", new Integer(2)),
+ InvoiceItem3.newInvoiceItem(inv123, "B", new Integer(1)),
+ InvoiceItem3.newInvoiceItem(inv123, "A", null)
);
}
}
@@ -60,7 +61,7 @@ public class ObjectContractsTest_equals_and_hashCode extends ValueTypeContractTe
@SuppressWarnings("deprecation")
class Invoice3 {
private static final String KEY_PROPERTIES = "number";
-
+
private String number;
public String getNumber() {
return number;
@@ -76,7 +77,7 @@ class Invoice3 {
public boolean equals(Object obj) {
return ObjectContracts.equals(this, obj, KEY_PROPERTIES);
}
-
+
}
@SuppressWarnings("deprecation")
@@ -105,7 +106,7 @@ class InvoiceItem3 {
public void setProductCode(String productCode) {
this.productCode = productCode;
}
-
+
private Integer quantity;
public Integer getQuantity() {
return quantity;
@@ -113,8 +114,8 @@ class InvoiceItem3 {
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
-
-
+
+
private static final String KEY_PROPERTIES = "invoice desc, productCode, quantity";
@Override
public int hashCode() {
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
index 0c0e8bc..0821815 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
@@ -34,7 +34,7 @@ public class ObjectContractsTest_toString {
public void setUp() throws Exception {
inv = new Invoice();
inv2 = new Invoice2();
-
+
inv.setNumber("123");
inv2.setNumber("123");
}
@@ -62,8 +62,9 @@ public class ObjectContractsTest_toString {
@SuppressWarnings("deprecation")
class Invoice2 implements Comparable<Invoice2>, Numbered {
private static final String KEY_PROPERTIES = "number";
-
+
private String number;
+ @Override
public String getNumber() {
return number;
}
@@ -107,7 +108,7 @@ class InvoiceItem2 implements Comparable<InvoiceItem2> {
public void setProductCode(String productCode) {
this.productCode = productCode;
}
-
+
private Integer quantity;
public Integer getQuantity() {
return quantity;
@@ -115,7 +116,7 @@ class InvoiceItem2 implements Comparable<InvoiceItem2> {
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
-
+
private Boolean rush;
public Boolean isRush() {
return rush;
@@ -123,17 +124,17 @@ class InvoiceItem2 implements Comparable<InvoiceItem2> {
public void setRush(Boolean rush) {
this.rush = rush;
}
-
+
private static final String KEY_PROPERTIES = "invoice desc, productCode, quantity, rush desc";
-
+
private static final ObjectContract<InvoiceItem2> contract =
- ObjectContracts.parse(InvoiceItem2.class, KEY_PROPERTIES)
- .withValueToStringFunction(ToStringEvaluator.combineToFunction(new NumberedEvaluator()));
-
+ ObjectContracts.parse(InvoiceItem2.class, KEY_PROPERTIES)
+ .withValueToStringFunction(ToStringEvaluator.combineToFunction(new NumberedEvaluator()));
+
@Override
public String toString() {
- return contract.toString(this);
- //legacy of ...
+ return contract.toString(this);
+ //legacy of ...
//return new ObjectContracts().with(new NumberedEvaluator()).toStringOf(this, KEY_PROPERTIES);
}
@Override
diff --git a/core/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java b/core/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java
index bc70e26..f319560 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/value/BlobTest_constructor.java
@@ -22,7 +22,7 @@ package org.apache.isis.applib.value;
import org.junit.Test;
public class BlobTest_constructor {
-
+
@Test
public void happyCase() throws Exception {
new Blob("validName", "application", "xml", new byte[]{0,1});
diff --git a/core/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java b/core/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java
index 8716964..b05bb55 100644
--- a/core/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/value/ClobTest_constructor.java
@@ -22,7 +22,7 @@ package org.apache.isis.applib.value;
import org.junit.Test;
public class ClobTest_constructor {
-
+
@Test
public void happyCase() throws Exception {
new Clob("validName", "application", "xml", "abc");
diff --git a/core/applib/src/test/java/org/apache/isis/commons/internal/memento/MementosTest.java b/core/applib/src/test/java/org/apache/isis/commons/internal/memento/MementosTest.java
index 4b16d82..537336a 100644
--- a/core/applib/src/test/java/org/apache/isis/commons/internal/memento/MementosTest.java
+++ b/core/applib/src/test/java/org/apache/isis/commons/internal/memento/MementosTest.java
@@ -42,9 +42,9 @@ import static org.junit.Assert.assertThat;
public class MementosTest {
- static enum DOW {
- Mon,Tue,Wed,Thu,Fri
- }
+ static enum DOW {
+ Mon,Tue,Wed,Thu,Fri
+ }
UrlEncodingServiceWithCompression serviceWithCompression;
UrlEncodingServiceUsingBaseEncodingAbstract serviceBaseEncoding;
@@ -52,85 +52,85 @@ public class MementosTest {
@Before
public void setUp() throws Exception {
- serviceWithCompression = new UrlEncodingServiceWithCompression();
- serviceBaseEncoding = new UrlEncodingServiceUsingBaseEncodingAbstract(){};
-
- serializingAdapter = new SerializingAdapter() {
-
- @Override
- public Serializable write(Object value) {
- return (Serializable) value;
- }
-
- @Override
- public <T> T read(Class<T> cls, Serializable value) {
- return _Casts.castToOrElseGet(value, cls, ()->null);
- }
- };
-
+ serviceWithCompression = new UrlEncodingServiceWithCompression();
+ serviceBaseEncoding = new UrlEncodingServiceUsingBaseEncodingAbstract(){};
+
+ serializingAdapter = new SerializingAdapter() {
+
+ @Override
+ public Serializable write(Object value) {
+ return (Serializable) value;
+ }
+
+ @Override
+ public <T> T read(Class<T> cls, Serializable value) {
+ return _Casts.castToOrElseGet(value, cls, ()->null);
+ }
+ };
+
+ }
+
+ @Test
+ public void roundtrip() {
+ roundtrip(serviceBaseEncoding);
+ }
+
+ @Test
+ public void roundtrip_with_compression() {
+ roundtrip(serviceWithCompression);
+ }
+
+ private void roundtrip(UrlEncodingService codec) {
+ final Memento memento = _Mementos.create(codec, serializingAdapter);
+
+ memento.put("someString", "a string");
+ memento.put("someStringWithDoubleSpaces", "a string");
+ memento.put("someByte", (byte)123);
+ memento.put("someShort", (short)12345);
+ memento.put("someInt", 123456789);
+ memento.put("someLong", 1234567890123456789L);
+ memento.put("someFloat", 123.45F);
+ memento.put("someDouble", 1234567890.123456);
+ memento.put("someBooleanTrue", Boolean.TRUE);
+ memento.put("someBooleanFalse", Boolean.FALSE);
+ memento.put("someBigInteger", new BigInteger("123456789012345678901234567890"));
+ memento.put("someBigDecimal", new BigDecimal("123456789012345678901234567890.123456789"));
+ memento.put("someLocalDate", new LocalDate(2013,9,3));
+ memento.put("someJavaUtilDate", new Date(300_000_000));
+
+ memento.put("someBookmark", new Bookmark("CUS", "12345"));
+ memento.put("someNullValue", null);
+
+ memento.put("someEnum", DOW.Wed);
+
+ final String str = memento.asString();
+
+ final Memento memento2 = _Mementos.parse(codec, serializingAdapter, str);
+
+ assertThat(memento2.get("someString", String.class), is("a string"));
+ assertThat(memento2.get("someStringWithDoubleSpaces", String.class), is("a string"));
+ assertThat(memento2.get("someByte", Byte.class), is((byte)123));
+ assertThat(memento2.get("someShort", Short.class), is((short)12345));
+ assertThat(memento2.get("someInt", Integer.class), is(123456789));
+ assertThat(memento2.get("someLong", Long.class), is(1234567890123456789L));
+ assertThat(memento2.get("someFloat", Float.class), is(123.45F));
+ assertThat(memento2.get("someDouble", Double.class), is(1234567890.123456));
+ assertThat(memento2.get("someBooleanTrue", Boolean.class), is(Boolean.TRUE));
+ assertThat(memento2.get("someBooleanFalse", Boolean.class), is(Boolean.FALSE));
+ assertThat(memento2.get("someBigInteger", BigInteger.class), is(new BigInteger("123456789012345678901234567890")));
+ assertThat(memento2.get("someBigDecimal", BigDecimal.class), is(new BigDecimal("123456789012345678901234567890.123456789")));
+ assertThat(memento2.get("someLocalDate", LocalDate.class), is(new LocalDate(2013,9,3)));
+ assertThat(memento2.get("someJavaUtilDate", Date.class), is(new Date(300_000_000)));
+ assertThat(memento2.get("someBookmark", Bookmark.class), is(new Bookmark("CUS", "12345")));
+
+ // a nullValue can be grabbed as any type, will always succeed
+ assertThat(memento2.get("someNullValue", Integer.class), is(nullValue()));
+ assertThat(memento2.get("someNullValue", Bookmark.class), is(nullValue()));
+ assertThat(memento2.get("someNullValue", LocalDate.class), is(nullValue()));
+
+ assertThat(memento2.get("someEnum", DOW.class), is(DOW.Wed));
+
}
-
- @Test
- public void roundtrip() {
- roundtrip(serviceBaseEncoding);
- }
-
- @Test
- public void roundtrip_with_compression() {
- roundtrip(serviceWithCompression);
- }
-
- private void roundtrip(UrlEncodingService codec) {
- final Memento memento = _Mementos.create(codec, serializingAdapter);
-
- memento.put("someString", "a string");
- memento.put("someStringWithDoubleSpaces", "a string");
- memento.put("someByte", (byte)123);
- memento.put("someShort", (short)12345);
- memento.put("someInt", 123456789);
- memento.put("someLong", 1234567890123456789L);
- memento.put("someFloat", 123.45F);
- memento.put("someDouble", 1234567890.123456);
- memento.put("someBooleanTrue", Boolean.TRUE);
- memento.put("someBooleanFalse", Boolean.FALSE);
- memento.put("someBigInteger", new BigInteger("123456789012345678901234567890"));
- memento.put("someBigDecimal", new BigDecimal("123456789012345678901234567890.123456789"));
- memento.put("someLocalDate", new LocalDate(2013,9,3));
- memento.put("someJavaUtilDate", new Date(300_000_000));
-
- memento.put("someBookmark", new Bookmark("CUS", "12345"));
- memento.put("someNullValue", null);
-
- memento.put("someEnum", DOW.Wed);
-
- final String str = memento.asString();
-
- final Memento memento2 = _Mementos.parse(codec, serializingAdapter, str);
-
- assertThat(memento2.get("someString", String.class), is("a string"));
- assertThat(memento2.get("someStringWithDoubleSpaces", String.class), is("a string"));
- assertThat(memento2.get("someByte", Byte.class), is((byte)123));
- assertThat(memento2.get("someShort", Short.class), is((short)12345));
- assertThat(memento2.get("someInt", Integer.class), is(123456789));
- assertThat(memento2.get("someLong", Long.class), is(1234567890123456789L));
- assertThat(memento2.get("someFloat", Float.class), is(123.45F));
- assertThat(memento2.get("someDouble", Double.class), is(1234567890.123456));
- assertThat(memento2.get("someBooleanTrue", Boolean.class), is(Boolean.TRUE));
- assertThat(memento2.get("someBooleanFalse", Boolean.class), is(Boolean.FALSE));
- assertThat(memento2.get("someBigInteger", BigInteger.class), is(new BigInteger("123456789012345678901234567890")));
- assertThat(memento2.get("someBigDecimal", BigDecimal.class), is(new BigDecimal("123456789012345678901234567890.123456789")));
- assertThat(memento2.get("someLocalDate", LocalDate.class), is(new LocalDate(2013,9,3)));
- assertThat(memento2.get("someJavaUtilDate", Date.class), is(new Date(300_000_000)));
- assertThat(memento2.get("someBookmark", Bookmark.class), is(new Bookmark("CUS", "12345")));
-
- // a nullValue can be grabbed as any type, will always succeed
- assertThat(memento2.get("someNullValue", Integer.class), is(nullValue()));
- assertThat(memento2.get("someNullValue", Bookmark.class), is(nullValue()));
- assertThat(memento2.get("someNullValue", LocalDate.class), is(nullValue()));
-
- assertThat(memento2.get("someEnum", DOW.class), is(DOW.Wed));
-
- }
}
diff --git a/core/applib/src/test/java/org/apache/isis/schema/utils/Roundtrip.java b/core/applib/src/test/java/org/apache/isis/schema/utils/Roundtrip.java
index 2cfde93..3caeeed 100644
--- a/core/applib/src/test/java/org/apache/isis/schema/utils/Roundtrip.java
+++ b/core/applib/src/test/java/org/apache/isis/schema/utils/Roundtrip.java
@@ -84,7 +84,7 @@ public class Roundtrip {
final Timestamp startedAt = new Timestamp(new Date().getTime());
@SuppressWarnings("unused")
- final Timestamp completedAt = new Timestamp(startedAt.getTime() + 1000);
+ final Timestamp completedAt = new Timestamp(startedAt.getTime() + 1000);
final ValueWithTypeDto returnDto = new ValueWithTypeDto();
returnDto.setType(ValueType.BOOLEAN);
@@ -95,7 +95,7 @@ public class Roundtrip {
1,
new Bookmark("CUS", "12345"), "John Customer", "com.mycompany.Customer#placeOrder", Arrays.<ParamDto>asList(),
"freddyUser"
- );
+ );
InteractionDtoUtils.addParamArg(interactionDto, "aString", String.class, "Fred", null);
InteractionDtoUtils.addParamArg(interactionDto, "nullString", String.class, (String) null, null);
@@ -126,26 +126,26 @@ public class Roundtrip {
InteractionDtoUtils.addParamArg(interactionDto, "aBigInteger", java.math.BigInteger.class, new java.math.BigInteger("12345678901234567890"), null);
InteractionDtoUtils
- .addParamArg(interactionDto, "nullBigInteger", java.math.BigInteger.class, (java.math.BigInteger) null, null);
+ .addParamArg(interactionDto, "nullBigInteger", java.math.BigInteger.class, (java.math.BigInteger) null, null);
InteractionDtoUtils.addParamArg(interactionDto, "aBigDecimal", java.math.BigDecimal.class, new java.math.BigDecimal("12345678901234567890"), null);
InteractionDtoUtils
- .addParamArg(interactionDto, "nullBigDecimal", java.math.BigDecimal.class, (java.math.BigDecimal) null, null);
+ .addParamArg(interactionDto, "nullBigDecimal", java.math.BigDecimal.class, (java.math.BigDecimal) null, null);
InteractionDtoUtils
- .addParamArg(interactionDto, "aJodaDateTime", org.joda.time.DateTime.class, new org.joda.time.DateTime(2015, 5, 23, 9, 54, 1), null);
+ .addParamArg(interactionDto, "aJodaDateTime", org.joda.time.DateTime.class, new org.joda.time.DateTime(2015, 5, 23, 9, 54, 1), null);
InteractionDtoUtils
- .addParamArg(interactionDto, "nullJodaDateTime", org.joda.time.DateTime.class, (org.joda.time.DateTime) null, null);
+ .addParamArg(interactionDto, "nullJodaDateTime", org.joda.time.DateTime.class, (org.joda.time.DateTime) null, null);
InteractionDtoUtils
- .addParamArg(interactionDto, "aJodaLocalDate", org.joda.time.LocalDate.class, new org.joda.time.LocalDate(2015, 5, 23), null);
+ .addParamArg(interactionDto, "aJodaLocalDate", org.joda.time.LocalDate.class, new org.joda.time.LocalDate(2015, 5, 23), null);
InteractionDtoUtils.addParamArg(interactionDto, "nullJodaLocalDate", org.joda.time.LocalDate.class, (org.joda.time.LocalDate) null, null);
InteractionDtoUtils.addParamArg(interactionDto, "aJodaLocalDateTime", org.joda.time.LocalDateTime.class, new org.joda.time.LocalDateTime(2015, 5, 23, 9, 54, 1), null);
InteractionDtoUtils.addParamArg(interactionDto, "nullJodaLocalDateTime", org.joda.time.LocalDateTime.class, (org.joda.time.LocalDateTime) null, null);
InteractionDtoUtils
- .addParamArg(interactionDto, "aJodaLocalTime", org.joda.time.LocalTime.class, new org.joda.time.LocalTime(9, 54, 1), null);
+ .addParamArg(interactionDto, "aJodaLocalTime", org.joda.time.LocalTime.class, new org.joda.time.LocalTime(9, 54, 1), null);
InteractionDtoUtils.addParamArg(interactionDto, "nullJodaLocalTime", org.joda.time.LocalTime.class, (org.joda.time.LocalTime) null, null);
InteractionDtoUtils.addParamArg(interactionDto, "aReference", null, new Bookmark("ORD", "12345"), null);
@@ -353,10 +353,10 @@ public class Roundtrip {
assertThat(InteractionDtoUtils.isNull(invocationDto, param), is(true));
param++;
-// final int expected = param;
-// assertThat(recreated.getParameters().getNum(), is(expected);
-// assertThat(recreated.getParameters().getParam().size(), is(expected);
-// assertThat(ActionInvocationMementoDtoUtils.getNumberOfParameters(recreated), is(expected);
+ // final int expected = param;
+ // assertThat(recreated.getParameters().getNum(), is(expected);
+ // assertThat(recreated.getParameters().getParam().size(), is(expected);
+ // assertThat(ActionInvocationMementoDtoUtils.getNumberOfParameters(recreated), is(expected);
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/ZipWriter.java b/core/commons/src/main/java/org/apache/isis/commons/ZipWriter.java
index a02adca..13a3d34 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/ZipWriter.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/ZipWriter.java
@@ -54,65 +54,65 @@ import lombok.val;
@RequiredArgsConstructor(staticName = "of", access = AccessLevel.PRIVATE)
public class ZipWriter {
- @FunctionalInterface
- public interface OnZipEntry {
- public void accept(OutputStreamWriter writer) throws IOException;
- }
+ @FunctionalInterface
+ public interface OnZipEntry {
+ public void accept(OutputStreamWriter writer) throws IOException;
+ }
- public static ZipWriter newInstance() {
- return ofFailureMessage("Unable to create zip");
- }
+ public static ZipWriter newInstance() {
+ return ofFailureMessage("Unable to create zip");
+ }
- public static ZipWriter ofFailureMessage(String failureMessage) {
- val baos = new ByteArrayOutputStream();
- val zos = new ZipOutputStream(baos);
- val writer = new OutputStreamWriter(zos);
- return new ZipWriter(baos, zos, writer, failureMessage);
- }
+ public static ZipWriter ofFailureMessage(String failureMessage) {
+ val baos = new ByteArrayOutputStream();
+ val zos = new ZipOutputStream(baos);
+ val writer = new OutputStreamWriter(zos);
+ return new ZipWriter(baos, zos, writer, failureMessage);
+ }
- private final ByteArrayOutputStream baos;
- private final ZipOutputStream zos;
- private final OutputStreamWriter writer;
- private final String failureMessage;
- private byte[] content;
+ private final ByteArrayOutputStream baos;
+ private final ZipOutputStream zos;
+ private final OutputStreamWriter writer;
+ private final String failureMessage;
+ private byte[] content;
- /**
- * Adds a new zipEntry with given {@code zipEntryName}, and provides the
- * {@link OutputStreamWriter} via {@link OnZipEntry} for the consumer to
- * write the actual (uncompressed) zip-entry content.
- * @param zipEntryName
- * @param onZipEntry
- */
- public void nextEntry(String zipEntryName, OnZipEntry onZipEntry) {
- if(content!=null) {
- throw new IllegalStateException("Cannot create a new ZipEntry an a closed ZipWriter");
- }
- try {
- zos.putNextEntry(new ZipEntry(zipEntryName));
- onZipEntry.accept(writer);
- writer.flush();
- zos.closeEntry();
- } catch (final IOException e) {
- throw _Exceptions.unrecoverable(failureMessage, e);
- }
- }
+ /**
+ * Adds a new zipEntry with given {@code zipEntryName}, and provides the
+ * {@link OutputStreamWriter} via {@link OnZipEntry} for the consumer to
+ * write the actual (uncompressed) zip-entry content.
+ * @param zipEntryName
+ * @param onZipEntry
+ */
+ public void nextEntry(String zipEntryName, OnZipEntry onZipEntry) {
+ if(content!=null) {
+ throw new IllegalStateException("Cannot create a new ZipEntry an a closed ZipWriter");
+ }
+ try {
+ zos.putNextEntry(new ZipEntry(zipEntryName));
+ onZipEntry.accept(writer);
+ writer.flush();
+ zos.closeEntry();
+ } catch (final IOException e) {
+ throw _Exceptions.unrecoverable(failureMessage, e);
+ }
+ }
- /**
- * Terminal operation, closes the writer.
- * Calling this operation multiple times, will return the same array instance object.
- * @return the byte array created by the underlying ZipOutputStream
- */
- public byte[] toBytes() {
- if(content==null) {
- try {
- writer.close();
- } catch (IOException e) {
- throw _Exceptions.unrecoverable(failureMessage, e);
- }
- content = baos.toByteArray();
- }
- return content;
- }
+ /**
+ * Terminal operation, closes the writer.
+ * Calling this operation multiple times, will return the same array instance object.
+ * @return the byte array created by the underlying ZipOutputStream
+ */
+ public byte[] toBytes() {
+ if(content==null) {
+ try {
+ writer.close();
+ } catch (IOException e) {
+ throw _Exceptions.unrecoverable(failureMessage, e);
+ }
+ content = baos.toByteArray();
+ }
+ return content;
+ }
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin.java b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin.java
index e3e1abc..e19280a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin.java
@@ -48,187 +48,188 @@ import lombok.val;
*/
public interface Bin<T> extends Iterable<T> {
- Cardinality getCardinality();
- int size();
-
- Stream<T> stream();
-
- Optional<T> getFirst();
- Optional<T> getSingleton();
-
- // -- FACTORIES
-
- @SuppressWarnings("unchecked") // this is how the JDK does it for eg. empty lists
- public static <T> Bin<T> empty() {
- return (Bin<T>) Bin_Empty.INSTANCE;
- }
-
- public static <T> Bin<T> ofNullable(@Nullable T element) {
- if(element==null) {
- return empty();
- }
- return Bin_Singleton.of(element);
- }
-
- public static <T> Bin<T> ofSingleton(T element) {
- requires(element, "element");
- return Bin_Singleton.of(element);
- }
-
- public static <T> Bin<T> ofCollection(@Nullable Collection<T> collection) {
-
- if(_NullSafe.size(collection)==0) {
- return empty();
- }
-
- val maxSize = collection.size();
-
- val nonNullElements = collection.stream()
- .filter(_NullSafe::isPresent)
- .collect(Collectors.toCollection(()->new ArrayList<>(maxSize)));
-
- nonNullElements.trimToSize(); // in case we have a 'sparse' collection as input to this method
-
- val size = nonNullElements.size();
-
- if(size==0) {
- return empty();
- }
-
- if(size==1) {
- return ofSingleton(((List<T>)nonNullElements).get(0));
- }
-
- nonNullElements.sort(AnnotationAwareOrderComparator.INSTANCE);
-
- return Bin_Multiple.of(nonNullElements);
- }
-
- public static <T> Bin<T> ofStream(@Nullable Stream<T> stream) {
-
+ Cardinality getCardinality();
+ int size();
+
+ Stream<T> stream();
+
+ Optional<T> getFirst();
+ Optional<T> getSingleton();
+
+ // -- FACTORIES
+
+ @SuppressWarnings("unchecked") // this is how the JDK does it for eg. empty lists
+ public static <T> Bin<T> empty() {
+ return (Bin<T>) Bin_Empty.INSTANCE;
+ }
+
+ public static <T> Bin<T> ofNullable(@Nullable T element) {
+ if(element==null) {
+ return empty();
+ }
+ return Bin_Singleton.of(element);
+ }
+
+ public static <T> Bin<T> ofSingleton(T element) {
+ requires(element, "element");
+ return Bin_Singleton.of(element);
+ }
+
+ public static <T> Bin<T> ofCollection(@Nullable Collection<T> collection) {
+
+ if(_NullSafe.size(collection)==0) {
+ return empty();
+ }
+
+ val maxSize = collection.size();
+
+ val nonNullElements = collection.stream()
+ .filter(_NullSafe::isPresent)
+ .collect(Collectors.toCollection(()->new ArrayList<>(maxSize)));
+
+ nonNullElements.trimToSize(); // in case we have a 'sparse' collection as input to this method
+
+ val size = nonNullElements.size();
+
+ if(size==0) {
+ return empty();
+ }
+
+ if(size==1) {
+ return ofSingleton(((List<T>)nonNullElements).get(0));
+ }
+
+ nonNullElements.sort(AnnotationAwareOrderComparator.INSTANCE);
+
+ return Bin_Multiple.of(nonNullElements);
+ }
+
+ public static <T> Bin<T> ofStream(@Nullable Stream<T> stream) {
+
if(stream==null) {
return empty();
}
-
+
val nonNullElements = stream
.filter(_NullSafe::isPresent)
.collect(Collectors.toCollection(()->new ArrayList<>()));
-
+
val size = nonNullElements.size();
-
+
if(size==0) {
return empty();
}
-
+
if(size==1) {
return ofSingleton(((List<T>)nonNullElements).get(0));
}
-
+
nonNullElements.sort(AnnotationAwareOrderComparator.INSTANCE);
-
+
return Bin_Multiple.of(nonNullElements);
}
-
- public static <T> Bin<T> ofInstance(@Nullable Instance<T> instance) {
- if(instance==null || instance.isUnsatisfied()) {
- return empty();
- }
- if(instance.isResolvable()) {
- return Bin_Singleton.of(instance.get());
- }
- val nonNullElements = instance.stream()
- .collect(Collectors.toCollection(()->new ArrayList<>()));
-
- nonNullElements.sort(AnnotationAwareOrderComparator.INSTANCE);
-
- return Bin_Multiple.of(nonNullElements);
-
- }
-
-
- // -- OPERATORS
-
- public default Bin<T> filter(@Nullable Predicate<? super T> predicate) {
- if(predicate==null || isEmpty()) {
- return this;
- }
-
- // optimization for the singleton case
- if(isCardinalityOne()) {
- val singleton = getSingleton().get();
- return predicate.test(singleton)
- ? this
- : empty();
- }
-
- val filteredElements =
- stream()
- .filter(predicate)
- .collect(Collectors.toCollection(ArrayList::new));
-
- // optimization for the case when the filter accepted all
- if(filteredElements.size()==size()) {
- return this;
- }
-
- return ofCollection(filteredElements);
- }
-
- public static <T> Bin<T> concat(@Nullable Bin<T> bin, @Nullable T variant) {
- if(bin==null || bin.isEmpty()) {
- return ofNullable(variant);
- }
- if(variant==null) {
- return bin;
- }
- // at this point: bin is not empty and variant is not null
- val newSize = bin.size() + 1;
- val union = bin.stream().collect(Collectors.toCollection(()->new ArrayList<>(newSize)));
- union.add(variant);
- return Bin_Multiple.of(union);
+
+ public static <T> Bin<T> ofInstance(@Nullable Instance<T> instance) {
+ if(instance==null || instance.isUnsatisfied()) {
+ return empty();
+ }
+ if(instance.isResolvable()) {
+ return Bin_Singleton.of(instance.get());
+ }
+ val nonNullElements = instance.stream()
+ .collect(Collectors.toCollection(()->new ArrayList<>()));
+
+ nonNullElements.sort(AnnotationAwareOrderComparator.INSTANCE);
+
+ return Bin_Multiple.of(nonNullElements);
+
+ }
+
+
+ // -- OPERATORS
+
+ public default Bin<T> filter(@Nullable Predicate<? super T> predicate) {
+ if(predicate==null || isEmpty()) {
+ return this;
+ }
+
+ // optimization for the singleton case
+ if(isCardinalityOne()) {
+ val singleton = getSingleton().get();
+ return predicate.test(singleton)
+ ? this
+ : empty();
+ }
+
+ val filteredElements =
+ stream()
+ .filter(predicate)
+ .collect(Collectors.toCollection(ArrayList::new));
+
+ // optimization for the case when the filter accepted all
+ if(filteredElements.size()==size()) {
+ return this;
+ }
+
+ return ofCollection(filteredElements);
+ }
+
+ public static <T> Bin<T> concat(@Nullable Bin<T> bin, @Nullable T variant) {
+ if(bin==null || bin.isEmpty()) {
+ return ofNullable(variant);
+ }
+ if(variant==null) {
+ return bin;
+ }
+ // at this point: bin is not empty and variant is not null
+ val newSize = bin.size() + 1;
+ val union = bin.stream().collect(Collectors.toCollection(()->new ArrayList<>(newSize)));
+ union.add(variant);
+ return Bin_Multiple.of(union);
}
-
+
default <R> Bin<R> map(Function<? super T, R> mapper) {
-
+
if(isEmpty()) {
return empty();
}
-
+
requires(mapper, "mapper");
-
+
val mappedElements =
- stream()
- .map(mapper)
- .filter(_NullSafe::isPresent)
- .collect(Collectors.toCollection(ArrayList::new));
-
+ stream()
+ .map(mapper)
+ .filter(_NullSafe::isPresent)
+ .collect(Collectors.toCollection(ArrayList::new));
+
return ofCollection(mappedElements);
}
-
- // -- TRAVERSAL
-
+
+ // -- TRAVERSAL
+
+ @Override
default void forEach(Consumer<? super T> action) {
requires(action, "action");
stream().forEach(action);
}
-
- // -- SHORTCUTS FOR PREDICATES
-
- default boolean isEmpty() {
- return getCardinality().isZero();
- }
-
- default boolean isNotEmpty() {
- return !getCardinality().isZero();
- }
-
- default boolean isCardinalityOne() {
- return getCardinality().isOne();
- }
-
- default boolean isCardinalityMultiple() {
- return getCardinality().isMultiple();
- }
-
-
+
+ // -- SHORTCUTS FOR PREDICATES
+
+ default boolean isEmpty() {
+ return getCardinality().isZero();
+ }
+
+ default boolean isNotEmpty() {
+ return !getCardinality().isZero();
+ }
+
+ default boolean isCardinalityOne() {
+ return getCardinality().isOne();
+ }
+
+ default boolean isCardinalityMultiple() {
+ return getCardinality().isMultiple();
+ }
+
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Empty.java b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Empty.java
index 6e43c72..bf57f45 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Empty.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Empty.java
@@ -27,37 +27,37 @@ import lombok.Value;
@Value(staticConstructor="of")
final class Bin_Empty<T> implements Bin<T> {
-
- static final Bin_Empty<?> INSTANCE = new Bin_Empty<>();
-
- @Override
- public Cardinality getCardinality() {
- return Cardinality.ZERO;
- }
-
- @Override
- public Stream<T> stream() {
- return Stream.empty();
- }
-
- @Override
- public Optional<T> getSingleton() {
- return Optional.empty();
- }
-
- @Override
- public Optional<T> getFirst() {
- return Optional.empty();
- }
-
- @Override
- public int size() {
- return 0;
- }
-
- @Override
- public Iterator<T> iterator() {
- return Collections.<T>emptyList().iterator();
- }
+
+ static final Bin_Empty<?> INSTANCE = new Bin_Empty<>();
+
+ @Override
+ public Cardinality getCardinality() {
+ return Cardinality.ZERO;
+ }
+
+ @Override
+ public Stream<T> stream() {
+ return Stream.empty();
+ }
+
+ @Override
+ public Optional<T> getSingleton() {
+ return Optional.empty();
+ }
+
+ @Override
+ public Optional<T> getFirst() {
+ return Optional.empty();
+ }
+
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public Iterator<T> iterator() {
+ return Collections.<T>emptyList().iterator();
+ }
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Multiple.java b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Multiple.java
index c37720a..2492689 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Multiple.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Multiple.java
@@ -31,43 +31,43 @@ import lombok.val;
@RequiredArgsConstructor(staticName="of")
final class Bin_Multiple<T> implements Bin<T> {
-
- private final List<T> elements;
-
- @Getter(lazy=true, onMethod=@__({@Override}))
- private final Optional<T> first = Optional.of(elements.get(0));
- @Override
- public Cardinality getCardinality() {
- return Cardinality.MULTIPLE;
- }
+ private final List<T> elements;
- @Override
- public Stream<T> stream() {
- return elements.stream();
- }
+ @Getter(lazy=true, onMethod=@__({@Override}))
+ private final Optional<T> first = Optional.of(elements.get(0));
- @Override
- public Optional<T> getSingleton() {
- return Optional.empty();
- }
+ @Override
+ public Cardinality getCardinality() {
+ return Cardinality.MULTIPLE;
+ }
- @Override
- public int size() {
- return elements.size();
- }
+ @Override
+ public Stream<T> stream() {
+ return elements.stream();
+ }
- @Override
- public Iterator<T> iterator() {
- return Collections.unmodifiableList(elements).iterator();
- }
-
- @Override
- public String toString() {
- val literal = stream()
- .map(s->""+s)
- .collect(Collectors.joining(", "));
- return "Bin["+literal+"]";
- }
+ @Override
+ public Optional<T> getSingleton() {
+ return Optional.empty();
+ }
+
+ @Override
+ public int size() {
+ return elements.size();
+ }
+
+ @Override
+ public Iterator<T> iterator() {
+ return Collections.unmodifiableList(elements).iterator();
+ }
+
+ @Override
+ public String toString() {
+ val literal = stream()
+ .map(s->""+s)
+ .collect(Collectors.joining(", "));
+ return "Bin["+literal+"]";
+ }
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Singleton.java b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Singleton.java
index 938ab0a..a0b196a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Singleton.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/collections/Bin_Singleton.java
@@ -28,40 +28,40 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor(staticName="of")
final class Bin_Singleton<T> implements Bin<T> {
-
- private final T element;
-
- @Getter(lazy=true, onMethod=@__({@Override}))
- private final Optional<T> singleton = Optional.of(element);
- @Override
- public Cardinality getCardinality() {
- return Cardinality.ONE;
- }
+ private final T element;
- @Override
- public Stream<T> stream() {
- return Stream.of(element);
- }
+ @Getter(lazy=true, onMethod=@__({@Override}))
+ private final Optional<T> singleton = Optional.of(element);
- @Override
- public Optional<T> getFirst() {
- return getSingleton();
- }
+ @Override
+ public Cardinality getCardinality() {
+ return Cardinality.ONE;
+ }
- @Override
- public int size() {
- return 1;
- }
+ @Override
+ public Stream<T> stream() {
+ return Stream.of(element);
+ }
- @Override
- public Iterator<T> iterator() {
- return Collections.singletonList(element).iterator();
- }
-
- @Override
- public String toString() {
- return "Bin["+element+"]";
- }
+ @Override
+ public Optional<T> getFirst() {
+ return getSingleton();
+ }
+
+ @Override
+ public int size() {
+ return 1;
+ }
+
+ @Override
+ public Iterator<T> iterator() {
+ return Collections.singletonList(element).iterator();
+ }
+
+ @Override
+ public String toString() {
+ return "Bin["+element+"]";
+ }
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/collections/Cardinality.java b/core/commons/src/main/java/org/apache/isis/commons/collections/Cardinality.java
index 0f7eecd..1253acb 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/collections/Cardinality.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/collections/Cardinality.java
@@ -22,22 +22,22 @@ package org.apache.isis.commons.collections;
* @since 2.0
*/
public enum Cardinality {
-
- ZERO,
- ONE,
- MULTIPLE
- ;
-
- public boolean isZero() {
- return this == ZERO;
- }
-
- public boolean isOne() {
- return this == ONE;
- }
-
- public boolean isMultiple() {
- return this == MULTIPLE;
- }
-
+
+ ZERO,
+ ONE,
+ MULTIPLE
+ ;
+
+ public boolean isZero() {
+ return this == ZERO;
+ }
+
+ public boolean isOne() {
+ return this == ONE;
+ }
+
+ public boolean isMultiple() {
+ return this == MULTIPLE;
+ }
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/assertions/_Assert.java b/core/commons/src/main/java/org/apache/isis/commons/internal/assertions/_Assert.java
index 56207be..9c6c3c5 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/assertions/_Assert.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/assertions/_Assert.java
@@ -48,11 +48,11 @@ public final class _Assert {
throw new IsisAssertException(message + (target == null ? "" : (": " + target)));
}
}
-
+
public static void assertEquals(final String message, Object left, Object right) {
if (!Objects.equals(left, right)) {
throw new IsisAssertException(message + String.format(": '%s' != '%s' ", ""+left, ""+right));
}
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Blackhole.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Blackhole.java
index 14306f4..73dd263 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Blackhole.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Blackhole.java
@@ -39,7 +39,7 @@ import java.util.Random;
* @since 2.0
*/
public final class _Blackhole {
-
+
/**
* Consume object. This call provides a side effect preventing JIT to eliminate dependent computations.
*
@@ -57,24 +57,24 @@ public final class _Blackhole {
}
}
-
+
// -- HELPER
-
+
public final static class _Blackhole_Internal {
-
+
public int tlr;
public volatile int tlrMask;
public volatile Object obj1;
-
+
public _Blackhole_Internal() {
Random r = new Random(System.nanoTime());
tlr = r.nextInt();
tlrMask = 1;
obj1 = new Object();
}
-
+
}
-
+
private final static _Blackhole_Internal internal = new _Blackhole_Internal();
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Casts.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Casts.java
index a346a80..2631251 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Casts.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Casts.java
@@ -77,50 +77,50 @@ public final class _Casts {
* @return
*/
public static <T, R, U, V> R castThenApply(
- @Nullable U left,
- @Nullable V right,
- Class<T> cls,
- BiFunction<T, T, R> onBothCast,
- BiFunction<T, V, R> onLeftCast,
- BiFunction<U, T, R> onRightCast,
- BiFunction<U, V, R> onNonCast) {
-
- requires(cls, "cls");
-
- T left_casted=null, right_casted=null;
- boolean left_not_casted=false, right_not_casted=false;
-
- if(left==null) {
- left_casted = null;
- } else if(cls.isAssignableFrom(left.getClass())) {
- left_casted = cls.cast(left);
- } else {
- left_not_casted = true;
- }
-
- if(right==null) {
- right_casted = null;
- } else if(cls.isAssignableFrom(right.getClass())) {
- right_casted = cls.cast(right);
- } else {
- right_not_casted = true;
- }
-
- if(left_not_casted && right_not_casted) {
- return onNonCast.apply(left, right);
- }
-
- if(!left_not_casted && !right_not_casted) {
- return onBothCast.apply(left_casted, right_casted);
- }
-
- if(left_not_casted) {
- return onRightCast.apply(left, right_casted);
- }
-
- return onLeftCast.apply(left_casted, right);
-
+ @Nullable U left,
+ @Nullable V right,
+ Class<T> cls,
+ BiFunction<T, T, R> onBothCast,
+ BiFunction<T, V, R> onLeftCast,
+ BiFunction<U, T, R> onRightCast,
+ BiFunction<U, V, R> onNonCast) {
+
+ requires(cls, "cls");
+
+ T left_casted=null, right_casted=null;
+ boolean left_not_casted=false, right_not_casted=false;
+
+ if(left==null) {
+ left_casted = null;
+ } else if(cls.isAssignableFrom(left.getClass())) {
+ left_casted = cls.cast(left);
+ } else {
+ left_not_casted = true;
+ }
+
+ if(right==null) {
+ right_casted = null;
+ } else if(cls.isAssignableFrom(right.getClass())) {
+ right_casted = cls.cast(right);
+ } else {
+ right_not_casted = true;
+ }
+
+ if(left_not_casted && right_not_casted) {
+ return onNonCast.apply(left, right);
+ }
+
+ if(!left_not_casted && !right_not_casted) {
+ return onBothCast.apply(left_casted, right_casted);
+ }
+
+ if(left_not_casted) {
+ return onRightCast.apply(left, right_casted);
+ }
+
+ return onLeftCast.apply(left_casted, right);
+
}
-
-
+
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Either.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Either.java
index 60292fe..0fb04a4 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Either.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Either.java
@@ -52,98 +52,98 @@ public final class _Either<L, R> {
private final L left;
private final R right;
private final boolean isLeft;
-
+
// -- FACTORIES
-
+
public static <L, R> _Either<L, R> left(L left) {
- requires(left, "left");
+ requires(left, "left");
return of(left, null, true);
}
-
+
public static <L, R> _Either<L, R> right(R right) {
- requires(right, "right");
+ requires(right, "right");
return of(null, right, false);
}
-
+
public static <L, R> _Either<L, R> leftNullable(@Nullable L left) {
return of(left, null, true);
}
-
+
public static <L, R> _Either<L, R> rightNullable(@Nullable R right) {
return of(null, right, false);
}
-
+
// -- ACCESSORS
-
+
public Optional<L> left() {
- return Optional.ofNullable(left);
+ return Optional.ofNullable(left);
}
-
+
public Optional<R> right() {
- return Optional.ofNullable(right);
+ return Optional.ofNullable(right);
}
-
+
public L leftIfAny() {
- return left;
+ return left;
}
-
+
public R rightIfAny() {
- return right;
+ return right;
}
-
+
// -- PREDICATES
-
+
public boolean isLeft() {
- return isLeft;
+ return isLeft;
}
-
+
public boolean isRight() {
- return !isLeft;
+ return !isLeft;
}
-
+
public boolean isPresentLeft() {
- return left!=null;
+ return left!=null;
}
-
+
public boolean isPresentRight() {
- return right!=null;
+ return right!=null;
}
-
+
// -- COMPOSITION
-
+
public <X, Y> _Either<X, Y> map(Function<L, X> leftMapper, Function<R, Y> rightMapper){
- return isLeft()
- ? left(leftMapper.apply(left))
- : right(rightMapper.apply(right));
+ return isLeft()
+ ? left(leftMapper.apply(left))
+ : right(rightMapper.apply(right));
}
-
+
public <X, Y> _Either<X, Y> mapNullable(Function<L, X> leftMapper, Function<R, Y> rightMapper){
- return isLeft()
- ? leftNullable(leftMapper.apply(left))
- : rightNullable(rightMapper.apply(right));
+ return isLeft()
+ ? leftNullable(leftMapper.apply(left))
+ : rightNullable(rightMapper.apply(right));
}
-
+
// -- REDUCTION
-
+
public <X> X get(BiFunction<L, R, X> reduction){
- return reduction.apply(left, right);
+ return reduction.apply(left, right);
}
-
+
public <X> X get(Function<L, X> leftMapper, Function<R, X> rightMapper){
- return isLeft()
- ? leftMapper.apply(left)
- : rightMapper.apply(right);
+ return isLeft()
+ ? leftMapper.apply(left)
+ : rightMapper.apply(right);
}
- // -- TERMINALS
-
+ // -- TERMINALS
+
public void accept(Consumer<L> leftConsumer, Consumer<R> rightConsumer) {
- if(isLeft()) {
- leftConsumer.accept(left);
- } else {
- rightConsumer.accept(right);
- }
- }
-
-
+ if(isLeft()) {
+ leftConsumer.accept(left);
+ } else {
+ rightConsumer.accept(right);
+ }
+ }
+
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Lazy.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Lazy.java
index 186a67b..f29d690 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Lazy.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Lazy.java
@@ -34,9 +34,9 @@ import java.util.function.Supplier;
* @since 2.0
*/
public interface _Lazy<T> extends Supplier<T> {
-
+
// -- INTERFACE
-
+
/**
* @return whether this lazy got initialized and holds a memoized value
*/
@@ -57,7 +57,7 @@ public interface _Lazy<T> extends Supplier<T> {
*/
@Override
public T get();
-
+
// -- FACTORIES
/**
@@ -69,7 +69,7 @@ public interface _Lazy<T> extends Supplier<T> {
public static <T> _Lazy<T> of(Supplier<? extends T> supplier) {
return new _Lazy_Simple<T>(supplier);
}
-
+
/**
* Thread-safe variant to {@link _Lazy#of(Supplier)}.
* Concurrent calls to this lazy's get() method will never result in concurrent calls to the
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_NullSafe.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_NullSafe.java
index 6933027..25e2646 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_NullSafe.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_NullSafe.java
@@ -106,7 +106,7 @@ public final class _NullSafe {
false) //not parallel
: Stream.empty();
}
-
+
/**
* If {@code stream} is {@code null} returns the empty stream,
* otherwise returns the stream argument.
@@ -116,7 +116,7 @@ public final class _NullSafe {
public static <T> Stream<T> stream(@Nullable final Stream<T> stream) {
return stream!=null ? stream : Stream.empty();
}
-
+
/**
* If {@code enumeration} is {@code null} returns the empty stream,
* otherwise returns a stream of the enumeration's elements.
@@ -128,13 +128,15 @@ public final class _NullSafe {
? stream(toIterator(enumeration))
: Stream.empty();
}
-
+
// [ahuber] not public, since one time use of enumeration only!
private static <T> Iterator<T> toIterator(final Enumeration<T> e){
return new Iterator<T>() {
+ @Override
public T next() {
return e.nextElement();
}
+ @Override
public boolean hasNext() {
return e.hasMoreElements();
}
@@ -209,7 +211,7 @@ public final class _NullSafe {
public static boolean isEmpty(long[] array){ return array==null || array.length == 0;}
public static boolean isEmpty(short[] array){ return array==null || array.length == 0;}
public static <T> boolean isEmpty(T[] array){ return array==null || array.length == 0;}
-
+
// -- SIZE/LENGTH CHECKS
public static int size(String x){ return x!=null ? x.length() : 0; }
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
index 673fc5f..618cd86 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
@@ -71,15 +71,15 @@ public final class _Strings {
* (a duplicate of in {@link _Constants.emptyStringArray} )
*/
public final static String[] emptyArray = new String[0];
-
+
// -- PAIR OF STRINGS
-
+
public static interface KeyValuePair extends Map.Entry<String, String> { }
-
+
public static KeyValuePair pair(final String key, final String value){
return _Strings_KeyValuePair.of(key, value);
}
-
+
/**
* Parses a string assumed to be of the form <kbd>key=value</kbd> into its parts.
*
@@ -88,9 +88,9 @@ public final class _Strings {
public static Optional<KeyValuePair> parseKeyValuePair(@Nullable String keyValueLiteral) {
return _Strings_KeyValuePair.parse(keyValueLiteral);
}
-
+
// -- FILLING
-
+
public static String of(int length, char c) {
if(length<=0) {
return "";
@@ -141,7 +141,7 @@ public final class _Strings {
}
return input;
}
-
+
/**
* @param input
* @return the empty string if the {@code input} is null, the {@code input} otherwise
@@ -152,8 +152,8 @@ public final class _Strings {
}
return input;
}
-
-
+
+
/**
* Trims the input.
* @param input
@@ -198,9 +198,9 @@ public final class _Strings {
}
return Character.toUpperCase(input.charAt(0)) + input.substring(1);
}
-
+
// -- SPECIAL UNARY OPERATORS
-
+
public static String htmlEscape(String source) {
return _Strings_HtmlEscaper.htmlEscape(source);
}
@@ -240,9 +240,9 @@ public final class _Strings {
}
return input + suffix;
}
-
+
// -- REDUCTION (BINARY OPERATIOR)
-
+
/**
* Combines 2 strings {@code left} and {@code right} into a single string, such that left
* and right are delimited by the {@code delimiter} and such that
@@ -256,9 +256,9 @@ public final class _Strings {
*/
public static String combineWithDelimiter(
@Nullable String left, @Nullable String right, String delimiter) {
-
+
requiresNotEmpty(delimiter, "pathDelimiter");
-
+
if (isNullOrEmpty(left) && isNullOrEmpty(right)) {
return "";
}
@@ -273,7 +273,7 @@ public final class _Strings {
}
return left + delimiter + right;
}
-
+
// -- PADDING
@@ -353,7 +353,7 @@ public final class _Strings {
Spliterators.spliteratorUnknownSize(splitIterator(input, separator), Spliterator.ORDERED),
false); // not parallel
}
-
+
/**
* Creates a stream from the given input sequence around matches of {@code delimiterPattern}.
* @param input
@@ -367,29 +367,29 @@ public final class _Strings {
}
return delimiterPattern.splitAsStream(input);
}
-
+
public static void splitThenAccept(
- @Nullable final String input,
- final String separator,
- final BiConsumer<String, String> onNonEmptySplit,
- final Consumer<String> onNonEmptyLhs,
- final Consumer<String> onNonEmptyRhs) {
-
- _Strings_FastSplit.splitThenAccept(input, separator, onNonEmptySplit, onNonEmptyLhs, onNonEmptyRhs);
+ @Nullable final String input,
+ final String separator,
+ final BiConsumer<String, String> onNonEmptySplit,
+ final Consumer<String> onNonEmptyLhs,
+ final Consumer<String> onNonEmptyRhs) {
+
+ _Strings_FastSplit.splitThenAccept(input, separator, onNonEmptySplit, onNonEmptyLhs, onNonEmptyRhs);
}
-
+
public static void splitThenAcceptEmptyAsNull(
- @Nullable final String input,
- final String separator,
- final BiConsumer<String, String> onSplit) {
-
- _Strings_FastSplit.splitThenAccept(input, separator, onSplit,
- lhs->onSplit.accept(lhs, null),
- rhs->onSplit.accept(null, rhs));
+ @Nullable final String input,
+ final String separator,
+ final BiConsumer<String, String> onSplit) {
+
+ _Strings_FastSplit.splitThenAccept(input, separator, onSplit,
+ lhs->onSplit.accept(lhs, null),
+ rhs->onSplit.accept(null, rhs));
}
-
-
+
+
// -- REPLACEMENT OPERATORS
@@ -404,9 +404,9 @@ public final class _Strings {
requires(replacement, "replacement");
return mapIfPresentElse(input, __->input.replaceAll("\\s+", replacement), null);
}
-
+
// -- READ FROM INPUT STREAM
-
+
public static String read(@Nullable final InputStream input, Charset charset) {
requires(charset, "charset");
if(input==null) {
@@ -510,7 +510,7 @@ public final class _Strings {
return suffix(fileName, prefix(fileExtension, "."));
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_FastSplit.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_FastSplit.java
index e532a7d..7e6a529 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_FastSplit.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_FastSplit.java
@@ -25,42 +25,42 @@ import javax.annotation.Nullable;
class _Strings_FastSplit {
- public static void splitThenAccept(
- @Nullable final String input,
- final String separator,
- BiConsumer<String, String> onNonEmptySplit,
- Consumer<String> onNonEmptyLhs,
- Consumer<String> onNonEmptyRhs) {
-
+ public static void splitThenAccept(
+ @Nullable final String input,
+ final String separator,
+ BiConsumer<String, String> onNonEmptySplit,
+ Consumer<String> onNonEmptyLhs,
+ Consumer<String> onNonEmptyRhs) {
+
if(_Strings.isEmpty(input)) {
- // skip
+ // skip
return;
}
-
+
// we have a non-empty string
-
+
final int p = input.indexOf(separator);
if(p<1){
- if(p==-1) {
- // separator not found
- onNonEmptyLhs.accept(input);
- return;
- }
- if(p==0) {
- // empty lhs in string
- if(input.length()>separator.length()) {
- onNonEmptyRhs.accept(input);
- }
- return;
- }
- }
+ if(p==-1) {
+ // separator not found
+ onNonEmptyLhs.accept(input);
+ return;
+ }
+ if(p==0) {
+ // empty lhs in string
+ if(input.length()>separator.length()) {
+ onNonEmptyRhs.accept(input);
+ }
+ return;
+ }
+ }
final int q = p + separator.length();
- if(q==input.length()) {
- // empty rhs
- onNonEmptyLhs.accept(input.substring(0, p));
- return;
- }
- onNonEmptySplit.accept(input.substring(0, p), input.substring(q));
+ if(q==input.length()) {
+ // empty rhs
+ onNonEmptyLhs.accept(input.substring(0, p));
+ return;
+ }
+ onNonEmptySplit.accept(input.substring(0, p), input.substring(q));
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_HtmlEscaper.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_HtmlEscaper.java
index 2ca9ae2..0fc181f 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_HtmlEscaper.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_HtmlEscaper.java
@@ -36,20 +36,20 @@ final class _Strings_HtmlEscaper {
_Strings.pair("&", "&"),
_Strings.pair("<", "<"),
_Strings.pair(">", ">"),
-
+
};
-
+
static String htmlEscape(String input) {
if(_Strings.isEmpty(input)) {
return input;
}
-
+
String output = input;
-
+
for(KeyValuePair replacement : replacements) {
output = output.replace(replacement.getKey(), replacement.getValue());
}
-
+
return output;
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_KeyValuePair.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_KeyValuePair.java
index dd5f71a..5a1bb07 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_KeyValuePair.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_KeyValuePair.java
@@ -35,7 +35,7 @@ final class _Strings_KeyValuePair implements _Strings.KeyValuePair {
static KeyValuePair of(String key, String value) {
return new _Strings_KeyValuePair(key, value);
}
-
+
private final String key;
private final String value;
@@ -58,18 +58,18 @@ final class _Strings_KeyValuePair implements _Strings.KeyValuePair {
public String setValue(String value) {
throw notImplemented();
}
-
+
/**
* Parses a string assumed to be of the form <kbd>key=value</kbd> into its parts.
*
* @return a non-empty Optional, if (and only if) the {@code keyValueLiteral} does contain at least one '='
*/
public static Optional<KeyValuePair> parse(String keyValueLiteral) {
-
+
if(_Strings.isNullOrEmpty(keyValueLiteral)) {
return Optional.empty();
}
-
+
final int equalsIndex = keyValueLiteral.indexOf('=');
if (equalsIndex == -1) {
return Optional.empty();
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_SplitIterator.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_SplitIterator.java
index 64d1dd7..4613043 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_SplitIterator.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings_SplitIterator.java
@@ -71,6 +71,6 @@ final class _Strings_SplitIterator {
}
};
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Timing.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Timing.java
index 4a0e99a..1ed5f3d 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Timing.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Timing.java
@@ -53,54 +53,54 @@ public final class _Timing {
public static StopWatch atSystemNanos(long startedAtSystemNanos) {
return new StopWatch(startedAtSystemNanos);
}
-
-
+
+
/**
* Non thread safe start/stop watch utilizing the currently running
* JVM's high-resolution time source.
*/
public static final class StopWatch {
-
+
private long t0 = 0;
private long t1 = 0;
private boolean stopped;
-
+
private StopWatch(long startedAtSystemNanos) {
t0 = startedAtSystemNanos;
}
-
+
private StopWatch() {
start();
}
-
+
public StopWatch start() {
t0 = System.nanoTime();
stopped = false;
return this;
}
-
+
public StopWatch stop() {
t1 = System.nanoTime();
stopped = true;
return this;
}
-
+
public double getSeconds() {
return 0.000_000_001 * getNanos();
}
-
+
public double getMillis() {
return 0.000_001 * getNanos();
}
-
+
public double getMicros() {
return 0.001 * getNanos();
}
-
+
public long getNanos() {
return stopped ? t1 - t0 : System.nanoTime() - t0 ;
}
-
+
}
public static StopWatch run(Runnable runnable) {
@@ -108,12 +108,12 @@ public final class _Timing {
runnable.run();
return watch.stop();
}
-
+
public static void runVerbose(String label, Runnable runnable) {
final StopWatch watch = run(runnable);
info(String.format(Locale.US, "Running '%s' took %.2f ms", label, watch.getMillis()));
}
-
+
public static <T> T callVerbose(String label, Supplier<T> callable) {
final StopWatch watch = now();
T result = callable.get();
@@ -123,7 +123,7 @@ public final class _Timing {
}
// -- HELPER
-
+
private static void info(String msg) {
System.out.println(msg);
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Tuples.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Tuples.java
index a39a328..753d562 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Tuples.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_Tuples.java
@@ -34,16 +34,16 @@ package org.apache.isis.commons.internal.base;
public final class _Tuples {
private _Tuples(){}
-
+
public static class Tuple2<T1, T2>{
private final T1 _1;
private final T2 _2;
-
+
private Tuple2(T1 _1, T2 _2) {
this._1 = _1;
this._2 = _2;
}
-
+
/**
* @return first element of this tuple
*/
@@ -53,7 +53,7 @@ public final class _Tuples {
*/
public T2 get_2() { return _2; }
}
-
+
public static <T1, T2> Tuple2<T1, T2> pair(T1 _1, T2 _2) {
return new Tuple2<T1, T2>(_1, _2);
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_With.java b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_With.java
index 639b4ae..569a5e1 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/base/_With.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/base/_With.java
@@ -218,7 +218,7 @@ public final class _With<T> {
}
return obj;
}
-
+
// -- PARAMETER NON-EMPTY CHECK(S)
/**
@@ -250,7 +250,7 @@ public final class _With<T> {
public static <T> T create(Supplier<T> factory, Consumer<T> initializer) {
return accept(factory.get(), initializer);
}
-
+
/**
* Allows for single line instantiation and initialization of an ArrayList.
* @param initializer
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Arrays.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Arrays.java
index bed5638..8cd1eda 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Arrays.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Arrays.java
@@ -49,7 +49,7 @@ public final class _Arrays {
private _Arrays(){}
// -- PREDICATES
-
+
/**
* Whether given {@code test} predicate evaluates 'true' for any given pair of elements
* {@code array1[index]} and {@code array2[index]}, with {@code index=[0..n-1]} and {@code n}
@@ -65,7 +65,7 @@ public final class _Arrays {
@Nullable final T[] array1,
@Nullable final T[] array2,
final BiPredicate<T, T> test) {
-
+
final int s1 = _NullSafe.size(array1);
final int s2 = _NullSafe.size(array2);
if(s1!=s2) {
@@ -75,7 +75,7 @@ public final class _Arrays {
return false;
}
requires(test, "test");
-
+
for(int i=0; i<s1; ++i) {
if(test.test(array1[i], array2[i])) {
return true;
@@ -83,7 +83,7 @@ public final class _Arrays {
}
return false;
}
-
+
/**
* Whether given {@code test} predicate evaluates 'true' for all given pairs of elements
@@ -103,7 +103,7 @@ public final class _Arrays {
requires(test, "test");
return !testAnyMatch(array1, array2, test.negate());
}
-
+
/**
* @param cls
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Collections.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Collections.java
index 14321e1..bd55052 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Collections.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Collections.java
@@ -309,14 +309,14 @@ public final class _Collections {
}
// -- TO STRING
-
+
public static String toStringJoining(@Nullable Collection<?> collecion, String delimiter) {
requires(delimiter, "delimiter");
return _NullSafe.stream(collecion)
.map(x->""+x)
.collect(Collectors.joining(delimiter));
}
-
+
public static String toStringJoiningNewLine(@Nullable Collection<?> collecion) {
return toStringJoining(collecion, "\n");
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Inbox.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Inbox.java
index 838f42d..243475a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Inbox.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Inbox.java
@@ -30,55 +30,55 @@ import lombok.val;
* @param <T>
*/
public class _Inbox<T> implements Serializable {
-
- private static final long serialVersionUID = 1L;
- private final Object $lock = new Object[0]; // serializable lock
-
- final List<T> list = _Lists.newArrayList();
- public void add(T element) {
- synchronized($lock) {
- list.add(element);
- }
- }
-
- public void remove(T element) {
- synchronized($lock) {
- list.remove(element);
- }
- }
-
- public List<T> snapshot() {
- synchronized($lock) {
- val defensiveCopy = _Lists.newArrayList(list);
- return defensiveCopy;
- }
- }
-
- public List<T> snapshotThenClear() {
- synchronized($lock) {
- val defensiveCopy = _Lists.newArrayList(list);
- list.clear();
- return defensiveCopy;
- }
- }
-
- public boolean isEmpty() {
- synchronized($lock) {
- return list.isEmpty();
- }
- }
-
- public void clear() {
- synchronized($lock) {
- list.clear();
- }
- }
-
- public int size() {
- synchronized($lock) {
- return list.size();
- }
- }
-
+ private static final long serialVersionUID = 1L;
+ private final Object $lock = new Object[0]; // serializable lock
+
+ final List<T> list = _Lists.newArrayList();
+
+ public void add(T element) {
+ synchronized($lock) {
+ list.add(element);
+ }
+ }
+
+ public void remove(T element) {
+ synchronized($lock) {
+ list.remove(element);
+ }
+ }
+
+ public List<T> snapshot() {
+ synchronized($lock) {
+ val defensiveCopy = _Lists.newArrayList(list);
+ return defensiveCopy;
+ }
+ }
+
+ public List<T> snapshotThenClear() {
+ synchronized($lock) {
+ val defensiveCopy = _Lists.newArrayList(list);
+ list.clear();
+ return defensiveCopy;
+ }
+ }
+
+ public boolean isEmpty() {
+ synchronized($lock) {
+ return list.isEmpty();
+ }
+ }
+
+ public void clear() {
+ synchronized($lock) {
+ list.clear();
+ }
+ }
+
+ public int size() {
+ synchronized($lock) {
+ return list.size();
+ }
+ }
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java
index de4f711..7e1f99f 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Lists.java
@@ -166,9 +166,9 @@ public final class _Lists {
()->Collectors.<T, CopyOnWriteArrayList<T>>toCollection(CopyOnWriteArrayList::new) );
}
-
+
// -- TRANSFORMATIONS
-
+
public static <T, R> List<R> transform(@Nullable Collection<T> input, Function<Stream<T>, Stream<R>> transformation) {
if(input==null) {
return Collections.emptyList();
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java
index 65aa10a..f18fc78 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Maps.java
@@ -103,32 +103,32 @@ public final class _Maps {
public static <K, V> Map.Entry<K, V> entry(K k, V v){
return new AbstractMap.SimpleEntry<K, V>(k, v);
}
-
+
// -- TRANSFORMATIONS
-
+
public static <K, V> Map<K, V> filterKeys(
@Nullable Map<K, V> input,
Predicate<K> keyFilter,
Supplier<Map<K, V>> factory) {
-
+
requires(factory, "factory");
final Map<K, V> result = factory.get();
-
+
if(input==null) {
return result;
}
-
+
requires(keyFilter, "keyFilter");
-
+
input.forEach((k, v)->{
if(keyFilter.test(k)) {
result.put(k, v);
}
});
-
+
return result;
}
-
+
public static <K, V> ListMultimap<V, K> invertToListMultimap(Map<K, V> input) {
final ListMultimap<V, K> result = _Multimaps.newListMultimap();
if(input==null) {
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Multimaps.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Multimaps.java
index 564c203..464df9a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Multimaps.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Multimaps.java
@@ -144,7 +144,7 @@ public class _Multimaps {
public static <K, V, S extends Set<V>> SetMultimap<K, V> newSetMultimap(
final Supplier<? extends Map<K, S>> mapFactory,
- final Supplier<S> elementCollectionFactory){
+ final Supplier<S> elementCollectionFactory){
requires(mapFactory, "mapFactory");
requires(elementCollectionFactory, "elementCollectionFactory");
@@ -234,21 +234,21 @@ public class _Multimaps {
* @return TreeMap of TreeSets
*/
public static <K, V> SetMultimap<K, V> newSortedSetMultimap(
- @Nullable Comparator<K> keyComparator,
- @Nullable Comparator<V> elementComparator){
-
+ @Nullable Comparator<K> keyComparator,
+ @Nullable Comparator<V> elementComparator){
+
final Supplier<SortedMap<K, SortedSet<V>>> mapFactory = ()->new TreeMap<K, SortedSet<V>>(keyComparator);
final Supplier<SortedSet<V>> elementSetFactory = ()->new TreeSet<V>(elementComparator);
- return newSetMultimap(mapFactory, elementSetFactory);
+ return newSetMultimap(mapFactory, elementSetFactory);
}
-
+
/**
* @return HashMap of HashMaps
*/
public static <K1, K2, V> MapMultimap<K1, K2, V> newMapMultimap(){
return newMapMultimap(HashMap<K1, Map<K2, V>>::new, HashMap::new);
}
-
+
/**
* @return ConcurrentHashMap of HashMaps
*/
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java
index 8f367f9..23b0c67 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/collections/_Sets.java
@@ -185,7 +185,7 @@ public final class _Sets {
return _Collections.collectFromIterable(iterable, _Sets::newConcurrentHashSet,
()->Collectors.<T, KeySetView<T, Boolean>>toCollection(ConcurrentHashMap::newKeySet) );
}
-
+
// -- COPY ON WRITE ARRAY SET
public static <T> CopyOnWriteArraySet<T> newCopyOnWriteArraySet() {
@@ -225,7 +225,7 @@ public final class _Sets {
.filter(b::contains)
.collect(Collectors.toSet()) );
}
-
+
/**
* Returns the intersection (set theory) of two given sets, retaining order.
* @param a
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/concurrent/_Tasks.java b/core/commons/src/main/java/org/apache/isis/commons/internal/concurrent/_Tasks.java
index 6daa9c0..841ece8 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/concurrent/_Tasks.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/concurrent/_Tasks.java
@@ -51,7 +51,7 @@ import lombok.extern.log4j.Log4j2;
*/
@Log4j2
public final class _Tasks {
-
+
public static _Tasks create() {
return new _Tasks();
}
@@ -60,7 +60,7 @@ public final class _Tasks {
requires(runnable, "runnable");
addRunnable(runnable, null);
}
-
+
public void addRunnable(Runnable runnable, @Nullable Supplier<String> name) {
requires(runnable, "runnable");
callables.add(new NamedCallable<Object>(name) {
@@ -70,121 +70,121 @@ public final class _Tasks {
runnable.run();
return null;
}
-
+
});
}
-
+
public void addRunnable(String name, Runnable runnable) {
requires(runnable, "runnable");
addRunnable(runnable, ()->name);
}
-
+
public List<Callable<Object>> getCallables() {
return Collections.unmodifiableList(callables);
}
-
+
public void invokeAndWait(boolean concurrent) {
-
- val t0 = System.nanoTime();
- val tasksExecuted = new LongAdder();
-
- try {
-
- if(concurrent) {
-
-// val forkJoinPool = new ForkJoinPool();
-// val anyErrorRef = new AtomicReference<RuntimeException>();
-//
-// forkJoinPool.submit(()->{
- val anyError = callables.parallelStream()
- .map(_Tasks::call)
- .peek(__->tasksExecuted.increment())
- .filter(_Either::isRight)
- .findAny()
- .map(_Either::rightIfAny)
- .orElse(null);
-
-// anyErrorRef.set(anyError);
-// });
-//
-// forkJoinPool.shutdown();
-//
-// try {
-// System.err.println("wait for ForkJoinPool " + forkJoinPool);
-// forkJoinPool.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
-// System.err.println("done waiting for ForkJoinPool " + forkJoinPool);
-// } catch (InterruptedException e) {
-// throw _Exceptions.unrecoverable("exception while waiting on the ForkJoinPool to terminate", e);
-// }
-//
-// val anyError = anyErrorRef.get();
- if(anyError!=null) {
- throw anyError;
- }
-
- } else {
-
- for(Callable<?> callable : getCallables()) {
- val eitherResultOrError = call(callable);
- tasksExecuted.increment();
-
- if(eitherResultOrError.isRight()) {
- throw eitherResultOrError.rightIfAny();
- }
- }
-
- }
-
- } finally {
-
- if(log.isDebugEnabled()) {
- val t1 = System.nanoTime();
- log.printf(Level.DEBUG,
- "running %d/%d tasks %s, took %.3f milliseconds ",
- tasksExecuted.longValue(),
- callables.size(),
- concurrent ? "concurrent" : "sequential",
- 0.000_001 * (t1-t0));
- }
-
- callables.clear();
- }
-
+
+ val t0 = System.nanoTime();
+ val tasksExecuted = new LongAdder();
+
+ try {
+
+ if(concurrent) {
+
+ // val forkJoinPool = new ForkJoinPool();
+ // val anyErrorRef = new AtomicReference<RuntimeException>();
+ //
+ // forkJoinPool.submit(()->{
+ val anyError = callables.parallelStream()
+ .map(_Tasks::call)
+ .peek(__->tasksExecuted.increment())
+ .filter(_Either::isRight)
+ .findAny()
+ .map(_Either::rightIfAny)
+ .orElse(null);
+
+ // anyErrorRef.set(anyError);
+ // });
+ //
+ // forkJoinPool.shutdown();
+ //
+ // try {
+ // System.err.println("wait for ForkJoinPool " + forkJoinPool);
+ // forkJoinPool.awaitTermination(Long.MAX_VALUE, TimeUnit.DAYS);
+ // System.err.println("done waiting for ForkJoinPool " + forkJoinPool);
+ // } catch (InterruptedException e) {
+ // throw _Exceptions.unrecoverable("exception while waiting on the ForkJoinPool to terminate", e);
+ // }
+ //
+ // val anyError = anyErrorRef.get();
+ if(anyError!=null) {
+ throw anyError;
+ }
+
+ } else {
+
+ for(Callable<?> callable : getCallables()) {
+ val eitherResultOrError = call(callable);
+ tasksExecuted.increment();
+
+ if(eitherResultOrError.isRight()) {
+ throw eitherResultOrError.rightIfAny();
+ }
+ }
+
+ }
+
+ } finally {
+
+ if(log.isDebugEnabled()) {
+ val t1 = System.nanoTime();
+ log.printf(Level.DEBUG,
+ "running %d/%d tasks %s, took %.3f milliseconds ",
+ tasksExecuted.longValue(),
+ callables.size(),
+ concurrent ? "concurrent" : "sequential",
+ 0.000_001 * (t1-t0));
+ }
+
+ callables.clear();
+ }
+
}
-
+
// -- IMPLEMENTATION DETAILS
private static <T> _Either<T, RuntimeException> call(Callable<T> callable) {
-
- try {
- val result = callable.call();
- return _Either.leftNullable(result);
- } catch (Throwable cause) {
-
- val name = callable instanceof NamedCallable
- ? callable.toString()
- : "unnamend";
-
- val msg = String.format("failure while executing callable '%s'", name);
- log.error(msg, cause);
- return _Either.right(_Exceptions.unrecoverable(msg, cause));
- }
-
+
+ try {
+ val result = callable.call();
+ return _Either.leftNullable(result);
+ } catch (Throwable cause) {
+
+ val name = callable instanceof NamedCallable
+ ? callable.toString()
+ : "unnamend";
+
+ val msg = String.format("failure while executing callable '%s'", name);
+ log.error(msg, cause);
+ return _Either.right(_Exceptions.unrecoverable(msg, cause));
+ }
+
}
-
+
private final List<Callable<Object>> callables = _Lists.newArrayList();
-
+
@RequiredArgsConstructor
private abstract static class NamedCallable<T> implements Callable<T> {
-
+
private final Supplier<String> name;
-
+
@Override
public String toString() {
return mapIfPresentElse(name, Supplier::get, super.toString());
}
-
+
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context.java b/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context.java
index 0aa301d..978835f 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context.java
@@ -61,9 +61,9 @@ public final class _Context {
* If synchronization is required it should happen elsewhere, not here!<br/>
*/
private final static Map<Class<?>, Object> singletonMap = new ConcurrentHashMap<>();
-
+
private final static Object $LOCK = new Object[0];
-
+
/**
* Puts a singleton instance onto the current context.
@@ -133,34 +133,34 @@ public final class _Context {
if(existingIfAny!=null) {
return existingIfAny;
}
-
+
// Note: we don't want to do this inside the synchronized block
final T t = factory.apply(type);
-
+
// we don't store null to the map
if(t==null) {
- return null;
-// throw _Exceptions.unrecoverable(String.format("factory to compute new value for type '%s' "
-// + "returned 'null', which is not allowed", type));
+ return null;
+ // throw _Exceptions.unrecoverable(String.format("factory to compute new value for type '%s' "
+ // + "returned 'null', which is not allowed", type));
}
-
+
// let writes to the map be atomic
synchronized ($LOCK) {
-
+
// Note: cannot just use 'singletonMap.computeIfAbsent(toKey(type), __->factory.apply(type));'
// here because it does not allow for modification of singletonMap inside the factory call
- // Also we do need a second check for existing key, since it might have been changed by another
- // thread since.
- final T existingIfAny2 = _Casts.uncheckedCast(singletonMap.get(type));
+ // Also we do need a second check for existing key, since it might have been changed by another
+ // thread since.
+ final T existingIfAny2 = _Casts.uncheckedCast(singletonMap.get(type));
if(existingIfAny2!=null) {
return existingIfAny2;
}
-
+
singletonMap.put(type, t);
return t;
}
}
-
+
/**
* If the specified key is not already associated with a value (or is mapped to null),
* attempts to compute its value using the given factory supplier and enters it into this map unless null.
@@ -173,8 +173,8 @@ public final class _Context {
requires(factory, "factory");
return computeIfAbsent(type, __->factory.get());
}
-
-
+
+
/**
* Gets a singleton instance of {@code type} if there is any,
@@ -201,8 +201,8 @@ public final class _Context {
Class<? super T> type,
Supplier<E> onNotFound)
throws E {
-
- requires(type, "type");
+
+ requires(type, "type");
requires(onNotFound, "onNotFound");
return ifPresentElseThrow(getIfAny(type), onNotFound);
}
@@ -217,10 +217,10 @@ public final class _Context {
return ifPresentElseThrow(getIfAny(type), ()->
new NoSuchElementException(String.format("Could not resolve an instance of type '%s'", type.getName())));
}
-
-
+
+
// -- REMOVAL
-
+
public static void remove(Class<?> type) {
// let writes to the map be atomic
synchronized ($LOCK) {
@@ -228,9 +228,9 @@ public final class _Context {
}
tryClose(type);
}
-
+
// -- CLEARING
-
+
/**
* Removes any singleton references from the current context. <br/>
* Any singletons that implement the AutoClosable interface are being closed.
@@ -251,38 +251,38 @@ public final class _Context {
stream(objects)
.forEach(_Context::tryClose);
}
-
+
// -- THREAD LOCAL SUPPORT
/**
* Clear key {@code type} from current thread's map.
* @param type - the key into the thread-local store
*/
- public static void threadLocalClear(Class<?> type) {
- _Context_ThreadLocal.clear(type);
- }
-
+ public static void threadLocalClear(Class<?> type) {
+ _Context_ThreadLocal.clear(type);
+ }
+
/**
* Puts {@code payload} onto the current thread's map.
* @param type - the key into the thread-local store
* @param payload
* @return a Runnable which, when run, removes any references to payload
*/
- public static <T> Runnable threadLocalPut(Class<? super T> type, T payload) {
- return _Context_ThreadLocal.put(type, payload);
- }
+ public static <T> Runnable threadLocalPut(Class<? super T> type, T payload) {
+ return _Context_ThreadLocal.put(type, payload);
+ }
+
-
/**
* Looks up current thread's values for any instances that match the given type, as previously stored
* with {@link _Context#threadLocalPut(Class, Object)}.
* @param type - the key into the thread-local store
* @return
*/
- public static <T> Bin<T> threadLocalGet(Class<? super T> type) {
- return _Context_ThreadLocal.get(type);
- }
-
+ public static <T> Bin<T> threadLocalGet(Class<? super T> type) {
+ return _Context_ThreadLocal.get(type);
+ }
+
/**
* Looks up current thread's values for any instances that match the given type, as previously stored
* with {@link _Context#threadLocalPut(Class, Object)}.
@@ -290,17 +290,17 @@ public final class _Context {
* @param requiredType - the required type of the elements in the returned bin
* @return
*/
- public static <T> Bin<T> threadLocalSelect(Class<? super T> type, Class<? super T> requiredType) {
- return _Context_ThreadLocal.select(type, requiredType);
- }
-
- /**
- * Removes any of current thread's values as stored with {@link _Context#threadLocalPut(Class, Object)}.
- */
- public static <T> void threadLocalCleanup() {
- _Context_ThreadLocal.cleanupThread();
- }
-
+ public static <T> Bin<T> threadLocalSelect(Class<? super T> type, Class<? super T> requiredType) {
+ return _Context_ThreadLocal.select(type, requiredType);
+ }
+
+ /**
+ * Removes any of current thread's values as stored with {@link _Context#threadLocalPut(Class, Object)}.
+ */
+ public static <T> void threadLocalCleanup() {
+ _Context_ThreadLocal.cleanupThread();
+ }
+
// -- DEFAULT CLASSLOADER
@@ -355,25 +355,25 @@ public final class _Context {
}
// -- ENVIRONMENT
-
+
/** framework internal, exposed by IsisContext */
public static IsisSystemEnvironment getEnvironment() {
return getOrElse(IsisSystemEnvironment.class,
IsisSystemEnvironmentPlugin.get()::getIsisSystemEnvironment);
}
-
+
/** framework internal, shortcut for convenience */
public static boolean isPrototyping() {
return getEnvironment().getDeploymentType().isPrototyping();
}
-
+
/** framework internal, shortcut for convenience */
public static boolean isUnitTesting() {
return getEnvironment().isUnitTesting();
}
// -- HELPER
-
+
private static void tryClose(Object singleton) {
if(singleton==null) {
return;
@@ -389,7 +389,7 @@ public final class _Context {
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal.java b/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal.java
index 05d25b1..04267de 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal.java
@@ -48,105 +48,105 @@ import lombok.val;
final class _Context_ThreadLocal {
// -- MIXINS
-
- @Value(staticConstructor = "of")
- private final static class ThreadKey {
- long threadId;
- int threadHashCode;
- static ThreadKey of(Thread thread) {
- return of(thread.getId(), thread.hashCode());
- }
- }
-
- static <T> Runnable put(Class<? super T> type, T variant) {
- requires(type, "type");
- requires(variant, "variant");
-
- val threadLocalMap = getOrCreateThreadLocalMap();
- threadLocalMap
- .compute(type, (k, v) -> v == null
- ? Bin.<T>ofSingleton(variant)
- : Bin.<T>concat(_Casts.uncheckedCast(v), variant));
-
- val key = THREAD_LOCAL_MAP_KEY.get();
-
- return ()->{MAPS_BY_KEY.remove(key);};
+
+ @Value(staticConstructor = "of")
+ private final static class ThreadKey {
+ long threadId;
+ int threadHashCode;
+ static ThreadKey of(Thread thread) {
+ return of(thread.getId(), thread.hashCode());
+ }
+ }
+
+ static <T> Runnable put(Class<? super T> type, T variant) {
+ requires(type, "type");
+ requires(variant, "variant");
+
+ val threadLocalMap = getOrCreateThreadLocalMap();
+ threadLocalMap
+ .compute(type, (k, v) -> v == null
+ ? Bin.<T>ofSingleton(variant)
+ : Bin.<T>concat(_Casts.uncheckedCast(v), variant));
+
+ val key = THREAD_LOCAL_MAP_KEY.get();
+
+ return ()->{MAPS_BY_KEY.remove(key);};
+ }
+
+ static <T> Bin<T> select(Class<? super T> type, Class<? super T> instanceOf) {
+ val bin = _Context_ThreadLocal.<T>get(type);
+ return bin.filter(t -> isInstanceOf(t, instanceOf));
+ }
+
+ private static boolean isInstanceOf(Object obj, Class<?> type) {
+ return type.isAssignableFrom(obj.getClass());
}
-
- static <T> Bin<T> select(Class<? super T> type, Class<? super T> instanceOf) {
- val bin = _Context_ThreadLocal.<T>get(type);
- return bin.filter(t -> isInstanceOf(t, instanceOf));
- }
-
- private static boolean isInstanceOf(Object obj, Class<?> type) {
- return type.isAssignableFrom(obj.getClass());
- }
-
+
static <T> Bin<T> get(Class<? super T> type) {
- val threadLocalMap = getThreadLocalMap();
- if(threadLocalMap==null) {
- return Bin.empty();
- }
- val bin = threadLocalMap.get(type);
- if(bin==null) {
- return Bin.empty();
- }
- return _Casts.uncheckedCast(bin);
+ val threadLocalMap = getThreadLocalMap();
+ if(threadLocalMap==null) {
+ return Bin.empty();
+ }
+ val bin = threadLocalMap.get(type);
+ if(bin==null) {
+ return Bin.empty();
+ }
+ return _Casts.uncheckedCast(bin);
}
-
+
static void clear(Class<?> type) {
- val threadLocalMap = getThreadLocalMap();
- if(threadLocalMap==null) {
- return;
- }
- threadLocalMap.remove(type);
+ val threadLocalMap = getThreadLocalMap();
+ if(threadLocalMap==null) {
+ return;
+ }
+ threadLocalMap.remove(type);
}
-
+
static void cleanupThread() {
- val key = THREAD_LOCAL_MAP_KEY.get();
- THREAD_LOCAL_MAP_KEY.remove();
- MAPS_BY_KEY.remove(key);
+ val key = THREAD_LOCAL_MAP_KEY.get();
+ THREAD_LOCAL_MAP_KEY.remove();
+ MAPS_BY_KEY.remove(key);
}
-
+
// -- HELPER
-
+
private _Context_ThreadLocal(){}
-
+
static void clear() {
- MAPS_BY_KEY.clear();
+ MAPS_BY_KEY.clear();
}
-// /**
-// * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
-// */
-// private final static ThreadLocal<Map<Class<?>, Bin<?>>> THREAD_LOCAL_MAP =
-// InheritableThreadLocal.withInitial(HashMap::new);
+ // /**
+ // * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
+ // */
+ // private final static ThreadLocal<Map<Class<?>, Bin<?>>> THREAD_LOCAL_MAP =
+ // InheritableThreadLocal.withInitial(HashMap::new);
- /**
- * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
- */
+ /**
+ * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
+ */
private final static ThreadLocal<ThreadKey> THREAD_LOCAL_MAP_KEY =
- InheritableThreadLocal.withInitial(()->ThreadKey.of(Thread.currentThread()));
+ InheritableThreadLocal.withInitial(()->ThreadKey.of(Thread.currentThread()));
+
-
private final static _Multimaps.MapMultimap<ThreadKey, Class<?>, Bin<?>> MAPS_BY_KEY =
- _Multimaps.newConcurrentMapMultimap();
-
+ _Multimaps.newConcurrentMapMultimap();
+
private static Map<Class<?>, Bin<?>> getThreadLocalMap() {
- val key = THREAD_LOCAL_MAP_KEY.get(); // non-null
- val threadLocalMap = MAPS_BY_KEY.get(key); // might be null
- return threadLocalMap;
+ val key = THREAD_LOCAL_MAP_KEY.get(); // non-null
+ val threadLocalMap = MAPS_BY_KEY.get(key); // might be null
+ return threadLocalMap;
}
-
+
private static Map<Class<?>, Bin<?>> getOrCreateThreadLocalMap() {
- val key = THREAD_LOCAL_MAP_KEY.get(); // non-null
- val threadLocalMap = MAPS_BY_KEY.get(key); // might be null
- if(threadLocalMap!=null) {
- return threadLocalMap;
- }
- val map = _Maps.<Class<?>, Bin<?>>newHashMap();
- MAPS_BY_KEY.put(key, map);
- return map;
+ val key = THREAD_LOCAL_MAP_KEY.get(); // non-null
+ val threadLocalMap = MAPS_BY_KEY.get(key); // might be null
+ if(threadLocalMap!=null) {
+ return threadLocalMap;
+ }
+ val map = _Maps.<Class<?>, Bin<?>>newHashMap();
+ MAPS_BY_KEY.put(key, map);
+ return map;
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal_Singleton.java b/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal_Singleton.java
index bf5beeb..da0d98e 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal_Singleton.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/context/_Context_ThreadLocal_Singleton.java
@@ -45,55 +45,55 @@ import lombok.val;
final class _Context_ThreadLocal_Singleton {
// -- MIXINS
-
- static <T> void put(Class<? super T> type, T payload) {
- requires(type, "type");
- requires(payload, "payload");
- THREAD_LOCAL_MAP.get().put(type, Payload.of(payload, null));
+
+ static <T> void put(Class<? super T> type, T payload) {
+ requires(type, "type");
+ requires(payload, "payload");
+ THREAD_LOCAL_MAP.get().put(type, Payload.of(payload, null));
}
-
+
static <T> void put(Class<? super T> type, Object payload, Runnable onCleanup) {
- requires(type, "type");
- requires(payload, "payload");
- requires(onCleanup, "onCleanup");
- THREAD_LOCAL_MAP.get().put(type, Payload.of(payload, onCleanup));
+ requires(type, "type");
+ requires(payload, "payload");
+ requires(onCleanup, "onCleanup");
+ THREAD_LOCAL_MAP.get().put(type, Payload.of(payload, onCleanup));
}
-
+
static <T> T get(Class<? super T> type) {
- val payload = THREAD_LOCAL_MAP.get().get(type);
- if(payload!=null) {
- return _Casts.uncheckedCast(payload.pojo);
- }
- return null;
+ val payload = THREAD_LOCAL_MAP.get().get(type);
+ if(payload!=null) {
+ return _Casts.uncheckedCast(payload.pojo);
+ }
+ return null;
}
-
+
static void cleanupThread() {
- THREAD_LOCAL_MAP.get().forEach((key, payload)->payload.cleanUp());
- THREAD_LOCAL_MAP.remove();
+ THREAD_LOCAL_MAP.get().forEach((key, payload)->payload.cleanUp());
+ THREAD_LOCAL_MAP.remove();
}
-
+
// -- HELPER
-
+
private _Context_ThreadLocal_Singleton(){}
-
+
@Value(staticConstructor="of")
private final static class Payload {
- final Object pojo;
- final Runnable onCleanup;
- void cleanUp() {
- if(onCleanup!=null) {
- onCleanup.run();
- }
- }
+ final Object pojo;
+ final Runnable onCleanup;
+ void cleanUp() {
+ if(onCleanup!=null) {
+ onCleanup.run();
+ }
+ }
}
- /**
- * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
- */
+ /**
+ * Inheritable... allows to have concurrent computations utilizing the ForkJoinPool.
+ */
private final static ThreadLocal<Map<Class<?>, Payload>> THREAD_LOCAL_MAP =
- InheritableThreadLocal.withInitial(HashMap::new);
+ InheritableThreadLocal.withInitial(HashMap::new);
+
+
-
-
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/debug/_Probe.java b/core/commons/src/main/java/org/apache/isis/commons/internal/debug/_Probe.java
index 848f74d..985d2e1 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/debug/_Probe.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/debug/_Probe.java
@@ -50,7 +50,7 @@ import lombok.val;
* @since 2.0
*/
public class _Probe {
-
+
public static enum MaxCallsReachedAction {
IGNORE,
SYSTEM_EXIT,
@@ -64,16 +64,16 @@ public class _Probe {
private String indentLiteral = " ";
private String emphasisFormat = "__PROBE__ %s";
private boolean silenced = false;
-
+
private final LongAdder counter = new LongAdder();
-
+
private _Probe(long maxCalls, MaxCallsReachedAction maxAction) {
this.maxCalls = maxCalls;
this.maxAction = maxAction;
}
// -- FACTORIES
-
+
public static _Probe maxCallsThenIgnore(long max) {
return of(max, MaxCallsReachedAction.IGNORE);
}
@@ -89,18 +89,18 @@ public class _Probe {
public static _Probe unlimited() {
return of(Long.MAX_VALUE-1, MaxCallsReachedAction.IGNORE);
}
-
+
private static _Probe of(long maxCalls, MaxCallsReachedAction maxAction) {
return new _Probe(maxCalls, maxAction);
}
-
+
// -- WITHERS
-
+
public _Probe out(PrintStream out) {
this.out = out;
return this;
}
-
+
public _Probe label(String label) {
this.label = label;
return this;
@@ -110,32 +110,32 @@ public class _Probe {
this.indentLiteral = indentLiteral;
return this;
}
-
+
public _Probe emphasisFormat(String emphasisFormat) {
this.emphasisFormat = emphasisFormat;
return this;
}
-
+
public _Probe silence() {
- this.silenced = true;
- return this;
- }
-
+ this.silenced = true;
+ return this;
+ }
+
// -- INDENTING
-
+
public int currentIndent = 0;
-
+
// -- PRINTING
public void println(int indent, CharSequence chars) {
if(counter.longValue()<maxCalls) {
counter.increment();
if(!silenced) {
- print_line(indent, chars);
+ print_line(indent, chars);
}
return;
}
-
+
switch (maxAction) {
case IGNORE:
return;
@@ -165,17 +165,17 @@ public class _Probe {
public void println(String format, Object...args) {
println(currentIndent, format, args);
}
-
+
public void warnNotImplementedYet(String format, Object... args) {
- val warnMsg = String.format(format, args);
- val restore_out = out;
- out=System.err;
- println("WARN NotImplementedYet %s", warnMsg);
- errOut("-------------------------------------");
- _Exceptions.dumpStackTrace(System.err, 1, 12);
- errOut("-------------------------------------");
- out=restore_out;
- }
+ val warnMsg = String.format(format, args);
+ val restore_out = out;
+ out=System.err;
+ println("WARN NotImplementedYet %s", warnMsg);
+ errOut("-------------------------------------");
+ _Exceptions.dumpStackTrace(System.err, 1, 12);
+ errOut("-------------------------------------");
+ out=restore_out;
+ }
// -- CONVENIENT DEBUG TOOLS (STATIC)
@@ -187,16 +187,16 @@ public class _Probe {
System.err.println(String.format(format, args));
}
-
+
private final static Map<String, String> abbreviations =
_Maps.unmodifiableEntries(
- _Maps.entry("org.apache.isis", "~"),
- _Maps.entry("core", "c"),
- _Maps.entry("applib", "alib"),
- _Maps.entry("metamodel", "mm"),
- _Maps.entry("runtime", "rt"),
- _Maps.entry("viewer", "vw")
- );
+ _Maps.entry("org.apache.isis", "~"),
+ _Maps.entry("core", "c"),
+ _Maps.entry("applib", "alib"),
+ _Maps.entry("metamodel", "mm"),
+ _Maps.entry("runtime", "rt"),
+ _Maps.entry("viewer", "vw")
+ );
public static String compact(Class<?> cls) {
String[] name = {cls.getName()};
// pre-process for isis
@@ -206,12 +206,12 @@ public class _Probe {
}
});
return _Strings.splitThenStream(name[0], ".")
- .map(part->_With.mapIfPresentElse(abbreviations.get(part), value->value, part))
- .collect(Collectors.joining("."));
+ .map(part->_With.mapIfPresentElse(abbreviations.get(part), value->value, part))
+ .collect(Collectors.joining("."));
}
// -- HELPER
-
+
private void print_line(int indent, CharSequence chars) {
final long counterValue = counter.longValue();
for(int i=0; i<indent; ++i) {
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java b/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
index 03968ed..814308a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/exceptions/_Exceptions.java
@@ -74,7 +74,7 @@ public final class _Exceptions {
requires(format, "format");
return new IllegalArgumentException(String.format(format, _case));
}
-
+
public static final NoSuchElementException noSuchElement(String msg) {
return new NoSuchElementException(msg);
}
@@ -83,7 +83,7 @@ public final class _Exceptions {
requires(format, "format");
return noSuchElement(String.format(format, args));
}
-
+
public static final IllegalStateException unexpectedCodeReach() {
return new IllegalStateException("internal error: code was reached, that is expected unreachable");
}
@@ -91,35 +91,35 @@ public final class _Exceptions {
public static IllegalStateException notImplemented() {
return new IllegalStateException("internal error: code was reached, that is not implemented yet");
}
-
+
public static RuntimeException unrecoverable(Throwable cause) {
return new RuntimeException("unrecoverable error: with cause ...", cause);
}
-
+
public static RuntimeException unrecoverable(String msg) {
return new RuntimeException(String.format("unrecoverable error: '%s'", msg));
}
-
+
public static RuntimeException unrecoverable(String msg, Throwable cause) {
return new RuntimeException(String.format("unrecoverable error: '%s' with cause ...", msg), cause);
}
-
+
/**
- * Used to hide from the compiler the fact, that this call always throws.
- *
- * <pre>{
- * throw unexpectedCodeReach();
- * return 0; // won't compile: unreachable code
- *}</pre>
- *
- * hence ...
- *
- * <pre>{
- * throwUnexpectedCodeReach();
- * return 0;
- *}</pre>
- *
- */
+ * Used to hide from the compiler the fact, that this call always throws.
+ *
+ * <pre>{
+ * throw unexpectedCodeReach();
+ * return 0; // won't compile: unreachable code
+ *}</pre>
+ *
+ * hence ...
+ *
+ * <pre>{
+ * throwUnexpectedCodeReach();
+ * return 0;
+ *}</pre>
+ *
+ */
public static void throwUnexpectedCodeReach() {
throw unexpectedCodeReach();
}
@@ -200,10 +200,10 @@ public final class _Exceptions {
.limit(maxLines)
.forEach(writer::println);
}
-
- public static void dumpStackTrace() {
- dumpStackTrace(System.out, 0, 1000);
- }
+
+ public static void dumpStackTrace() {
+ dumpStackTrace(System.out, 0, 1000);
+ }
// -- CAUSAL CHAIN
@@ -339,5 +339,5 @@ public final class _Exceptions {
}
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java
index f2d988b..c548c5e 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Functions.java
@@ -124,7 +124,7 @@ public final class _Functions {
}
};
}
-
+
// -- CHECKED EXCEPTION ADAPTERS (CONSUMER)
/**
@@ -186,14 +186,14 @@ public final class _Functions {
}
};
}
-
+
public static <T, U extends RuntimeException> Supplier<T> uncheckedSupplier(
CheckedSupplier<T> checkedSupplier) {
return ()->{
try {
return checkedSupplier.get();
} catch (Exception e) {
- throw new RuntimeException(e);
+ throw new RuntimeException(e);
}
};
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Predicates.java b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Predicates.java
index 26f14f0..e1ede0a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Predicates.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/functions/_Predicates.java
@@ -75,7 +75,7 @@ public final class _Predicates {
public static <T> Predicate<T> not(Predicate<T> predicate) {
return null;
}
-
+
/**
* @param superClass
* @return a Predicate that tests for the operand to be an instance of {@code superClass}
@@ -83,5 +83,5 @@ public final class _Predicates {
public static Predicate<Object> instanceOf(Class<?> superClass) {
return obj->superClass.isAssignableFrom(obj.getClass());
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanAdapter.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanAdapter.java
index 3def727..6ad7695 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanAdapter.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanAdapter.java
@@ -28,5 +28,5 @@ public interface BeanAdapter {
BeanSort getManagedObjectSort();
boolean isCandidateFor(Class<?> requiredType);
-
+
}
\ No newline at end of file
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSort.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSort.java
index c91c7d6..45817f2 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSort.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSort.java
@@ -23,7 +23,7 @@ package org.apache.isis.commons.internal.ioc;
*
*/
public enum BeanSort {
-
+
/**
* Stateful object, with a state that can be marshaled and unmarshaled.
* <p>
@@ -31,7 +31,7 @@ public enum BeanSort {
* with a persistence layer. <p> see also {@link #ENTITY}
*/
VIEW_MODEL,
-
+
/**
* Persistable object, associated with a persistence layer/context.
* <p>
@@ -40,29 +40,29 @@ public enum BeanSort {
*
*/
ENTITY,
-
+
/**
* Injectable object, associated with a lifecycle context
* (application-scoped, request-scoped, ...).
*/
MANAGED_BEAN,
-
+
/**
* Object associated with an 'entity' or 'bean' to act as contributer of
* domain actions or properties. Might also be stateful similar to VIEW_MODEL.
*/
MIXIN,
-
+
/**
* Immutable, serializable object.
*/
VALUE,
-
+
/**
* Container of objects.
*/
COLLECTION,
-
+
UNKNOWN;
public boolean isManagedBean() {
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSortClassifier.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSortClassifier.java
index fb21326..7a9dfd7 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSortClassifier.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/BeanSortClassifier.java
@@ -25,5 +25,5 @@ public interface BeanSortClassifier {
default boolean isManagedBean(Class<?> type) {
return quickClassify(type) == BeanSort.MANAGED_BEAN;
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/LifecycleContext.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/LifecycleContext.java
index 0697233..95277a8 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/LifecycleContext.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/LifecycleContext.java
@@ -36,27 +36,27 @@ public enum LifecycleContext {
public boolean isApplicationScoped() {
return this == ApplicationScoped;
}
-
+
public boolean isSingleton() {
return this == Singleton;
}
-
+
public boolean isRequestScoped() {
return this == RequestScoped;
}
public static LifecycleContext parse(String scope) {
-
+
if(_Strings.isNullOrEmpty(scope)) {
return LifecycleContext.NotSpecified;
}
-
+
for(LifecycleContext candidate : LifecycleContext.values()) {
if(candidate.name().equalsIgnoreCase(scope)) {
return candidate;
}
}
-
+
log.warn("unrecogniced scope '{}'", scope);
return LifecycleContext.NotSpecified;
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/PriorityConstants.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/PriorityConstants.java
index 53c5a25..93b9ed6 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/PriorityConstants.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/PriorityConstants.java
@@ -34,20 +34,20 @@ public class PriorityConstants {
* To use with the {@link Priority} annotation.
*/
public static final int PRIORITY_ABOVE_DEFAULT = -100;
-
+
/**
* To use with the {@link Priority} annotation.
*/
public static final int PRIORITY_DEFAULT = 0;
-
+
/**
* To use with the {@link Priority} annotation.
*/
public static final int PRIORITY_BELOW_DEFAULT = 100;
-
+
/**
* To use with the {@link Priority} annotation.
*/
public static final int PRIORITY_LOWEST = Integer.MAX_VALUE;
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/BeanAdapterCDI.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/BeanAdapterCDI.java
index e149d04..006cc1a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/BeanAdapterCDI.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/BeanAdapterCDI.java
@@ -35,22 +35,24 @@ final class BeanAdapterCDI implements BeanAdapter {
private final LifecycleContext lifecycleContext;
private final Bean<?> bean;
private final BeanSort managedObjectSort;
-
+
+ @Override
public Bin<?> getInstance() {
val type = bean.getBeanClass();
return _CDI.select(type, bean.getQualifiers());
}
-
+
+ @Override
public boolean isCandidateFor(Class<?> requiredType) {
return bean.getTypes().stream()
- .filter(type -> type instanceof Class)
- .map(type->(Class<?>)type)
- .anyMatch(type->requiredType.isAssignableFrom(type));
+ .filter(type -> type instanceof Class)
+ .map(type->(Class<?>)type)
+ .anyMatch(type->requiredType.isAssignableFrom(type));
}
@Override
public Class<?> getBeanClass() {
return bean.getBeanClass(); //TODO[2033] does not work for 'produced' beans
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/CdiPlugin.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/CdiPlugin.java
index cf3fb6e..815e92f 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/CdiPlugin.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/CdiPlugin.java
@@ -38,7 +38,7 @@ interface CdiPlugin {
// -- LOOKUP
public static CdiPlugin get() {
-
+
return _Plugin.getOrElse(CdiPlugin.class,
ambiguousPlugins->{
return _Plugin.pickAnyAndWarn(CdiPlugin.class, ambiguousPlugins);
@@ -47,6 +47,6 @@ interface CdiPlugin {
throw _Plugin.absenceNonRecoverable(CdiPlugin.class);
});
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI.java
index b66cab3..c55aded 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI.java
@@ -63,20 +63,20 @@ import lombok.val;
* @since 2.0
*/
public final class _CDI {
-
+
/**
* Bootstrap CDI if not already present.
* @param onDiscover - Packages of the specified (stream of) classes will be scanned and found classes
* will be added to the set of bean classes for the synthetic bean archive.
*/
public static void init(Supplier<Stream<Class<?>>> onDiscover) {
-
+
if(cdi().isPresent()) {
return;
}
-
+
requires(onDiscover, "onDiscover");
-
+
// plug in the provider
final CDIProvider standaloneCDIProvider = CdiPlugin.get().getCDIProvider(onDiscover.get());
CDI.setCDIProvider(standaloneCDIProvider);
@@ -85,15 +85,15 @@ public final class _CDI {
if(!cdi().isPresent()) {
throw _Exceptions.unrecoverable("Could not resolve an instance of CDI.");
}
-
+
// proper CDI lifecycle support utilizing the fact that WELD provides a WeldContainer that
// implements AutoCloseable, which we can put on the _Context, such that when _Context.clear()
// is called, gets properly closed
final CheckedRunnable onClose = () -> ((AutoCloseable)CDI.current()).close();
_Context.putSingleton(_CDI_Lifecycle.class, _CDI_Lifecycle.of(onClose));
-
+
}
-
+
/**
* Get the CDI BeanManager for the current context.
* @return non-null
@@ -103,7 +103,7 @@ public final class _CDI {
return cdi().map(CDI::getBeanManager)
.orElseThrow(()->_Exceptions.unrecoverable("Could not resolve a BeanManager."));
}
-
+
/**
* Obtains a child Instance for the given required type and additional required qualifiers.
* @param subType
@@ -114,15 +114,15 @@ public final class _CDI {
if(isEmpty(qualifiers)) {
return select(subType);
}
-
+
final Annotation[] _qualifiers = qualifiers.toArray(new Annotation[] {});
-
+
return cdi()
.map(cdi->tryGet(()->cdi.select(subType, _qualifiers)))
.map(instance->Bin.ofInstance(instance))
.orElse(Bin.empty());
}
-
+
/**
* Obtains a child Instance for the given required type and additional required qualifiers.
* @param subType
@@ -134,8 +134,8 @@ public final class _CDI {
.map(instance->Bin.ofInstance(instance))
.orElse(Bin.empty());
}
-
-
+
+
/**
* Filters the input array into a collection, such that only annotations are retained,
* that are valid qualifiers for CDI.
@@ -144,10 +144,10 @@ public final class _CDI {
*/
public static List<Annotation> filterQualifiers(final Annotation[] annotations) {
return stream(annotations)
- .filter(_CDI::isQualifier)
- .collect(Collectors.toList());
+ .filter(_CDI::isQualifier)
+ .collect(Collectors.toList());
}
-
+
/**
* @param annotation
* @return whether or not the annotation is a valid qualifier for CDI
@@ -158,9 +158,9 @@ public final class _CDI {
}
return annotation.annotationType().getAnnotationsByType(Qualifier.class).length>0;
}
-
+
// -- GENERIC SINGLETON RESOLVING
-
+
/**
* @return CDI managed singleton wrapped in an Optional
*/
@@ -170,7 +170,7 @@ public final class _CDI {
}
return _CDI.select(type).getSingleton();
}
-
+
/**
* @return CDI managed singleton
* @throws NoSuchElementException - if the singleton is not resolvable
@@ -178,75 +178,75 @@ public final class _CDI {
public static <T> T getSingletonElseFail(@Nullable Class<T> type) {
return getSingleton(type)
.orElseThrow(()->_Exceptions.noSuchElement("Cannot resolve singleton '%s'", type));
-
+
}
-
+
// -- ENUMERATE BEANS
-
+
public final static AnnotationLiteral<Any> QUALIFIER_ANY =
new AnnotationLiteral<Any>() {
private static final long serialVersionUID = 1L;};
-
- private static Stream<Bean<?>> streamAllCDIBeans() {
- BeanManager beanManager = _CDI.getBeanManager();
- Set<Bean<?>> beans = beanManager.getBeans(Object.class, _CDI.QUALIFIER_ANY);
- return beans.stream();
- }
-
- /**
- *
- * @param classifier
- * @param beanNameProvider - usually ServiceUtil::idOfBean
- */
- public static Stream<BeanAdapter> streamAllBeans(
- Function<Class<?>, BeanSort> classifier,
- Function<Bean<?>, String> beanNameProvider) {
-
- return streamAllCDIBeans()
- .map(bean->{
-
- val scope = bean.getScope().getSimpleName(); // also works for produced beans
- val lifecycleContext = LifecycleContext.valueOf(scope);
-
- // getBeanClass() does not work for produced beans as intended here!
- // (we do get the producer's class instead)
- val type = bean.getBeanClass();
- val sort = classifier.apply(type);
-
- val id = beanNameProvider.apply(bean);
- val beanAdapter = BeanAdapterCDI.of(id, lifecycleContext, bean, sort);
- return beanAdapter;
- });
-
- }
-
- // -- HELPER
-
- private _CDI() {}
-
- /**
- * Get the CDI instance that provides access to the current container.
- * @return an optional
- */
- private static Optional<CDI<Object>> cdi() {
- try {
- CDI<Object> cdi = CDI.current();
- return Optional.ofNullable(cdi);
- } catch (Exception e) {
- return Optional.empty();
+
+ private static Stream<Bean<?>> streamAllCDIBeans() {
+ BeanManager beanManager = _CDI.getBeanManager();
+ Set<Bean<?>> beans = beanManager.getBeans(Object.class, _CDI.QUALIFIER_ANY);
+ return beans.stream();
}
- }
-
- private static <T> T tryGet(final Supplier<T> supplier) {
- try {
- return supplier.get();
- } catch (Exception e) {
- return null;
+
+ /**
+ *
+ * @param classifier
+ * @param beanNameProvider - usually ServiceUtil::idOfBean
+ */
+ public static Stream<BeanAdapter> streamAllBeans(
+ Function<Class<?>, BeanSort> classifier,
+ Function<Bean<?>, String> beanNameProvider) {
+
+ return streamAllCDIBeans()
+ .map(bean->{
+
+ val scope = bean.getScope().getSimpleName(); // also works for produced beans
+ val lifecycleContext = LifecycleContext.valueOf(scope);
+
+ // getBeanClass() does not work for produced beans as intended here!
+ // (we do get the producer's class instead)
+ val type = bean.getBeanClass();
+ val sort = classifier.apply(type);
+
+ val id = beanNameProvider.apply(bean);
+ val beanAdapter = BeanAdapterCDI.of(id, lifecycleContext, bean, sort);
+ return beanAdapter;
+ });
+
}
- }
+
+ // -- HELPER
+
+ private _CDI() {}
+
+ /**
+ * Get the CDI instance that provides access to the current container.
+ * @return an optional
+ */
+ private static Optional<CDI<Object>> cdi() {
+ try {
+ CDI<Object> cdi = CDI.current();
+ return Optional.ofNullable(cdi);
+ } catch (Exception e) {
+ return Optional.empty();
+ }
+ }
+
+ private static <T> T tryGet(final Supplier<T> supplier) {
+ try {
+ return supplier.get();
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
-
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI_Lifecycle.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI_Lifecycle.java
index 4c614ff..8f5c49a 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI_Lifecycle.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/cdi/_CDI_Lifecycle.java
@@ -28,7 +28,7 @@ import lombok.extern.log4j.Log4j2;
final class _CDI_Lifecycle implements AutoCloseable {
private final CheckedRunnable onClose;
-
+
@Override
public void close() {
try {
@@ -36,9 +36,9 @@ final class _CDI_Lifecycle implements AutoCloseable {
} catch (Exception e) {
val note = "This implementation expects the IocPlugin to provide a CDIProvider "
+ "that creates CDI instances that implement AutoClosable";
-
+
log.warn("Failed to properly close the CDI container. Note: {}", note, e);
}
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/BeanAdapterSpring.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/BeanAdapterSpring.java
index 177ecb6..fc7879b 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/BeanAdapterSpring.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/BeanAdapterSpring.java
@@ -36,20 +36,20 @@ final class BeanAdapterSpring implements BeanAdapter {
private final Class<?> beanClass;
private final ObjectProvider<?> beanProvider;
private final BeanSort managedObjectSort;
-
+
@Override
public Bin<?> getInstance() {
val allMatchingBeans = beanProvider.stream();
return Bin.ofStream(allMatchingBeans);
}
-
+
@Override
public boolean isCandidateFor(Class<?> requiredType) {
return beanProvider.stream()
- .map(Object::getClass)
- .anyMatch(type->requiredType.isAssignableFrom(type));
+ .map(Object::getClass)
+ .anyMatch(type->requiredType.isAssignableFrom(type));
}
-
-
-
+
+
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/EventSpring.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/EventSpring.java
index 81dfe6b..a7733c1 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/EventSpring.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/EventSpring.java
@@ -37,17 +37,17 @@ import lombok.extern.log4j.Log4j2;
class EventSpring<T> implements Event<T> {
private final ApplicationEventPublisher publisher;
-
+
@Override
public void fire(T event) {
-
+
if(log.isDebugEnabled()) {
log.debug("{} fire({} ... {})",
- Thread.currentThread().getName(),
- event.getClass().getSimpleName(),
- event.toString());
+ Thread.currentThread().getName(),
+ event.getClass().getSimpleName(),
+ event.toString());
}
-
+
publisher.publishEvent(event);
}
@@ -71,5 +71,5 @@ class EventSpring<T> implements Event<T> {
@Override
public <U extends T> Event<U> select(TypeLiteral<U> subtype, Annotation... qualifiers) {
throw _Exceptions.notImplemented(); }
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/_Spring.java b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/_Spring.java
index 8945840..c5b1055 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/_Spring.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/ioc/spring/_Spring.java
@@ -75,73 +75,73 @@ public class _Spring {
public static boolean isContextAvailable() {
return _Context.getIfAny(ApplicationContext.class)!=null;
}
-
+
public static void init(ApplicationContext context) {
_Context.putSingleton(ApplicationContext.class, context);
}
-
+
public static ApplicationContext context() {
return _Context.getElseFail(ApplicationContext.class);
}
-
+
public static <T> Bin<T> select(final Class<T> requiredType) {
requires(requiredType, "requiredType");
-
+
val allMatchingBeans = context().getBeanProvider(requiredType).orderedStream();
return Bin.ofStream(allMatchingBeans);
}
-
+
public static <T> Bin<T> select(
final Class<T> requiredType,
@Nullable Set<Annotation> qualifiersRequired) {
-
+
requires(requiredType, "requiredType");
-
+
val allMatchingBeans = context().getBeanProvider(requiredType)
.orderedStream();
-
+
if(_NullSafe.isEmpty(qualifiersRequired)) {
return Bin.ofStream(allMatchingBeans);
}
-
+
final Predicate<T> hasAllQualifiers = t -> {
val qualifiersPresent = _Sets.of(t.getClass().getAnnotations());
return qualifiersPresent.containsAll(qualifiersRequired);
};
-
+
return Bin.ofStream(allMatchingBeans
.filter(hasAllQualifiers));
}
-
+
/**
*
* @param classifier
* @return
*/
public static Stream<BeanAdapter> streamAllBeans(BeanSortClassifier classifier) {
-
+
val context = context();
val beanFactory = ((ConfigurableApplicationContext)context).getBeanFactory();
-
+
return Stream.of(context.getBeanDefinitionNames())
- .map(name->{
-
- val type = context.getType(name);
- val managedObjectSort = classifier.quickClassify(type);
- val id = name; // just reuse the bean's name
-
- val scope = beanFactory.getBeanDefinition(name).getScope();
- val lifecycleContext = LifecycleContext.parse(scope);
-
- val resolvableType = ResolvableType.forClass(type);
- val bean = context.getBeanProvider(resolvableType);
-
- val beanAdapter = BeanAdapterSpring.of(id, lifecycleContext, type, bean, managedObjectSort);
-
- return beanAdapter;
- });
-
-
+ .map(name->{
+
+ val type = context.getType(name);
+ val managedObjectSort = classifier.quickClassify(type);
+ val id = name; // just reuse the bean's name
+
+ val scope = beanFactory.getBeanDefinition(name).getScope();
+ val lifecycleContext = LifecycleContext.parse(scope);
+
+ val resolvableType = ResolvableType.forClass(type);
+ val bean = context.getBeanProvider(resolvableType);
+
+ val beanAdapter = BeanAdapterSpring.of(id, lifecycleContext, type, bean, managedObjectSort);
+
+ return beanAdapter;
+ });
+
+
}
/**
@@ -153,7 +153,7 @@ public class _Spring {
}
return select(type).getSingleton();
}
-
+
/**
* @return Spring managed singleton
* @throws NoSuchElementException - if the singleton is not resolvable
@@ -161,13 +161,13 @@ public class _Spring {
public static <T> T getSingletonElseFail(@Nullable Class<T> type) {
return getSingleton(type)
.orElseThrow(()->_Exceptions.noSuchElement("Cannot resolve singleton '%s'", type));
-
+
}
public static <T> Event<T> event(ApplicationEventPublisher publisher) {
return new EventSpring<T>(publisher);
}
-
+
// -- QUALIFIER PROCESSING
/**
@@ -181,10 +181,10 @@ public class _Spring {
return Collections.emptySet();
}
return stream(annotations)
- .filter(_CDI::isQualifier)
- .collect(Collectors.toSet());
+ .filter(_CDI::isQualifier)
+ .collect(Collectors.toSet());
}
-
+
/**
* @param annotation
* @return whether or not the annotation is a valid qualifier for CDI
@@ -203,47 +203,47 @@ public class _Spring {
*/
public static Map<String, String> copySpringEnvironmentToMap(
ConfigurableEnvironment configurableEnvironment) {
-
+
val map = _Maps.<String, String> newHashMap();
-
+
for(Iterator<PropertySource<?>> it = configurableEnvironment.getPropertySources().iterator(); it.hasNext(); ) {
val propertySource = it.next();
if (propertySource instanceof MapPropertySource) {
-
+
val mapPropertySource = (MapPropertySource) propertySource;
-
+
mapPropertySource.getSource().forEach((key, value) ->
- putIfNewValuePresent_warnIfKeyAlreadyExists(key, value, map));
-
+ putIfNewValuePresent_warnIfKeyAlreadyExists(key, value, map));
+
} else if(propertySource instanceof EnumerablePropertySource) {
-
+
val enumPropertySource = (EnumerablePropertySource<?>) propertySource;
-
+
for (String key : enumPropertySource.getPropertyNames()) {
val value = enumPropertySource.getProperty(key);
-
+
putIfNewValuePresent_warnIfKeyAlreadyExists(key, value, map);
}
-
+
} else {
-
+
log.warn("Ignoring PropertySource type '{}', "
+ "because we don't know how to iterate over its key/value pairs.",
propertySource);
}
}
-
+
return map;
}
-
+
// -- HELPER
-
+
private static void putIfNewValuePresent_warnIfKeyAlreadyExists (
String key,
Object newValue,
Map<String, String> dest) {
-
+
if(newValue==null) {
return;
}
@@ -251,7 +251,7 @@ public class _Spring {
if(oldValue!=null) {
log.warn("overriding exising config key {} with value {} -> {}", key, oldValue, newValue);
}
-
+
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/memento/_Mementos.java b/core/commons/src/main/java/org/apache/isis/commons/internal/memento/_Mementos.java
index 604cc6c..ef9ea84 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/memento/_Mementos.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/memento/_Mementos.java
@@ -153,43 +153,43 @@ public final class _Mementos {
final EncoderDecoder codec,
final SerializingAdapter serializer,
final String input) {
-
- if(_Strings.isNullOrEmpty(input)) {
- return empty();
- }
+
+ if(_Strings.isNullOrEmpty(input)) {
+ return empty();
+ }
return _Mementos_MementoDefault.parse(codec, serializer, input);
}
-
+
// -- EMPTY MEMENTO
-
+
private static final class EmptyMemento implements Memento {
- @Override
- public <T> T get(String name, Class<T> cls) {
- return null;
- }
-
- @Override
- public Memento put(String name, Object value) {
- throw _Exceptions.notImplemented();
- }
-
- @Override
- public Set<String> keySet() {
- return Collections.emptySet();
- }
-
- @Override
- public String asString() {
- return "EmptyMemento";
- }
-
+ @Override
+ public <T> T get(String name, Class<T> cls) {
+ return null;
+ }
+
+ @Override
+ public Memento put(String name, Object value) {
+ throw _Exceptions.notImplemented();
+ }
+
+ @Override
+ public Set<String> keySet() {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public String asString() {
+ return "EmptyMemento";
+ }
+
}
-
+
private final static Memento EMPTY_MEMENTO = new EmptyMemento();
-
+
public static Memento empty() {
- return EMPTY_MEMENTO;
+ return EMPTY_MEMENTO;
}
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/beantyperegistry/BeanTypeRegistryPlugin.java b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/beantyperegistry/BeanTypeRegistryPlugin.java
index afd2753..eae5601 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/beantyperegistry/BeanTypeRegistryPlugin.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/beantyperegistry/BeanTypeRegistryPlugin.java
@@ -25,11 +25,11 @@ import org.apache.isis.commons.internal.context._Plugin;
public interface BeanTypeRegistryPlugin {
// -- INTERFACE
-
+
Set<Class<?>> getEntityTypes();
-
+
// -- LOOKUP
-
+
public static BeanTypeRegistryPlugin get() {
return _Plugin.getOrElse(BeanTypeRegistryPlugin.class,
ambiguousPlugins->{
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/DeploymentType.java b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/DeploymentType.java
index 8de2f9b..7e7e911 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/DeploymentType.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/DeploymentType.java
@@ -31,9 +31,9 @@ public enum DeploymentType {
public boolean isPrototyping() {
return this == PROTOTYPING;
}
-
+
public boolean isProduction() {
return this == PRODUCTION;
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironment.java b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironment.java
index 788efaf..8aa26d3 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironment.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironment.java
@@ -29,16 +29,16 @@ import org.apache.isis.commons.internal.base._Lazy;
public interface IsisSystemEnvironment {
// -- INTERFACE
-
+
public DeploymentType getDeploymentType();
public boolean isUnitTesting();
-
+
// -- FACTORIES
-
+
public static IsisSystemEnvironment getDefault() {
return DEFAULT;
}
-
+
// -- INIT
/**
@@ -50,7 +50,7 @@ public interface IsisSystemEnvironment {
public static void setUnitTesting(boolean isUnitTesting) {
System.setProperty("UNITTESTING", ""+isUnitTesting);
}
-
+
/**
* To set the framework's deployment-type programmatically.<p>
* Must be set prior to configuration bootstrapping.
@@ -59,11 +59,11 @@ public interface IsisSystemEnvironment {
public static void setPrototyping(boolean isPrototyping) {
System.setProperty("PROTOTYPING", ""+isPrototyping);
}
-
+
// -- DEFAULT IMPLEMENTATION
-
+
public static final IsisSystemEnvironment DEFAULT = new IsisSystemEnvironment() {
-
+
@Override
public DeploymentType getDeploymentType() {
return deploymentType.get();
@@ -73,50 +73,50 @@ public interface IsisSystemEnvironment {
public boolean isUnitTesting() {
return "true".equalsIgnoreCase(System.getProperty("UNITTESTING"));
}
-
+
// -- HELPER
-
+
private _Lazy<DeploymentType> deploymentType = _Lazy.threadSafe(this::decideDeploymentType);
-
+
private DeploymentType decideDeploymentType() {
boolean anyVoteForPrototyping = false;
boolean anyVoteForProduction = false;
-
+
// system environment priming (lowest prio)
-
+
anyVoteForPrototyping|=
"true".equalsIgnoreCase(System.getenv("PROTOTYPING"));
-
+
// system property priming (medium prio)
-
+
anyVoteForPrototyping|=
"true".equalsIgnoreCase(System.getProperty("PROTOTYPING"));
-
+
anyVoteForPrototyping|=
"PROTOTYPING".equalsIgnoreCase(System.getProperty("isis.deploymentType"));
-
+
// system property override (highest prio)
-
+
anyVoteForProduction|=
"false".equalsIgnoreCase(System.getProperty("PROTOTYPING"));
-
+
anyVoteForProduction|=
"PRODUCTION".equalsIgnoreCase(System.getProperty("isis.deploymentType"));
-
+
final boolean isPrototyping = anyVoteForPrototyping && !anyVoteForProduction;
-
+
final DeploymentType deploymentType =
isPrototyping
- ? DeploymentType.PROTOTYPING
- : DeploymentType.PRODUCTION;
-
+ ? DeploymentType.PROTOTYPING
+ : DeploymentType.PRODUCTION;
+
return deploymentType;
}
-
+
};
-
-
+
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironmentPlugin.java b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironmentPlugin.java
index 9ab8179..b83018f 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironmentPlugin.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/environment/IsisSystemEnvironmentPlugin.java
@@ -21,11 +21,11 @@ package org.apache.isis.commons.internal.plugins.environment;
import org.apache.isis.commons.internal.context._Plugin;
public interface IsisSystemEnvironmentPlugin {
-
+
// -- INTERFACE
-
+
public IsisSystemEnvironment getIsisSystemEnvironment();
-
+
// -- PLUGIN LOOKUP
@@ -38,5 +38,5 @@ public interface IsisSystemEnvironmentPlugin {
return IsisSystemEnvironment::getDefault;
});
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextHandle.java b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextHandle.java
index bae3212..8fbc9bd 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextHandle.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextHandle.java
@@ -20,11 +20,11 @@ package org.apache.isis.commons.internal.plugins.ioc;
public interface ConversationContextHandle extends AutoCloseable {
- void resume(String cid);
-
- /**
- * Refined to not throw a catched exception
- */
- @Override void close();
-
+ void resume(String cid);
+
+ /**
+ * Refined to not throw a catched exception
+ */
+ @Override void close();
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextService.java b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextService.java
index 3f1560d..78eea53 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextService.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextService.java
@@ -20,13 +20,13 @@ package org.apache.isis.commons.internal.plugins.ioc;
public interface ConversationContextService {
- ConversationContextHandle startTransientConversation();
-
+ ConversationContextHandle startTransientConversation();
+
static void closeHandle(ConversationContextHandle conversationContextHandle) {
if(conversationContextHandle!=null) {
conversationContextHandle.close();
}
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextServiceDefault.java b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextServiceDefault.java
index a6d8011..a61ca95 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextServiceDefault.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/plugins/ioc/ConversationContextServiceDefault.java
@@ -30,9 +30,9 @@ package org.apache.isis.commons.internal.plugins.ioc;
//@Singleton @Alternative @Priority(PriorityConstants.PRIORITY_BELOW_DEFAULT)
public class ConversationContextServiceDefault implements ConversationContextService {
- @Override
- public ConversationContextHandle startTransientConversation() {
- return null; // don't return a handle
- }
+ @Override
+ public ConversationContextHandle startTransientConversation() {
+ return null; // don't return a handle
+ }
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/reflection/_Reflect.java b/core/commons/src/main/java/org/apache/isis/commons/internal/reflection/_Reflect.java
index e7ab582..3a7e543 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/reflection/_Reflect.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/reflection/_Reflect.java
@@ -73,7 +73,7 @@ public final class _Reflect {
return _Arrays.testAllMatch(method.getParameters(), superMethod.getParameters(),
(p1, p2)->p1.getType().equals(p2.getType()));
}
-
+
/**
* Returns whether a {@link Member} is accessible.
* @param m Member to check
@@ -82,7 +82,7 @@ public final class _Reflect {
public static boolean isAccessible(final Member m) {
return m != null && Modifier.isPublic(m.getModifiers()) && !m.isSynthetic();
}
-
+
/**
* Whether member name equals given {@code memberName}
* @param memberName
@@ -133,7 +133,7 @@ public final class _Reflect {
public static Stream<Field> streamFields(
@Nullable Class<?> type,
final boolean ignoreAccess) {
-
+
if(type==null) {
return Stream.empty();
}
@@ -152,7 +152,7 @@ public final class _Reflect {
public static Stream<Field> streamAllFields(
@Nullable Class<?> type,
final boolean ignoreAccess) {
-
+
return streamTypeHierarchy(type, /*includeInterfaces*/ false) // interfaces don't have fields
.filter(Object.class::equals) // do not process Object class.
.flatMap(t->streamFields(t, ignoreAccess));
@@ -168,7 +168,7 @@ public final class _Reflect {
public static Stream<Method> streamMethods(
@Nullable Class<?> type,
final boolean ignoreAccess) {
-
+
if(type==null) {
return Stream.empty();
}
@@ -188,7 +188,7 @@ public final class _Reflect {
@Nullable Class<?> type,
final boolean ignoreAccess
) {
-
+
return streamTypeHierarchy(type, /*includeInterfaces*/ true)
.filter(t->!t.equals(Object.class)) // do not process Object class.
.flatMap(t->streamMethods(t, ignoreAccess));
@@ -224,17 +224,17 @@ public final class _Reflect {
current = current.getSuperclass();
return true;
}
-
+
private void recur(Class<?> iface, Consumer<? super Class<?>> action) {
action.accept(iface);
for(Class<?> subIface : iface.getInterfaces()) {
recur(subIface, action);
}
}
-
+
}, false);
}
-
+
// -- ANNOTATIONS
/**
@@ -248,7 +248,7 @@ public final class _Reflect {
public static <T extends Annotation> T getAnnotation(
final Class<?> cls,
final Class<T> annotationClass) {
-
+
if (cls == null) {
return null;
}
@@ -280,7 +280,7 @@ public final class _Reflect {
}
return null;
}
-
+
/**
* <p>Gets the annotation object with the given annotation type that is present on the given method
* or optionally on any equivalent method in super classes and interfaces. Returns null if the annotation
@@ -314,22 +314,22 @@ public final class _Reflect {
if (!ignoreAccess && !isAccessible(method)) {
return null;
}
-
+
final Stream<Method> methods;
-
+
if(searchSupers) {
methods = streamAllMethods(method.getDeclaringClass(), ignoreAccess);
} else {
methods = streamMethods(method.getDeclaringClass(), ignoreAccess);
}
-
+
return methods
- .filter(m->same(method, m))
- .map(m->m.getAnnotation(annotationCls))
- .filter(_NullSafe::isPresent)
- .findFirst()
- .orElse(null);
-
+ .filter(m->same(method, m))
+ .map(m->m.getAnnotation(annotationCls))
+ .filter(_NullSafe::isPresent)
+ .findFirst()
+ .orElse(null);
+
}
/**
@@ -349,7 +349,7 @@ public final class _Reflect {
}
return false;
}
-
+
// -- METHOD/FIELD HANDLES
public static MethodHandle handleOf(Method method) throws IllegalAccessException {
@@ -371,9 +371,9 @@ public final class _Reflect {
}
return MethodHandles.lookup().unreflectGetter(field);
}
-
+
// -- FIND GETTER
-
+
public static Method getGetter(Class<?> cls, String propertyName) throws IntrospectionException {
final BeanInfo beanInfo = Introspector.getBeanInfo(cls);
for(PropertyDescriptor pd:beanInfo.getPropertyDescriptors()){
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Json.java b/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Json.java
index d372963..ef8daf1 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Json.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Json.java
@@ -43,9 +43,9 @@ import lombok.val;
* @since 2.0
*/
public class _Json {
-
+
// -- STREAM CONTENT
-
+
/**
* Deserialize JSON content from given JSON content InputStream into an instance of
* given {@code clazz} type.
@@ -59,10 +59,10 @@ public class _Json {
*/
public static <T> T readJson(final Class<T> clazz, InputStream content)
throws JsonParseException, JsonMappingException, IOException {
-
+
return (T) new ObjectMapper().readValue(content, clazz);
}
-
+
/**
* Either deserialize JSON content from given JSON content InputStream into an instance of
* given {@code clazz} type, or any exception that occurred during parsing.
@@ -78,7 +78,7 @@ public class _Json {
return _Either.right(e);
}
}
-
+
/**
* Deserialize JSON content from given JSON content InputStream into an instance of List
* with given {@code elementType}.
@@ -92,12 +92,12 @@ public class _Json {
*/
public static <T> List<T> readJsonList(final Class<T> elementType, InputStream content)
throws JsonParseException, JsonMappingException, IOException {
-
+
val mapper = new ObjectMapper();
val listFactory = mapper.getTypeFactory().constructCollectionType(List.class, elementType);
return mapper.readValue(content, listFactory);
}
-
+
/**
* Either deserialize JSON content from given JSON content InputStream into an instance of List
* with given {@code elementType}, or any exception that occurred during parsing.
@@ -114,9 +114,9 @@ public class _Json {
}
}
-
+
// -- STRING CONTENT
-
+
/**
* Deserialize JSON content from given JSON content String into an instance of
* given {@code clazz} type.
@@ -130,10 +130,10 @@ public class _Json {
*/
public static <T> T readJson(final Class<T> clazz, String content)
throws JsonParseException, JsonMappingException, IOException {
-
+
return (T) new ObjectMapper().readValue(content, clazz);
}
-
+
/**
* Either deserialize JSON content from given JSON content String into an instance of
* given {@code clazz} type, or any exception that occurred during parsing.
@@ -149,7 +149,7 @@ public class _Json {
return _Either.right(e);
}
}
-
+
/**
* Deserialize JSON content from given JSON content String into an instance of List
* with given {@code elementType}.
@@ -163,12 +163,12 @@ public class _Json {
*/
public static <T> List<T> readJsonList(final Class<T> elementType, String content)
throws JsonParseException, JsonMappingException, IOException {
-
+
val mapper = new ObjectMapper();
val listFactory = mapper.getTypeFactory().constructCollectionType(List.class, elementType);
return mapper.readValue(content, listFactory);
}
-
+
/**
* Either deserialize JSON content from given JSON content String into an instance of List
* with given {@code elementType}, or any exception that occurred during parsing.
@@ -184,10 +184,10 @@ public class _Json {
return _Either.right(e);
}
}
-
-
+
+
// -- FILE CONTENT
-
+
/**
* Deserialize JSON content from given JSON content File into an instance of
* given {@code clazz} type.
@@ -201,10 +201,10 @@ public class _Json {
*/
public static <T> T readJson(final Class<T> clazz, File content)
throws JsonParseException, JsonMappingException, IOException {
-
+
return (T) new ObjectMapper().readValue(content, clazz);
}
-
+
/**
* Either deserialize JSON content from given JSON content File into an instance of
* given {@code clazz} type, or any exception that occurred during parsing.
@@ -220,7 +220,7 @@ public class _Json {
return _Either.right(e);
}
}
-
+
/**
* Deserialize JSON content from given JSON content File into an instance of List
* with given {@code elementType}.
@@ -234,12 +234,12 @@ public class _Json {
*/
public static <T> List<T> readJsonList(final Class<T> elementType, File content)
throws JsonParseException, JsonMappingException, IOException {
-
+
val mapper = new ObjectMapper();
val listFactory = mapper.getTypeFactory().constructCollectionType(List.class, elementType);
return mapper.readValue(content, listFactory);
}
-
+
/**
* Either deserialize JSON content from given JSON content File into an instance of List
* with given {@code elementType}, or any exception that occurred during parsing.
@@ -255,9 +255,9 @@ public class _Json {
return _Either.right(e);
}
}
-
+
// -- BYTE CONTENT
-
+
/**
* Deserialize JSON content from given JSON content byte[] into an instance of
* given {@code clazz} type.
@@ -271,10 +271,10 @@ public class _Json {
*/
public static <T> T readJson(final Class<T> clazz, byte[] content)
throws JsonParseException, JsonMappingException, IOException {
-
+
return (T) new ObjectMapper().readValue(content, clazz);
}
-
+
/**
* Either deserialize JSON content from given JSON content byte[] into an instance of
* given {@code clazz} type, or any exception that occurred during parsing.
@@ -290,7 +290,7 @@ public class _Json {
return _Either.right(e);
}
}
-
+
/**
* Deserialize JSON content from given JSON content byte[] into an instance of List
* with given {@code elementType}.
@@ -304,12 +304,12 @@ public class _Json {
*/
public static <T> List<T> readJsonList(final Class<T> elementType, byte[] content)
throws JsonParseException, JsonMappingException, IOException {
-
+
val mapper = new ObjectMapper();
val listFactory = mapper.getTypeFactory().constructCollectionType(List.class, elementType);
return mapper.readValue(content, listFactory);
}
-
+
/**
* Either deserialize JSON content from given JSON content byte[] into an instance of List
* with given {@code elementType}, or any exception that occurred during parsing.
@@ -325,5 +325,5 @@ public class _Json {
return _Either.right(e);
}
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Resources.java b/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Resources.java
index 86b3b8e..16d4aeb 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Resources.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/resources/_Resources.java
@@ -80,7 +80,7 @@ public final class _Resources {
final InputStream is = load(contextClass, resourceName);
return _Strings.ofBytes(_Bytes.of(is), charset);
}
-
+
/**
* Shortcut using Charset UTF-8, see {@link #loadAsString(Class, String, Charset)}
*/
@@ -139,7 +139,7 @@ public final class _Resources {
return "/" + contextPath + path;
}
}
-
+
public static String prependContextPathIfRequired(String url) {
if(url==null) {
return null;
@@ -237,6 +237,6 @@ public final class _Resources {
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
index 8a35562..54cda52 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/FutureWithIndexIntoFutureOfList.java
@@ -28,7 +28,7 @@ import java.util.concurrent.TimeoutException;
final class FutureWithIndexIntoFutureOfList<T> implements Future<T> {
final Future<List<T>> commonFuture;
final int index;
-
+
FutureWithIndexIntoFutureOfList(Future<List<T>> commonFuture, int index) {
this.commonFuture = commonFuture;
this.index = index;
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolExecutionMode.java b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolExecutionMode.java
index eade240..2cee9b5 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolExecutionMode.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolExecutionMode.java
@@ -30,19 +30,19 @@ public enum ThreadPoolExecutionMode {
* (expected lowest concurrency)
*/
SEQUENTIAL_WITHIN_CALLING_THREAD,
-
+
/**
* Wraps submitted tasks into a single task, which is then executed on the default executor.
* (expected medium concurrency)
*/
SEQUENTIAL,
-
+
/**
* Executes submitted tasks on the default executor.
* (expected highest concurrency)
*/
PARALLEL,
-
+
;
/**
@@ -54,12 +54,12 @@ public enum ThreadPoolExecutionMode {
*/
public static ThreadPoolExecutionMode honorHighestConcurrencyAllowed(
ThreadPoolExecutionMode proposedExecutionMode) {
-
+
final int upper = ThreadPoolSupport.HIGHEST_CONCURRENCY_EXECUTION_MODE_ALLOWED.ordinal();
final int proposed = proposedExecutionMode.ordinal();
final int bounded = proposed>upper ? upper : proposed;
-
+
return ThreadPoolExecutionMode.values()[bounded];
}
-
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSizeAdvisor.java b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
index 4eaa102..ddc8fe1 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSizeAdvisor.java
@@ -36,19 +36,19 @@ final class ThreadPoolSizeAdvisor {
// if we are running in a container, eg docker, its up to the JVM to report correct values
private final int logicalCoreCount =
Runtime.getRuntime().availableProcessors(); // reasonable upper limit
-
+
int corePoolSize() {
return minThreadCount;
}
-
+
int maximumPoolSize() {
final int upperLimit = Math.min(maxThreadCount, logicalCoreCount);
return Math.max(minThreadCount, upperLimit);
}
-
+
public static ThreadPoolSizeAdvisor get() {
return new ThreadPoolSizeAdvisor();
}
-
-
+
+
}
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupport.java b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupport.java
index 17af573..677c3d5 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupport.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/threadpool/ThreadPoolSupport.java
@@ -64,7 +64,7 @@ public final class ThreadPoolSupport implements AutoCloseable {
public static ThreadPoolExecutionMode HIGHEST_CONCURRENCY_EXECUTION_MODE_ALLOWED =
ThreadPoolExecutionMode.PARALLEL;
-
+
private final static int KEEP_ALIVE_TIME_SECS = 5;
private final static int QUEUE_CAPACITY = Integer.MAX_VALUE;
@@ -77,11 +77,11 @@ public final class ThreadPoolSupport implements AutoCloseable {
public static ThreadPoolSupport getInstance() {
return _Context.computeIfAbsent(ThreadPoolSupport.class, ThreadPoolSupport::new);
}
-
+
ThreadPoolSupport() {
group = new ThreadGroup(ThreadPoolSupport.class.getName());
-
+
final ThreadPoolSizeAdvisor advisor = ThreadPoolSizeAdvisor.get();
final ThreadFactory threadFactory = (Runnable r) -> new Thread(group, r);
@@ -89,15 +89,15 @@ public final class ThreadPoolSupport implements AutoCloseable {
final Supplier<BlockingQueue<Runnable>> workQueueFactory =
()->new LinkedBlockingQueue<>(QUEUE_CAPACITY);
- concurrentExecutor = new ThreadPoolExecutor(
- advisor.corePoolSize(),
- advisor.maximumPoolSize(),
- KEEP_ALIVE_TIME_SECS,
- TimeUnit.SECONDS,
- workQueueFactory.get(),
- threadFactory);
+ concurrentExecutor = new ThreadPoolExecutor(
+ advisor.corePoolSize(),
+ advisor.maximumPoolSize(),
+ KEEP_ALIVE_TIME_SECS,
+ TimeUnit.SECONDS,
+ workQueueFactory.get(),
+ threadFactory);
}
-
+
/*
* Implementation Note: triggered by _Context.clear() when application shuts down.
*/
@@ -105,14 +105,14 @@ public final class ThreadPoolSupport implements AutoCloseable {
public void close() throws Exception {
concurrentExecutor.shutdown();
}
-
+
/**
* @return this thread-pool's underlying concurrent executor
*/
public Executor getExecutor() {
return concurrentExecutor;
}
-
+
/**
* Non-blocking call.
* <p>
@@ -165,9 +165,9 @@ public final class ThreadPoolSupport implements AutoCloseable {
case SEQUENTIAL_WITHIN_CALLING_THREAD:
{
return callables.stream()
- .map(FutureTask::new)
- .peek(FutureTask::run) // immediately run task on submission
- .collect(toList());
+ .map(FutureTask::new)
+ .peek(FutureTask::run) // immediately run task on submission
+ .collect(toList());
}
default:
@@ -175,7 +175,7 @@ public final class ThreadPoolSupport implements AutoCloseable {
}
}
-
+
/**
* Executes specified {@code callables} on the default executor.
* See {@link ThreadPoolExecutor#invokeAll(java.util.Collection)}
@@ -195,7 +195,7 @@ public final class ThreadPoolSupport implements AutoCloseable {
if (futures == null) {
return null;
}
-
+
final long t0 = System.nanoTime();
try{
final List<Object> returnValues = _Lists.newArrayList();
@@ -252,18 +252,18 @@ public final class ThreadPoolSupport implements AutoCloseable {
return null;
}
}
-
+
@Override
public String toString() {
return concurrentExecutor.toString();
}
// -- HELPERS
-
+
private <T> List<Future<T>> invokeAll(
ThreadPoolExecutor executor,
@Nullable final List<? extends Callable<T>> callables) {
-
+
if(isEmpty(callables)) {
return Collections.emptyList();
}
@@ -277,7 +277,7 @@ public final class ThreadPoolSupport implements AutoCloseable {
private static <T> List<Callable<T>> timed(
final ThreadPoolExecutor executor,
final List<? extends Callable<T>> callables) {
-
+
final long queuedAt = System.currentTimeMillis();
return callables.stream()
.map(callable -> timed(callable, executor.getQueue().size(), queuedAt))
@@ -319,7 +319,7 @@ public final class ThreadPoolSupport implements AutoCloseable {
return resultList;
};
}
-
+
private static boolean isEmpty(Collection<?> x) { return x==null || x.size() == 0; }
}
diff --git a/core/commons/src/test/java/org/apache/isis/commons/internal/base/BytesTest.java b/core/commons/src/test/java/org/apache/isis/commons/internal/base/BytesTest.java
index 736c0b9..76de051 100644
--- a/core/commons/src/test/java/org/apache/isis/commons/internal/base/BytesTest.java
+++ b/core/commons/src/test/java/org/apache/isis/commons/internal/base/BytesTest.java
@@ -36,167 +36,167 @@ import static org.hamcrest.Matchers.lessThan;
public class BytesTest {
- final int n = 256;
- private final byte[] allBytes = new byte[n];
-
- private final static byte[] testimonial =
- _Strings.toBytes(
- "https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html#basic?"+
- "0-theme-entityPageContainer-entity-rows-2-rowContents-1-col-tabGroups-1-panel-"
- + "tabPanel-rows-1-rowContents-1-col-fieldSets-1-memberGroup-properties-1-property-"
- + "scalarTypeContainer-scalarIfRegular-associatedActionLinksBelow-additionalLinkList-"
- + "additionalLinkItem-0-additionalLink",
- StandardCharsets.UTF_8);
-
- @Before
- public void before() {
- for(int i=0; i<n; ++i) {
- allBytes[i] = (byte)i;
- }
- }
-
- // -- PREPEND/APPEND
-
- @Test
- public void concatNullWithNull() throws Exception {
- Assert.assertNull(_Bytes.append(null, null));
- Assert.assertNull(_Bytes.prepend(null, null));
- }
-
- @Test
- public void concatNullWithEmpty() throws Exception {
- Assert.assertArrayEquals(_Constants.emptyBytes, _Bytes.append(null));
- Assert.assertArrayEquals(_Constants.emptyBytes, _Bytes.prepend(null));
- }
-
- @Test
- public void concatWithNull() throws Exception {
- assertArrayEqualsButNotSame(allBytes, _Bytes.append(allBytes, null));
- assertArrayEqualsButNotSame(allBytes, _Bytes.prepend(allBytes, null));
- }
-
- @Test
- public void concatWithEmpty() throws Exception {
- assertArrayEqualsButNotSame(allBytes, _Bytes.append(allBytes));
- assertArrayEqualsButNotSame(allBytes, _Bytes.prepend(allBytes));
- }
-
- @Test
- public void concatHappyCase() throws Exception {
- assertArrayEqualsButNotSame(new byte[] {1,2,3,4,5}, _Bytes.append(new byte[] {1,2,3}, (byte)4, (byte)5));
- assertArrayEqualsButNotSame(new byte[] {4,5,1,2,3}, _Bytes.prepend(new byte[] {1,2,3}, (byte)4, (byte)5));
- }
-
- @Test
- public void compressIdentityWithNull() throws Exception {
- Assert.assertNull(_Bytes.decompress(_Bytes.compress(null)));
- }
-
- @Test
- public void compressIdentityWithByteRange() throws Exception {
- Assert.assertArrayEquals(allBytes,
- _Bytes.decompress(_Bytes.compress(allBytes)));
- }
-
- @Test
- public void compressIdentityWithTestimonial() throws Exception {
- Assert.assertArrayEquals(testimonial,
- _Bytes.decompress(_Bytes.compress(testimonial)));
- }
-
- @Test
- public void compressionRatio() throws Exception {
- // lower is better
- final double compressionRatio = (double)_Bytes.compress(testimonial).length / testimonial.length;
- Assert.assertThat(compressionRatio, lessThan(0.7));
- }
-
-
- // -- COMPRESSION
-
- @RunWith(Parameterized.class)
- public static class CompressionTest {
-
-
- @Parameters
- public static Object[] data() {
- return new Object[] {
- (byte[]) null,
- new byte[] { },
- new byte[] { 0 },
- new byte[] { 0, 1 },
- new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 17
- new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 18
- new byte[] { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 19
- };
- }
-
- @Parameter
- public byte[] input;
-
-
- @Test
- public void compressIdentity() throws Exception {
- Assert.assertArrayEquals(input,
- _Bytes.decompress(_Bytes.compress(input)));
- }
-
- }
-
- // -- BASE-64
-
- @Test
- public void base64IdentityWithNull() throws Exception {
- Assert.assertNull(_Bytes.decodeBase64(
- Base64.getUrlDecoder(),
- _Bytes.encodeToBase64(Base64.getUrlEncoder(), null)));
- }
-
- @Test
- public void base64IdentityWithByteRange() throws Exception {
- Assert.assertArrayEquals(allBytes,
- _Bytes.decodeBase64(
- Base64.getUrlDecoder(),
- _Bytes.encodeToBase64(Base64.getUrlEncoder(), allBytes)));
- }
-
- @Test
- public void base64IdentityWithTestimonial() throws Exception {
- Assert.assertArrayEquals(testimonial,
- _Bytes.decodeBase64(
- Base64.getUrlDecoder(),
- _Bytes.encodeToBase64(Base64.getUrlEncoder(), testimonial)));
- }
-
- // -- OPERATOR COMPOSITION
-
- @Test
- public void composedOperatorWithNull() throws Exception {
- Assert.assertNull(_Bytes.asCompressedUrlBase64.apply(null));
- Assert.assertNull(_Bytes.ofCompressedUrlBase64.apply(null));
- Assert.assertNull(_Bytes.asUrlBase64.apply(null));
- Assert.assertNull(_Bytes.ofUrlBase64.apply(null));
- }
-
- @Test
- public void composedIdentityWithByteRange() throws Exception {
- Assert.assertArrayEquals(allBytes,
- _Bytes.ofCompressedUrlBase64.apply(
- _Bytes.asCompressedUrlBase64.apply(allBytes)));
- }
-
- @Test
- public void composedIdentityWithTestimonial() throws Exception {
- Assert.assertArrayEquals(testimonial,
- _Bytes.ofCompressedUrlBase64.apply(
- _Bytes.asCompressedUrlBase64.apply(testimonial)));
- }
-
- // -- HELPER
-
- private void assertArrayEqualsButNotSame(byte[] a, byte[] b) {
- Assert.assertFalse(a == b);
- Assert.assertArrayEquals(a, b);
- }
-
+ final int n = 256;
+ private final byte[] allBytes = new byte[n];
+
+ private final static byte[] testimonial =
+ _Strings.toBytes(
+ "https://docs.oracle.com/javase/8/docs/api/java/util/Base64.html#basic?"+
+ "0-theme-entityPageContainer-entity-rows-2-rowContents-1-col-tabGroups-1-panel-"
+ + "tabPanel-rows-1-rowContents-1-col-fieldSets-1-memberGroup-properties-1-property-"
+ + "scalarTypeContainer-scalarIfRegular-associatedActionLinksBelow-additionalLinkList-"
+ + "additionalLinkItem-0-additionalLink",
+ StandardCharsets.UTF_8);
+
+ @Before
+ public void before() {
+ for(int i=0; i<n; ++i) {
+ allBytes[i] = (byte)i;
+ }
+ }
+
+ // -- PREPEND/APPEND
+
+ @Test
+ public void concatNullWithNull() throws Exception {
+ Assert.assertNull(_Bytes.append(null, null));
+ Assert.assertNull(_Bytes.prepend(null, null));
+ }
+
+ @Test
+ public void concatNullWithEmpty() throws Exception {
+ Assert.assertArrayEquals(_Constants.emptyBytes, _Bytes.append(null));
+ Assert.assertArrayEquals(_Constants.emptyBytes, _Bytes.prepend(null));
+ }
+
+ @Test
+ public void concatWithNull() throws Exception {
+ assertArrayEqualsButNotSame(allBytes, _Bytes.append(allBytes, null));
+ assertArrayEqualsButNotSame(allBytes, _Bytes.prepend(allBytes, null));
+ }
+
+ @Test
+ public void concatWithEmpty() throws Exception {
+ assertArrayEqualsButNotSame(allBytes, _Bytes.append(allBytes));
+ assertArrayEqualsButNotSame(allBytes, _Bytes.prepend(allBytes));
+ }
+
+ @Test
+ public void concatHappyCase() throws Exception {
+ assertArrayEqualsButNotSame(new byte[] {1,2,3,4,5}, _Bytes.append(new byte[] {1,2,3}, (byte)4, (byte)5));
+ assertArrayEqualsButNotSame(new byte[] {4,5,1,2,3}, _Bytes.prepend(new byte[] {1,2,3}, (byte)4, (byte)5));
+ }
+
+ @Test
+ public void compressIdentityWithNull() throws Exception {
+ Assert.assertNull(_Bytes.decompress(_Bytes.compress(null)));
+ }
+
+ @Test
+ public void compressIdentityWithByteRange() throws Exception {
+ Assert.assertArrayEquals(allBytes,
+ _Bytes.decompress(_Bytes.compress(allBytes)));
+ }
+
+ @Test
+ public void compressIdentityWithTestimonial() throws Exception {
+ Assert.assertArrayEquals(testimonial,
+ _Bytes.decompress(_Bytes.compress(testimonial)));
+ }
+
+ @Test
+ public void compressionRatio() throws Exception {
+ // lower is better
+ final double compressionRatio = (double)_Bytes.compress(testimonial).length / testimonial.length;
+ Assert.assertThat(compressionRatio, lessThan(0.7));
+ }
+
+
+ // -- COMPRESSION
+
+ @RunWith(Parameterized.class)
+ public static class CompressionTest {
+
+
+ @Parameters
+ public static Object[] data() {
+ return new Object[] {
+ (byte[]) null,
+ new byte[] { },
+ new byte[] { 0 },
+ new byte[] { 0, 1 },
+ new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 17
+ new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 18
+ new byte[] { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // 19
+ };
+ }
+
+ @Parameter
+ public byte[] input;
+
+
+ @Test
+ public void compressIdentity() throws Exception {
+ Assert.assertArrayEquals(input,
+ _Bytes.decompress(_Bytes.compress(input)));
+ }
+
+ }
+
+ // -- BASE-64
+
+ @Test
+ public void base64IdentityWithNull() throws Exception {
+ Assert.assertNull(_Bytes.decodeBase64(
+ Base64.getUrlDecoder(),
+ _Bytes.encodeToBase64(Base64.getUrlEncoder(), null)));
+ }
+
+ @Test
+ public void base64IdentityWithByteRange() throws Exception {
+ Assert.assertArrayEquals(allBytes,
+ _Bytes.decodeBase64(
+ Base64.getUrlDecoder(),
+ _Bytes.encodeToBase64(Base64.getUrlEncoder(), allBytes)));
+ }
+
+ @Test
+ public void base64IdentityWithTestimonial() throws Exception {
+ Assert.assertArrayEquals(testimonial,
+ _Bytes.decodeBase64(
+ Base64.getUrlDecoder(),
+ _Bytes.encodeToBase64(Base64.getUrlEncoder(), testimonial)));
+ }
+
+ // -- OPERATOR COMPOSITION
+
+ @Test
+ public void composedOperatorWithNull() throws Exception {
+ Assert.assertNull(_Bytes.asCompressedUrlBase64.apply(null));
+ Assert.assertNull(_Bytes.ofCompressedUrlBase64.apply(null));
+ Assert.assertNull(_Bytes.asUrlBase64.apply(null));
+ Assert.assertNull(_Bytes.ofUrlBase64.apply(null));
+ }
+
+ @Test
+ public void composedIdentityWithByteRange() throws Exception {
+ Assert.assertArrayEquals(allBytes,
+ _Bytes.ofCompressedUrlBase64.apply(
+ _Bytes.asCompressedUrlBase64.apply(allBytes)));
+ }
+
+ @Test
+ public void composedIdentityWithTestimonial() throws Exception {
+ Assert.assertArrayEquals(testimonial,
+ _Bytes.ofCompressedUrlBase64.apply(
+ _Bytes.asCompressedUrlBase64.apply(testimonial)));
+ }
+
+ // -- HELPER
+
+ private void assertArrayEqualsButNotSame(byte[] a, byte[] b) {
+ Assert.assertFalse(a == b);
+ Assert.assertArrayEquals(a, b);
+ }
+
}
diff --git a/core/commons/src/test/java/org/apache/isis/commons/internal/base/NullSafeTest.java b/core/commons/src/test/java/org/apache/isis/commons/internal/base/NullSafeTest.java
index e72c486..9d61563 100644
--- a/core/commons/src/test/java/org/apache/isis/commons/internal/base/NullSafeTest.java
+++ b/core/commons/src/test/java/org/apache/isis/commons/internal/base/NullSafeTest.java
@@ -33,84 +33,84 @@ import static org.hamcrest.CoreMatchers.is;
public class NullSafeTest {
- @Test
- public void isEmptyString() throws Exception {
- Assert.assertThat(_NullSafe.isEmpty((String)null), is(true));
- Assert.assertThat(_NullSafe.isEmpty(""), is(true));
- Assert.assertThat(_NullSafe.isEmpty(" 12 aBc"), is(false));
- }
-
- @Test
- public void isEmptyCollection() throws Exception {
- Assert.assertThat(_NullSafe.isEmpty((Collection<?>)null), is(true));
- Assert.assertThat(_NullSafe.isEmpty(Collections.emptyList()), is(true));
- Assert.assertThat(_NullSafe.isEmpty(Arrays.asList(new String[] {"foo", "bar"})), is(false));
- }
-
- @Test
- public void absence() throws Exception {
- Assert.assertThat(_NullSafe.isAbsent(null), is(true));
- Assert.assertThat(_NullSafe.isAbsent(""), is(false));
- }
-
- @Test
- public void presence() throws Exception {
- Assert.assertThat(_NullSafe.isPresent(null), is(false));
- Assert.assertThat(_NullSafe.isPresent(""), is(true));
- }
-
-
- @Test
- public void emptyStreamWithArray() throws Exception {
-
- Assert.assertNotNull(_NullSafe.stream((String[])null));
-
- Assert.assertNotNull(_NullSafe.stream(_Strings.emptyArray));
- Assert.assertEquals(0L, _NullSafe.stream(_Strings.emptyArray).count());
- }
-
- @Test
- public void streamWithArray() throws Exception {
- Assert.assertThat(
- _NullSafe.stream(new String[] {"foo", "bar"})
- .collect(Collectors.joining("|")),
- is("foo|bar"));
- }
-
- @Test
- public void emptyStreamWithCollection() throws Exception {
-
- Assert.assertNotNull(_NullSafe.stream((List<?>)null));
-
- Assert.assertNotNull(_NullSafe.stream(Arrays.asList(_Strings.emptyArray)));
- Assert.assertEquals(0L, _NullSafe.stream(Arrays.asList(_Strings.emptyArray)).count());
- }
-
- @Test
- public void streamWithCollection() throws Exception {
- Assert.assertThat(
- _NullSafe.stream(Arrays.asList(new String[] {"foo", "bar"}))
- .collect(Collectors.joining("|")),
- is("foo|bar"));
- }
-
- @Test
- public void emptyStreamWithIterator() throws Exception {
-
- Assert.assertNotNull(_NullSafe.stream((Iterator<?>)null));
-
- Assert.assertNotNull(_NullSafe.stream(Arrays.asList(_Strings.emptyArray)).iterator());
- Assert.assertEquals(0L, _NullSafe.stream(Arrays.asList(_Strings.emptyArray).iterator()).count());
- }
-
- @Test
- public void streamWithIterator() throws Exception {
- Assert.assertThat(
- _NullSafe.stream(Arrays.asList(new String[] {"foo", "bar"}).iterator())
- .collect(Collectors.joining("|")),
- is("foo|bar"));
- }
-
-
-
+ @Test
+ public void isEmptyString() throws Exception {
+ Assert.assertThat(_NullSafe.isEmpty((String)null), is(true));
+ Assert.assertThat(_NullSafe.isEmpty(""), is(true));
+ Assert.assertThat(_NullSafe.isEmpty(" 12 aBc"), is(false));
+ }
+
+ @Test
+ public void isEmptyCollection() throws Exception {
+ Assert.assertThat(_NullSafe.isEmpty((Collection<?>)null), is(true));
+ Assert.assertThat(_NullSafe.isEmpty(Collections.emptyList()), is(true));
+ Assert.assertThat(_NullSafe.isEmpty(Arrays.asList(new String[] {"foo", "bar"})), is(false));
+ }
+
+ @Test
+ public void absence() throws Exception {
+ Assert.assertThat(_NullSafe.isAbsent(null), is(true));
+ Assert.assertThat(_NullSafe.isAbsent(""), is(false));
+ }
+
+ @Test
+ public void presence() throws Exception {
+ Assert.assertThat(_NullSafe.isPresent(null), is(false));
+ Assert.assertThat(_NullSafe.isPresent(""), is(true));
+ }
+
+
+ @Test
+ public void emptyStreamWithArray() throws Exception {
+
+ Assert.assertNotNull(_NullSafe.stream((String[])null));
+
+ Assert.assertNotNull(_NullSafe.stream(_Strings.emptyArray));
+ Assert.assertEquals(0L, _NullSafe.stream(_Strings.emptyArray).count());
+ }
+
+ @Test
+ public void streamWithArray() throws Exception {
+ Assert.assertThat(
+ _NullSafe.stream(new String[] {"foo", "bar"})
+ .collect(Collectors.joining("|")),
+ is("foo|bar"));
+ }
+
+ @Test
+ public void emptyStreamWithCollection() throws Exception {
+
+ Assert.assertNotNull(_NullSafe.stream((List<?>)null));
+
+ Assert.assertNotNull(_NullSafe.stream(Arrays.asList(_Strings.emptyArray)));
+ Assert.assertEquals(0L, _NullSafe.stream(Arrays.asList(_Strings.emptyArray)).count());
+ }
+
+ @Test
+ public void streamWithCollection() throws Exception {
+ Assert.assertThat(
+ _NullSafe.stream(Arrays.asList(new String[] {"foo", "bar"}))
+ .collect(Collectors.joining("|")),
+ is("foo|bar"));
+ }
+
+ @Test
+ public void emptyStreamWithIterator() throws Exception {
+
+ Assert.assertNotNull(_NullSafe.stream((Iterator<?>)null));
+
+ Assert.assertNotNull(_NullSafe.stream(Arrays.asList(_Strings.emptyArray)).iterator());
+ Assert.assertEquals(0L, _NullSafe.stream(Arrays.asList(_Strings.emptyArray).iterator()).count());
+ }
+
+ @Test
+ public void streamWithIterator() throws Exception {
+ Assert.assertThat(
+ _NullSafe.stream(Arrays.asList(new String[] {"foo", "bar"}).iterator())
+ .collect(Collectors.joining("|")),
+ is("foo|bar"));
+ }
+
+
+
}
diff --git a/core/commons/src/test/java/org/apache/isis/commons/internal/base/ReductionTest.java b/core/commons/src/test/java/org/apache/isis/commons/internal/base/ReductionTest.java
index d19fb5a..9e00b3a 100644
--- a/core/commons/src/test/java/org/apache/isis/commons/internal/base/ReductionTest.java
+++ b/core/commons/src/test/java/org/apache/isis/commons/internal/base/ReductionTest.java
@@ -30,45 +30,45 @@ import static org.hamcrest.CoreMatchers.is;
public class ReductionTest {
- @Test
- public void findMinimum() throws Exception {
-
- final List<Integer> values = _Lists.of(5, 4, 3, 2, 1, 2, 3, 4);
-
- _Reduction<Integer> toMinReduction = _Reduction.of((min, next)-> next<min ? next : min);
-
- values.forEach(toMinReduction);
-
- Assert.assertThat(toMinReduction.getResult().get(), is(1));
- }
-
- @Test
- public void findMinimum_initialized_low() throws Exception {
-
- final int initial = -1;
-
- final List<Integer> values = _Lists.of(5, 4, 3, 2, 1, 2, 3, 4);
-
- _Reduction<Integer> toMinReduction = _Reduction.of(initial, (min, next)-> next<min ? next : min);
-
- values.forEach(toMinReduction);
-
- Assert.assertThat(toMinReduction.getResult().get(), is(initial));
- }
-
- @Test
- public void findMinimum_initialized_high() throws Exception {
-
- final int initial = 3;
-
- final List<Integer> values = _Lists.of(5, 4, 3, 2, 1, 2, 3, 4);
-
- _Reduction<Integer> toMinReduction = _Reduction.of(initial, (min, next)-> next<min ? next : min);
-
- values.forEach(toMinReduction);
-
- Assert.assertThat(toMinReduction.getResult().get(), is(1));
- }
-
-
+ @Test
+ public void findMinimum() throws Exception {
+
+ final List<Integer> values = _Lists.of(5, 4, 3, 2, 1, 2, 3, 4);
+
+ _Reduction<Integer> toMinReduction = _Reduction.of((min, next)-> next<min ? next : min);
+
+ values.forEach(toMinReduction);
+
+ Assert.assertThat(toMinReduction.getResult().get(), is(1));
+ }
+
+ @Test
+ public void findMinimum_initialized_low() throws Exception {
+
+ final int initial = -1;
+
+ final List<Integer> values = _Lists.of(5, 4, 3, 2, 1, 2, 3, 4);
+
+ _Reduction<Integer> toMinReduction = _Reduction.of(initial, (min, next)-> next<min ? next : min);
+
+ values.forEach(toMinReduction);
+
+ Assert.assertThat(toMinReduction.getResult().get(), is(initial));
+ }
+
+ @Test
+ public void findMinimum_initialized_high() throws Exception {
+
+ final int initial = 3;
+
+ final List<Integer> values = _Lists.of(5, 4, 3, 2, 1, 2, 3, 4);
+
+ _Reduction<Integer> toMinReduction = _Reduction.of(initial, (min, next)-> next<min ? next : min);
+
+ values.forEach(toMinReduction);
+
+ Assert.assertThat(toMinReduction.getResult().get(), is(1));
+ }
+
+
}
diff --git a/core/commons/src/test/java/org/apache/isis/commons/internal/base/StringsTest.java b/core/commons/src/test/java/org/apache/isis/commons/internal/base/StringsTest.java
index cbc874e..171a94b 100644
--- a/core/commons/src/test/java/org/apache/isis/commons/internal/base/StringsTest.java
+++ b/core/commons/src/test/java/org/apache/isis/commons/internal/base/StringsTest.java
@@ -31,276 +31,276 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
public class StringsTest {
-
- @Test
- public void isEmpty() throws Exception {
- Assert.assertThat(_Strings.isEmpty(" 12 aBc"), is(false));
- Assert.assertThat(_Strings.isEmpty(""), is(true));
- Assert.assertThat(_Strings.isEmpty(null), is(true));
- }
-
- @Test
- public void isNotEmpty() throws Exception {
- Assert.assertThat(_Strings.isNotEmpty(" 12 aBc"), is(true));
- Assert.assertThat(_Strings.isNotEmpty(""), is(false));
- Assert.assertThat(_Strings.isNotEmpty(null), is(false));
- }
-
-
- @Test
- public void lowerWithNull() throws Exception {
- Assert.assertThat(
- _Strings.lower(null),
- nullValue());
- }
-
- @Test
- public void lowerMixed() throws Exception {
- Assert.assertThat(
- _Strings.lower("12aBc"),
- is("12abc"));
- }
-
-
- @Test
- public void upperWithNull() throws Exception {
- Assert.assertThat(
- _Strings.upper(null),
- nullValue());
- }
-
- @Test
- public void upperMixed() throws Exception {
- Assert.assertThat(
- _Strings.upper("12aBc"),
- is("12ABC"));
- }
-
- @Test
- public void capitalizeWithNull() throws Exception {
- Assert.assertThat(
- _Strings.capitalize(null),
- nullValue());
- }
-
- @Test
- public void capitalizeSize0() throws Exception {
- Assert.assertThat(
- _Strings.capitalize(""),
- is(""));
- }
-
- @Test
- public void capitalizeSize1() throws Exception {
- Assert.assertThat(
- _Strings.capitalize("a"),
- is("A"));
- }
-
- @Test
- public void capitalizeSize2() throws Exception {
- Assert.assertThat(
- _Strings.capitalize("ab"),
- is("Ab"));
- }
-
- @Test
- public void trimWithNull() throws Exception {
- Assert.assertThat(
- _Strings.trim(null),
- nullValue());
- }
-
- @Test
- public void trimMixed() throws Exception {
- Assert.assertThat(
- _Strings.trim(" 12 aBc"),
- is("12 aBc"));
- }
-
- @Test
- public void splitThenStreamWithNull() throws Exception {
- Assert.assertThat(
- _Strings.splitThenStream(null, "$")
- .collect(Collectors.joining("|")),
- is(""));
- }
-
- @Test
- public void splitThenStreamSingle() throws Exception {
- Assert.assertThat(
- _Strings.splitThenStream(" 12 aBc ", "$")
- .collect(Collectors.joining("|")),
- is(" 12 aBc "));
- }
-
- @Test
- public void splitThenStreamMultipleWithSeparatorAtBegin() throws Exception {
- Assert.assertThat(
- _Strings.splitThenStream("$ 1$2 a$Bc ", "$")
- .collect(Collectors.joining("|")),
- is("| 1|2 a|Bc "));
- }
-
- @Test
- public void splitThenStreamMultipleWithSeparatorAtEnd() throws Exception {
- Assert.assertThat(
- _Strings.splitThenStream(" 1$2 a$Bc $", "$")
- .collect(Collectors.joining("|")),
- is(" 1|2 a|Bc |"));
- }
-
- @Test
- public void splitThenStreamMultipleWithSeparatorsInSequence() throws Exception {
- Assert.assertThat(
- _Strings.splitThenStream(" 1$2 a$$Bc ", "$")
- .collect(Collectors.joining("|")),
- is(" 1|2 a||Bc "));
- }
-
- @Test
- public void condenseWhitespacesWithNull() throws Exception {
- Assert.assertThat(
- _Strings.condenseWhitespaces(null,"|"),
- nullValue());
- }
-
- @Test
- public void condenseWhitespaces() throws Exception {
- Assert.assertThat(
- _Strings.condenseWhitespaces(" 12 aBc","|"),
- is("|12|aBc"));
- }
-
- // -- TO BYTE CONVERSION
-
- @Test
- public void toByteConvertWithNull() throws Exception {
- Assert.assertThat(
- _Strings.toBytes(null, StandardCharsets.UTF_8),
- nullValue());
- }
-
- @Test
- public void toByteConvertWithEmpty() throws Exception {
- Assert.assertArrayEquals(
- _Constants.emptyBytes,
- _Strings.toBytes("", StandardCharsets.UTF_8));
- }
-
- @Test
- public void toByteConvert() throws Exception {
- Assert.assertArrayEquals(
- new byte[] {48,49,50,51},
- _Strings.toBytes("0123", StandardCharsets.UTF_8));
- }
-
- // -- FROM BYTE CONVERSION
-
- @Test
- public void fromByteConvertWithNull() throws Exception {
- Assert.assertThat(
- _Strings.ofBytes(null, StandardCharsets.UTF_8),
- nullValue());
- }
-
- @Test
- public void fromByteConvertWithEmpty() throws Exception {
- Assert.assertThat(
- _Strings.ofBytes(_Constants.emptyBytes, StandardCharsets.UTF_8),
- is(""));
- }
-
- @Test
- public void fromByteConvert() throws Exception {
- Assert.assertThat(
- _Strings.ofBytes(new byte[] {48,49,50,51}, StandardCharsets.UTF_8),
- is("0123"));
- }
-
... 53337 lines suppressed ...