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 2018/02/19 16:03:16 UTC
[isis] branch ISIS-1779-jax-rs-2 updated (72f3452 -> 1c9e21f)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a change to branch ISIS-1779-jax-rs-2
in repository https://gitbox.apache.org/repos/asf/isis.git.
discard 72f3452 ISIS-1779 Transition to JAX-RS 2.0 Client API removed dependency on deprecated resteasy client api
discard 3a07319 ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT
discard 6551c42 Merge branch 'ISIS-1744-update-to-dn-515' into dev/2.0.0-M2
discard df03513 ISIS-1744: removes work-around code for prior to DN 5.1.5
discard 66c4a7d ISIS-1744: updates to DN 5.1.5
discard 44429ea ISIS-1767: fixes dependency convergence issue with com.sun.mail
discard fe41a1d Merge branch 'ISIS-1767-jee-7' into dev/2.0.0-M2
discard 4b89ae7 ISIS-1756 remove reflective access to DN's EnhancementHelper since we've got a dedicated method instead
discard b72a01c ISIS-1756 on shutdown purge any state associated with the current web-app classloader
discard 14f99d6 ISIS-1755 veto ExceptionRecognizer on CDI scan
discard 2e28d44 ISIS-1754 proper DN class-loading
discard a76c441 ISIS-1775 added license
discard ae12a79 ISIS-1775 Honor web-app's context path when configuring swagger.
discard a623bfd ISIS-1755 TomEE requires Service Providers to be public classes
discard 09ff21f ISIS-1754 context aware class-loading for Isis
discard b46ddfc ISIS-1756 utilize IsisWicketApplication's life-cycle instead of providing a life-cycle CDI Bean
discard 591a000 ISIS-1756 prevent SQLException on schema creation if config is missing
discard d0272e1 ISIS-1756 - fix typo
discard 599858a ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector
discard 70f923d ISIS-1756 JEE 7+ Isis App life-cycling
discard edc2491 ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime
discard 45ec904 Merge branch 'dev/2.0.0/ISIS-1276-dn-5-1' into dev/2.0.0-M2
discard 750157a ISIS-1728: uses typesafe queries for helloworld
discard d92e8e6 ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.
discard ae46188 ISIS-1727: uses lambda in IsisSessionFactoryBuilder
discard ed89008 ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).
discard 6de02b1 ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib
discard fe5a844 ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation
discard 51feff4 ISIS-1276: fixes algorithm for lookup of datastore id's, at least
discard 7ef159c ISIS-1276: fixes compile issues in metamodel and runtime
discard 9fde3bd ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery
discard 89e40d5 ISIS-1276: updates core to compile under JDK 1.8 only
discard 1a43c29 ISIS-1276: updates references for datanucleus.
add 3547e93 ISIS-1821 fix case of empty annot. list not handled correctly
add a0ac44c ISIS-1743 fa-Icon mapping for mixins using '$$' method names
add a1b99ff ISIS-1743: also supports mixins specified using @Mixin(method="...") eg "act" or "coll" as well as the default "$$"
add b96383d ISIS-1743: removes some unused imports from HelloWorldObject
add a581939 Merge branch 'ISIS-1743'
add 8ee5ecc ISIS-1742: fixes bug that mixins not contributed by default.
add dff3bb7 ISIS-1814: adds support for @XmlTransient when validating for presence of @XmlJavaTypeAdapter on a LocalDate
add 0a7c4ca ISIS-1813: bumps pom versions to 1.16.1-SNAPSHOT
add eb9b70d ISIS-1812: implements getOnType for OTOA on mixed in, avoiding NPE when attempt to render such a property in a table.
add 4445703 ISIS-1808: extends Ticket (response of ErrorReportingService) to allow a "kitten URL" to optionally be returned.
add 92ed023 Merge branch 'maint-1.16.1'
add f6aa70c ISIS-1743 fa-Icon mapping for mixins using '$$' method names
add df1e555 ISIS-1743: also supports mixins specified using @Mixin(method="...") eg "act" or "coll" as well as the default "$$"
add 5badcf2 ISIS-1743: removes some unused imports from HelloWorldObject
add 5c72372 Merge branch 'ISIS-1743' into maint-1.16.1
add 212b089 Merge branch 'maint-1.16.1'
add 4c55ccf ISIS-1743: fixes backport issue
add e21fef1 Merge branch 'ISIS-1743' into maint-1.16.1
add c670cf4 Merge branch 'maint-1.16.1' (but reverts the change made while backporting of ISIS-1743)
add 2698c6a ISIS-1830 remove JDK9 internal API usages of c.s.o.a.x.internal.jaxp.datatype.XMLGregorianCalendarImpl
add 0b1a249 ISIS-1830 improve code readability, document the intent
add 82d1b13 ISIS-1827 remove dependencies on guava in isis-core-schema
add d7f4db2 ISIS-1827 relaxed guava dependency by removal in core's root pom.xml
add 7c04b43 ISIS-1827 minor refactoring: guava idioms replaced by java 8
add 194024f ISIS-1827 REVERT: relaxed guava dependency by removal in core's root pom.xml
add ca84b34 ISIS-1827 add null checks to fix test-case Roundtrip#happyCase
add 7abbfa3 ISIS-1842 add generic types where missing + suppress warnings
add 9e6a9e6 ISIS-1841 new utility: Casts, allows explicit unchecked casts
add 44d6331 ISIS-1842 add missing generic type arguments + add missing test cases
add 25a72aa ISIS-1844 ISIS-1844 further resolve raw type warnings + make some unchecked casts explicit
add b304338 ISIS-1841 mark o.a.i.applib.layout.Util deprecated, since not used
add b240cc3 ISIS-1844 make any unchecked casts explicit
add 456901d ISIS-1844 make any remaining unchecked casts explicit
add de41037 ISIS-1844 further unchecked casts made explicit
add a56f19d ISIS-1848: ensures that FreeStandingList does not incorrectly return java.lang.Object's specId, and adds new metamodel validator to detect this situation in future.
add 128e144 ISIS-1837: adds metamodel validator to check "module extent".
add b6bb1c7 Merge branch 'ISIS-1848' into maint-1.16.1
add 33bd9fd ISIS-1851: refine the algorithm for dynamically hiding property groups with 'nothing' in them
add 1f9dba5 ISIS-1825: uses thread local to pass rendering context up to the scalar panel so that it, in turn, can correctly report on where it is being rendered.
add 00fe078 ISIS-1569: adds CommandService2 as an extension
add e866c71 ISIS-1569: by way of tidy-up, just removes unused injected ClockService from CommandServiceDefault
add f2da845 ISIS-1831: adds a guard in exception handler of a RuntimeException (REST API) to avoid throwing an NPE there.
add 2e4e9b9 ISIS-1569: removes CommandService2, not required after all.
add 27156fe ISIS-1569: extends cmd-1.3.xsd to introduce a new CommandsDto (note the plural) as a sequence of CommandDto's
add 099bbd6 ISIS-1569: adds a convenience Util class for ContentMappingService to remove boilerplate in subclass implementations (parsing the acceptable media types).
add e1283fa ISIS-1569: defines CommandWithDto as an optional interface for Command SPI implementations to have their Command's implement (translatable into a CommandDto) along with out-of-the-box ContentMapingService to convert these into CommandsDto structure.
add da6ece6 ISIS-1569: extends cmd and ixn schemas to allow userData to be specified, and moves the new CommandsDto into the new version of cmd.xsd also.
add a5eb0d8 ISIS-1569: adds guard to ensure that BackgroundCommand#startedAt is always populated.
add dda922c ISIS-1835: catches any type of exception in order to report a problem (an NPE was being thrown if the file wasn't present, rather than an IOException)
add 0c2a2a0 ISIS-1569: adds in 'REPLAYABLE' as a new Command#ExecuteIn
add ad841f9 ISIS-1836: removes chance of an NPE in the RO mapper for an exception (which was in turn resulting in a 500 rather than 422 when invoked an action with an incorrect parameter argument).
add 001ed09 ISIS-1569: undeprecates Command#getStartedAt and Command#getCompletedAt
add 24dcfa5 ISIS-1569: adds timings to CommandsDto, so less verbose and easier to read XML
add 9020b72 ISIS-1569: updates to XSDs, make sure the version defaultsb are correct.
add 50fa124 ISIS-1569: removes unused and accidentally committed element in cmd-1.4.xsd
add a868fa9 ISIS-1569: updates XSDs for docs, and adds in the historical previous versions also.
add 82ef3b8 ISIS-1569: updates docs for CommandService and cmd schema
add 1cdd64a ISIS-1569: updates docs for ContentMappingService, default implementations for Command(s)Dto
add b56a68e ISIS-1853: extends CommandDtoUtils to support colleciton args, and similarly AbstractIsisSessionTemplate.
add 6e96761 ISIS-1569: introduces a new ExecuteIn#EXCLUDED
add 2cf72b4 ISIS-1569: extends BackgroundCommandExecution so that stops execution of replayable commands once at least one has failed.
add f504860 ISIS-1569: fixes logic for background command execution, to stop replaying if hit exception
add 48ea481 ISIS-1569: adds support for @Action(commandWithDtoProcessor=...) and @Property(commandWithDtoProcessor=....)
add dfe09c4 ISIS-1569: various fixes for ContentMappingService (while manual testing of replication)
add 0329099 ISIS-1569: simplies BackgroundCommandExecution so can be subclassed with different "OnExecutionPolicy" modes
add ce192de ISIS-1569: renames MetaModelService5 API from commandDtoProcessorFor() to commandWithDtoProcessorFor()
add 19dfb53 ISIS-1569: fixes issue to fail-fast.
add 20458aa ISIS-1822: fixes NPE if encounters non-existent action in menubars.layout.xml
add 85ef278 ISIS-1569: also catches exception when attempt to commit.
add 9996eab ISIS-1569: renames CommandWithDtoProcessor to CommandDtoProcessor ...
add 344dcba Merge branch 'ISIS-1569-replay-commands' into maint-1.16.1
add a821fa2 ISIS-1569: removes usage of deprecated annotations in Command iterface
add 6330ef2 ISIS-1826 and ISIS-1856: adds Automatic-Module-Name to manifest, adds git SCM-Revision to manifest, also generates git.properties and adds to jar
add 6c200e3 ISIS-1856: updates incorrect <scm> in (parent) core's pom.xml
add 6889738 ISIS-1826 and ISIS-1856: changes property names a little
add ee78604 ISIS-1569: extends BackgroundCommandExecution to allow commands to be run via the sudoservice (switching user)
add c430881 ISIS-1849 - fixes documentation issues
add aee0b0d ISIS-1833: reinstates mandatory marker for parameters
add 6588395 ISIS-1857: adds div class=clearfix to force the help block
add a2df1fd ISIS-1813: adds -parameters' compiler argument for both helloworld and simpleapp example applications
add cd93ad7 ISIS-1832: adds support for UUID panels.
add 4c9265d ISIS-1569: adds 'timestamp' to cmd.xsd
add d27ccd4 ISIS-1569: dynamically updates CommandDto.timestamp, and allows ticking clock to be set using a timestamp. Also...
add c0e57b9 ISIS-1569: makes determineIfContinue overridable in BackgroundCommandExecution
add f0a952d ISIS-1569: continues if replicated an exception; utility methods for DTOs
add c4c9861 ISIS-1858
add 4fdcc8f ISIS-1858: converts logging calls to use slf4j placeholders rather than string concatenation.
add a4fc90b ISIS-1569: improves log message and javadoc in BackgroundCommandExecution, is all.
add 665e023 ISIS-1826: renames property, removes git.commit.id unused prop
add cd65d49 ISIS-1854: uses the name taken from the layout.xml.
add f8c35e5 ISIS-1834: relaxes validation so that @PersistenceCapable can be applied to interfaces.
add 7585283 ISIS-1569: refactors for different implementation of replay
add 8540001 ISIS-1569: CommandExecutionAbstract delegates to new CommandExecutorService. Also
add 6878407 ISIS-1822: further NPE fix.
add 25a4923 ISIS-1589: adds support for Xxx.layout.fallback.xml
add 8e5c792 ISIS-1569: adds more info to logging statement of CommandExecutorServiceDefault (xactnId and timestamp)
add a026c0b ISIS-1569 - fixes bug in ticking clock ... not setting t0
add a0c4bb7 ISIS-1569: moves CommandExecutorService API into applib.
add 36b96fe ISIS-1569: dtoProcessor implies persistence of commands.
add 0b249c8 ISIS-1569: ensures that transaction CommandExecutorService is run in a xactn with the command to be executed as the context of that xactn.
add eb27901 ISIS-1569: adds documentation for this service
add c24306a ISIS-1861: adds 'collapseIfOne' atribute for TabGroups
add aea06a1 ISIS-1820: fixes BDD tests in simpleapp example application
add 3263275 ISIS-1589: adds documentation for .layout.fallback.xml
add 7c495c7 ISIS-1585: adds @Action(associateWith=...)
add 26e84ce ISIS-1585: adds support for checkboxes in parented collections, to act as the defaults for any associated actions.
add 865f6ab ISIS-1585: defines a new PostProcessor API, similar to FacetFactory.
add 8de9382 ISIS-1832: fixes uuid panel alignment (left aligned, not right)
add ebae933 ISIS-1585: extends to support derivation of choices for both scalar and collection parameters.
add cb59722 ISIS-1813: fixes CSS for action drop-down alignment
add 655dd28 ISIS-1585: fixes for mixins, and not honouring associateWith
add 8c440ba ISIS-1569: fixes NPE for downloading command DTOs if xactn can't be found
add c2026ee ISIS-1569: suppresses possible concurrency exceptions when auditing pre-commit.
add 0b8d151 ISIS-1813: fixes documentation links
add 94c8429 ISIS-1813: adds outline release notes for 1.16.1
add edc6651 ISIS-1813: fixes root index.html
add 6ed8ec4 ISIS-1759: avoids calls to getter if property is hidden.
add 6eb767f ISIS-1829: adds condition for a builder that inherits from AppManifestAbstract2.Builder
add b892b97 ISIS-1829: extracts methods to make flow easier to follow
add 8c2c403 ISIS-1847: adds missing breaks in veto handling of AbstractDomainEvent
add 93c1897 ISIS-1813: updates document template to include version
add 39524c7 ISIS-1813: removes the petclinic tutorial, since out of date
add 6d682f6 ISIS-1813: adds missing copyright notices
add a47243f ISIS-1859: adds a hint-n-tip doc
add 392d475 ISIS-1860: improves docs regarding CommandReification
add 97013ec Merge branch 'maint-1.16.1' into master
add 1b19e6e ISIS-1810: fixes compile issues arising from merge
add e29b26f ISIS-1852 allow local thread variable propagation to any child threads
add 3706fa9 ISIS-1852 testcase backported to JDK 7
add 0d749ce ISIS-1852: fixes unit test
add c149771 Merge branch 'ISIS-1852_parallel_stream_patch'
add b958267 ISIS-1846 beginning with consolidation of internal utilities
add c16086d Merge branch 'master' into ISIS-1846_internal_utils
add c407760 ISIS-1846 consolidate utilities
add 3ccfd33 ISIS-1846 deduplicate uses of asNaturalName2 and other
add 44af17e ISIS-1846 deprecate StringPredicates and StringFunctions, refactoring any references to use the new $String utility class
add 0622780 ISIS-1846 use mixin naming convention for package private support classes
add bc59167 ISIS-1846 add missing license header
add b6f8293 ISIS-1846 StringOperator: improved name for composing method
add debea9f ISIS-1846 consolidate comparator algorithms into $Comparators
add 47790a6 ISIS-1846 refactoring: less heap pollution on sequence compare
add 25f8b31 ISIS-1846 underscore(_) instead of dollar($) prefix for internal classes
add 7ba8fd6 ISIS-1845 fix EventBusServiceDefaultTest NPE
add 8b865d6 ISIS-1845 fix all tests in ObjectReflectorDefaultTest_object
add 4a90358 ISIS-1846 test cases added for new utility classes
add 954c03d ISIS-1827 refactoring out some guava predicate usages yet without breaking API
add c32e448 ISIS-1827 cleanup public API java-doc in RepositoryService
add 890cff5 ISIS-1827 reflect API changes in RepositoryServiceInternalDefault
add 03823d7 ISIS-1827 guava free drop-in replacement for all ExceptionRecognizers
add 6631872 ISIS-1827 reflect applib changes in ExceptionRecognizerDocDefault
add 77b179b ISIS-1846 add capitalize to new _String utility + tests, cleanup Enums
add 463947d ISIS-1846 fix Enums copy paste error
add 62c3f3b ISIS-1827 added tests for all ExceptionRecognizers to reflect applib additions
add dd3029c ISIS-1827 mark some unused public static guava functions deprecated
add 7613ee7 ISIS-1846 consolidate uses of capitalize
add 996cf2980 ISIS-1846 another occurrence of capitalize consolidated
add a5931f6 ISIS-1846 clarify corner cases for string splitting + tests
add 70a5f0d ISIS-1846 introduces _Constants (internal API)
add 286b2c5 ISIS-1846 consolidate uses of constants 'emptyObjects' + 'emptyClasses'
add c09cffb ISIS-1846 make constants final
add 3b9aded ISIS-1841 replace uses of deprecated Nullable with Java's Optional
add 8b19f8a ISIS-1841 Nullable, Closure, IterableExtensions removed (after refactoring, no longer needed), tests removed or adapted
add 9c2514c ISIS-1841 remove unused setter, that does nothing anyway
add fe219d0 ISIS-1846 add _Exceptions to internal API
add 7d5b538 ISIS-1841 cleanup some compiler warnings
add 8e8b5f1 ISIS-1841 refactoring switch statements
add 7743f0b ISIS-1846 java-doc: simplify warnings for internal API use
add 3bb3683 ISIS-1846 major refactoring: introduces _Reflect (internal API)
add da7b587 ISIS-1846 minor refactoring: introduces _Context (internal API)
add 5dd9f73 ISIS-1846 improve java-doc
add 71101fc ISIS-1846 put empty string array also in _Constants for convenience
add 66cd1f2 ISIS-1846 java-doc improved
add 62725eb ISIS-1846 added reviewer notes and questions
add 8ebd313 ISIS-1846 thread-safe (atomic) writes to _Context (singleton-store)
add e989ad9 Merge remote-tracking branch 'origin/ISIS-1846_internal_utils'
add c1d0732 ISIS-1846: fixes unit test (had accidentally changed contract)
add e0cb085 ISIS-1846: reinstates reflections as a non-optional compile-time dependency, since required for both compile and runtime.
add 96a2a78 ISIS-1852: removes debug System.out.println
add 39a6039 ISIS-1852: removes debug System.out.println
add c05e5ca Merge branch 'ISIS-1852_parallel_stream_patch'
add e92b4db ISIS-1740 initial commit of prototype
add efdd481 ISIS-1740 refactored method names, added javadoc
add 266a4e9 ISIS-1740 new Facet: NavigableParentFacet + major rework to integrate with Isis' meta-model
add 6fc4c5b ISIS-1740 NavigableParentService never used, so removed
add 08ce1a6 ISIS-1817 + ISIS-1818 allow configuration of where-am-i feature
add 1155e89 ISIS-1817 + ISIS-1818 added missing assignment + clarify comments
add 0645ecd ISIS-1816 refactoring Annotations + implement hierarchy search
add f338b8b ISIS-1816 impl. navigable parent resolving behavior according to spec
add 2fc93a2 ISIS-1740 Refactoring and consolidating invocation exception handling + introducing MethodHandles to speed up reflective invocation
add 4126069 ISIS-1816 Refactoring names + simplify
add cc2f5d0 ISIS-1740: fixes merge issues (NullSafe moved to applib and renamed)
add 6ee4202 Merge branch 'ISIS-1740-where-am-i'
add 3e3ad2b ISIS-1852: reworks unit test, again
add fb552d3 Merge branch 'ISIS-1852_parallel_stream_patch'
add a2eb142 ISIS-1276: updates references for datanucleus.
add 18dc848 ISIS-1276: updates core to compile under JDK 1.8 only
add 2caaf1e ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery
add 0cbe08d ISIS-1276: fixes compile issues in metamodel and runtime
add 1de7627 ISIS-1276: fixes algorithm for lookup of datastore id's, at least
add d3a729e ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation
add 48d61fe ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib
add aebdb9e ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).
add 123f29f ISIS-1727: uses lambda in IsisSessionFactoryBuilder
add 9ca0c5a ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.
add 894efba ISIS-1728: uses typesafe queries for helloworld
add 26e06e2 Merge branch 'dev/2.0.0/ISIS-1276-dn-5-1' into dev/2.0.0-M2
add 224da22 ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime
add d2e8d8a ISIS-1756 JEE 7+ Isis App life-cycling
add c9aaa4b ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector
add 0f3c8cb ISIS-1756 - fix typo
add 8524919 ISIS-1756 prevent SQLException on schema creation if config is missing
add 32dad9e ISIS-1756 utilize IsisWicketApplication's life-cycle instead of providing a life-cycle CDI Bean
add 742e231 ISIS-1754 context aware class-loading for Isis
add 3f6fd15 ISIS-1755 TomEE requires Service Providers to be public classes
add 1414489 ISIS-1775 Honor web-app's context path when configuring swagger.
add f730d53 ISIS-1775 added license
add de9b17a ISIS-1754 proper DN class-loading
add 4d2aa2b ISIS-1755 veto ExceptionRecognizer on CDI scan
add ab73186 ISIS-1756 remove reflective access to DN's EnhancementHelper since we've got a dedicated method instead
add 555f5f9 Merge branch 'ISIS-1767-jee-7' into dev/2.0.0-M2
add 2aa9efc ISIS-1767: fixes dependency convergence issue with com.sun.mail
add bad4156 ISIS-1744: updates to DN 5.1.5
add 9336f8d ISIS-1744: removes work-around code for prior to DN 5.1.5
add f5fc906 Merge branch 'ISIS-1744-update-to-dn-515' into dev/2.0.0-M2
add bcd9187 ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT
add d5fcba0 ISIS-1779 Transition to JAX-RS 2.0 Client API removed dependency on deprecated resteasy client api
new 1c9e21f ISIS-1779 rebase jax-rs-2 on top of 2.0.0-M2
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (72f3452)
\
N -- N -- N refs/heads/ISIS-1779-jax-rs-2 (1c9e21f)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../applib/layout/grid/bootstrap3/bootstrap3.xsd | 1 +
.../asciidoc/guides/dg/_dg_asciidoc-syntax.adoc | 47 +-
.../_dg_hints-and-tips_datanucleus-enhancer.adoc | 2 +-
.../main/asciidoc/guides/dg/_dg_ide_eclipse.adoc | 2 +-
.../main/asciidoc/guides/rgant/_rgant-Action.adoc | 21 +-
.../guides/rgant/_rgant-Action_associateWith.adoc | 67 ++
.../guides/rgant/_rgant-Action_command.adoc | 397 +++++++++--
.../guides/rgant/_rgant-Action_hidden.adoc | 2 +-
.../guides/rgant/_rgant-Action_publishing.adoc | 2 +-
.../guides/rgant/_rgant-Discriminator.adoc | 4 +-
..._rgant-DomainObject_autoCompleteRepository.adoc | 2 +-
.../rgant/_rgant-DomainObject_publishing.adoc | 2 +-
.../guides/rgant/_rgant-DomainService.adoc | 2 +-
.../asciidoc/guides/rgant/_rgant-Nullable.adoc | 10 +-
.../guides/rgant/_rgant-Parameter_optionality.adoc | 2 +-
.../guides/rgant/_rgant-PersistenceCapable.adoc | 4 +-
.../asciidoc/guides/rgant/_rgant-Property.adoc | 28 +
.../rgant/_rgant-PropertyLayout_unchanging.adoc | 2 +-
.../guides/rgant/_rgant-Property_command.adoc | 269 ++++++++
.../guides/rgant/_rgant-Property_optionality.adoc | 2 +-
.../guides/rgant/_rgant-Property_publishing.adoc | 2 +-
.../asciidoc/guides/rgant/_rgant-ViewModel.adoc | 2 +-
.../guides/rgcfg/_rgcfg_configuring-core.adoc | 15 +
.../_rgcms_classes_AppManifest2-bootstrapping.adoc | 4 +-
...gcms_classes_domainevent_ActionDomainEvent.adoc | 2 +-
..._classes_domainevent_CollectionDomainEvent.adoc | 2 +-
...ms_classes_domainevent_PropertyDomainEvent.adoc | 2 +-
.../guides/rgcms/_rgcms_classes_layout.adoc | 2 +-
.../rgcms/_rgcms_classes_value-types_Markup.adoc | 2 +-
.../rgcms/_rgcms_methods_reserved_getId.adoc | 2 +-
.../asciidoc/guides/rgcms/_rgcms_schema-chg.adoc | 2 +-
.../asciidoc/guides/rgcms/_rgcms_schema-cmd.adoc | 53 +-
.../guides/rgcms/_rgcms_schema-common.adoc | 77 ++-
.../guides/rgsvc/_rgsvc_application-layer-api.adoc | 14 +-
...lication-layer-api_ActionInvocationContext.adoc | 8 +-
...rgsvc_application-layer-api_CommandContext.adoc | 2 +-
...plication-layer-api_CommandExecutorService.adoc | 45 ++
...rgsvc_application-layer-spi_CommandService.adoc | 33 +-
.../_rgsvc_metadata-api_MetamodelService.adoc | 43 +-
...esentation-layer-spi_ContentMappingService.adoc | 53 +-
...esentation-layer-spi_ErrorReportingService.adoc | 29 +-
...entation-layer-spi_TableColumnOrderService.adoc | 2 +-
.../ErrorReportingService/kitchensink-example.png | Bin 28043 -> 180602 bytes
...ugfun_building-blocks_events_domain-events.adoc | 2 +-
...un_building-blocks_events_lifecycle-events.adoc | 2 +-
.../_ugfun_building-blocks_events_ui-events.adoc | 4 +-
..._ugfun_getting-started_simpleapp-archetype.adoc | 2 +-
.../ugfun/_ugfun_programming-model_actions.adoc | 21 +-
...fun_programming-model_domain-services_menu.adoc | 14 +-
.../_ugfun_programming-model_inject-services.adoc | 2 +-
.../ugfun/_ugfun_programming-model_mixins.adoc | 2 +-
...fun_programming-model_mixins_inferred-name.adoc | 2 +-
.../ugfun/_ugfun_ui-hints_eager-rendering.adoc | 2 +-
.../_ugfun_ui-hints_object-titles-and-icons.adoc | 6 +-
.../guides/ugodn/_ugodn_hints-and-tips.adoc | 1 +
..._ugodn_hints-and-tips_jdoql-and-timestamps.adoc | 76 +++
..._ugtst_bdd-spec-support_writing-a-bdd-spec.adoc | 28 +-
...gtst_fixture-scripts_ticking-clock-fixture.adoc | 2 +-
.../guides/ugvw/_ugvw_layout_file-based.adoc | 15 +
adocs/documentation/src/main/asciidoc/index.html | 11 +-
.../_migration-notes_1.10.0-to-1.11.0.adoc | 2 +-
.../_migration-notes_1.11.0-to-1.12.0.adoc | 2 +-
.../_migration-notes_1.12.0-to-1.13.0.adoc | 12 +-
.../_migration-notes_1.14.0-to-1.15.0.adoc | 2 +-
.../asciidoc/pages/tg/_tg_pet-clinic-extended.adoc | 13 -
.../src/main/asciidoc/pages/tg/_tg_pet-clinic.adoc | 575 ----------------
.../tg/_tg_stop-scaffolding-start-coding.adoc | 744 ---------------------
.../tutorials/pet-clinic/010-01-login-page.png | Bin 31965 -> 0 bytes
.../tutorials/pet-clinic/010-02-home-page.png | Bin 54415 -> 0 bytes
.../pet-clinic/010-03-prototyping-menu.png | Bin 59183 -> 0 bytes
.../tutorials/pet-clinic/010-04-simpleobjects.png | Bin 57805 -> 0 bytes
.../pet-clinic/010-05-simpleobject-list.png | Bin 29631 -> 0 bytes
.../pet-clinic/020-01-idea-configuration.png | Bin 35012 -> 0 bytes
.../pet-clinic/020-02-idea-configuration.png | Bin 7430 -> 0 bytes
.../030-01-idea-configuration-updated.png | Bin 35122 -> 0 bytes
.../tutorials/pet-clinic/030-02-updated-app.png | Bin 32215 -> 0 bytes
.../040-01-idea-configuration-updated.png | Bin 35349 -> 0 bytes
.../tutorials/pet-clinic/050-01-list-all.png | Bin 33299 -> 0 bytes
.../tutorials/pet-clinic/050-02-view-pet.png | Bin 34270 -> 0 bytes
.../tutorials/pet-clinic/060-01-owners-menu.png | Bin 65309 -> 0 bytes
.../tutorials/pet-clinic/060-02-owners-list.png | Bin 31905 -> 0 bytes
.../tutorials/pet-clinic/060-03-pets-list.png | Bin 36166 -> 0 bytes
.../pet-clinic/060-04-pet-owner-autoComplete.png | Bin 40468 -> 0 bytes
.../images/tutorials/pet-clinic/domain-model.png | Bin 27464 -> 0 bytes
.../src/main/asciidoc/pages/tg/tg.adoc | 683 ++++++++++++++++++-
.../release-notes/_release-notes_1.16.1.adoc | 24 +
.../main/asciidoc/release-notes/release-notes.adoc | 11 +-
.../src/main/asciidoc}/schema/chg/chg-1.1.xsd | 2 +-
.../src/main/asciidoc/schema/chg/chg.xsd | 6 +-
.../asciidoc/schema/cmd/{cmd.xsd => cmd-1.2.xsd} | 10 +-
.../src/main/asciidoc}/schema/cmd/cmd-1.3.xsd | 2 +-
.../src/main/asciidoc/schema/cmd/cmd-1.4.xsd | 39 +-
.../src/main/asciidoc/schema/cmd/cmd.xsd | 51 +-
.../main/asciidoc}/schema/common/common-1.1.xsd | 2 +-
.../src/main/asciidoc/schema/common/common.xsd | 19 +-
.../asciidoc/schema/ixn/{ixn.xsd => ixn-1.1.xsd} | 10 +-
.../src/main/asciidoc}/schema/ixn/ixn-1.2.xsd | 2 +-
.../src/main/asciidoc/schema/ixn/ixn-1.3.xsd | 6 +-
.../src/main/asciidoc/schema/ixn/ixn.xsd | 14 +-
adocs/template/document.html.erb | 5 +-
core/applib/pom.xml | 28 +-
.../java/org/apache/isis/applib/AppManifest.java | 120 +---
.../apache/isis/applib/AppManifestAbstract.java | 42 +-
.../apache/isis/applib/AppManifestAbstract2.java | 3 +-
.../org/apache/isis/applib/IsisApplibModule.java | 5 +-
.../org/apache/isis/applib/ModuleAbstract.java | 29 +-
.../isis/applib/ModuleOrBuilderAbstract.java | 29 +-
.../org/apache/isis/applib/PropertyResource.java | 5 +-
.../org/apache/isis/applib/annotation/Action.java | 63 ++
.../isis/applib/annotation/CommandExecuteIn.java | 24 +-
.../apache/isis/applib/annotation/InvokeOn.java | 17 +-
.../apache/isis/applib/annotation/MemberOrder.java | 2 +-
.../org/apache/isis/applib/annotation/Parent.java | 34 +
.../apache/isis/applib/annotation/Property.java | 21 +
.../java/org/apache/isis/applib/clock/Clock.java | 18 +-
.../conmap/ContentMappingServiceForCommandDto.java | 152 +++++
.../ContentMappingServiceForCommandsDto.java | 91 +++
.../spi/CommandDtoProcessorService.java} | 23 +-
.../isis/applib/fixtures/TickingFixtureClock.java | 10 +
.../fixturescripts/BuilderScriptAbstract.java | 18 +-
.../applib/fixturescripts/ExecutionParameters.java | 40 +-
.../applib/fixturescripts/FixtureResultList.java | 5 +-
.../isis/applib/fixturescripts/FixtureScript.java | 46 +-
.../isis/applib/fixturescripts/FixtureScripts.java | 3 +
.../isis/applib/fixturescripts/StringUtil.java | 79 ---
.../teardown/TeardownFixtureAbstract.java | 6 +-
.../teardown/TeardownFixtureAbstract2.java | 18 +-
.../apache/isis/applib/internal/_Constants.java} | 53 +-
.../apache/isis/applib/internal/base/_Casts.java} | 34 +-
.../isis/applib/internal/base/_NullSafe.java} | 74 +-
.../apache/isis/applib/internal/base/_Strings.java | 232 +++++++
.../internal/base/_Strings_NaturalNames.java | 94 +++
.../internal/base/_Strings_SplitIterator.java | 73 ++
.../isis/applib/internal/base/package-info.java} | 20 +-
.../compare/_Comparators.java} | 56 +-
.../compare/_Comparators_SequenceCompare.java} | 53 +-
.../applib/internal/compare/package-info.java} | 20 +-
.../isis/applib/internal/context/_Context.java | 178 +++++
.../applib/internal/context/package-info.java} | 20 +-
.../applib/internal/exceptions/_Exceptions.java | 85 +++
.../applib/internal/exceptions/package-info.java} | 20 +-
.../apache/isis/applib/internal/package-info.java} | 20 +-
.../isis/applib/internal/reflection/_Reflect.java | 85 +++
.../internal/reflection/_Reflect_Discovery.java | 84 +++
.../internal/reflection/_Reflect_Manifest.java | 147 ++++
.../applib/internal/reflection/package-info.java} | 20 +-
.../java/org/apache/isis/applib/layout/Util.java | 4 +-
.../layout/component/CollectionLayoutData.java | 3 +-
.../isis/applib/layout/component/FieldSet.java | 2 +-
.../applib/layout/grid/bootstrap3/BS3ClearFix.java | 1 +
.../layout/grid/bootstrap3/BS3ElementAbstract.java | 1 +
.../applib/layout/grid/bootstrap3/BS3Grid.java | 2 +-
.../isis/applib/layout/grid/bootstrap3/BS3Tab.java | 4 +-
.../applib/layout/grid/bootstrap3/BS3TabGroup.java | 15 +
.../applib/layout/menubars/MenuBarsAbstract.java | 1 +
.../applib/layout/menubars/bootstrap3/BS3Menu.java | 5 -
.../layout/menubars/bootstrap3/BS3MenuBars.java | 5 +
.../java/org/apache/isis/applib/query/Query.java | 2 +-
.../apache/isis/applib/query/QueryAbstract.java | 4 +-
.../services/actinvoc/ActionInvocationContext.java | 33 +-
.../services/appfeat/ApplicationMemberType.java | 15 +-
.../isis/applib/services/bookmark/Bookmark.java | 5 +-
.../ClassDiscoveryServiceUsingReflections.java | 64 +-
.../isis/applib/services/command/Command.java | 66 +-
.../applib/services/command/CommandDefault.java | 2 +-
.../CommandDtoProcessor.java} | 30 +-
.../CommandDtoProcessorForActionAbstract.java | 41 ++
.../CommandDtoProcessorForPropertyAbstract.java} | 24 +-
.../services/command/CommandExecutorService.java} | 44 +-
.../applib/services/command/CommandWithDto.java | 21 +-
.../services/conmap/ContentMappingService.java | 27 +
.../isis/applib/services/dto/DtoMappingHelper.java | 6 +-
.../apache/isis/applib/services/error/Ticket.java | 36 +-
.../services/eventbus/AbstractDomainEvent.java | 27 +
.../exceprecog/ExceptionRecognizerAbstract.java | 57 +-
.../exceprecog/ExceptionRecognizerForType.java | 1 +
...rType.java => ExceptionRecognizerForType2.java} | 63 +-
...xceptionRecognizerForJDODataStoreException.java | 4 +-
...traintViolationForeignKeyNoActionException.java | 17 +-
...ionRecognizerForJDOObjectNotFoundException.java | 5 +-
...yConstraintViolationUniqueOrIndexException.java | 17 +-
.../applib/services/hsqldb/HsqlDbManagerMenu.java | 3 +-
.../isis/applib/services/iactn/Interaction.java | 24 +-
.../isis/applib/services/jaxb/JaxbService.java | 26 +-
.../services/layout/Object_rebuildMetamodel.java | 2 +
.../services/metamodel/MetaModelService.java | 3 +
.../queryresultscache/QueryResultsCache.java | 11 +-
.../services/repository/RepositoryService.java | 26 +-
.../applib/services/xactn/TransactionService.java | 18 +
.../isis/applib/spec/AbstractSpecification2.java | 4 +-
.../java/org/apache/isis/applib/util/Enums.java | 40 +-
.../java/org/apache/isis/applib/util/JaxbUtil.java | 4 +-
.../apache/isis/applib/util/ObjectContracts.java | 10 +-
.../org/apache/isis/applib/util/TitleBuffer.java | 8 +-
.../apache/isis/schema/utils/CommandDtoUtils.java | 36 +
.../apache/isis/schema/utils/CommonDtoUtils.java | 192 ++++--
.../isis/schema/utils/InteractionDtoUtils.java | 19 +-
.../isis/schema/utils/MemberExecutionDtoUtils.java | 3 +-
.../fixturescripts/ExecutionParameters_Test.java | 37 +
.../isis/applib/internal/base/NullSafeTest.java | 116 ++++
.../isis/applib/internal/base/StringsTest.java | 243 +++++++
.../applib/internal/compare/ComparatorsTest.java | 158 +++++
.../eventbus/AbstractDomainEvent_veto_Test.java | 183 +++++
...t.java => ExceptionRecognizerForType2Test.java} | 29 +-
.../exceprecog/ExceptionRecognizerGeneralTest.java | 32 +-
.../isis/schema/utils/CommandDtoUtils_Test.java | 68 ++
...nDtoUtilsTest.java => CommonDtoUtils_Test.java} | 37 +-
core/integtestsupport/pom.xml | 7 +-
core/log4j/pom.xml | 5 +
.../isis/core/runtime/logging/SnapshotServer.java | 16 +-
core/maven-plugin/pom.xml | 3 +
core/metamodel/pom.xml | 24 +
.../commons/config/IsisConfigurationDefault.java | 4 +-
.../configbuilder/IsisConfigurationBuilder.java | 15 +-
.../commons/encoding/DebugDataInputExtended.java | 28 +-
.../commons/encoding/DebugDataOutputExtended.java | 30 +-
.../isis/core/commons/encoding/FieldType.java | 3 +-
.../core/commons/exceptions/ExceptionUtils.java | 6 +-
.../isis/core/commons/factory/InstanceUtil.java | 9 +-
.../apache/isis/core/commons/lang/ClassUtil.java | 6 +-
.../isis/core/commons/lang/MethodExtensions.java | 14 +-
.../isis/core/commons/lang/ObjectExtensions.java | 4 +-
.../isis/core/commons/lang/ResourceUtil.java | 13 +-
.../isis/core/commons/lang/StringExtensions.java | 70 +-
.../isis/core/commons/lang/StringFunctions.java | 7 +-
.../isis/core/commons/lang/StringPredicates.java | 7 +-
.../core/commons/lang/ThrowableExtensions.java | 62 +-
.../isis/core/commons/reflection/Reflect.java | 51 +-
.../resource/ResourceStreamSourceAbstract.java | 9 +-
.../ResourceStreamSourceChainOfResponsibility.java | 4 +-
.../resource/ResourceStreamSourceComposite.java | 4 +-
...ResourceStreamSourceContextLoaderClassPath.java | 3 +-
.../isis/core/metamodel/adapter/oid/Oid.java | 9 +-
.../isis/core/metamodel/facetapi/FacetUtil.java | 10 +-
.../isis/core/metamodel/facetapi/FeatureType.java | 21 +-
.../isis/core/metamodel/facets/Annotations.java | 199 ++++--
.../core/metamodel/facets/MethodFinderUtils.java | 16 +-
.../action/ActionAnnotationFacetFactory.java | 30 +-
.../command/CommandFacetForActionAnnotation.java | 28 +-
...ommandFacetForActionAnnotationAsConfigured.java | 7 +-
.../command/CommandFacetFromConfiguration.java | 13 +-
...ctionInvocationFacetForDomainEventAbstract.java | 69 +-
.../facets/actions/command/CommandFacet.java | 2 +
.../actions/command/CommandFacetAbstract.java | 45 +-
.../ActionDefaultsFacetViaMethodFactory.java | 3 +-
.../NotContributedFacetDerivedFromMixinFacet.java | 2 +-
.../facets/all/i18n/NamedFacetTranslated.java | 2 +-
...ry.java => XmlJavaTypeAdapterFacetFactory.java} | 32 +-
.../facets/jaxb/XmlTransientFacet.java} | 11 +-
.../facets/jaxb/XmlTransientFacetAbstract.java} | 32 +-
.../facets/jaxb/XmlTransientFacetDefault.java} | 16 +-
.../annotprop/CssClassFaFacetOnMemberFactory.java | 7 +-
.../cssclassfa/annotprop/MixinInterceptor.java | 65 ++
.../members/order/MemberOrderFacetAbstract.java | 21 +-
.../MemberOrderFacetForActionAnnotation.java} | 18 +-
.../DomainObjectAnnotationFacetFactory.java | 9 +-
.../AuditableFacetForDomainObjectAnnotation.java | 5 +-
.../domainservice/DomainServiceMenuOrder.java | 5 +-
.../ignore/javalang/RemoveMethodsFacetFactory.java | 3 +-
.../MemberGroupLayoutFacetProperties.java | 25 +-
.../object/navparent/NavigableParentFacet.java} | 43 +-
.../navparent/NavigableParentFacetAbstract.java} | 20 +-
.../NavigableParentAnnotationFacetFactory.java | 168 +++++
.../method/NavigableParentFacetMethod.java} | 39 +-
.../method/NavigableParentFacetMethodFactory.java | 67 ++
.../objectspecid/ObjectSpecIdFacetAbstract.java | 9 +-
.../ObjectSpecIdFacetOnStandaloneList.java} | 32 +-
.../recreatable/RecreatableObjectFacetFactory.java | 8 +-
.../MustSatisfySpecificationFacetAbstract.java | 22 +-
.../ActionParameterAutoCompleteFacetViaMethod.java | 3 +-
...rameterChoicesFacetDerivedFromChoicesFacet.java | 3 +-
.../method/ActionChoicesFacetViaMethodFactory.java | 3 +-
.../ActionParameterChoicesFacetViaMethod.java | 9 +-
...cetInvertedByNullableAnnotationOnParameter.java | 3 +-
...fySpecificationFacetForParameterAnnotation.java | 2 -
...ropertyChoicesFacetDerivedFromChoicesFacet.java | 5 +-
.../property/PropertyAnnotationFacetFactory.java | 2 +-
.../command/CommandFacetForPropertyAnnotation.java | 26 +-
...mandFacetForPropertyAnnotationAsConfigured.java | 5 +-
...sfySpecificationFacetForPropertyAnnotation.java | 2 -
.../MemberOrderFacetComparator.java | 4 +-
...onParameterDefaultsAndChoicesPostProcessor.java | 157 +++++
...rameterChoicesFacetFromParentedCollection.java} | 46 +-
...rameterDefaultsFacetFromParentedCollection.java | 63 ++
...{ProgrammingModel.java => FacetFactorySet.java} | 9 +-
.../ObjectSpecificationPostProcessor.java} | 10 +-
.../metamodel/progmodel/PostProcessorSet.java} | 10 +-
.../core/metamodel/progmodel/ProgrammingModel.java | 62 +-
.../core/metamodel/services/ServicesInjector.java | 4 +-
.../services/appfeat/ApplicationFeatureId.java | 21 +
.../exceprecog/ExceptionRecognizerDocDefault.java | 7 +-
.../services/grid/GridLoaderServiceDefault.java | 64 +-
.../services/grid/GridSystemServiceAbstract.java | 4 +-
.../metamodel/MetaModelServiceDefault.java | 31 +
.../PersistenceSessionServiceInternal.java | 4 +
.../PersistenceSessionServiceInternalNoop.java | 6 +
.../RepositoryServiceInternalDefault.java | 33 +-
.../services/xactn/TransactionServiceDefault.java | 15 +-
.../core/metamodel/spec/ObjectSpecification.java | 80 ++-
.../core/metamodel/spec/feature/ObjectAction.java | 70 +-
.../spec/feature/ObjectActionParameter.java | 77 +++
.../metamodel/specloader/ServiceInitializer.java | 4 +-
.../metamodel/specloader/SpecificationLoader.java | 51 +-
.../specloader/facetprocessor/FacetProcessor.java | 10 +-
.../specloader/postprocessor/PostProcessor.java | 59 ++
.../specloader/specimpl/FacetedMethodsBuilder.java | 26 +-
.../specloader/specimpl/ObjectActionDefault.java | 4 +-
.../specloader/specimpl/ObjectMemberAbstract.java | 17 +-
.../specimpl/ObjectSpecificationAbstract.java | 48 +-
.../specimpl/OneToOneAssociationMixedIn.java | 5 +
.../specimpl/dflt/ObjectSpecificationDefault.java | 7 +-
.../ObjectSpecificationOnStandaloneList.java | 4 +
.../MetaModelValidatorToCheckModuleExtent.java | 153 +++++
...taModelValidatorToCheckObjectSpecIdsUnique.java | 95 +++
.../core/metamodel/util/DeweyOrderComparator.java | 51 +-
.../core/metamodel/util/pchain/ParentChain.java | 84 +++
.../metamodel/util/pchain/ParentChainDefault.java | 49 ++
.../authentication/standard/SimpleSession.java | 2 +-
.../isis/core/runtime/snapshot/XmlSnapshot.java | 60 +-
.../isis/core/webapp/content/ResourceServlet.java | 14 +-
.../diagnostics/IsisLogOnExceptionFilter.java | 2 +-
.../core/webapp/routing/RedirectToDocsFilter.java | 9 +-
.../isis/progmodels/dflt/JavaReflectorHelper.java | 2 +-
.../dflt/ProgrammingModelFacetsJava5.java | 21 +-
.../metamodel/facets/MethodFinderUtilsTest.java | 27 +-
.../apache/isis/core/metamodel/facets/Utils.java | 3 +-
.../NavigableParentFacetMethodFactoryTest.java | 70 ++
.../navparent/NavigableParentFacetMethodTest.java | 83 +++
.../NavigableParentAnnotationFacetFactoryTest.java | 120 ++++
.../annotation/NavigableParentTestSamples.java | 49 ++
.../isis/core/metamodel/services/grid/Foo.java} | 4 +
.../core/metamodel/services/grid/Foo.layout.xml} | 24 +-
.../isis/core/metamodel/services/grid/Foo2.java} | 4 +
.../services/grid/Foo2.layout.fallback.xml} | 24 +-
.../isis/core/metamodel/services/grid/Foo3.java} | 4 +
.../services/grid/Foo3.layout.fallback.xml} | 24 +-
.../core/metamodel/services/grid/Foo3.layout.xml} | 24 +-
.../isis/core/metamodel/services/grid/Foo4.java} | 4 +
...dLoaderServiceDefault_resourceNameFor_Test.java | 58 ++
.../SpecificationLoaderTestAbstract.java | 2 +-
.../specimpl/ObjectActionMixedInTest.java | 10 +-
.../specimpl/ObjectMemberAbstractTest.java} | 40 +-
.../testspec/ObjectSpecificationStub.java | 19 +
core/pom.xml | 106 ++-
core/runtime/pom.xml | 17 +-
.../fixtures/FixturesInstallerDelegate.java | 4 +-
.../FixturesInstallerFromConfiguration.java | 2 +-
.../HeadlessWithBootstrappingAbstract.java | 4 +-
.../isis/core/runtime/headless/IsisSystem.java | 2 +-
.../runtime/headless/IsisSystemBootstrapper.java | 4 +-
.../apache/isis/core/runtime/memento/Memento.java | 18 +-
.../runtime/persistence/adapter/PojoAdapter.java | 4 +-
.../runner/opts/OptionHandlerAppManifest.java | 2 +-
.../runner/opts/OptionHandlerFixtureAbstract.java | 2 +-
.../runner/opts/OptionHandlerInitParameters.java | 4 +-
.../runner/opts/OptionHandlerSystemProperties.java | 4 +-
.../core/runtime/services/ServiceInstantiator.java | 16 +-
.../services/ServicesInstallerFromAnnotation.java | 36 +-
.../ServicesInstallerFromConfiguration.java | 2 +-
...cesInstallerFromConfigurationAndAnnotation.java | 2 +-
.../background/BackgroundCommandExecution.java | 258 +------
.../background/BackgroundServiceDefault.java | 2 +-
.../background/CommandExecutionAbstract.java | 69 ++
.../background/CommandExecutorServiceDefault.java | 428 ++++++++++++
.../changes/ChangedObjectsServiceInternal.java | 52 +-
.../services/command/CommandServiceDefault.java | 4 -
.../menubars/bootstrap3/MenuBarsServiceBS3.java | 34 +-
.../PersistenceSessionServiceInternalDefault.java | 8 +-
.../AbstractIsisSessionTemplate.java | 31 +-
.../core/runtime/system/context/IsisContext.java | 141 ++--
.../system/internal/IsisLocaleInitializer.java | 4 +-
.../system/internal/IsisTimeZoneInitializer.java | 4 +-
.../DataNucleusApplicationComponents.java | 22 -
.../persistence/PersistenceQueryFactory.java | 2 +-
.../system/persistence/PersistenceSession.java | 68 +-
.../persistence/PersistenceSessionFactory.java | 20 +-
.../PersistenceSessionFactoryMetamodelRefiner.java | 4 +
.../adaptermanager/OidAdapterHashMap.java | 6 +-
.../adaptermanager/PojoAdapterHashMap.java | 6 +-
.../system/session/IsisSessionFactoryBuilder.java | 14 +-
.../system/transaction/IsisTransaction.java | 39 +-
.../system/transaction/IsisTransactionManager.java | 2 +-
.../IsisComponentProvider.java | 82 +--
.../IsisComponentProviderUsingInstallers.java | 12 +-
.../PersistenceCapableTypeFinder.java | 65 ++
.../isis/core/webapp/IsisWebAppBootstrapper.java | 4 +-
.../CreateSchemaObjectFromClassMetadata.java | 2 +-
.../datanucleus/DataNucleusLifeCycleHelper.java | 52 --
.../commands/DataNucleusCreateObjectCommand.java | 2 +-
.../commands/DataNucleusDeleteObjectCommand.java | 2 +-
.../PersistenceQueryFindAllInstancesProcessor.java | 2 +-
...sistenceQueryFindUsingApplibQueryProcessor.java | 4 +-
.../datanucleus/persistence/queries/QueryUtil.java | 4 +-
.../persistence/spi/JdoObjectIdSerializer.java | 7 +-
.../objectstore/jdo/service/RegisterEntities.java | 15 +-
.../src/main/resources/META-INF/MANIFEST.MF | 6 -
.../DummyAction.java | 3 +-
.../runtime/services/ServiceInstantiatorTest.java | 291 ++++----
.../eventbus/EventBusServiceDefaultTest.java | 22 +-
.../runtime/system/TestObjectWithCollection.java | 4 +-
core/schema/pom.xml | 9 +-
.../jaxbadapters/JodaDateTimeStringAdapter.java | 2 -
.../JodaDateTimeXMLGregorianCalendarAdapter.java | 15 +-
.../jaxbadapters/JodaLocalDateStringAdapter.java | 2 -
.../JodaLocalDateTimeStringAdapter.java | 2 -
...daLocalDateTimeXMLGregorianCalendarAdapter.java | 19 +-
.../JodaLocalDateXMLGregorianCalendarAdapter.java | 15 +-
.../jaxbadapters/JodaLocalTimeStringAdapter.java | 2 -
.../JodaLocalTimeXMLGregorianCalendarAdapter.java | 16 +-
.../isis/schema/utils/jaxbadapters/Strings.java} | 10 +-
.../utils/jaxbadapters/XmlCalendarFactory.java | 108 +++
.../resources/org/apache/isis/schema/bindings.xml | 8 +-
.../org/apache/isis/schema/chg/chg-1.1.xsd | 2 +-
.../isis/schema/cmd/{cmd-1.3.xsd => cmd-1.4.xsd} | 45 +-
.../org/apache/isis/schema/common/common-1.1.xsd | 30 +-
.../isis/schema/ixn/{ixn-1.2.xsd => ixn-1.3.xsd} | 6 +-
core/security-shiro/pom.xml | 7 +-
core/security/pom.xml | 7 +-
core/specsupport/pom.xml | 5 +
.../scenarios/ScenarioExecutionScope.java | 3 +-
.../core/specsupport/specs/CukeGlueAbstract.java | 16 +-
.../core/specsupport/specs/CukeGlueAbstract2.java | 4 +-
.../specs/CukeGlueBootstrappingAbstract.java | 10 +
core/unittestsupport/pom.xml | 8 +-
core/viewer-restfulobjects-applib/pom.xml | 7 +-
core/viewer-restfulobjects-rendering/pom.xml | 8 +-
core/viewer-restfulobjects-server/pom.xml | 7 +-
.../ExceptionMapperForRuntimeException.java | 13 +-
.../server/mappers/entity/ExceptionDetail.java | 2 +-
core/viewer-wicket-applib/pom.xml | 6 +-
core/viewer-wicket-impl/pom.xml | 6 +-
.../wicket/viewer/IsisWicketApplication.java | 13 +-
.../wicket/AuthenticatedWebSessionForIsis.java | 62 +-
.../integration/wicket/WebRequestCycleForIsis.java | 4 +-
.../ComponentFactoryRegistrarDefault.java | 33 +-
.../wicket/viewer/services/Object_clearHints.java | 5 +-
.../services/TranslationsResolverWicket.java | 2 +-
.../WicketObjectModule_bindingsStandard.java | 63 +-
...thenticatedWebSessionForIsis_Instantiation.java | 2 +-
...ageClassListDefault_RegistrationAndCaching.java | 2 +-
core/viewer-wicket-model/pom.xml | 5 +
.../viewer/wicket/model/models/ActionPrompt.java | 6 +
.../wicket/model/models/EntityCollectionModel.java | 64 +-
.../viewer/wicket/model/models/EntityModel.java | 68 +-
.../viewer/wicket/model/models/ScalarModel.java | 59 +-
.../model/models/ScalarModelWithMultiPending.java | 16 +-
.../model/models/ScalarModelWithPending.java | 20 +-
.../model/models/ToggledMementosProvider.java} | 18 +-
.../model/models/whereami/WhereAmIModel.java | 65 ++
.../models/whereami/WhereAmIModelDefault.java | 116 ++++
.../wicket/model/models/EntityModel_hintsTest.java | 2 +-
.../models/LowestCommonSuperclassClosureTest.java | 33 +-
core/viewer-wicket-ui/pom.xml | 5 +
.../ui/components/about/JarManifestModel.java | 3 +-
.../AdditionalLinksAsDropDownPanel.html | 1 +
.../entityactions/EntityActionLinkFactory.java | 8 +-
.../actionmenu/entityactions/LinkAndLabelUtil.java | 12 +-
.../actionmenu/serviceactions/CssMenuItem.java | 8 +-
.../serviceactions/ServiceActionLinkFactory.java | 7 +-
.../serviceactions/ServiceActionUtil.java | 12 +
.../actionprompt/ActionPromptModalWindow.java | 2 +
.../collection/AssociatedWithActionsHelper.java | 87 +++
.../ui/components/collection/CollectionPanel.java | 99 ++-
.../collection/bulk/BulkActionsHelper.java | 57 +-
.../collection/bulk/BulkActionsLinkFactory.java | 4 +-
.../collection/bulk/BulkActionsProvider.java | 6 +-
.../CollectionContentsAsAjaxTablePanel.java | 4 +-
.../ajaxtable/IsisAjaxFallbackDataTable.java | 5 -
.../columns/ObjectAdapterPropertyColumn.java | 14 +-
.../components/entity/fieldset/PropertyGroup.java | 31 +-
.../wicket/ui/components/layout/bs3/col/Col.java | 33 +-
.../components/layout/bs3/tabs/TabGroupPanel.java | 29 +-
.../ui/components/property/PropertyEditPanel.java | 7 +-
.../ui/components/scalars/ScalarPanelAbstract.java | 2 +-
.../components/scalars/ScalarPanelAbstract2.java | 37 +-
.../scalars/ScalarPanelSelect2Abstract.java | 2 +-
.../components/scalars/primitive/BooleanPanel.java | 2 +-
.../ui/components/scalars/uuid/UuidConverter.java | 60 ++
.../ui/components/scalars/uuid/UuidPanel.java | 59 ++
.../components/scalars/uuid/UuidPanelFactory.java} | 38 +-
.../ui/components/scalars/uuid/UuidTextField.java | 53 ++
.../StandaloneCollectionPanel.java | 42 +-
.../components/widgets/bootstrap/ModalDialog.java | 10 +
.../widgets/linkandlabel/ActionLinkFactory.java | 5 +-
.../linkandlabel/ActionLinkFactoryAbstract.java | 78 ++-
.../widgets/themepicker/ThemeChooser.java | 2 +-
.../wicket/ui/errors/ExceptionStackTracePanel.html | 1 +
.../wicket/ui/errors/ExceptionStackTracePanel.java | 20 +
.../viewer/wicket/ui/pages/bootstrap-overrides.css | 17 +
.../viewer/wicket/ui/pages/entity/EntityPage.css | 29 +
.../viewer/wicket/ui/pages/entity/EntityPage.html | 7 +-
.../viewer/wicket/ui/pages/entity/EntityPage.java | 53 +-
.../wicket/ui/panels/FormExecutorDefault.java | 2 +-
.../scalars/uuid/UuidConverterTest_roundtrip.java | 73 ++
core/webserver/pom.xml | 5 +
core/wrapper/pom.xml | 7 +-
.../java/domainapp/dom/impl/HelloWorldObject.java | 1 +
.../bdd/specglue/BootstrappingGlue.java | 16 +-
.../{RunBddSpecs.java => RunIntegBddSpecs.java} | 2 +-
.../modules/simple/dom/impl/SimpleObject.java | 3 +-
.../simple/dom/impl/SimpleObject.layout.xml | 6 +-
501 files changed, 11075 insertions(+), 4779 deletions(-)
create mode 100644 adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_associateWith.adoc
create mode 100644 adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Property_command.adoc
create mode 100644 adocs/documentation/src/main/asciidoc/guides/rgsvc/_rgsvc_application-layer-api_CommandExecutorService.adoc
create mode 100644 adocs/documentation/src/main/asciidoc/guides/ugodn/_ugodn_hints-and-tips_jdoql-and-timestamps.adoc
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/_tg_pet-clinic-extended.adoc
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/_tg_pet-clinic.adoc
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/_tg_stop-scaffolding-start-coding.adoc
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/010-01-login-page.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/010-02-home-page.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/010-03-prototyping-menu.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/010-04-simpleobjects.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/010-05-simpleobject-list.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/020-01-idea-configuration.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/020-02-idea-configuration.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/030-01-idea-configuration-updated.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/030-02-updated-app.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/040-01-idea-configuration-updated.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/050-01-list-all.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/050-02-view-pet.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/060-01-owners-menu.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/060-02-owners-list.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/060-03-pets-list.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/060-04-pet-owner-autoComplete.png
delete mode 100644 adocs/documentation/src/main/asciidoc/pages/tg/images/tutorials/pet-clinic/domain-model.png
create mode 100644 adocs/documentation/src/main/asciidoc/release-notes/_release-notes_1.16.1.adoc
copy {core/schema/src/main/resources/org/apache/isis => adocs/documentation/src/main/asciidoc}/schema/chg/chg-1.1.xsd (95%)
copy adocs/documentation/src/main/asciidoc/schema/cmd/{cmd.xsd => cmd-1.2.xsd} (95%)
copy {core/schema/src/main/resources/org/apache/isis => adocs/documentation/src/main/asciidoc}/schema/cmd/cmd-1.3.xsd (99%)
copy core/schema/src/main/resources/org/apache/isis/schema/cmd/cmd-1.3.xsd => adocs/documentation/src/main/asciidoc/schema/cmd/cmd-1.4.xsd (80%)
copy {core/schema/src/main/resources/org/apache/isis => adocs/documentation/src/main/asciidoc}/schema/common/common-1.1.xsd (99%)
copy adocs/documentation/src/main/asciidoc/schema/ixn/{ixn.xsd => ixn-1.1.xsd} (97%)
copy {core/schema/src/main/resources/org/apache/isis => adocs/documentation/src/main/asciidoc}/schema/ixn/ixn-1.2.xsd (99%)
copy core/schema/src/main/resources/org/apache/isis/schema/ixn/ixn-1.2.xsd => adocs/documentation/src/main/asciidoc/schema/ixn/ixn-1.3.xsd (97%)
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/annotation/Parent.java
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandDto.java
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/conmap/ContentMappingServiceForCommandsDto.java
copy core/applib/src/main/java/org/apache/isis/applib/{services/conmap/ContentMappingService.java => conmap/spi/CommandDtoProcessorService.java} (61%)
delete mode 100644 core/applib/src/main/java/org/apache/isis/applib/fixturescripts/StringUtil.java
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/Nullable.java => applib/src/main/java/org/apache/isis/applib/internal/_Constants.java} (53%)
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/IterableExtensions.java => applib/src/main/java/org/apache/isis/applib/internal/base/_Casts.java} (65%)
rename core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/NullSafe.java => applib/src/main/java/org/apache/isis/applib/internal/base/_NullSafe.java} (64%)
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/base/_Strings.java
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/base/_Strings_NaturalNames.java
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/base/_Strings_SplitIterator.java
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/Closure.java => applib/src/main/java/org/apache/isis/applib/internal/base/package-info.java} (74%)
copy core/applib/src/main/java/org/apache/isis/applib/{layout/Util.java => internal/compare/_Comparators.java} (52%)
rename core/{metamodel/src/main/java/org/apache/isis/core/commons/compare/SequenceCompare.java => applib/src/main/java/org/apache/isis/applib/internal/compare/_Comparators_SequenceCompare.java} (62%)
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/Closure.java => applib/src/main/java/org/apache/isis/applib/internal/compare/package-info.java} (74%)
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/Closure.java => applib/src/main/java/org/apache/isis/applib/internal/context/package-info.java} (74%)
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/exceptions/_Exceptions.java
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/Closure.java => applib/src/main/java/org/apache/isis/applib/internal/exceptions/package-info.java} (74%)
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/Closure.java => applib/src/main/java/org/apache/isis/applib/internal/package-info.java} (75%)
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Manifest.java
copy core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/Closure.java => applib/src/main/java/org/apache/isis/applib/internal/reflection/package-info.java} (74%)
copy core/applib/src/main/java/org/apache/isis/applib/services/{conmap/ContentMappingService.java => command/CommandDtoProcessor.java} (51%)
create mode 100644 core/applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForActionAbstract.java
rename core/{metamodel/src/main/java/org/apache/isis/core/commons/lang/IterableExtensions.java => applib/src/main/java/org/apache/isis/applib/services/command/CommandDtoProcessorForPropertyAbstract.java} (60%)
rename core/{metamodel/src/test/java/org/apache/isis/core/commons/lang/IterableExtensionsTest_fold.java => applib/src/main/java/org/apache/isis/applib/services/command/CommandExecutorService.java} (52%)
copy example/application/simpleapp/application/src/test/java/domainapp/application/bdd/specglue/BootstrappingGlue.java => core/applib/src/main/java/org/apache/isis/applib/services/command/CommandWithDto.java (56%)
copy core/applib/src/main/java/org/apache/isis/applib/services/exceprecog/{ExceptionRecognizerForType.java => ExceptionRecognizerForType2.java} (73%)
create mode 100644 core/applib/src/test/java/org/apache/isis/applib/internal/base/NullSafeTest.java
create mode 100644 core/applib/src/test/java/org/apache/isis/applib/internal/base/StringsTest.java
create mode 100644 core/applib/src/test/java/org/apache/isis/applib/internal/compare/ComparatorsTest.java
create mode 100644 core/applib/src/test/java/org/apache/isis/applib/services/eventbus/AbstractDomainEvent_veto_Test.java
copy core/applib/src/test/java/org/apache/isis/applib/services/exceprecog/{ExceptionRecognizerGeneralTest.java => ExceptionRecognizerForType2Test.java} (68%)
create mode 100644 core/applib/src/test/java/org/apache/isis/schema/utils/CommandDtoUtils_Test.java
rename core/applib/src/test/java/org/apache/isis/schema/utils/{CommonDtoUtilsTest.java => CommonDtoUtils_Test.java} (64%)
rename core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/jaxb/{JaxbXmlJavaTypeAdapterFacetFactory.java => XmlJavaTypeAdapterFacetFactory.java} (92%)
copy core/metamodel/src/main/java/org/apache/isis/core/{commons/lang/Closure.java => metamodel/facets/jaxb/XmlTransientFacet.java} (78%)
copy core/metamodel/src/main/java/org/apache/isis/core/{commons/lang/Nullable.java => metamodel/facets/jaxb/XmlTransientFacetAbstract.java} (62%)
rename core/metamodel/src/main/java/org/apache/isis/core/{commons/lang/Closure.java => metamodel/facets/jaxb/XmlTransientFacetDefault.java} (74%)
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/MixinInterceptor.java
copy core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/{actions/action/command/CommandFacetForActionAnnotationAsConfigured.java => members/order/annotprop/MemberOrderFacetForActionAnnotation.java} (63%)
copy core/metamodel/src/main/java/org/apache/isis/core/{commons/lang/Nullable.java => metamodel/facets/object/navparent/NavigableParentFacet.java} (56%)
copy core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/{actions/action/command/CommandFacetForActionAnnotationAsConfigured.java => object/navparent/NavigableParentFacetAbstract.java} (61%)
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactory.java
copy core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/{actions/notcontributed/derived/NotContributedFacetDerivedFromMixinFacet.java => object/navparent/method/NavigableParentFacetMethod.java} (52%)
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/navparent/method/NavigableParentFacetMethodFactory.java
copy core/metamodel/src/main/java/org/apache/isis/core/{commons/lang/Nullable.java => metamodel/facets/object/objectspecid/classname/ObjectSpecIdFacetOnStandaloneList.java} (61%)
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionCollectionParameterDefaultsAndChoicesPostProcessor.java
copy core/metamodel/src/main/java/org/apache/isis/core/metamodel/{facets/param/choices/enums/ActionParameterChoicesFacetDerivedFromChoicesFacet.java => postprocessors/param/ActionParameterChoicesFacetFromParentedCollection.java} (53%)
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromParentedCollection.java
copy core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/{ProgrammingModel.java => FacetFactorySet.java} (92%)
copy core/{applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3ClearFix.java => metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/ObjectSpecificationPostProcessor.java} (78%)
copy core/{applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3ClearFix.java => metamodel/src/main/java/org/apache/isis/core/metamodel/progmodel/PostProcessorSet.java} (82%)
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/postprocessor/PostProcessor.java
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckModuleExtent.java
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/validator/MetaModelValidatorToCheckObjectSpecIdsUnique.java
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/pchain/ParentChain.java
create mode 100644 core/metamodel/src/main/java/org/apache/isis/core/metamodel/util/pchain/ParentChainDefault.java
create mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetMethodFactoryTest.java
create mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetMethodTest.java
create mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentAnnotationFacetFactoryTest.java
create mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/annotation/NavigableParentTestSamples.java
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.css => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo.java} (91%)
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo.layout.xml} (59%)
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.css => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo2.java} (91%)
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo2.layout.fallback.xml} (59%)
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.css => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo3.java} (91%)
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo3.layout.fallback.xml} (59%)
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.html => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo3.layout.xml} (59%)
copy core/{viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.css => metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/Foo4.java} (91%)
create mode 100644 core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/grid/GridLoaderServiceDefault_resourceNameFor_Test.java
rename core/metamodel/src/{main/java/org/apache/isis/core/commons/lang/Nullable.java => test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstractTest.java} (54%)
create mode 100644 core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandExecutionAbstract.java
create mode 100644 core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/CommandExecutorServiceDefault.java
create mode 100644 core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java
delete mode 100644 core/runtime/src/main/resources/META-INF/MANIFEST.MF
copy core/{applib/src/main/java/org/apache/isis/applib/layout/grid/bootstrap3/BS3ClearFix.java => schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/Strings.java} (84%)
create mode 100644 core/schema/src/main/java/org/apache/isis/schema/utils/jaxbadapters/XmlCalendarFactory.java
rename core/schema/src/main/resources/org/apache/isis/schema/cmd/{cmd-1.3.xsd => cmd-1.4.xsd} (76%)
rename core/schema/src/main/resources/org/apache/isis/schema/ixn/{ixn-1.2.xsd => ixn-1.3.xsd} (97%)
copy core/{applib/src/main/java/org/apache/isis/applib/services/conmap/ContentMappingService.java => viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ToggledMementosProvider.java} (69%)
create mode 100644 core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModel.java
create mode 100644 core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/whereami/WhereAmIModelDefault.java
create mode 100644 core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/AssociatedWithActionsHelper.java
create mode 100644 core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidConverter.java
create mode 100644 core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidPanel.java
copy core/{applib/src/main/java/org/apache/isis/applib/services/appfeat/ApplicationMemberType.java => viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidPanelFactory.java} (53%)
create mode 100644 core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidTextField.java
create mode 100644 core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/components/scalars/uuid/UuidConverterTest_roundtrip.java
rename example/application/simpleapp/application/src/test/java/domainapp/application/bdd/specs/{RunBddSpecs.java => RunIntegBddSpecs.java} (97%)
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.
[isis] 01/01: ISIS-1779 rebase jax-rs-2 on top of 2.0.0-M2
Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch ISIS-1779-jax-rs-2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 1c9e21f898fb4bac431da4c6c6ef4f2574e75d9d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 19 16:51:41 2018 +0100
ISIS-1779 rebase jax-rs-2 on top of 2.0.0-M2
---
.../isis/applib/internal/context/_Context.java | 29 +++++++++-
.../isis/applib/internal/reflection/_Reflect.java | 5 +-
.../internal/reflection/_Reflect_Discovery.java | 25 +--------
.../apache/isis/applib/query/QueryAbstract.java | 4 +-
.../applib/services/hsqldb/HsqlDbManagerMenu.java | 3 +-
.../apache/isis/schema/utils/CommonDtoUtils.java | 51 +++++++----------
.../isis/core/commons/encoding/FieldType.java | 3 +-
.../isis/core/commons/factory/InstanceUtil.java | 9 +--
.../apache/isis/core/commons/lang/ClassUtil.java | 6 +-
.../isis/core/commons/lang/ResourceUtil.java | 13 ++++-
...ResourceStreamSourceContextLoaderClassPath.java | 3 +-
core/pom.xml | 6 +-
.../core/runtime/services/ServiceInstantiator.java | 4 +-
.../core/runtime/system/context/IsisContext.java | 15 ++---
.../persistence/PersistenceSessionFactory.java | 10 +---
.../IsisComponentProvider.java | 33 +++++------
.../PersistenceCapableTypeFinder.java | 65 ++++++++++++++++++++++
.../datanucleus/DataNucleusLifeCycleHelper.java | 52 -----------------
.../persistence/spi/JdoObjectIdSerializer.java | 7 ++-
.../scenarios/ScenarioExecutionScope.java | 3 +-
.../wicket/viewer/IsisWicketApplication.java | 5 +-
.../wicket/AuthenticatedWebSessionForIsis.java | 62 ++++++++++++++-------
.../WicketObjectModule_bindingsStandard.java | 63 +++++++++++++--------
...thenticatedWebSessionForIsis_Instantiation.java | 2 +-
...ageClassListDefault_RegistrationAndCaching.java | 2 +-
.../ui/components/about/JarManifestModel.java | 3 +-
26 files changed, 269 insertions(+), 214 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
index adb6d01..589805a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/context/_Context.java
@@ -24,6 +24,8 @@ import java.util.Map;
import java.util.Objects;
import java.util.function.Supplier;
+import javax.validation.constraints.NotNull;
+
import org.apache.isis.applib.internal.base._Casts;
/**
@@ -137,10 +139,35 @@ public final class _Context {
* Will be set by the framework's bootstrapping mechanism if required.
* @return the default class loader
*/
- public static ClassLoader getDefaultClassLoader() {
+ public static @NotNull ClassLoader getDefaultClassLoader() {
return getOrElse(ClassLoader.class, FALLBACK_CLASSLOADER);
}
+
+ // -- CLASS LOADING SHORTCUTS
+
+ /**
+ * Uses the frameworks default-ClassLoader to load a class by name.
+ * @param className
+ * @return class by name
+ * @throws ClassNotFoundException
+ */
+ public static Class<?> loadClass(String className) throws ClassNotFoundException{
+ return getDefaultClassLoader().loadClass(className);
+ }
+ /**
+ * Uses the frameworks default-ClassLoader to load and initialize a class by name.<br/>
+ * <b>Initialize</b> the class, that is, all static initializers will be run. <br/>
+ * (For details on initialize see Section 12.4 of The Java Language Specification)
+ * @param className
+ * @return
+ * @throws ClassNotFoundException
+ */
+ public static Class<?> loadClassAndInitialize(String className) throws ClassNotFoundException{
+ return Class.forName(className, true, getDefaultClassLoader());
+ }
+
+
// -- HELPER
private static String toKey(Class<?> type) {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java b/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java
index e0b213d..20d63e5 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect.java
@@ -23,11 +23,10 @@ import java.lang.annotation.Annotation;
import java.util.List;
import java.util.Set;
+import org.apache.isis.applib.internal.context._Context;
import org.reflections.scanners.SubTypesScanner;
import org.reflections.util.ClasspathHelper;
-import org.apache.isis.applib.internal.context._Context;
-
/**
* <h1>- internal use only -</h1>
* <p>
@@ -56,8 +55,6 @@ public final class _Reflect {
//TODO missing java-doc
public <T> Set<Class<? extends T>> getSubTypesOf(Class<T> type);
- public Set<Class<?>> findPersistenceCapableTypes();
-
}
//TODO missing java-doc
diff --git a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java b/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java
index 5db08e5..fe7db50 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/internal/reflection/_Reflect_Discovery.java
@@ -8,15 +8,11 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import javax.jdo.annotations.PersistenceCapable;
import javax.validation.constraints.NotNull;
-import com.google.common.collect.Sets;
-
-import org.reflections.Reflections;
-
import org.apache.isis.applib.internal.base._NullSafe;
import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
+import org.reflections.Reflections;
/**
*
@@ -84,24 +80,5 @@ class _Reflect_Discovery implements _Reflect.Discovery {
.filter(_NullSafe::isPresent);
}
- public Set<Class<?>> findPersistenceCapableTypes() {
-
- Set<Class<?>> pcSet = Sets.newLinkedHashSet();
-
- Set<Class<?>> persistenceCapables = reflections.getTypesAnnotatedWith(PersistenceCapable.class);
- persistenceCapables.stream()
- .filter(x -> !x.isAnnotation())
- .forEach(pcSet::add);
-
- Stream<Class<? extends Annotation>> pcMetaAnnotStream =
- (Stream)persistenceCapables.stream().filter(x -> x.isAnnotation());
- pcMetaAnnotStream.map(metaAnnot -> reflections.getTypesAnnotatedWith(metaAnnot).stream())
- .flatMap(x -> x)
- .filter(x -> !x.isAnnotation())
- .forEach(pcSet::add);
-
- return pcSet;
- }
-
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java b/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java
index 7c2497e..d16f908 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/query/QueryAbstract.java
@@ -19,6 +19,8 @@
package org.apache.isis.applib.query;
+import org.apache.isis.applib.internal.context._Context;
+
/**
* Convenience adapter class for {@link Query}.
*
@@ -67,7 +69,7 @@ public abstract class QueryAbstract<T> implements Query<T> {
public Class<T> getResultType() {
if (resultType == null) {
try {
- resultType = (Class<T>) Thread.currentThread().getContextClassLoader().loadClass(resultTypeName);
+ resultType = (Class<T>) _Context.loadClass(resultTypeName);
} catch (final ClassNotFoundException e) {
throw new IllegalStateException(e);
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java b/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java
index 48843ae..bc0586f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/hsqldb/HsqlDbManagerMenu.java
@@ -34,6 +34,7 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.RestrictTo;
import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.applib.internal.context._Context;
@DomainService(
nature = NatureOfService.VIEW_MENU_ONLY,
@@ -73,7 +74,7 @@ public class HsqlDbManagerMenu {
public boolean hideHsqlDbManager() {
try {
// hsqldb is configured as optional in the applib's pom.xml
- Thread.currentThread().getContextClassLoader().loadClass(DatabaseManagerSwing.class.getCanonicalName());
+ _Context.loadClass(DatabaseManagerSwing.class.getCanonicalName());
} catch (ClassNotFoundException e) {
return true;
}
diff --git a/core/applib/src/main/java/org/apache/isis/schema/utils/CommonDtoUtils.java b/core/applib/src/main/java/org/apache/isis/schema/utils/CommonDtoUtils.java
index d3f0159..1ba83ab 100644
--- a/core/applib/src/main/java/org/apache/isis/schema/utils/CommonDtoUtils.java
+++ b/core/applib/src/main/java/org/apache/isis/schema/utils/CommonDtoUtils.java
@@ -22,19 +22,8 @@ import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.base.Strings;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableMap;
-
-import org.joda.time.DateTime;
-import org.joda.time.LocalDate;
-import org.joda.time.LocalDateTime;
-import org.joda.time.LocalTime;
import org.apache.isis.applib.internal.base._Casts;
+import org.apache.isis.applib.internal.context._Context;
import org.apache.isis.applib.internal.exceptions._Exceptions;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
@@ -55,6 +44,18 @@ import org.apache.isis.schema.utils.jaxbadapters.JodaDateTimeXMLGregorianCalenda
import org.apache.isis.schema.utils.jaxbadapters.JodaLocalDateTimeXMLGregorianCalendarAdapter;
import org.apache.isis.schema.utils.jaxbadapters.JodaLocalDateXMLGregorianCalendarAdapter;
import org.apache.isis.schema.utils.jaxbadapters.JodaLocalTimeXMLGregorianCalendarAdapter;
+import org.joda.time.DateTime;
+import org.joda.time.LocalDate;
+import org.joda.time.LocalDateTime;
+import org.joda.time.LocalTime;
+
+import com.google.common.base.Function;
+import com.google.common.base.Objects;
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.base.Strings;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableMap;
public final class CommonDtoUtils {
@@ -374,28 +375,18 @@ public final class CommonDtoUtils {
private static <T> Class<T> loadClassElseThrow(final String className) {
try {
- return _Casts.uncheckedCast(loadClass(className));
+ return _Casts.uncheckedCast(_Context.loadClassAndInitialize(className));
} catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
+
+ // [ahuber] fallback to pre 2.0.0 behavior, not sure if needed
+ try {
+ return _Casts.uncheckedCast(Class.forName(className));
+ } catch (ClassNotFoundException e1) {
+ throw new RuntimeException(e);
+ }
}
}
- private static Class<?> loadClass(String className) throws ClassNotFoundException {
- ClassLoader ccl = Thread.currentThread().getContextClassLoader();
- if(ccl == null) {
- return loadClass(className, (ClassLoader)null);
- } else {
- try {
- return loadClass(className, ccl);
- } catch (ClassNotFoundException var3) {
- return loadClass(className, (ClassLoader)null);
- }
- }
- }
-
- private static Class<?> loadClass(String className, ClassLoader classLoader) throws ClassNotFoundException {
- return classLoader == null?Class.forName(className):Class.forName(className, true, classLoader);
- }
//endregion
//region > newValueWithTypeDto
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java
index d834b18..9309746 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/encoding/FieldType.java
@@ -31,6 +31,7 @@ import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
+import org.apache.isis.applib.internal.context._Context;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -969,7 +970,7 @@ public abstract class FieldType<T> {
Class<?> cls;
try {
// ...obtain constructor
- cls = Thread.currentThread().getContextClassLoader().loadClass(className);
+ cls = _Context.loadClass(className);
final Constructor<?> constructor = cls.getConstructor(new Class[] { DataInputExtended.class });
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/factory/InstanceUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/factory/InstanceUtil.java
index e4f04ae..e581d56 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/factory/InstanceUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/factory/InstanceUtil.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.commons.factory;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
+import org.apache.isis.applib.internal.context._Context;
import org.apache.isis.core.commons.ensure.Assert;
import org.apache.isis.core.commons.lang.ObjectExtensions;
@@ -54,7 +55,7 @@ public final class InstanceUtil {
Class<? extends T> defaultType = null;
if (defaultTypeName != null) {
try {
- defaultType = ObjectExtensions.asT(Thread.currentThread().getContextClassLoader().loadClass(defaultTypeName));
+ defaultType = ObjectExtensions.asT(_Context.loadClass(defaultTypeName));
if (defaultType == null) {
throw new InstanceCreationClassException(String.format("Failed to load default type '%s'", defaultTypeName));
}
@@ -76,7 +77,7 @@ public final class InstanceUtil {
if (defaultTypeName != null) {
defaultType = loadClass(defaultTypeName, requiredType);
try {
- defaultType = ObjectExtensions.asT(Thread.currentThread().getContextClassLoader().loadClass(defaultTypeName));
+ defaultType = ObjectExtensions.asT(_Context.loadClass(defaultTypeName));
if (defaultType == null) {
throw new InstanceCreationClassException(String.format("Failed to load default type '%s'", defaultTypeName));
}
@@ -96,7 +97,7 @@ public final class InstanceUtil {
Object... args) {
Assert.assertNotNull("Class to instantiate must be specified", className);
try {
- final Class<?> cls = Thread.currentThread().getContextClassLoader().loadClass(className);
+ final Class<?> cls = _Context.loadClass(className);
if (cls == null) {
throw new InstanceCreationClassException(String.format("Failed to load class '%s'", className));
}
@@ -149,7 +150,7 @@ public final class InstanceUtil {
public static Class<?> loadClass(final String className) {
Assert.assertNotNull("Class to instantiate must be specified", className);
try {
- return Thread.currentThread().getContextClassLoader().loadClass(className);
+ return _Context.loadClass(className);
} catch (final ClassNotFoundException e) {
throw new UnavailableClassException(String.format("The type '%s' cannot be found", className));
} catch (final NoClassDefFoundError e) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java
index 9bd70b5..1c1f75f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ClassUtil.java
@@ -24,6 +24,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.isis.applib.internal.context._Context;
+
import com.google.common.collect.Maps;
public final class ClassUtil {
@@ -149,7 +151,7 @@ public final class ClassUtil {
return primitiveCls;
}
try {
- return Thread.currentThread().getContextClassLoader().loadClass(fullName);
+ return _Context.loadClass(fullName);
} catch (final ClassNotFoundException e) {
throw new RuntimeException(e);
}
@@ -160,7 +162,7 @@ public final class ClassUtil {
return null;
}
try {
- return Thread.currentThread().getContextClassLoader().loadClass(fullName);
+ return _Context.loadClass(fullName);
} catch (final ClassNotFoundException e) {
return null;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ResourceUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ResourceUtil.java
index 7e5fc77..276adcf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ResourceUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/lang/ResourceUtil.java
@@ -21,6 +21,8 @@ package org.apache.isis.core.commons.lang;
import java.io.InputStream;
+import org.apache.isis.applib.internal.context._Context;
+
/**
* Adapted from Ibatis Common, now with some additional guava stuff.
*/
@@ -29,10 +31,17 @@ public class ResourceUtil {
private ResourceUtil(){}
public static InputStream getResourceAsStream(final String resource) {
+
+ // try Isis's classloader
+ ClassLoader classLoader = _Context.getDefaultClassLoader();
+ InputStream is = classLoader.getResourceAsStream(resource);
+ if (is != null) {
+ return is;
+ }
// try thread's classloader
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- InputStream is = classLoader.getResourceAsStream(resource);
+ classLoader = Thread.currentThread().getContextClassLoader();
+ is = classLoader.getResourceAsStream(resource);
if (is != null) {
return is;
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceContextLoaderClassPath.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceContextLoaderClassPath.java
index b92a82a..2cad737 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceContextLoaderClassPath.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceContextLoaderClassPath.java
@@ -21,6 +21,7 @@ package org.apache.isis.core.commons.resource;
import java.io.InputStream;
+import org.apache.isis.applib.internal.context._Context;
import org.apache.isis.core.commons.lang.StringExtensions;
/**
@@ -49,7 +50,7 @@ public class ResourceStreamSourceContextLoaderClassPath extends ResourceStreamSo
@Override
protected InputStream doReadResource(final String resourcePath) {
- final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ final ClassLoader classLoader = _Context.getDefaultClassLoader();
final String path = StringExtensions.combinePath(prefix, resourcePath);
return classLoader.getResourceAsStream(path);
}
diff --git a/core/pom.xml b/core/pom.xml
index ab17458..56215ae 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -90,10 +90,10 @@
<!-- Datanucleus Objectstore -->
<jdo-api.version>3.2.0-m7</jdo-api.version>
- <datanucleus-core.version>5.1.5</datanucleus-core.version>
+ <datanucleus-core.version>5.1.6</datanucleus-core.version>
<datanucleus-api-jdo.version>5.1.4</datanucleus-api-jdo.version>
- <datanucleus-jdo-query.version>5.0.2</datanucleus-jdo-query.version>
- <datanucleus-rdbms.version>5.1.5</datanucleus-rdbms.version>
+ <datanucleus-jdo-query.version>5.0.4</datanucleus-jdo-query.version>
+ <datanucleus-rdbms.version>5.1.6</datanucleus-rdbms.version>
<datanucleus-jodatime.version>5.1.0-release</datanucleus-jodatime.version>
<!--
ISIS-1288: seen integration tests to fail;
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
index f48bdcf..e002a81 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java
@@ -33,7 +33,7 @@ import com.google.common.collect.Sets;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
+import org.apache.isis.applib.internal.context._Context;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.factory.InstanceCreationClassException;
@@ -111,7 +111,7 @@ public final class ServiceInstantiator {
private Class<?> loadClass(final String className) {
try {
LOG.debug("loading class for service: {}", className);
- return IsisContext.getClassLoader().loadClass(className);
+ return _Context.loadClassAndInitialize(className);
} catch (final ClassNotFoundException ex) {
throw new InitialisationException(String.format("Cannot find class '%s' for service", className));
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
index 546dcc4..a213323 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
@@ -59,10 +59,6 @@ public interface IsisContext {
public static ClassLoader getClassLoader() {
return _Context.getDefaultClassLoader();
}
- public static void setClassLoader(ClassLoader classLoader) {
- _Context.putSingleton(ClassLoader.class, classLoader);
- }
-
// -- LIFE-CYCLING
@@ -72,6 +68,7 @@ public interface IsisContext {
*/
public static void clear() {
_Context.clear();
+ resetLogging();
}
// -- DEPRECATIONS
@@ -90,11 +87,15 @@ public interface IsisContext {
/**
* TODO [andi-huber] not sure if required, initial idea was to force log4j
- * re-configuration on an undeploy/deploy cycle
+ * to re-configure on an undeploy/deploy cycle
*/
static void resetLogging() {
- org.apache.log4j.Logger.getRootLogger().removeAllAppenders();
- BasicConfigurator.resetConfiguration();
+ try {
+ BasicConfigurator.resetConfiguration();
+ org.apache.log4j.Logger.getRootLogger().removeAllAppenders();
+ } catch (Exception e) {
+ // at least we tried
+ }
}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
index e9565f8..b3026da 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
@@ -168,15 +168,7 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
*/
@Programmatic
public final void shutdown() {
- if(!isInitialized()) {
- return;
- }
-
- //XXX ISIS-1756 purge any DataNucleus State
- if(applicationComponents != null) {
- // applicationComponents.shutdown();
- applicationComponents = null;
- }
+ applicationComponents = null;
}
/**
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
index 7d9322b..9b2936a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/IsisComponentProvider.java
@@ -23,17 +23,9 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.stream.Collectors;
import javax.annotation.Nullable;
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-
import org.apache.isis.applib.AppManifest;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.DomainService;
@@ -64,6 +56,13 @@ import org.apache.isis.objectstore.jdo.service.RegisterEntities;
import org.apache.isis.progmodels.dflt.JavaReflectorHelper;
import org.apache.isis.progmodels.dflt.ProgrammingModelFacetsJava5;
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
/**
*
*/
@@ -137,23 +136,19 @@ public abstract class IsisComponentProvider {
final Discovery discovery = _Reflect.discover(moduleAndFrameworkPackages);
final Set<Class<?>> domainServiceTypes = discovery.getTypesAnnotatedWith(DomainService.class);
- final Set<Class<?>> persistenceCapableTypes = discovery.findPersistenceCapableTypes();
+ final Set<Class<?>> persistenceCapableTypes = PersistenceCapableTypeFinder.find(discovery);
final Set<Class<? extends FixtureScript>> fixtureScriptTypes = discovery.getSubTypesOf(FixtureScript.class);
final Set<Class<?>> mixinTypes = Sets.newHashSet();
mixinTypes.addAll(discovery.getTypesAnnotatedWith(Mixin.class));
final Set<Class<?>> domainObjectTypes = discovery.getTypesAnnotatedWith(DomainObject.class);
- mixinTypes.addAll(
- domainObjectTypes.stream().filter(input -> {
- if (input == null) {
- return false;
- }
- final DomainObject annotation = input.getAnnotation(DomainObject.class);
- return annotation.nature() == Nature.MIXIN;
- }).collect(Collectors.toList())
- );
-
+ domainObjectTypes.stream()
+ .filter(input -> {
+ final DomainObject annotation = input.getAnnotation(DomainObject.class);
+ return annotation.nature() == Nature.MIXIN;
+ })
+ .forEach(mixinTypes::add);
// add in any explicitly registered services...
domainServiceTypes.addAll(appManifest.getAdditionalServices());
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java
new file mode 100644
index 0000000..1fbf533
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/systemusinginstallers/PersistenceCapableTypeFinder.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.isis.core.runtime.systemusinginstallers;
+
+import java.lang.annotation.Annotation;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+import javax.jdo.annotations.PersistenceCapable;
+
+import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
+
+/**
+ *
+ * Package private helper class. Finds PersistenceCapable types.
+ *
+ */
+class PersistenceCapableTypeFinder {
+
+ @SuppressWarnings("unchecked")
+ static Set<Class<?>> find(Discovery discovery) {
+
+ final Set<Class<?>> types = new LinkedHashSet<>();
+
+ discovery.getTypesAnnotatedWith(PersistenceCapable.class).stream()
+ .forEach(type->{
+
+ if(type.isAnnotation()) {
+
+ // We have an annotation, that is annotated with @PersistenceCapable,
+ // this requires special treatment:
+ // Search for any classes annotated with this (meta-)annotation.
+
+ discovery.getTypesAnnotatedWith((Class<? extends Annotation>) type).stream()
+ .filter(x->!x.isAnnotation())
+ .forEach(types::add);
+
+ } else {
+
+ types.add(type);
+
+ }
+ });
+
+ return types;
+ }
+
+}
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusLifeCycleHelper.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusLifeCycleHelper.java
index 398c30f..4547a49 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusLifeCycleHelper.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusLifeCycleHelper.java
@@ -49,29 +49,6 @@ public class DataNucleusLifeCycleHelper {
try {
final ClassLoader cl = IsisContext.getClassLoader();
-
-// XXX not needed according to https://github.com/datanucleus/datanucleus-core/issues/272
-//
-// if(persistenceManagerFactory instanceof JDOPersistenceManagerFactory) {
-//
-// final JDOPersistenceManagerFactory jdoPMF =
-// (JDOPersistenceManagerFactory) persistenceManagerFactory;
-// final PersistenceNucleusContext nucleusContext = jdoPMF.getNucleusContext();
-// final AbstractStoreManager storeManager =
-// (AbstractStoreManager)nucleusContext.getStoreManager();
-//
-//
-// persistenceManagerFactory.getManagedClasses()
-// .forEach(clazz->{
-// final ClassLoaderResolver clr = nucleusContext.getClassLoaderResolver(cl);
-//
-// // Un-manage from the store
-// storeManager.unmanageClass(clr, clazz.getName(), false);
-//
-// // Unload the meta-data for this class
-// nucleusContext.getMetaDataManager().unloadMetaDataForClass(clazz.getName());
-// });
-// }
persistenceManagerFactory.close();
@@ -84,35 +61,6 @@ public class DataNucleusLifeCycleHelper {
}
}
-
-
- // -- LOW LEVEL REFLECTION
-
- // TODO remove once DN v5.1.5 is released
- private final static MethodHandle getRegisteredClassesMH;
- static {
- MethodHandle mh;
- try {
- Field registeredClasses = EnhancementHelper.class.getDeclaredField("registeredClasses");
- registeredClasses.setAccessible(true);
- mh = MethodHandles.lookup().unreflectGetter(registeredClasses);
- registeredClasses.setAccessible(false);
- } catch (Exception e) {
- mh = null;
- e.printStackTrace();
- }
- getRegisteredClassesMH = mh;
- }
-
- // TODO remove once DN v5.1.5 is released
- private static void visitDNRegisteredClasses(Consumer<Map<Class<?>, ?>> visitor){
- try {
- visitor.accept( (Map<Class<?>, ?>) getRegisteredClassesMH.invoke() );
- } catch (Throwable e) {
- LOG.warn("Failed to access DataNucleus' EnhancementHelper via reflection.", e);
- }
- }
-
}
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/JdoObjectIdSerializer.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/JdoObjectIdSerializer.java
index ebb4d40..e185908 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/JdoObjectIdSerializer.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/spi/JdoObjectIdSerializer.java
@@ -25,13 +25,15 @@ import java.math.BigInteger;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
+
import javax.jdo.annotations.IdentityType;
import javax.jdo.identity.ByteIdentity;
import javax.jdo.identity.IntIdentity;
import javax.jdo.identity.LongIdentity;
import javax.jdo.identity.ObjectIdentity;
import javax.jdo.identity.StringIdentity;
-import org.datanucleus.identity.DatastoreId;
+
+import org.apache.isis.applib.internal.context._Context;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -39,6 +41,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
+import org.datanucleus.identity.DatastoreId;
public final class JdoObjectIdSerializer {
@@ -164,7 +167,7 @@ public final class JdoObjectIdSerializer {
final String clsName = distinguisher;
try {
- final Class<?> cls = Thread.currentThread().getContextClassLoader().loadClass(clsName);
+ final Class<?> cls = _Context.loadClass(clsName);
final Constructor<?> cons = cls.getConstructor(String.class);
final Object dnOid = cons.newInstance(keyStr);
return dnOid.toString();
diff --git a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecutionScope.java b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecutionScope.java
index 0b28cf4..42a3e54 100644
--- a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecutionScope.java
+++ b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecutionScope.java
@@ -16,6 +16,7 @@
*/
package org.apache.isis.core.specsupport.scenarios;
+import org.apache.isis.applib.internal.context._Context;
/**
* The scope at which the specification will run; acts as a factory to create
@@ -39,7 +40,7 @@ public class ScenarioExecutionScope {
public ScenarioExecutionScope(String scenarioExecutionClassName) {
try {
this.scenarioExecutionClass = (Class<? extends ScenarioExecution>)
- Thread.currentThread().getContextClassLoader().loadClass(scenarioExecutionClassName);
+ _Context.loadClass(scenarioExecutionClassName);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
index 9114767..ecf8d4c 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java
@@ -30,6 +30,7 @@ import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
+import org.apache.isis.applib.internal.context._Context;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationDefault;
@@ -334,7 +335,7 @@ public class IsisWicketApplication
try {
super.init();
- IsisContext.setClassLoader(this.getClass().getClassLoader());
+ _Context.putSingleton(ClassLoader.class, this.getClass().getClassLoader());
futures = startBackgroundInitializationThreads();
@@ -864,7 +865,7 @@ public class IsisWicketApplication
}
getServletContext().setAttribute(WebAppConstants.ISIS_SESSION_FACTORY, null);
super.onDestroy();
- IsisContext.destroy();
+ IsisContext.clear();
} catch(final RuntimeException ex) {
// symmetry with #init()
LOG.error("Failed to destroy", ex);
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
index d3470db..7c1fd0c 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/AuthenticatedWebSessionForIsis.java
@@ -22,11 +22,7 @@ package org.apache.isis.viewer.wicket.viewer.integration.wicket;
import java.util.Arrays;
import java.util.List;
-import org.apache.wicket.Session;
-import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
-import org.apache.wicket.authroles.authorization.strategies.role.Roles;
-import org.apache.wicket.request.Request;
-import org.apache.wicket.request.cycle.RequestCycle;
+import javax.validation.constraints.NotNull;
import org.apache.isis.applib.clock.Clock;
import org.apache.isis.applib.services.session.SessionLoggingService;
@@ -40,6 +36,11 @@ import org.apache.isis.viewer.wicket.model.models.BookmarkedPagesModel;
import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModel;
import org.apache.isis.viewer.wicket.ui.components.widgets.breadcrumbs.BreadcrumbModelProvider;
import org.apache.isis.viewer.wicket.ui.pages.BookmarkedPagesModelProvider;
+import org.apache.wicket.Session;
+import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
+import org.apache.wicket.authroles.authorization.strategies.role.Roles;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.cycle.RequestCycle;
/**
* Viewer-specific implementation of {@link AuthenticatedWebSession}, which
@@ -169,21 +170,35 @@ public class AuthenticatedWebSessionForIsis extends AuthenticatedWebSession impl
final SessionLoggingService.Type type,
final String username,
final SessionLoggingService.CausedBy causedBy) {
+
+
+ final IsisSessionFactory isisSessionFactory = getIsisSessionFactoryIfAny();
final SessionLoggingService sessionLoggingService = getSessionLoggingService();
- if (sessionLoggingService != null) {
- getIsisSessionFactory().doInSession(new Runnable() {
- @Override
- public void run() {
- // use hashcode as session identifier, to avoid re-binding http sessions if using Session#getId()
- int sessionHashCode = System.identityHashCode(AuthenticatedWebSessionForIsis.this);
- sessionLoggingService.log(type, username, Clock.getTimeAsDateTime().toDate(), causedBy, Integer.toString(sessionHashCode));
- }
- });
- }
+
+ final Runnable loggingTask = ()->{
+ // use hashcode as session identifier, to avoid re-binding http sessions if using Session#getId()
+ int sessionHashCode = System.identityHashCode(AuthenticatedWebSessionForIsis.this);
+ sessionLoggingService.log(type, username, Clock.getTimeAsDateTime().toDate(), causedBy, Integer.toString(sessionHashCode));
+ };
+
+ if(isisSessionFactory!=null) {
+ isisSessionFactory.doInSession(loggingTask);
+ } else {
+ loggingTask.run();
+ }
+
}
- protected SessionLoggingService getSessionLoggingService() {
- return getIsisSessionFactory().getServicesInjector().lookupService(SessionLoggingService.class);
+ protected @NotNull SessionLoggingService getSessionLoggingService() {
+ try {
+ final SessionLoggingService service = getIsisSessionFactory().getServicesInjector()
+ .lookupService(SessionLoggingService.class);
+ return (service!=null) ? service : new SessionLoggingService.Stderr();
+ } catch (Exception e) {
+ // fallback to System.err
+ return new SessionLoggingService.Stderr();
+ }
+
}
@Override
@@ -191,11 +206,20 @@ public class AuthenticatedWebSessionForIsis extends AuthenticatedWebSession impl
// do nothing here because this will lead to problems with Shiro
// see https://issues.apache.org/jira/browse/ISIS-1018
}
+
+ // -- HELPER
-
- IsisSessionFactory getIsisSessionFactory() {
+ private IsisSessionFactory getIsisSessionFactory() {
return IsisContext.getSessionFactory();
}
+
+ private IsisSessionFactory getIsisSessionFactoryIfAny() {
+ try {
+ return getIsisSessionFactory();
+ } catch (Exception e) {
+ return null;
+ }
+ }
}
diff --git a/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/WicketObjectModule_bindingsStandard.java b/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/WicketObjectModule_bindingsStandard.java
index 6121101..d9cb9e3 100644
--- a/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/WicketObjectModule_bindingsStandard.java
+++ b/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/WicketObjectModule_bindingsStandard.java
@@ -26,6 +26,7 @@ import static org.junit.Assert.assertThat;
import java.util.Arrays;
import java.util.Collection;
+import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
@@ -34,7 +35,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
-
+import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistrar;
import org.apache.isis.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
import org.apache.isis.viewer.wicket.ui.pages.PageClassList;
@@ -47,32 +49,45 @@ import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassRegistryDe
@RunWith(Parameterized.class)
public class WicketObjectModule_bindingsStandard {
- private IsisWicketModule wicketObjectsModule;
- private Injector injector;
- private final Class<?> from;
- private final Class<?> to;
+ private IsisWicketModule wicketObjectsModule;
+ private Injector injector;
+ private final Class<?> from;
+ private final Class<?> to;
+
+ @Parameters
+ public static Collection<Object[]> params() {
+ return Arrays.asList(new Object[][] {
+ { ComponentFactoryRegistrar.class, ComponentFactoryRegistrarDefault.class },
+ { ComponentFactoryRegistry.class, ComponentFactoryRegistryDefault.class },
+ { PageClassList.class, PageClassListDefault.class },
+ { PageClassRegistry.class, PageClassRegistryDefault.class },
+ });
+ }
+
+ public WicketObjectModule_bindingsStandard(final Class<?> from, final Class<?> to) {
+ this.from = from;
+ this.to = to;
+ }
- @Parameters
- public static Collection<Object[]> params() {
- return Arrays.asList(new Object[][] { { ComponentFactoryRegistrar.class, ComponentFactoryRegistrarDefault.class }, { ComponentFactoryRegistry.class, ComponentFactoryRegistryDefault.class }, { PageClassList.class, PageClassListDefault.class },
- { PageClassRegistry.class, PageClassRegistryDefault.class }, });
- }
+ @Before
+ public void setUp() throws Exception {
+ wicketObjectsModule = new IsisWicketModule();
+ injector = Guice.createInjector(wicketObjectsModule, new ConfigModule());
+ }
- public WicketObjectModule_bindingsStandard(final Class<?> from, final Class<?> to) {
- this.from = from;
- this.to = to;
- }
+ @Test
+ public void binding() {
+ final Object instance = injector.getInstance(from);
+ assertThat(instance, is(instanceOf(to)));
+ }
- @Before
- public void setUp() throws Exception {
- wicketObjectsModule = new IsisWicketModule();
- injector = Guice.createInjector(wicketObjectsModule);
- }
+ // -- CONFIGURATION BINDING
- @Test
- public void binding() {
- final Object instance = injector.getInstance(from);
- assertThat(instance, is(instanceOf(to)));
- }
+ private static class ConfigModule extends AbstractModule {
+ @Override
+ protected void configure() {
+ bind(IsisConfiguration.class).to(IsisConfigurationDefault.class);
+ }
+ }
}
diff --git a/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Instantiation.java b/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Instantiation.java
index 4f5c860..0c5efde 100644
--- a/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Instantiation.java
+++ b/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/app/wicket/AuthenticatedWebSessionForIsis_Instantiation.java
@@ -55,7 +55,7 @@ public class AuthenticatedWebSessionForIsis_Instantiation {
new AuthenticatedWebSessionForIsis(stubRequest);
}
- @Test(expected = IllegalArgumentException.class)
+ @Test(expected = Exception.class)
public void requestMustBeProvided() {
new AuthenticatedWebSessionForIsis(null);
}
diff --git a/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_RegistrationAndCaching.java b/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_RegistrationAndCaching.java
index b482435..1898edd 100644
--- a/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_RegistrationAndCaching.java
+++ b/core/viewer-wicket-impl/src/test/java/org/apache/isis/viewer/wicket/viewer/pages/PageClassListDefault_RegistrationAndCaching.java
@@ -62,7 +62,7 @@ public class PageClassListDefault_RegistrationAndCaching {
registryImpl.registerPage(PageType.ACTION_PROMPT, TestingActionPage.class);
final Class<? extends Page> pageClass = registryImpl.getPageClass(PageType.ACTION_PROMPT);
- assertThat(pageClass, is(instanceOf(TestingActionPage.class)));
+ assertThat(pageClass, is(org.hamcrest.Matchers.equalTo(TestingActionPage.class)));
}
}
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java
index d78a290..c2187d0 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/about/JarManifestModel.java
@@ -35,6 +35,7 @@ import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
+import org.apache.isis.applib.internal.context._Context;
import org.apache.isis.core.commons.lang.CloseableExtensions;
import org.apache.isis.viewer.wicket.model.models.ModelAbstract;
@@ -75,7 +76,7 @@ public class JarManifestModel extends ModelAbstract<JarManifestModel> {
Enumeration<?> resEnum;
try {
- resEnum = Thread.currentThread().getContextClassLoader().getResources(JarFile.MANIFEST_NAME);
+ resEnum = _Context.getDefaultClassLoader().getResources(JarFile.MANIFEST_NAME);
} catch (IOException e) {
return;
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.