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 12:46:45 UTC

[isis] branch dev/2.0.0-M2 updated (3a07319 -> 124d029)

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a change to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git.


    omit 3a07319  ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT
    omit 6551c42  Merge branch 'ISIS-1744-update-to-dn-515' into dev/2.0.0-M2
    omit df03513  ISIS-1744: removes work-around code for prior to DN 5.1.5
    omit 66c4a7d  ISIS-1744: updates to DN 5.1.5
    omit 44429ea  ISIS-1767: fixes dependency convergence issue with com.sun.mail
    omit fe41a1d  Merge branch 'ISIS-1767-jee-7' into dev/2.0.0-M2
    omit 4b89ae7  ISIS-1756 remove reflective access to DN's EnhancementHelper since we've got a dedicated method instead
    omit b72a01c  ISIS-1756 on shutdown purge any state associated with the current web-app classloader
    omit 14f99d6  ISIS-1755 veto ExceptionRecognizer on CDI scan
    omit 2e28d44  ISIS-1754 proper DN class-loading
    omit a76c441  ISIS-1775 added license
    omit ae12a79  ISIS-1775 Honor web-app's context path when configuring swagger.
    omit a623bfd  ISIS-1755 TomEE requires Service Providers to be public classes
    omit 09ff21f  ISIS-1754 context aware class-loading for Isis
    omit b46ddfc  ISIS-1756 utilize IsisWicketApplication's life-cycle instead of providing a life-cycle CDI Bean
    omit 591a000  ISIS-1756 prevent SQLException on schema creation if config is missing
    omit d0272e1  ISIS-1756 - fix typo
    omit 599858a  ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector
    omit 70f923d  ISIS-1756 JEE 7+ Isis App life-cycling
    omit edc2491  ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime
    omit 45ec904  Merge branch 'dev/2.0.0/ISIS-1276-dn-5-1' into dev/2.0.0-M2
    omit 750157a  ISIS-1728: uses typesafe queries for helloworld
    omit d92e8e6  ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.
    omit ae46188  ISIS-1727: uses lambda in IsisSessionFactoryBuilder
    omit ed89008  ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).
    omit 6de02b1  ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib
    omit fe5a844  ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation
    omit 51feff4  ISIS-1276: fixes algorithm for lookup of datastore id's, at least
    omit 7ef159c  ISIS-1276: fixes compile issues in metamodel and runtime
    omit 9fde3bd  ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery
    omit 89e40d5  ISIS-1276: updates core to compile under JDK 1.8 only
    omit 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 20e7498  ISIS-1819 Where-am-I feature inital doc
     add ec0c9d0  remove adoc (placed at wrong directory)
     add f7677a3  ISIS-1819 Where-am-I feature initial adoc
     add c97c56f  ISIS-1819 improve adoc
     add 3a036ac  ISIS-1819 further improve adoc
     add a83f313  ISIS-1819 integrate where-am-i feature adoc
     add 298394e  Update _rgant-Property.adoc (#110)
     add 3debdf6  Update _dg_ide_intellij.adoc
     add 0f6755c  trivial adoc improvement
     add c554bfe  ISIS-1819 updating cheat-sheet (doc+pdf)
     add 975dc87   ISIS-1819 updating cheat-sheet (cover image)
     add a5355b2    ISIS-1819 add @Parent to annotation ref. guide
     add 738c6d8   ISIS-1819 include @Parent chapter with annotation ref. guide
     add bf8e8fd  ISIS-1819: fixes line endings for new .adoc
     add 2f7dbb0  ISIS-1819: removes qualifier of 'since 2.0.0'
     add 44b06e3  removes duplicate rows in Property.adoc reference
     add 6cb706a  ISIS-1865 provide default fallback for SessionLoggingService + minor test fixes
     add b14b053  ISIS-1865 remove unused import
     add dfaa0db  ISIS-1865 fix test-setup by adding default config
     add 70a987a  ISIS-1865 make config module private
     add 4c450b3  ISIS-1843 refactor class loading within entire core
     new 766f10a  ISIS-1276: updates references for datanucleus.
     new 50a8947  ISIS-1276: updates core to compile under JDK 1.8 only
     new f31a5f9  ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery
     new 9fadf6e  ISIS-1276: fixes compile issues in metamodel and runtime
     new 279ad1f  ISIS-1276: fixes algorithm for lookup of datastore id's, at least
     new cd2f87d  ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation
     new f882c42  ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib
     new f2bc631  ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).
     new 2c872e8  ISIS-1727: uses lambda in IsisSessionFactoryBuilder
     new 1a0c3eb  ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.
     new 4d17b70  ISIS-1728: uses typesafe queries for helloworld
     new baa3fb8  ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime
     new f6fd626  ISIS-1756 JEE 7+ Isis App life-cycling
     new c498506  ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector
     new 46cee7b  ISIS-1756 - fix typo
     new 6d00c67  ISIS-1756 prevent SQLException on schema creation if config is missing
     new dffff65  ISIS-1756 utilize IsisWicketApplication's life-cycle instead of providing a life-cycle CDI Bean
     new 14f4563  rebase 2.0.0-M2 on top of 2.0.0-M1 (master)
     new 65468d7  ISIS-1755 TomEE requires Service Providers to be public classes
     new 2bfc658  ISIS-1775 Honor web-app's context path when configuring swagger.
     new 4559466  ISIS-1775 added license
     new a89cb4e  ISIS-1754 proper DN class-loading
     new 02e0422  ISIS-1755 veto ExceptionRecognizer on CDI scan
     new c5d6e02  ISIS-1756 remove reflective access to DN's EnhancementHelper since we've got a dedicated method instead
     new 37937ea  ISIS-1767: fixes dependency convergence issue with com.sun.mail
     new 0b8611c  ISIS-1744: updates to DN 5.1.5
     new 50a22fa  ISIS-1744: removes work-around code for prior to DN 5.1.5
     new e7c5736  ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT
     new 124d029  ISIS-1841 use _Context to store Isis default class loader

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   (3a07319)
            \
             N -- N -- N   refs/heads/dev/2.0.0-M2 (124d029)

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 29 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/dg/_dg_ide_intellij.adoc  |   9 +-
 .../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 +-
 .../rgant/_rgant-Parent.adoc}                      |  10 +-
 .../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 +-
 .../src/main/asciidoc/guides/rgant/rgant.adoc      |   1 +
 .../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 +-
 .../main/asciidoc/guides/ugvw/_ugvw_features.adoc  |   3 +
 .../guides/ugvw/_ugvw_features_where-am-i.adoc     |  93 +++
 .../guides/ugvw/_ugvw_layout_file-based.adoc       |  15 +
 .../ugvw/images/where-am-i/hello_grey_bg.png       | Bin 0 -> 38257 bytes
 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 +-
 .../cheat-sheet/images/cheat-sheets/cover.png      | Bin 141052 -> 329323 bytes
 .../resources/cheat-sheets/IsisCheatSheet.docx     | Bin 28593 -> 14368 bytes
 .../resources/cheat-sheets/IsisCheatSheet.pdf      | Bin 582035 -> 77309 bytes
 .../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  |  88 +++
 .../internal/reflection/_Reflect_Discovery.java    | 107 +++
 .../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                                       | 100 ++-
 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 |  27 +-
 .../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   | 131 +---
 .../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     |  16 +-
 .../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                     |  51 +-
 .../IsisComponentProviderUsingInstallers.java      |  12 +-
 .../isis/core/webapp/IsisWebAppBootstrapper.java   |   4 +-
 .../CreateSchemaObjectFromClassMetadata.java       |   2 +-
 .../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 +-
 507 files changed, 11121 insertions(+), 4705 deletions(-)
 create mode 100644 adocs/documentation/src/main/asciidoc/guides/rgant/_rgant-Action_associateWith.adoc
 rename adocs/documentation/src/main/asciidoc/{pages/tg/_tg_pet-clinic-extended.adoc => guides/rgant/_rgant-Parent.adoc} (64%)
 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
 create mode 100644 adocs/documentation/src/main/asciidoc/guides/ugvw/_ugvw_features_where-am-i.adoc
 create mode 100644 adocs/documentation/src/main/asciidoc/guides/ugvw/images/where-am-i/hello_grey_bg.png
 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
 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] 14/29: ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit c4985068ea53d24d3c68543953008383b3aa3084
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Oct 29 09:33:17 2017 +0100

    ISIS-1755 JEE 7+ allow coexistence of CDI and Isis' ServiceInjector
---
 .../webapp/jee/IsisCDIBeanScanInterceptor.java     | 97 ++++++++++++++++++++++
 .../services/javax.enterprise.inject.spi.Extension |  1 +
 2 files changed, 98 insertions(+)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
new file mode 100644
index 0000000..6632a59
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
@@ -0,0 +1,97 @@
+/*
+ * 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.webapp.jee;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.BeforeBeanDiscovery;
+import javax.enterprise.inject.spi.Extension;
+import javax.enterprise.inject.spi.ProcessAnnotatedType;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.services.metrics.MetricsService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * A CDI inject extension @see <a href="https://docs.jboss.org/weld/reference/latest/en-US/html/extend.html">weld</a>,
+ * that lets CDI ignore certain Beans we declare tabu. 
+ * <p>
+ * This extension is registered as a service provider by creating a file named 
+ * {@code META-INF/services/javax.enterprise.inject.spi.Extension}, 
+ * which contains the name of this extension class.
+ * </p>
+ * 
+ * <p>
+ * Beans declared tabu are managed (meaning instantiation and dependency injection) 
+ * by Isis itself. All other Beans are allowed to be managed by CDI.
+ * </p>
+ * 
+ * @author ahuber@apache.org
+ *
+ */
+final class IsisCDIBeanScanInterceptor implements Extension {
+	
+	private static final Logger log = LoggerFactory.getLogger(IsisCDIBeanScanInterceptor.class);
+
+	/**
+	 * Declaration of Beans that are managed by Isis and should be ignored by CDI. 
+	 * (in addition to those that have the @DomainService annotation)
+	 */
+	private static final Set<String> tabu = new HashSet<>();
+	{
+		tabu.add(MetricsService.class.getName());
+	}
+	
+	void beforeBeanDiscovery(@Observes BeforeBeanDiscovery event) {
+		log.info("beginning the scanning process");
+	}
+
+	<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event) {
+
+		final String className = event.getAnnotatedType().getJavaClass().getName();
+		
+		if(isTabu(className, event)) {
+			log.debug("veto type: " + className);
+			event.veto();
+		} else {
+			log.debug("allowing type: " + className);
+		}
+	}
+
+	void afterBeanDiscovery(@Observes AfterBeanDiscovery event) {
+		log.info("finished the scanning process");
+	}
+	
+	// -- HELPER
+	
+	private boolean isTabu(String className, ProcessAnnotatedType<?> event) {
+		if(tabu.contains(className))
+			return true;
+		if(event.getAnnotatedType().isAnnotationPresent(DomainService.class))
+			return true;
+		
+		return false;
+	}
+
+}
diff --git a/core/runtime/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension b/core/runtime/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
new file mode 100644
index 0000000..1be69b2
--- /dev/null
+++ b/core/runtime/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
@@ -0,0 +1 @@
+org.apache.isis.core.webapp.jee.IsisCDIBeanScanInterceptor
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 09/29: ISIS-1727: uses lambda in IsisSessionFactoryBuilder

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 2c872e8bc652ebd924a3d2dca823ef91fa13e955
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Sep 19 22:56:54 2017 +0100

    ISIS-1727: uses lambda in IsisSessionFactoryBuilder
---
 .../system/session/IsisSessionFactoryBuilder.java  | 25 ++++++++++------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
index 7a56c93..52df40e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryBuilder.java
@@ -207,21 +207,18 @@ public class IsisSessionFactoryBuilder {
 
 
             isisSessionFactory.doInSession(
-                    new Runnable() {
-                        @Override
-                        public void run() {
-                            specificationLoader.postProcess();
-                            try {
-                                specificationLoader.validateAndAssert();
-
-                            } catch (final MetaModelInvalidException ex) {
-                                // no need to use a higher level, such as error(...); the calling code will expose any metamodel
-                                // validation errors in their own particular way.
-                                if(LOG.isDebugEnabled()) {
-                                    LOG.debug("Meta model invalid", ex);
-                                }
-                                _Context.putSingleton(MetaModelInvalidException.class, ex);
+                    () -> {
+                        specificationLoader.postProcess();
+                        try {
+                            specificationLoader.validateAndAssert();
+
+                        } catch (final MetaModelInvalidException ex) {
+                            // no need to use a higher level, such as error(...); the calling code will expose any metamodel
+                            // validation errors in their own particular way.
+                            if(LOG.isDebugEnabled()) {
+                                LOG.debug("Meta model invalid", ex);
                             }
+                            _Context.putSingleton(MetaModelInvalidException.class, ex);
                         }
                     }
             );

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 16/29: ISIS-1756 prevent SQLException on schema creation if config is missing

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 6d00c67603ac8580ddff72a0771e1c2b966afa89
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Oct 30 15:14:16 2017 +0100

    ISIS-1756 prevent SQLException on schema creation if config is missing
---
 .../jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java     | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
index 87c6e91..9697f29 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
@@ -25,8 +25,6 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Map;
 
-import com.google.common.base.Strings;
-
 import org.datanucleus.ClassLoaderResolver;
 import org.datanucleus.enhancer.EnhancementNucleusContextImpl;
 import org.datanucleus.metadata.AbstractClassMetaData;
@@ -35,6 +33,8 @@ import org.datanucleus.store.ConnectionEncryptionProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Strings;
+
 
 /**
  * Implementation note: the methods in this class are <tt>protected</tt> to allow for easy subclassing.
@@ -68,6 +68,11 @@ public class CreateSchemaObjectFromClassMetadata implements MetaDataListener, Da
         final String url = properties.get("javax.jdo.option.ConnectionURL");
         final String userName = properties.get("javax.jdo.option.ConnectionUserName");
         final String password = getConnectionPassword();
+        
+        if(Strings.isNullOrEmpty(driverName) || Strings.isNullOrEmpty(url)) {
+        	LOG.warn("Unable to create schema due to missing configuration javax.jdo.option.Connection*");
+        	return;
+        }
 
         try {
 

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 01/29: ISIS-1276: updates references for datanucleus.

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 766f10af8ac1dee13fb744862f43f1654b0ebdda
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Sep 18 22:13:20 2017 +0100

    ISIS-1276: updates references for datanucleus.
    
    Also updated org.incode:incode-build to 3-SNAPSHOT, and java-mavenmixin-datanucleus to 0.0.5-SNAPSHOT
---
 core/applib/pom.xml                    | 39 ++--------------------------------
 core/pom.xml                           | 19 ++++++++---------
 core/unittestsupport/pom.xml           |  5 ++---
 example/application/helloworld/pom.xml |  2 +-
 example/application/simpleapp/pom.xml  |  2 +-
 5 files changed, 15 insertions(+), 52 deletions(-)

diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index 2d84f74..9cfea89 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -56,41 +56,6 @@
                 </excludes>
             </resource>
         </resources>
-        <pluginManagement>
-            <plugins>
-                <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>
-                                            org.datanucleus
-                                        </groupId>
-                                        <artifactId>
-                                            datanucleus-maven-plugin
-                                        </artifactId>
-                                        <versionRange>
-                                            [4.0.0-release,)
-                                        </versionRange>
-                                        <goals>
-                                            <goal>enhance</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
     </build>
 
     <dependencies>
@@ -132,8 +97,8 @@
 
         <!-- DataNucleus' standard JDO support -->
         <dependency>
-            <groupId>javax.jdo</groupId>
-            <artifactId>jdo-api</artifactId>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>javax.jdo</artifactId>
         </dependency>
 
         <!-- DataNucleus' (proprietary) type-safe query support-->
diff --git a/core/pom.xml b/core/pom.xml
index 6c43c37..9698048 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -88,14 +88,13 @@
 [6] https://github.com/moment/moment/blob/develop/LICENSE</license.additional-notes>
 
         <!-- Datanucleus Objectstore -->
-        <jdo-api.version>3.1</jdo-api.version>
+        <jdo-api.version>3.2.0-m7</jdo-api.version>
 
-        <datanucleus-core.version>4.1.7</datanucleus-core.version>
-        <datanucleus-api-jdo.version>4.1.1</datanucleus-api-jdo.version>
-        <datanucleus-jdo-query.version>4.0.5</datanucleus-jdo-query.version>
-        <datanucleus-rdbms.version>4.1.9</datanucleus-rdbms.version>
-
-        <datanucleus-jodatime.version>4.1.0-release</datanucleus-jodatime.version>
+        <datanucleus-core.version>5.1.2</datanucleus-core.version>
+        <datanucleus-api-jdo.version>5.1.2</datanucleus-api-jdo.version>
+        <datanucleus-jdo-query.version>5.0.2</datanucleus-jdo-query.version>
+        <datanucleus-rdbms.version>5.1.2</datanucleus-rdbms.version>
+        <datanucleus-jodatime.version>5.1.0-release</datanucleus-jodatime.version>
 	<!--
 	    ISIS-1288: seen integration tests to fail;
 	    domain object date holding 1-Aug-2015 after xactn retrieved as 31-Jul-2015
@@ -104,7 +103,7 @@
 
         <datanucleus-jodatime.version>4.1.1</datanucleus-jodatime.version>
 	-->
-        <datanucleus-maven-plugin.version>4.0.2</datanucleus-maven-plugin.version>
+        <datanucleus-maven-plugin.version>5.0.2</datanucleus-maven-plugin.version>
 
         <shiro.version>1.2.6</shiro.version>
 
@@ -2025,8 +2024,8 @@ ${license.additional-notes}
 
             <!-- DataNucleus -->
             <dependency>
-                <groupId>javax.jdo</groupId>
-                <artifactId>jdo-api</artifactId>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>javax.jdo</artifactId>
                 <version>${jdo-api.version}</version>
             </dependency>
             <dependency>
diff --git a/core/unittestsupport/pom.xml b/core/unittestsupport/pom.xml
index 51a84e7..49972f5 100644
--- a/core/unittestsupport/pom.xml
+++ b/core/unittestsupport/pom.xml
@@ -61,9 +61,8 @@
            </dependency>
 
             <dependency>
-                <groupId>javax.jdo</groupId>
-                <artifactId>jdo-api</artifactId>
-                <version>${jdo-api.version}</version>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>javax.jdo</artifactId>
                 <optional>true</optional>
             </dependency>
 
diff --git a/example/application/helloworld/pom.xml b/example/application/helloworld/pom.xml
index c4570e3..002742f 100644
--- a/example/application/helloworld/pom.xml
+++ b/example/application/helloworld/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.incode</groupId>
         <artifactId>incode-build</artifactId>
-        <version>2</version>
+        <version>3-SNAPSHOT</version>
     </parent>
 
     <groupId>org.apache.isis.example.application</groupId>
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index 84de916..b2af7e6 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.incode</groupId>
         <artifactId>incode-build</artifactId>
-        <version>2</version>
+        <version>3-SNAPSHOT</version>
     </parent>
 
     <groupId>org.apache.isis.example.application</groupId>

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 27/29: ISIS-1744: removes work-around code for prior to DN 5.1.5

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 50a22fadeb1e4575dffc71bdd1f03cba6525d014
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 5 14:51:35 2018 +0000

    ISIS-1744: removes work-around code for prior to DN 5.1.5
---
 .../datanucleus/DataNucleusLifeCycleHelper.java    | 26 ++++------------------
 1 file changed, 4 insertions(+), 22 deletions(-)

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 fc5669e..398c30f 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
@@ -26,15 +26,12 @@ import java.util.function.Consumer;
 
 import javax.jdo.PersistenceManagerFactory;
 
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.datanucleus.ClassLoaderResolver;
-import org.datanucleus.PersistenceNucleusContext;
-import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
 import org.datanucleus.enhancer.EnhancementHelper;
-import org.datanucleus.store.AbstractStoreManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.isis.core.runtime.system.context.IsisContext;
+
 /**
  * 
  * Purges any state associated with DataNucleus.
@@ -78,11 +75,7 @@ public class DataNucleusLifeCycleHelper {
 			
 			persistenceManagerFactory.close();
 			
-			// XXX uses reflection prior to DN v5.1.5
-			// remove once DN v5.1.5 is released
-			// dnUnregisterClassesManagedBy(cl);
-			
-			// XXX for info, why we do this see
+			// for info, on why we do this see
 			// https://github.com/datanucleus/datanucleus-core/issues/272
 			EnhancementHelper.getInstance().unregisterClasses(cl);
 			
@@ -92,18 +85,7 @@ public class DataNucleusLifeCycleHelper {
 
 	}
     
-    // -- HELPER
-    
-	// TODO remove once DN v5.1.5 is released
-	private static void dnUnregisterClassesManagedBy(ClassLoader cl) {
-    	if(cl==null)
-    		return;
-		visitDNRegisteredClasses(map->
-			map.entrySet()
-			.removeIf(entry->cl.equals(entry.getKey().getClassLoader()))
-		);
-	}
-    
+
     // -- LOW LEVEL REFLECTION
     
 	// TODO remove once DN v5.1.5 is released

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 18/29: rebase 2.0.0-M2 on top of 2.0.0-M1 (master)

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 14f45632e0200dcd246f5a6d9b6089d4200851cd
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 19 13:33:41 2018 +0100

    rebase 2.0.0-M2 on top of 2.0.0-M1 (master)
---
 .../apache/isis/core/runtime/services/ServiceInstantiator.java | 10 +++++-----
 .../runtime/systemusinginstallers/IsisComponentProvider.java   |  5 -----
 .../isis/viewer/wicket/viewer/IsisWicketApplication.java       |  2 +-
 3 files changed, 6 insertions(+), 11 deletions(-)

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 02e229e..199e3b3 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
@@ -28,11 +28,6 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.enterprise.context.RequestScoped;
 
-import com.google.common.collect.Maps;
-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;
@@ -42,6 +37,11 @@ import org.apache.isis.core.commons.lang.ArrayExtensions;
 import org.apache.isis.core.commons.lang.MethodExtensions;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.classsubstitutor.JavassistEnhanced;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 
 import javassist.util.proxy.MethodFilter;
 import javassist.util.proxy.MethodHandler;
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 b637fe4..7d9322b 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
@@ -19,16 +19,13 @@
 
 package org.apache.isis.core.runtime.systemusinginstallers;
 
-import java.lang.annotation.Annotation;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
-import javax.jdo.annotations.PersistenceCapable;
 
 import com.google.common.base.Function;
 import com.google.common.base.Joiner;
@@ -37,8 +34,6 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
-import org.reflections.Reflections;
-
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.DomainService;
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 3347ca4..e3376e6 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
@@ -859,7 +859,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);

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 03/29: ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit f31a5f93f508291458dcffe73078983f3a6b3d31
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Sep 18 22:17:54 2017 +0100

    ISIS-1276: updates applib, replaces references of TypesafeQuery to be instead JDOQLTypedQuery
---
 .../org/apache/isis/applib/services/jdosupport/IsisJdoSupport.java | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupport.java b/core/applib/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupport.java
index 4ca5c10..75a4e0f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupport.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/jdosupport/IsisJdoSupport.java
@@ -23,10 +23,9 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.PersistenceManager;
-
-import org.datanucleus.query.typesafe.BooleanExpression;
-import org.datanucleus.query.typesafe.TypesafeQuery;
+import javax.jdo.query.BooleanExpression;
 
 import org.apache.isis.applib.annotation.Programmatic;
 
@@ -132,5 +131,5 @@ public interface IsisJdoSupport {
      * </p>
      */
     @Programmatic
-    <T> TypesafeQuery<T> newTypesafeQuery(Class<T> cls);
+    <T> JDOQLTypedQuery<T> newTypesafeQuery(Class<T> cls);
 }

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 25/29: ISIS-1767: fixes dependency convergence issue with com.sun.mail

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 37937eac2b8a70d2dba0e13ca0ce20cb6ad043b0
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 5 14:43:57 2018 +0000

    ISIS-1767: fixes dependency convergence issue with com.sun.mail
---
 core/runtime/pom.xml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index 2024a99..564b638 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -117,6 +117,12 @@
 		<dependency>
 			<groupId>javax</groupId>
     		<artifactId>javaee-api</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.sun.mail</groupId>
+                    <artifactId>javax.mail</artifactId>
+                </exclusion>
+            </exclusions>
 		</dependency>
 
         <dependency>

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 02/29: ISIS-1276: updates core to compile under JDK 1.8 only

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 50a8947d45ebb8b289fa0030bb4ca2d1de0e4625
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Sep 18 22:16:56 2017 +0100

    ISIS-1276: updates core to compile under JDK 1.8 only
---
 core/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/pom.xml b/core/pom.xml
index 9698048..b511331 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -2156,7 +2156,7 @@ ${license.additional-notes}
                         <configuration>
                             <toolchains>
                                 <jdk>
-                                    <version>1.7</version>
+                                    <version>1.8</version>
                                     <vendor>oracle</vendor>
                                 </jdk>
                             </toolchains>

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 29/29: ISIS-1841 use _Context to store Isis default class loader

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 124d02918fc85da9c000f2812eaaf44e1d8c4fb2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Feb 19 13:45:36 2018 +0100

    ISIS-1841 use _Context to store Isis default class loader
---
 .../org/apache/isis/viewer/wicket/viewer/IsisWicketApplication.java    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

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 d249d68..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();
 

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 26/29: ISIS-1744: updates to DN 5.1.5

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 0b8611c5101e2dae685f81d5fccc0d4b5ecb7693
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Jan 5 14:46:25 2018 +0000

    ISIS-1744: updates to DN 5.1.5
---
 core/pom.xml                           | 6 +++---
 example/application/helloworld/pom.xml | 2 +-
 example/application/simpleapp/pom.xml  | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/core/pom.xml b/core/pom.xml
index 0ad762e..66143e9 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.2</datanucleus-core.version>
-        <datanucleus-api-jdo.version>5.1.2</datanucleus-api-jdo.version>
+        <datanucleus-core.version>5.1.5</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.2</datanucleus-rdbms.version>
+        <datanucleus-rdbms.version>5.1.5</datanucleus-rdbms.version>
         <datanucleus-jodatime.version>5.1.0-release</datanucleus-jodatime.version>
 	<!--
 	    ISIS-1288: seen integration tests to fail;
diff --git a/example/application/helloworld/pom.xml b/example/application/helloworld/pom.xml
index 002742f..89713a5 100644
--- a/example/application/helloworld/pom.xml
+++ b/example/application/helloworld/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.incode</groupId>
         <artifactId>incode-build</artifactId>
-        <version>3-SNAPSHOT</version>
+        <version>4</version>
     </parent>
 
     <groupId>org.apache.isis.example.application</groupId>
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index b2af7e6..2addcd7 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.incode</groupId>
         <artifactId>incode-build</artifactId>
-        <version>3-SNAPSHOT</version>
+        <version>4</version>
     </parent>
 
     <groupId>org.apache.isis.example.application</groupId>

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 23/29: ISIS-1755 veto ExceptionRecognizer on CDI scan

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 02e0422c4f59160d651bc02a41a59ba6b96620a3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Nov 22 14:12:22 2017 +0100

    ISIS-1755 veto ExceptionRecognizer on CDI scan
---
 .../webapp/jee/IsisCDIBeanScanInterceptor.java     | 25 +++++++++++++---------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
index c75605c..06fe4bf 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
@@ -18,8 +18,9 @@
  */
 package org.apache.isis.core.webapp.jee;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Predicate;
 
 import javax.enterprise.event.Observes;
 import javax.enterprise.inject.spi.AfterBeanDiscovery;
@@ -28,6 +29,7 @@ import javax.enterprise.inject.spi.Extension;
 import javax.enterprise.inject.spi.ProcessAnnotatedType;
 
 import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
 import org.apache.isis.applib.services.metrics.MetricsService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -58,9 +60,10 @@ public final class IsisCDIBeanScanInterceptor implements Extension {
 	 * Declaration of Beans that are managed by Isis and should be ignored by CDI. 
 	 * (in addition to those that have the @DomainService annotation)
 	 */
-	private static final Set<String> tabu = new HashSet<>();
+	private static final List<Predicate<Class<?>>> tabu = new ArrayList<>();
 	{
-		tabu.add(MetricsService.class.getName());
+		tabu.add(MetricsService.class::equals);
+		tabu.add(ExceptionRecognizer.class::isAssignableFrom);
 	}
 	
 	void beforeBeanDiscovery(@Observes BeforeBeanDiscovery event) {
@@ -69,9 +72,10 @@ public final class IsisCDIBeanScanInterceptor implements Extension {
 
 	<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event) {
 
-		final String className = event.getAnnotatedType().getJavaClass().getName();
+		final Class<?> clazz = event.getAnnotatedType().getJavaClass();
+		final String className = clazz.getName();
 		
-		if(isTabu(className, event)) {
+		if(isTabu(clazz, event)) {
 			log.debug("veto type: " + className);
 			event.veto();
 		} else {
@@ -85,12 +89,13 @@ public final class IsisCDIBeanScanInterceptor implements Extension {
 	
 	// -- HELPER
 	
-	private boolean isTabu(String className, ProcessAnnotatedType<?> event) {
-		if(tabu.contains(className))
-			return true;
+	private boolean isTabu(Class<?> clazz, ProcessAnnotatedType<?> event) {
 		if(event.getAnnotatedType().isAnnotationPresent(DomainService.class))
 			return true;
-		
+		for(Predicate<Class<?>> isTabu : tabu) {
+			if(isTabu.test(clazz))
+				return true;
+		}
 		return false;
 	}
 

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 12/29: ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit baa3fb82adde34fe1d986ddd14923c53d2246a53
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Oct 29 09:24:11 2017 +0100

    ISIS-1767 JEE 7+ added dependency on javaee-api to core/runtime
---
 core/pom.xml         | 10 ++++++++++
 core/runtime/pom.xml |  5 +++++
 2 files changed, 15 insertions(+)

diff --git a/core/pom.xml b/core/pom.xml
index b511331..0ad762e 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -156,6 +156,8 @@
 
         <guice.version>4.1.0</guice.version>
         <picocontainer.version>2.15</picocontainer.version>
+        
+        <javaee.version>7.0</javaee.version>
 
         <dom4j.version>1.6.1</dom4j.version>
         <jdom.version>2.0.2</jdom.version>
@@ -1467,6 +1469,14 @@ ${license.additional-notes}
                 <artifactId>picocontainer</artifactId>
                 <version>${picocontainer.version}</version>
             </dependency>
+            
+            <!-- JEE API -->
+            <dependency>
+                <groupId>javax</groupId>
+    			<artifactId>javaee-api</artifactId>
+                <version>${javaee.version}</version>
+                <scope>provided</scope>
+            </dependency>
 
             <!-- Bytecode libraries -->
             <dependency>
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index 0aa0361..2024a99 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -114,6 +114,11 @@
             <artifactId>slf4j-log4j12</artifactId>
         </dependency>
 
+		<dependency>
+			<groupId>javax</groupId>
+    		<artifactId>javaee-api</artifactId>
+		</dependency>
+
         <dependency>
             <!-- because DataNucleus uses log4j as its preferred logger -->
             <groupId>log4j</groupId>

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 28/29: ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit e7c5736939e1827c129aa5f7f5cb96e217c036ba
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Jan 9 07:15:06 2018 +0000

    ISIS-1811: updates versions to 2.0.0-M2-SNAPSHOT
---
 adocs/documentation/pom.xml                        |  2 +-
 core/applib/pom.xml                                |  2 +-
 core/integtestsupport/pom.xml                      |  2 +-
 core/log4j/pom.xml                                 |  2 +-
 core/maven-plugin/pom.xml                          |  2 +-
 core/mavendeps/intellij/pom.xml                    |  2 +-
 core/mavendeps/testing/pom.xml                     |  2 +-
 core/mavendeps/webapp/pom.xml                      |  2 +-
 core/metamodel/pom.xml                             |  2 +-
 core/pom.xml                                       | 70 +++++++++++-----------
 core/runtime/pom.xml                               |  2 +-
 core/schema/pom.xml                                |  2 +-
 core/security-shiro/pom.xml                        |  6 +-
 core/security/pom.xml                              |  2 +-
 core/specsupport/pom.xml                           |  2 +-
 core/unittestsupport/pom.xml                       |  2 +-
 core/viewer-restfulobjects-applib/pom.xml          |  2 +-
 core/viewer-restfulobjects-rendering/pom.xml       |  2 +-
 core/viewer-restfulobjects-server/pom.xml          |  2 +-
 core/viewer-wicket-applib/pom.xml                  |  2 +-
 core/viewer-wicket-impl/pom.xml                    |  2 +-
 core/viewer-wicket-model/pom.xml                   |  2 +-
 core/viewer-wicket-ui/pom.xml                      |  2 +-
 core/webserver/pom.xml                             |  2 +-
 core/wrapper/pom.xml                               |  2 +-
 example/application/helloworld/pom.xml             |  2 +-
 example/application/simpleapp/application/pom.xml  |  2 +-
 .../application/simpleapp/module-simple/pom.xml    |  2 +-
 example/application/simpleapp/pom.xml              |  2 +-
 example/application/simpleapp/webapp/pom.xml       |  2 +-
 example/archetype/helloworld/pom.xml               |  2 +-
 example/archetype/simpleapp/pom.xml                |  4 +-
 pom.xml                                            |  2 +-
 33 files changed, 70 insertions(+), 70 deletions(-)

diff --git a/adocs/documentation/pom.xml b/adocs/documentation/pom.xml
index 960a2e4..659e31b 100644
--- a/adocs/documentation/pom.xml
+++ b/adocs/documentation/pom.xml
@@ -29,7 +29,7 @@
 
     <groupId>org.apache.isis.docs</groupId>
     <artifactId>isis-documentation</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <name>Apache Isis Docs</name>
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index 9cfea89..7fa9feb 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-applib</artifactId>
diff --git a/core/integtestsupport/pom.xml b/core/integtestsupport/pom.xml
index 50e15c1..83e5dd5 100644
--- a/core/integtestsupport/pom.xml
+++ b/core/integtestsupport/pom.xml
@@ -23,7 +23,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-integtestsupport</artifactId>
diff --git a/core/log4j/pom.xml b/core/log4j/pom.xml
index 115312e..12b8253 100644
--- a/core/log4j/pom.xml
+++ b/core/log4j/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-log4j</artifactId>
diff --git a/core/maven-plugin/pom.xml b/core/maven-plugin/pom.xml
index 3e3646b..0ff59a6 100644
--- a/core/maven-plugin/pom.xml
+++ b/core/maven-plugin/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <groupId>org.apache.isis.tool</groupId>
diff --git a/core/mavendeps/intellij/pom.xml b/core/mavendeps/intellij/pom.xml
index 7a387b6..ce57609 100644
--- a/core/mavendeps/intellij/pom.xml
+++ b/core/mavendeps/intellij/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/core/mavendeps/testing/pom.xml b/core/mavendeps/testing/pom.xml
index 6504f20..cd2b9f2 100644
--- a/core/mavendeps/testing/pom.xml
+++ b/core/mavendeps/testing/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/core/mavendeps/webapp/pom.xml b/core/mavendeps/webapp/pom.xml
index ddeecf4..9b3d24e 100644
--- a/core/mavendeps/webapp/pom.xml
+++ b/core/mavendeps/webapp/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index 697eb3d..1361ac7 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-metamodel</artifactId>
diff --git a/core/pom.xml b/core/pom.xml
index 66143e9..9cfd997 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -29,7 +29,7 @@
 
     <groupId>org.apache.isis.core</groupId>
     <artifactId>isis</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
     
     <packaging>pom</packaging>
 
@@ -1148,12 +1148,12 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-unittestsupport</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-unittestsupport</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
@@ -1162,14 +1162,14 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-applib</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-applib</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
@@ -1191,14 +1191,14 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-schema</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-schema</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
@@ -1207,7 +1207,7 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-log4j</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1216,14 +1216,14 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-metamodel</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-metamodel</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
@@ -1232,76 +1232,76 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-runtime</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-runtime</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-wrapper</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
 
             <!-- webserver -->
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-webserver</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
 
             <!-- specsupport -->
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-specsupport</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
 
             <!-- integtestsupport -->
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-integtestsupport</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
 
             <!-- Restful Objects viewer -->
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-restfulobjects-applib</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-restfulobjects-applib</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-restfulobjects-rendering</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-restfulobjects-rendering</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-restfulobjects-server</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-restfulobjects-server</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
@@ -1310,12 +1310,12 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-security</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-security-shiro</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
 
             
@@ -1323,41 +1323,41 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-wicket-applib</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-wicket-model</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-wicket-model</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <scope>test</scope>
                 <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-wicket-ui</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-wicket-ui</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <scope>test</scope>
                 <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-wicket-impl</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.core</groupId>
                 <artifactId>isis-core-viewer-wicket-impl</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <scope>test</scope>
                 <type>test-jar</type>
             </dependency>
@@ -1366,26 +1366,26 @@ ${license.additional-notes}
             <dependency>
                 <groupId>org.apache.isis.tool</groupId>
                 <artifactId>isis-maven-plugin</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
             </dependency>
 
             <!-- Maven dependencies -->
             <dependency>
                 <groupId>org.apache.isis.mavendeps</groupId>
                 <artifactId>isis-mavendeps-intellij</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>pom</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.mavendeps</groupId>
                 <artifactId>isis-mavendeps-testing</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>pom</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.isis.mavendeps</groupId>
                 <artifactId>isis-mavendeps-webapp</artifactId>
-                <version>2.0.0-M1-SNAPSHOT</version>
+                <version>2.0.0-M2-SNAPSHOT</version>
                 <type>pom</type>
             </dependency>
 
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index 564b638..85d14bb 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -23,7 +23,7 @@
     <parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-runtime</artifactId>
diff --git a/core/schema/pom.xml b/core/schema/pom.xml
index 73b432f..179a4bd 100644
--- a/core/schema/pom.xml
+++ b/core/schema/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-schema</artifactId>
diff --git a/core/security-shiro/pom.xml b/core/security-shiro/pom.xml
index 13535bb..249459a 100644
--- a/core/security-shiro/pom.xml
+++ b/core/security-shiro/pom.xml
@@ -23,11 +23,11 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-security-shiro</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
 
 	<name>Apache Isis Security Shiro</name>
 
@@ -70,7 +70,7 @@
 			<dependency>
 			    <groupId>org.apache.isis.core</groupId>
 			    <artifactId>isis-core-security-shiro</artifactId>
-				<version>2.0.0-M1-SNAPSHOT</version>
+				<version>2.0.0-M2-SNAPSHOT</version>
 			</dependency>
     	</dependencies>
     </dependencyManagement>
diff --git a/core/security/pom.xml b/core/security/pom.xml
index 03fc5e7..cf44483 100644
--- a/core/security/pom.xml
+++ b/core/security/pom.xml
@@ -23,7 +23,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-security</artifactId>
diff --git a/core/specsupport/pom.xml b/core/specsupport/pom.xml
index 6ae7e18..a31d9df 100644
--- a/core/specsupport/pom.xml
+++ b/core/specsupport/pom.xml
@@ -15,7 +15,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-specsupport</artifactId>
diff --git a/core/unittestsupport/pom.xml b/core/unittestsupport/pom.xml
index 49972f5..9c36059 100644
--- a/core/unittestsupport/pom.xml
+++ b/core/unittestsupport/pom.xml
@@ -23,7 +23,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-unittestsupport</artifactId>
diff --git a/core/viewer-restfulobjects-applib/pom.xml b/core/viewer-restfulobjects-applib/pom.xml
index e3206ae..ab27a7c 100644
--- a/core/viewer-restfulobjects-applib/pom.xml
+++ b/core/viewer-restfulobjects-applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
 	<artifactId>isis-core-viewer-restfulobjects-applib</artifactId>
diff --git a/core/viewer-restfulobjects-rendering/pom.xml b/core/viewer-restfulobjects-rendering/pom.xml
index 7a9feb3..c581b80 100644
--- a/core/viewer-restfulobjects-rendering/pom.xml
+++ b/core/viewer-restfulobjects-rendering/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-viewer-restfulobjects-rendering</artifactId>
diff --git a/core/viewer-restfulobjects-server/pom.xml b/core/viewer-restfulobjects-server/pom.xml
index 1bae1d0..39519ef 100644
--- a/core/viewer-restfulobjects-server/pom.xml
+++ b/core/viewer-restfulobjects-server/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>isis-core-viewer-restfulobjects-server</artifactId>
diff --git a/core/viewer-wicket-applib/pom.xml b/core/viewer-wicket-applib/pom.xml
index a415304..11ebfb0 100644
--- a/core/viewer-wicket-applib/pom.xml
+++ b/core/viewer-wicket-applib/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M1-SNAPSHOT</version>
+		<version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
 	<artifactId>isis-core-viewer-wicket-applib</artifactId>
diff --git a/core/viewer-wicket-impl/pom.xml b/core/viewer-wicket-impl/pom.xml
index 9c11554..33a7f12 100644
--- a/core/viewer-wicket-impl/pom.xml
+++ b/core/viewer-wicket-impl/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M1-SNAPSHOT</version>
+		<version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<name>Apache Isis Wicket Viewer Implementation</name>
diff --git a/core/viewer-wicket-model/pom.xml b/core/viewer-wicket-model/pom.xml
index aa7a091..7dd62f8 100644
--- a/core/viewer-wicket-model/pom.xml
+++ b/core/viewer-wicket-model/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M1-SNAPSHOT</version>
+		<version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-viewer-wicket-model</artifactId>
diff --git a/core/viewer-wicket-ui/pom.xml b/core/viewer-wicket-ui/pom.xml
index edf4621..8b99385 100644
--- a/core/viewer-wicket-ui/pom.xml
+++ b/core/viewer-wicket-ui/pom.xml
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-		<version>2.0.0-M1-SNAPSHOT</version>
+		<version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-viewer-wicket-ui</artifactId>
diff --git a/core/webserver/pom.xml b/core/webserver/pom.xml
index 24ec1d8..0ef3631 100644
--- a/core/webserver/pom.xml
+++ b/core/webserver/pom.xml
@@ -23,7 +23,7 @@
     <parent>
 		<groupId>org.apache.isis.core</groupId>
 		<artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
 	<artifactId>isis-core-webserver</artifactId>
diff --git a/core/wrapper/pom.xml b/core/wrapper/pom.xml
index 3d2f9a8..8f839f3 100644
--- a/core/wrapper/pom.xml
+++ b/core/wrapper/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>isis-core-wrapper</artifactId>
diff --git a/example/application/helloworld/pom.xml b/example/application/helloworld/pom.xml
index 89713a5..778632a 100644
--- a/example/application/helloworld/pom.xml
+++ b/example/application/helloworld/pom.xml
@@ -29,7 +29,7 @@
 
     <groupId>org.apache.isis.example.application</groupId>
     <artifactId>helloworld</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
 
     <name>HelloWorld</name>
 
diff --git a/example/application/simpleapp/application/pom.xml b/example/application/simpleapp/application/pom.xml
index e46f103..05fb986 100644
--- a/example/application/simpleapp/application/pom.xml
+++ b/example/application/simpleapp/application/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
         <artifactId>simpleapp</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>simpleapp-application</artifactId>
diff --git a/example/application/simpleapp/module-simple/pom.xml b/example/application/simpleapp/module-simple/pom.xml
index 4910509..c605819 100644
--- a/example/application/simpleapp/module-simple/pom.xml
+++ b/example/application/simpleapp/module-simple/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
         <artifactId>simpleapp</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>simpleapp-module-simple</artifactId>
diff --git a/example/application/simpleapp/pom.xml b/example/application/simpleapp/pom.xml
index 2addcd7..b38ee1b 100644
--- a/example/application/simpleapp/pom.xml
+++ b/example/application/simpleapp/pom.xml
@@ -29,7 +29,7 @@
 
     <groupId>org.apache.isis.example.application</groupId>
     <artifactId>simpleapp</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
 
     <name>SimpleApp Parent</name>
 
diff --git a/example/application/simpleapp/webapp/pom.xml b/example/application/simpleapp/webapp/pom.xml
index da6eea8..b1ad666 100644
--- a/example/application/simpleapp/webapp/pom.xml
+++ b/example/application/simpleapp/webapp/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.isis.example.application</groupId>
         <artifactId>simpleapp</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
     </parent>
 
     <artifactId>simpleapp-webapp</artifactId>
diff --git a/example/archetype/helloworld/pom.xml b/example/archetype/helloworld/pom.xml
index 350cfea..90842d8 100644
--- a/example/archetype/helloworld/pom.xml
+++ b/example/archetype/helloworld/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.isis.archetype</groupId>
     <artifactId>helloworld-archetype</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
     <name>helloworld-archetype</name>
     <build>
diff --git a/example/archetype/simpleapp/pom.xml b/example/archetype/simpleapp/pom.xml
index a432bb2..646c9dc 100644
--- a/example/archetype/simpleapp/pom.xml
+++ b/example/archetype/simpleapp/pom.xml
@@ -21,7 +21,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.isis.archetype</groupId>
     <artifactId>simpleapp-archetype</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
     <packaging>maven-archetype</packaging>
     <name>simpleapp-archetype</name>
     <build>
@@ -70,7 +70,7 @@
     <parent>
         <groupId>org.apache.isis.core</groupId>
         <artifactId>isis</artifactId>
-        <version>2.0.0-M1-SNAPSHOT</version>
+        <version>2.0.0-M2-SNAPSHOT</version>
         <relativePath>../../../core/pom.xml</relativePath>
     </parent>
     <properties>
diff --git a/pom.xml b/pom.xml
index b376ff4..7914330 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
 
     <groupId>org.apache.isis</groupId>
     <artifactId>isis-all</artifactId>
-    <version>2.0.0-M1-SNAPSHOT</version>
+    <version>2.0.0-M2-SNAPSHOT</version>
 
     <packaging>pom</packaging>
 

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 24/29: ISIS-1756 remove reflective access to DN's EnhancementHelper since we've got a dedicated method instead

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit c5d6e02d87fe70c20f918baf303ed952a7ca7d98
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Dec 9 09:55:21 2017 +0100

    ISIS-1756 remove reflective access to DN's EnhancementHelper since we've
    got a dedicated method instead
---
 .../datanucleus/DataNucleusLifeCycleHelper.java    | 136 +++++++++++++++++++++
 1 file changed, 136 insertions(+)

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
new file mode 100644
index 0000000..fc5669e
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/DataNucleusLifeCycleHelper.java
@@ -0,0 +1,136 @@
+/*
+ *  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.objectstore.jdo.datanucleus;
+
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.reflect.Field;
+import java.util.Map;
+import java.util.function.Consumer;
+
+import javax.jdo.PersistenceManagerFactory;
+
+import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.datanucleus.ClassLoaderResolver;
+import org.datanucleus.PersistenceNucleusContext;
+import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
+import org.datanucleus.enhancer.EnhancementHelper;
+import org.datanucleus.store.AbstractStoreManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * Purges any state associated with DataNucleus.
+ * 
+ * @author ahuber@apache.org
+ * @since 2.0.0
+ *
+ */
+public class DataNucleusLifeCycleHelper {
+	
+    private static final Logger LOG = LoggerFactory.getLogger(DataNucleusLifeCycleHelper.class);
+
+	public static void cleanUp(PersistenceManagerFactory persistenceManagerFactory) {
+		
+		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();
+			
+			// XXX uses reflection prior to DN v5.1.5
+			// remove once DN v5.1.5 is released
+			// dnUnregisterClassesManagedBy(cl);
+			
+			// XXX for info, why we do this see
+			// https://github.com/datanucleus/datanucleus-core/issues/272
+			EnhancementHelper.getInstance().unregisterClasses(cl);
+			
+		} catch (Exception e) {
+			// ignore, since it only affects re-deploy-ability, which is nice to have but not critical
+		}
+
+	}
+    
+    // -- HELPER
+    
+	// TODO remove once DN v5.1.5 is released
+	private static void dnUnregisterClassesManagedBy(ClassLoader cl) {
+    	if(cl==null)
+    		return;
+		visitDNRegisteredClasses(map->
+			map.entrySet()
+			.removeIf(entry->cl.equals(entry.getKey().getClassLoader()))
+		);
+	}
+    
+    // -- 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);
+		}
+	}
+
+
+
+}

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 05/29: ISIS-1276: fixes algorithm for lookup of datastore id's, at least

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 279ad1fa0bf3d8266d623db977e23a35d33b73a8
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Sep 18 22:55:49 2017 +0100

    ISIS-1276: fixes algorithm for lookup of datastore id's, at least
---
 .../persistence/spi/JdoObjectIdSerializer.java     | 45 +++++++---------------
 1 file changed, 13 insertions(+), 32 deletions(-)

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 fcfb0d8..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
@@ -93,37 +93,14 @@ public final class JdoObjectIdSerializer {
             final DatastoreId dnOid = (DatastoreId) jdoOid;
             final Object keyValue = dnOid.getKeyAsObject();
 
-            if(false) {
-
-                //
-                // 1.8.0 original handling, appending a prefix "L_" or whatever
-                //
-                // if required by user community, we could add a property in isis.properties to enable if requested.
-                //
-                if(keyValue instanceof String) {
-                    return "S" + SEPARATOR + keyValue;
-                }
-                if(keyValue instanceof Long) {
-                    return "L" + SEPARATOR + keyValue;
-                }
-
-                if(keyValue instanceof BigInteger) {
-                    return "B" + SEPARATOR + keyValue;
-                }
-                if(keyValue instanceof Integer) {
-                    return "I" + SEPARATOR + keyValue;
-                }
-
-            } else {
-                if( keyValue instanceof String ||
-                        keyValue instanceof Long ||
-                        keyValue instanceof BigDecimal || // 1.8.0 did not support BigDecimal
-                        keyValue instanceof BigInteger ||
-                        keyValue instanceof Integer) {
-
-                    // no separator
-                    return "" + keyValue;
-                }
+            if( keyValue instanceof String ||
+                    keyValue instanceof Long ||
+                    keyValue instanceof BigDecimal || // 1.8.0 did not support BigDecimal
+                    keyValue instanceof BigInteger ||
+                    keyValue instanceof Integer) {
+
+                // no separator
+                return "" + keyValue;
             }
         }
 
@@ -204,7 +181,11 @@ public final class JdoObjectIdSerializer {
             // @javax.jdo.annotations.PersistenceCapable(identityType = IdentityType.DATASTORE)
             // for one of the common types (prettier handling)
 
-            return idStr + "[OID]" + spec.getFullIdentifier();
+            // in DN 4.1, we did this...
+            // return idStr + "[OID]" + spec.getFullIdentifier();
+
+            // in DN 5.1, we simply do this...
+            return idStr;
 
         }
     }

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 11/29: ISIS-1728: uses typesafe queries for helloworld

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 4d17b700811bd28a61df1bde26d99617792188a8
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Sep 19 23:02:07 2017 +0100

    ISIS-1728: uses typesafe queries for helloworld
---
 .../runtime/systemusinginstallers/IsisComponentProvider.java     | 1 -
 .../src/main/java/domainapp/dom/impl/HelloWorldObject.java       | 4 +++-
 .../src/main/java/domainapp/dom/impl/HelloWorldObjects.java      | 9 +++++----
 .../java/domainapp/modules/simple/dom/impl/SimpleObjects.java    | 7 +++----
 4 files changed, 11 insertions(+), 10 deletions(-)

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 471b547..b637fe4 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
@@ -29,7 +29,6 @@ import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
 import javax.jdo.annotations.PersistenceCapable;
-import javax.ws.rs.HEAD;
 
 import com.google.common.base.Function;
 import com.google.common.base.Joiner;
diff --git a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
index 54a1a35..502b756 100644
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObject.java
@@ -43,7 +43,6 @@ import org.apache.isis.applib.services.title.TitleService;
 @javax.jdo.annotations.PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "helloworld" )
 @javax.jdo.annotations.DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
 @javax.jdo.annotations.Version(strategy= VersionStrategy.DATE_TIME, column ="version")
-@javax.jdo.annotations.Unique(name="HelloWorldObject_name_UNQ", members = {"name"})
 @DomainObject(auditing = Auditing.ENABLED)
 @DomainObjectLayout()  // causes UI events to be triggered
 public class HelloWorldObject implements Comparable<HelloWorldObject> {
@@ -52,6 +51,8 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
         this.name = name;
     }
 
+
+    @javax.jdo.annotations.Unique
     @javax.jdo.annotations.Column(allowsNull = "false", length = 40)
     @Property(editing = Editing.DISABLED)
     @Title(prepend = "Object: ")
@@ -59,6 +60,7 @@ public class HelloWorldObject implements Comparable<HelloWorldObject> {
     public String getName() { return name; }
     public void setName(final String name) { this.name = name; }
 
+
     @javax.jdo.annotations.Column(allowsNull = "true", length = 4000)
     @Property(editing = Editing.ENABLED)
     private String notes;
diff --git a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
index 92bd565..2c776f5 100644
--- a/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
+++ b/example/application/helloworld/src/main/java/domainapp/dom/impl/HelloWorldObjects.java
@@ -20,7 +20,7 @@ package domainapp.dom.impl;
 
 import java.util.List;
 
-import org.datanucleus.query.typesafe.TypesafeQuery;
+import javax.jdo.JDOQLTypedQuery;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.DomainService;
@@ -31,9 +31,9 @@ import org.apache.isis.applib.annotation.ParameterLayout;
 import org.apache.isis.applib.annotation.RestrictTo;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
-import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.repository.RepositoryService;
 
+
 @DomainService(
         nature = NatureOfService.VIEW_MENU_ONLY,
         objectType = "helloworld.HelloWorldObjects"
@@ -52,7 +52,7 @@ public class HelloWorldObjects {
     @Action(semantics = SemanticsOf.SAFE)
     @MemberOrder(sequence = "2")
     public List<HelloWorldObject> findByName(final String name) {
-        TypesafeQuery<HelloWorldObject> q = isisJdoSupport.newTypesafeQuery(HelloWorldObject.class);
+        JDOQLTypedQuery<HelloWorldObject> q = isisJdoSupport.newTypesafeQuery(HelloWorldObject.class);
         final QHelloWorldObject cand = QHelloWorldObject.candidate();
         q = q.filter(
                 cand.name.indexOf(q.stringParameter("name")).ne(-1)
@@ -64,7 +64,8 @@ public class HelloWorldObjects {
     @Action(semantics = SemanticsOf.SAFE, restrictTo = RestrictTo.PROTOTYPING)
     @MemberOrder(sequence = "3")
     public List<HelloWorldObject> listAll() {
-        return repositoryService.allInstances(HelloWorldObject.class);
+        return isisJdoSupport.newTypesafeQuery(HelloWorldObject.class)
+                .executeList();
     }
 
     @javax.inject.Inject
diff --git a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
index 335f9d0..d77fe47 100644
--- a/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
+++ b/example/application/simpleapp/module-simple/src/main/java/domainapp/modules/simple/dom/impl/SimpleObjects.java
@@ -20,7 +20,7 @@ package domainapp.modules.simple.dom.impl;
 
 import java.util.List;
 
-import org.datanucleus.query.typesafe.TypesafeQuery;
+import javax.jdo.JDOQLTypedQuery;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
@@ -35,7 +35,6 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
 import org.apache.isis.applib.services.jdosupport.IsisJdoSupport;
 import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.applib.services.xactn.TransactionService;
 
 @DomainService(
         nature = NatureOfService.VIEW_MENU_ONLY,
@@ -63,7 +62,7 @@ public class SimpleObjects {
             @ParameterLayout(named="Name")
             final String name
     ) {
-        TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
+        JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
         final QSimpleObject cand = QSimpleObject.candidate();
         q = q.filter(
                 cand.name.indexOf(q.stringParameter("name")).ne(-1)
@@ -74,7 +73,7 @@ public class SimpleObjects {
 
     @Programmatic
     public SimpleObject findByNameExact(final String name) {
-        TypesafeQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
+        JDOQLTypedQuery<SimpleObject> q = isisJdoSupport.newTypesafeQuery(SimpleObject.class);
         final QSimpleObject cand = QSimpleObject.candidate();
         q = q.filter(
                 cand.name.eq(q.stringParameter("name"))

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 17/29: ISIS-1756 utilize IsisWicketApplication's life-cycle instead of providing a life-cycle CDI Bean

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit dffff65d1ae23fa9e677fcc5eb0e72e33089ce6c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Oct 30 17:21:46 2017 +0100

    ISIS-1756 utilize IsisWicketApplication's life-cycle instead of
    providing a life-cycle CDI Bean
---
 .../webapp/jee/IsisDomainAppLifecycleBean.java     | 61 ----------------------
 .../wicket/viewer/IsisWicketApplication.java       |  1 +
 2 files changed, 1 insertion(+), 61 deletions(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java
deleted file mode 100644
index 416b11f..0000000
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *       http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-package org.apache.isis.core.webapp.jee;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import javax.ejb.Singleton;
-import javax.ejb.Startup;
-import javax.enterprise.context.ApplicationScoped;
-
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * 
- * JEE singleton that hooks into an Isis-Application's life-cycle. 
- * 
- * <p>
- * This CDI managed Bean ensures proper destruction of Isis's context.
- * </p>
- * 
- * @author ahuber@apache.org
- *
- */
-@Singleton
-@Startup
-@ApplicationScoped
-public class IsisDomainAppLifecycleBean {
-
-	private static final Logger log = LoggerFactory.getLogger(IsisDomainAppLifecycleBean.class);
-	
-	@PostConstruct
-	public void init() {
-		log.info("initializing ...");
-	}
-	
-	@PreDestroy
-	public void destroy() {
-		IsisContext.destroy();
-		log.info("destroyed.");
-	}
-	
-}
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 03426ac..3347ca4 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
@@ -859,6 +859,7 @@ public class IsisWicketApplication
             }
             getServletContext().setAttribute(WebAppConstants.ISIS_SESSION_FACTORY, null);
             super.onDestroy();
+            IsisContext.destroy();
         } catch(final RuntimeException ex) {
             // symmetry with #init()
             LOG.error("Failed to destroy", ex);

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 04/29: ISIS-1276: fixes compile issues in metamodel and runtime

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 9fadf6e7a6752c461812cbe5dd6a7c4c883b5e64
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Sep 18 22:29:13 2017 +0100

    ISIS-1276: fixes compile issues in metamodel and runtime
---
 .../value/vsp/ValueSemanticsProviderUtil.java      |  2 --
 ...ionParameterAbstractTest_getId_and_getName.java |  8 ++++---
 .../DataNucleusApplicationComponents.java          |  2 +-
 .../persistence/PersistenceSessionFactory.java     |  2 +-
 .../CreateSchemaObjectFromClassMetadata.java       |  3 ++-
 .../service/support/IsisJdoSupportImpl.java        | 27 +++++++++-------------
 6 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java
index 03658a5..b34d5fe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueSemanticsProviderUtil.java
@@ -24,7 +24,6 @@ import com.google.common.base.Strings;
 import org.apache.isis.applib.adapters.ValueSemanticsProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.ClassUtil;
-import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 
 public final class ValueSemanticsProviderUtil {
@@ -46,7 +45,6 @@ public final class ValueSemanticsProviderUtil {
         @SuppressWarnings("rawtypes")
         final Class clazz = candidateClass != null ? ClassUtil.implementingClassOrNull(candidateClass.getName(), ValueSemanticsProvider.class, FacetHolder.class) : null;
         return clazz != null ? clazz : (Class)ClassUtil.implementingClassOrNull(classCandidateName, ValueSemanticsProvider.class, FacetHolder.class);
-
     }
 
 }
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
index 1f3fcc3..3e1eb76 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstractTest_getId_and_getName.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
+import javax.ws.rs.HEAD;
+
 import com.google.common.base.Predicate;
 import com.google.common.collect.Lists;
 
@@ -164,7 +166,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
                 one(actionParamPeer).getFacet(NamedFacet.class);
                 will(returnValue(null));
 
-                one(parentAction).getParameters((Predicate<ObjectActionParameter>) with(Expectations.<Predicate>anything()));
+                one(parentAction).getParameters(with(Expectations.<Predicate<ObjectActionParameter>>anything()));
                 will(returnValue(Lists.newArrayList(objectActionParameter)));
             }
         });
@@ -183,7 +185,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
                 one(actionParamPeer).getFacet(NamedFacet.class);
                 will(returnValue(null));
 
-                one(parentAction).getParameters(with(Expectations.<Predicate>anything()));
+                one(parentAction).getParameters(with(Expectations.<Predicate<ObjectActionParameter>>anything()));
                 will(returnValue(Lists.newArrayList(stubObjectActionParameterString, objectActionParameter, stubObjectActionParameterString2)));
             }
         });
@@ -202,7 +204,7 @@ public class ObjectActionParameterAbstractTest_getId_and_getName {
                 one(actionParamPeer).getFacet(NamedFacet.class);
                 will(returnValue(null));
 
-                one(parentAction).getParameters(with(Expectations.<Predicate>anything()));
+                one(parentAction).getParameters(with(Expectations.<Predicate<ObjectActionParameter>>anything()));
                 will(returnValue(Lists.newArrayList(stubObjectActionParameterString, objectActionParameter, stubObjectActionParameterString2)));
             }
         });
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
index 52ac35b..a68ce06 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
@@ -144,7 +144,7 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
                 // (if the configured StoreMgr supports it, and if requested in isis.properties)
                 //
                 datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_ALL, "false"); // turn off, cos want to do the schema object ourselves...
-                datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_SCHEMA, "false");
+                datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_DATABASE, "false");
                 datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_TABLES, "true"); // but have DN do everything else...
                 datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_COLUMNS, "true");
                 datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_CONSTRAINTS, "true");
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 8a32edb..095fbee 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
@@ -112,7 +112,7 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
         putIfNotPresent(props, "javax.jdo.PersistenceManagerFactoryClass", JDOPersistenceManagerFactory.class.getName());
 
         // previously we defaulted this property to "true", but that could cause the target database to be modified
-        putIfNotPresent(props, PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_SCHEMA, Boolean.FALSE.toString());
+        putIfNotPresent(props, PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_DATABASE, Boolean.FALSE.toString());
 
         putIfNotPresent(props, PropertyNames.PROPERTY_SCHEMA_VALIDATE_ALL, Boolean.TRUE.toString());
         putIfNotPresent(props, PropertyNames.PROPERTY_CACHE_L2_TYPE, "none");
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
index 6b2d536..87c6e91 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/CreateSchemaObjectFromClassMetadata.java
@@ -31,10 +31,11 @@ import org.datanucleus.ClassLoaderResolver;
 import org.datanucleus.enhancer.EnhancementNucleusContextImpl;
 import org.datanucleus.metadata.AbstractClassMetaData;
 import org.datanucleus.metadata.MetaDataListener;
-import org.datanucleus.store.encryption.ConnectionEncryptionProvider;
+import org.datanucleus.store.ConnectionEncryptionProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+
 /**
  * Implementation note: the methods in this class are <tt>protected</tt> to allow for easy subclassing.
  */
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
index a9a2ac5..e5171c9 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
@@ -29,16 +29,14 @@ import java.util.Map;
 import java.util.concurrent.Callable;
 
 import javax.jdo.Extent;
+import javax.jdo.JDOQLTypedQuery;
 import javax.jdo.PersistenceManager;
 import javax.jdo.datastore.JDOConnection;
+import javax.jdo.query.BooleanExpression;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 
-import org.datanucleus.api.jdo.JDOPersistenceManager;
-import org.datanucleus.query.typesafe.BooleanExpression;
-import org.datanucleus.query.typesafe.TypesafeQuery;
-
 import org.apache.isis.applib.FatalException;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
@@ -158,12 +156,9 @@ public class IsisJdoSupportImpl implements IsisJdoSupport {
             
             // temporarily disable concurrency checking while this method is performed
             try {
-                ConcurrencyChecking.executeWithConcurrencyCheckingDisabled(new Callable<Void>() {
-                    @Override
-                    public Void call() {
-                        getJdoPersistenceManager().deletePersistentAll(instances);
-                        return null;
-                    }
+                ConcurrencyChecking.executeWithConcurrencyCheckingDisabled((Callable<Void>) () -> {
+                    getJdoPersistenceManager().deletePersistentAll(instances);
+                    return null;
                 });
             } catch (final Exception ex) {
                 throw new FatalException(ex);
@@ -176,31 +171,31 @@ public class IsisJdoSupportImpl implements IsisJdoSupport {
     @Programmatic
     @Override
     public <T> List<T> executeQuery(final Class<T> cls, final BooleanExpression expression) {
-        final TypesafeQuery<T> query = newTypesafeQuery(cls).filter(expression);
+        final JDOQLTypedQuery<T> query = newTypesafeQuery(cls).filter(expression);
         return executeListAndClose(query);
     }
 
     @Programmatic
     @Override
     public <T> T executeQueryUnique(final Class<T> cls, final BooleanExpression expression) {
-        final TypesafeQuery<T> query = newTypesafeQuery(cls).filter(expression);
+        final JDOQLTypedQuery<T> query = newTypesafeQuery(cls).filter(expression);
         return executeUniqueAndClose(query);
     }
 
     @Programmatic
     @Override
-    public <T> TypesafeQuery<T> newTypesafeQuery(Class<T> cls) {
-        return ((JDOPersistenceManager)getJdoPersistenceManager()).newTypesafeQuery(cls);
+    public <T> JDOQLTypedQuery<T> newTypesafeQuery(Class<T> cls) {
+        return getJdoPersistenceManager().newJDOQLTypedQuery(cls);
     }
 
-    private static <T> List<T> executeListAndClose(final TypesafeQuery<T> query) {
+    private static <T> List<T> executeListAndClose(final JDOQLTypedQuery<T> query) {
         final List<T> elements = query.executeList();
         final List<T> list = Lists.newArrayList(elements);
         query.closeAll();
         return list;
     }
 
-    private static <T> T executeUniqueAndClose(final TypesafeQuery<T> query) {
+    private static <T> T executeUniqueAndClose(final JDOQLTypedQuery<T> query) {
         final T result = query.executeUnique();
         query.closeAll();
         return result;

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 22/29: ISIS-1754 proper DN class-loading

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a89cb4ec41ca832b4139f3ed1e8cc67dfc644b13
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Nov 22 12:08:32 2017 +0100

    ISIS-1754 proper DN class-loading
---
 .../core/runtime/system/context/IsisContext.java   |  3 ++-
 .../DataNucleusApplicationComponents.java          | 27 +++++++++++-----------
 .../wicket/viewer/IsisWicketApplication.java       |  2 ++
 3 files changed, 18 insertions(+), 14 deletions(-)

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 ee1cc1c..40929e2 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
@@ -48,7 +48,7 @@ public interface IsisContext {
 				()->new IllegalStateException(
 						"internal error: should have been populated by IsisSessionFactoryBuilder") );
 	}
-	
+
 	/**
 	 * 
 	 * @return Isis's default class loader
@@ -79,4 +79,5 @@ public interface IsisContext {
     	clear();
     }
 
+
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
index a68ce06..8fafca8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
@@ -25,26 +25,26 @@ import java.util.Set;
 import javax.jdo.JDOHelper;
 import javax.jdo.PersistenceManagerFactory;
 
-import com.google.common.base.Joiner;
-import com.google.common.collect.Maps;
-
-import org.datanucleus.PersistenceNucleusContext;
-import org.datanucleus.PropertyNames;
-import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
-import org.datanucleus.metadata.MetaDataListener;
-import org.datanucleus.metadata.MetaDataManager;
-import org.datanucleus.store.StoreManager;
-import org.datanucleus.store.schema.SchemaAwareStoreManager;
-
 import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata;
 import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusPropertiesAware;
 import org.apache.isis.objectstore.jdo.metamodel.facets.object.query.JdoNamedQuery;
 import org.apache.isis.objectstore.jdo.metamodel.facets.object.query.JdoQueryFacet;
+import org.datanucleus.PersistenceNucleusContext;
+import org.datanucleus.PropertyNames;
+import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
+import org.datanucleus.metadata.MetaDataListener;
+import org.datanucleus.metadata.MetaDataManager;
+import org.datanucleus.store.StoreManager;
+import org.datanucleus.store.schema.SchemaAwareStoreManager;
+
+import com.google.common.base.Joiner;
+import com.google.common.collect.Maps;
 
 public class DataNucleusApplicationComponents implements ApplicationScopedComponent {
 
@@ -148,8 +148,9 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
                 datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_TABLES, "true"); // but have DN do everything else...
                 datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_COLUMNS, "true");
                 datanucleusProps.put(PropertyNames.PROPERTY_SCHEMA_AUTOCREATE_CONSTRAINTS, "true");
-
-                persistenceManagerFactory = JDOHelper.getPersistenceManagerFactory(datanucleusProps);
+                
+                persistenceManagerFactory = JDOHelper
+                		.getPersistenceManagerFactory(datanucleusProps,	IsisContext.getClassLoader() );
                 createSchema(persistenceManagerFactory, persistableClassNameSet, datanucleusProps);
 
             } else {
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 ae3f78d..d249d68 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
@@ -333,6 +333,8 @@ public class IsisWicketApplication
         List<Future<Object>> futures = null;
         try {
             super.init();
+            
+            IsisContext.setClassLoader(this.getClass().getClassLoader());
 
             futures = startBackgroundInitializationThreads();
 

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 19/29: ISIS-1755 TomEE requires Service Providers to be public classes

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 65468d78d9fc3c78c897084ae5ad05d67b438435
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Oct 31 09:01:45 2017 +0100

    ISIS-1755 TomEE requires Service Providers to be public classes
---
 .../org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
index 6632a59..c75605c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisCDIBeanScanInterceptor.java
@@ -50,7 +50,7 @@ import org.slf4j.LoggerFactory;
  * @author ahuber@apache.org
  *
  */
-final class IsisCDIBeanScanInterceptor implements Extension {
+public final class IsisCDIBeanScanInterceptor implements Extension {
 	
 	private static final Logger log = LoggerFactory.getLogger(IsisCDIBeanScanInterceptor.class);
 

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 13/29: ISIS-1756 JEE 7+ Isis App life-cycling

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit f6fd626d53a0122538955f1851544d1d2cc83bf3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Oct 29 09:29:38 2017 +0100

    ISIS-1756 JEE 7+ Isis App life-cycling
---
 .../webapp/jee/IsisDomainAppLifecycleBean.java     |  61 +++++++++++
 .../webapp/jee/PersistenceUnitNoopProvider.java    | 112 +++++++++++++++++++++
 .../src/main/resources/META-INF/persistence.xml    |   8 ++
 3 files changed, 181 insertions(+)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java
new file mode 100644
index 0000000..07881e3
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java
@@ -0,0 +1,61 @@
+/*
+ * 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.webapp.jee;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.ejb.Singleton;
+import javax.ejb.Startup;
+import javax.enterprise.context.ApplicationScoped;
+
+import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * 
+ * JEE singleton that hooks into an Isis-Application's life-cycle. 
+ * 
+ * <p>
+ * This CDI managed Bean ensures proper destruction of Isis's context.
+ * </p>
+ * 
+ * @author ahuber@apache.org
+ *
+ */
+@Singleton
+@Startup
+@ApplicationScoped
+public class IsisDomainAppLifecycleBean {
+
+	private static final Logger log = LoggerFactory.getLogger(IsisDomainAppLifecycleBean.class);
+	
+	@PostConstruct
+	public void init() {
+		log.info("initializing ...");
+	}
+	
+	@PreDestroy
+	public void destroy() {
+		IsisContext.destroy();
+		log.info("detroyed.");
+	}
+	
+}
diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/PersistenceUnitNoopProvider.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/PersistenceUnitNoopProvider.java
new file mode 100644
index 0000000..3a9bac1
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/PersistenceUnitNoopProvider.java
@@ -0,0 +1,112 @@
+/*
+ * 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.webapp.jee;
+
+import java.util.Map;
+
+import javax.persistence.Cache;
+import javax.persistence.EntityGraph;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.PersistenceUnitUtil;
+import javax.persistence.Query;
+import javax.persistence.SynchronizationType;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.metamodel.Metamodel;
+import javax.persistence.spi.PersistenceUnitInfo;
+import javax.persistence.spi.ProviderUtil;
+import javax.resource.NotSupportedException;
+
+/**
+ * Implements a PersistenceProvider that does nothing.
+ * <p>
+ * Note: the axon framework on JEE requires at least a dummy persistence unit. 
+ * This requires that the {@code web.xml} includes a {@code persistence-context-ref} entry as follows:
+ * 
+ * <pre>{@code
+ * <persistence-context-ref>
+ *     <persistence-context-ref-name>org.axonframework.common.jpa.ContainerManagedEntityManagerProvider/entityManager</persistence-context-ref-name>
+ *     <persistence-unit-name>noop</persistence-unit-name>
+ * </persistence-context-ref>
+ * }
+ * </pre>
+ * </p>
+ * <p>
+ * A {@code META_INF/persistence.xml} that declares the 'noop' persistence-unit 
+ * is bundled with this module. 
+ * </p>
+ * 
+ * @author ahuber@apache.org
+ *
+ */
+@SuppressWarnings("rawtypes") 
+public class PersistenceUnitNoopProvider implements javax.persistence.spi.PersistenceProvider{
+
+	@Override
+	public EntityManagerFactory createEntityManagerFactory(String emName, Map map) {
+		return noopEntityManagerFactory();
+	}
+
+	@Override
+	public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo info, Map map) {
+		return noopEntityManagerFactory();
+	}
+
+	@Override
+	public void generateSchema(PersistenceUnitInfo info, Map map) {
+		throw notSupported();	
+	}
+
+	@Override
+	public boolean generateSchema(String persistenceUnitName, Map map) {
+		throw notSupported();
+	}
+
+	@Override
+	public ProviderUtil getProviderUtil() {
+		throw notSupported();
+	}
+
+	// -- HELPER
+
+	private static RuntimeException notSupported() {
+		return new RuntimeException(
+				new NotSupportedException("This PersistenceProvider is just a dummy."));
+	}
+	
+	private EntityManagerFactory noopEntityManagerFactory() {
+		return new EntityManagerFactory() {
+			@Override public EntityManager createEntityManager() {	return null; }
+			@Override public EntityManager createEntityManager(Map map) { return null; }
+			@Override public EntityManager createEntityManager(SynchronizationType synchronizationType) { return null;	}
+			@Override public EntityManager createEntityManager(SynchronizationType synchronizationType, Map map) { return null;	}
+			@Override public CriteriaBuilder getCriteriaBuilder() { return null; }
+			@Override public Metamodel getMetamodel() { return null; }
+			@Override public boolean isOpen() {	return false; }
+			@Override public void close() {	}
+			@Override public Map<String, Object> getProperties() { return null;	}
+			@Override public Cache getCache() { return null; }
+			@Override public PersistenceUnitUtil getPersistenceUnitUtil() {	return null; }
+			@Override public void addNamedQuery(String name, Query query) {	}
+			@Override public <T> T unwrap(Class<T> cls) { return null; }
+			@Override public <T> void addNamedEntityGraph(String graphName, EntityGraph<T> entityGraph) { }
+		};
+	}
+	
+}
diff --git a/core/runtime/src/main/resources/META-INF/persistence.xml b/core/runtime/src/main/resources/META-INF/persistence.xml
new file mode 100644
index 0000000..356a2aa
--- /dev/null
+++ b/core/runtime/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
+
+	<!-- declares a persistence unit that does nothing -->
+	<persistence-unit name="noop">
+		<provider>org.apache.isis.core.webapp.jee.PersistenceUnitNoopProvider</provider>
+	</persistence-unit>
+</persistence>

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 20/29: ISIS-1775 Honor web-app's context path when configuring swagger.

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 2bfc6585981069cfea74520045abe937d407f4eb
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Nov 12 19:13:37 2017 +0100

    ISIS-1775 Honor web-app's context path when configuring swagger.
---
 .../services/swagger/SwaggerServiceDefault.java    | 15 +++-
 .../isis/core/webapp/WebAppContextSupport.java     | 31 +++++++
 .../wicket/viewer/IsisWicketApplication.java       | 95 +++++++++++-----------
 3 files changed, 91 insertions(+), 50 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java
index 968a93c..192b5f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/swagger/SwaggerServiceDefault.java
@@ -22,15 +22,15 @@ import java.util.Map;
 
 import javax.annotation.PostConstruct;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.swagger.SwaggerService;
 import org.apache.isis.core.metamodel.services.swagger.internal.SwaggerSpecGenerator;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+import org.apache.isis.core.webapp.WebAppContextSupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @DomainService(
         nature = NatureOfService.DOMAIN,
@@ -48,7 +48,14 @@ public class SwaggerServiceDefault implements SwaggerService {
 
     @PostConstruct
     public void init(final Map<String,String> properties) {
-        this.basePath = getPropertyElse(properties, KEY_RESTFUL_BASE_PATH, KEY_RESTFUL_BASE_PATH_DEFAULT);
+    	
+    	final String webappContextPath = 
+    			getPropertyElse(properties, WebAppContextSupport.WEB_APP_CONTEXT_PATH, "/");
+    	
+    	final String basePath = 
+    			getPropertyElse(properties, KEY_RESTFUL_BASE_PATH, KEY_RESTFUL_BASE_PATH_DEFAULT);
+    	
+    	this.basePath = WebAppContextSupport.prependContextPathIfPresent(webappContextPath, basePath);
     }
 
     static String getPropertyElse(final Map<String, String> properties, final String key, final String dflt) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/webapp/WebAppContextSupport.java b/core/metamodel/src/main/java/org/apache/isis/core/webapp/WebAppContextSupport.java
new file mode 100644
index 0000000..044fe67
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/webapp/WebAppContextSupport.java
@@ -0,0 +1,31 @@
+package org.apache.isis.core.webapp;
+
+import javax.servlet.ServletContext;
+
+import com.google.common.base.Strings;
+
+public class WebAppContextSupport {
+
+    /**
+     * Property name given to the context path of the web application as returned by 
+     * {@link ServletContext#getContextPath()}.
+     */
+	public static final String WEB_APP_CONTEXT_PATH = "application.webapp.context-path";
+	
+	
+	public static String prependContextPathIfPresent(String contextPath, String path) {
+		if(Strings.isNullOrEmpty(contextPath) || contextPath.equals("/"))
+			return path;
+		
+		if(!contextPath.startsWith("/"))
+			throw new IllegalArgumentException(
+					"contextPath must start with a slash '/' character, got '"+contextPath+"'");
+
+		if(!path.startsWith("/"))
+			throw new IllegalArgumentException(
+					"path must start with a slash '/' character, got '"+path+"'");
+		
+		return contextPath + path;
+	}
+	
+}
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 e3376e6..ae3f78d 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,52 +30,6 @@ import java.util.UUID;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 
-import com.google.common.base.Function;
-import com.google.common.base.Joiner;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
-import com.google.common.io.Resources;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-import org.apache.wicket.Application;
-import org.apache.wicket.Component;
-import org.apache.wicket.ConverterLocator;
-import org.apache.wicket.IConverterLocator;
-import org.apache.wicket.Page;
-import org.apache.wicket.RuntimeConfigurationType;
-import org.apache.wicket.SharedResources;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.authentication.IAuthenticationStrategy;
-import org.apache.wicket.authentication.strategy.DefaultAuthenticationStrategy;
-import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
-import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
-import org.apache.wicket.core.request.mapper.MountedMapper;
-import org.apache.wicket.devutils.debugbar.DebugBar;
-import org.apache.wicket.devutils.debugbar.InspectorDebugPanel;
-import org.apache.wicket.devutils.debugbar.PageSizeDebugPanel;
-import org.apache.wicket.devutils.debugbar.SessionSizeDebugPanel;
-import org.apache.wicket.devutils.debugbar.VersionDebugContributor;
-import org.apache.wicket.devutils.diskstore.DebugDiskDataStore;
-import org.apache.wicket.guice.GuiceComponentInjector;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.filter.JavaScriptFilteredIntoFooterHeaderResponse;
-import org.apache.wicket.markup.html.IHeaderContributor;
-import org.apache.wicket.markup.html.IHeaderResponseDecorator;
-import org.apache.wicket.markup.html.WebPage;
-import org.apache.wicket.request.cycle.IRequestCycleListener;
-import org.apache.wicket.request.cycle.PageRequestHandlerTracker;
-import org.apache.wicket.request.cycle.RequestCycleListenerCollection;
-import org.apache.wicket.request.resource.CssResourceReference;
-import org.apache.wicket.settings.DebugSettings;
-import org.apache.wicket.settings.RequestCycleSettings;
-import org.apache.wicket.util.IContextProvider;
-import org.apache.wicket.util.time.Duration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.wicketstuff.select2.ApplicationSettings;
-
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
@@ -91,6 +45,7 @@ import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.threadpool.ThreadPoolSupport;
 import org.apache.isis.core.webapp.IsisWebAppBootstrapper;
 import org.apache.isis.core.webapp.WebAppConstants;
+import org.apache.isis.core.webapp.WebAppContextSupport;
 import org.apache.isis.schema.utils.ChangesDtoUtils;
 import org.apache.isis.schema.utils.CommandDtoUtils;
 import org.apache.isis.schema.utils.InteractionDtoUtils;
@@ -119,6 +74,51 @@ import org.apache.isis.viewer.wicket.viewer.integration.wicket.ConverterForObjec
 import org.apache.isis.viewer.wicket.viewer.integration.wicket.ConverterForObjectAdapterMemento;
 import org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis;
 import org.apache.isis.viewer.wicket.viewer.settings.IsisResourceSettings;
+import org.apache.wicket.Application;
+import org.apache.wicket.Component;
+import org.apache.wicket.ConverterLocator;
+import org.apache.wicket.IConverterLocator;
+import org.apache.wicket.Page;
+import org.apache.wicket.RuntimeConfigurationType;
+import org.apache.wicket.SharedResources;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authentication.IAuthenticationStrategy;
+import org.apache.wicket.authentication.strategy.DefaultAuthenticationStrategy;
+import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
+import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
+import org.apache.wicket.core.request.mapper.MountedMapper;
+import org.apache.wicket.devutils.debugbar.DebugBar;
+import org.apache.wicket.devutils.debugbar.InspectorDebugPanel;
+import org.apache.wicket.devutils.debugbar.PageSizeDebugPanel;
+import org.apache.wicket.devutils.debugbar.SessionSizeDebugPanel;
+import org.apache.wicket.devutils.debugbar.VersionDebugContributor;
+import org.apache.wicket.devutils.diskstore.DebugDiskDataStore;
+import org.apache.wicket.guice.GuiceComponentInjector;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.filter.JavaScriptFilteredIntoFooterHeaderResponse;
+import org.apache.wicket.markup.html.IHeaderContributor;
+import org.apache.wicket.markup.html.IHeaderResponseDecorator;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.request.cycle.IRequestCycleListener;
+import org.apache.wicket.request.cycle.PageRequestHandlerTracker;
+import org.apache.wicket.request.cycle.RequestCycleListenerCollection;
+import org.apache.wicket.request.resource.CssResourceReference;
+import org.apache.wicket.settings.DebugSettings;
+import org.apache.wicket.settings.RequestCycleSettings;
+import org.apache.wicket.util.IContextProvider;
+import org.apache.wicket.util.time.Duration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.wicketstuff.select2.ApplicationSettings;
+
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import com.google.common.io.Resources;
+import com.google.inject.Guice;
+import com.google.inject.Injector;
+import com.google.inject.Module;
 
 import de.agilecoders.wicket.core.Bootstrap;
 import de.agilecoders.wicket.core.markup.html.bootstrap.behavior.BootstrapBaseBehavior;
@@ -346,6 +346,9 @@ public class IsisWicketApplication
 
             final IsisConfigurationBuilder isisConfigurationBuilder = obtainConfigBuilder();
             isisConfigurationBuilder.addDefaultConfigurationResourcesAndPrimers();
+            
+            final String webappContextPath = getServletContext().getContextPath();
+            isisConfigurationBuilder.add(WebAppContextSupport.WEB_APP_CONTEXT_PATH, webappContextPath);
 
             final IsisConfigurationDefault configuration = isisConfigurationBuilder.getConfiguration();
 

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 10/29: ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 1a0c3ebbe67b34360242f23cbc358c5fa4828319
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Sep 19 22:59:43 2017 +0100

    ISIS-1726: generalizes the logic that searches for @PersistenceCapable entities, to also take into account meta-annotations.
---
 .../isis/applib/internal/reflection/_Reflect.java  |  9 ++++--
 .../internal/reflection/_Reflect_Discovery.java    | 24 +++++++++++++++-
 .../IsisComponentProvider.java                     | 33 ++++++++++++++--------
 3 files changed, 51 insertions(+), 15 deletions(-)

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 589cf31..e0b213d 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,10 +23,11 @@ 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>
@@ -54,6 +55,9 @@ 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
@@ -79,5 +83,6 @@ public final class _Reflect {
 				new SubTypesScanner(false)
 		);
 	}
-	
+
+
 }
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 9059e05..5db08e5 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,11 +8,15 @@ 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;
 
 /**
  * 
@@ -80,6 +84,24 @@ 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/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 70c0acb..471b547 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
@@ -19,14 +19,26 @@
 
 package org.apache.isis.core.runtime.systemusinginstallers;
 
+import java.lang.annotation.Annotation;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
 import javax.jdo.annotations.PersistenceCapable;
+import javax.ws.rs.HEAD;
+
+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.reflections.Reflections;
 
 import org.apache.isis.applib.AppManifest;
 import org.apache.isis.applib.annotation.DomainObject;
@@ -58,13 +70,6 @@ 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;
-
 /**
  * 
  */
@@ -138,7 +143,7 @@ public abstract class IsisComponentProvider {
         final Discovery discovery = _Reflect.discover(moduleAndFrameworkPackages);
 
         final Set<Class<?>> domainServiceTypes = discovery.getTypesAnnotatedWith(DomainService.class);
-        final Set<Class<?>> persistenceCapableTypes = discovery.getTypesAnnotatedWith(PersistenceCapable.class);
+        final Set<Class<?>> persistenceCapableTypes = discovery.findPersistenceCapableTypes();
         final Set<Class<? extends FixtureScript>> fixtureScriptTypes = discovery.getSubTypesOf(FixtureScript.class);
 
         final Set<Class<?>> mixinTypes = Sets.newHashSet();
@@ -146,9 +151,13 @@ public abstract class IsisComponentProvider {
 
         final Set<Class<?>> domainObjectTypes = discovery.getTypesAnnotatedWith(DomainObject.class);
         mixinTypes.addAll(
-                domainObjectTypes.stream()
-                        .filter(input -> input.getAnnotation(DomainObject.class).nature() == Nature.MIXIN)
-                        .collect(Collectors.toList())
+                domainObjectTypes.stream().filter(input -> {
+                    if (input == null) {
+                        return false;
+                    }
+                    final DomainObject annotation = input.getAnnotation(DomainObject.class);
+                    return annotation.nature() == Nature.MIXIN;
+                }).collect(Collectors.toList())
         );
         
         
@@ -190,7 +199,7 @@ public abstract class IsisComponentProvider {
     }
     static private boolean containedWithin(final List<String> packagesWithDotSuffix, final String className) {
         for (String packageWithDotSuffix : packagesWithDotSuffix) {
-            if(className.startsWith(packageWithDotSuffix)) {
+            if (className.startsWith(packageWithDotSuffix)) {
                 return true;
             }
         }

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 06/29: ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit cd2f87ded9ad7cbd1db94e9c3c622a8d2e6bae95
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Sep 19 22:43:59 2017 +0100

    ISIS-1723: removes jdo applib's Auditable interface and @Auditable annotation
---
 .../system/persistence/PersistenceSessionFactoryMetamodelRefiner.java    | 1 -
 1 file changed, 1 deletion(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java
index 8f5352d..7c6108e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactoryMetamodelRefiner.java
@@ -57,7 +57,6 @@ public class PersistenceSessionFactoryMetamodelRefiner implements MetaModelRefin
         // and also MandatoryFacetOnPropertyMandatoryAnnotationFactory
         // and also PropertyAnnotationFactory
         programmingModel.addFactory(new MandatoryFromJdoColumnAnnotationFacetFactory());
-
     }
 
     @Override

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 07/29: ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit f882c42f2dcd42976917cbdfaf82d4b91145c7c5
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Sep 19 22:50:00 2017 +0100

    ISIS-1724: removes the deprecated IsisJdoSupport in the jdo applib
---
 .../objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
index e5171c9..6e2ef41 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/service/support/IsisJdoSupportImpl.java
@@ -62,7 +62,7 @@ import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
         nature = NatureOfService.DOMAIN,
         menuOrder = "" + Integer.MAX_VALUE
 )
-public class IsisJdoSupportImpl implements IsisJdoSupport {
+public class IsisJdoSupportImpl implements org.apache.isis.applib.services.jdosupport.IsisJdoSupport {
     
     @Programmatic
     @Override

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 15/29: ISIS-1756 - fix typo

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 46cee7b0238201aa3531f34038f930f12bb7fee3
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Oct 29 10:25:52 2017 +0100

    ISIS-1756 - fix typo
---
 .../org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java
index 07881e3..416b11f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/webapp/jee/IsisDomainAppLifecycleBean.java
@@ -55,7 +55,7 @@ public class IsisDomainAppLifecycleBean {
 	@PreDestroy
 	public void destroy() {
 		IsisContext.destroy();
-		log.info("detroyed.");
+		log.info("destroyed.");
 	}
 	
 }

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 08/29: ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit f2bc631c1d4e1eccec0c20383e4eb334410eca88
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Sep 19 22:55:48 2017 +0100

    ISIS-1725: requires that an AppManifest is supplied (used to obtain list of entities).
---
 .../persistence/PersistenceSessionFactory.java     |  2 +-
 .../objectstore/jdo/service/RegisterEntities.java  | 83 ++++------------------
 2 files changed, 15 insertions(+), 70 deletions(-)

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 095fbee..92f950d 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
@@ -93,7 +93,7 @@ public class PersistenceSessionFactory implements ApplicationScopedComponent, Fi
             final Map<String, String> datanucleusProps = dataNucleusConfig.asMap();
             addDataNucleusPropertiesIfRequired(datanucleusProps);
 
-            final RegisterEntities registerEntities = new RegisterEntities(configuration.asMap(), specificationLoader);
+            final RegisterEntities registerEntities = new RegisterEntities(specificationLoader);
             final Set<String> classesToBePersisted = registerEntities.getEntityTypes();
 
             applicationComponents = new DataNucleusApplicationComponents(jdoObjectstoreConfig, specificationLoader,
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
index 7cbb48b..1908dfe 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/service/RegisterEntities.java
@@ -18,33 +18,30 @@
  */
 package org.apache.isis.objectstore.jdo.service;
 
-import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 
 import javax.jdo.annotations.PersistenceCapable;
 
-import org.apache.isis.applib.AppManifest;
-import org.apache.isis.applib.internal.reflection._Reflect;
-import org.apache.isis.applib.internal.reflection._Reflect.Discovery;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Function;
 import com.google.common.base.Joiner;
-import com.google.common.base.Splitter;
-import com.google.common.base.Strings;
-import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.isis.applib.AppManifest;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
+
 public class RegisterEntities {
 
     @SuppressWarnings("unused")
     private final static Logger LOG = LoggerFactory.getLogger(RegisterEntities.class);
-    
+
+    /**
+     * @deprecated - no longer used; instead an AppManifest must be specified.
+     */
+    @Deprecated
     public final static String PACKAGE_PREFIX_KEY = "isis.persistor.datanucleus.RegisterEntities.packagePrefix";
 
     // //////////////////////////////////////
@@ -59,13 +56,13 @@ public class RegisterEntities {
     }
     //endregion
 
-    public RegisterEntities(final Map<String, String> configuration, final SpecificationLoader specificationLoader) {
+    public RegisterEntities(final SpecificationLoader specificationLoader) {
         this.specificationLoader = specificationLoader;
 
         Set<Class<?>> persistenceCapableTypes = AppManifest.Registry.instance().getPersistenceCapableTypes();
 
         if(persistenceCapableTypes == null) {
-            persistenceCapableTypes = searchForPersistenceCapables(configuration);
+            throw new IllegalStateException("AppManifest is required");
         }
 
         final List<String> classNamesNotEnhanced = Lists.newArrayList();
@@ -85,52 +82,11 @@ public class RegisterEntities {
         }
     }
 
-    /**
-     * only called if no appManifest
-     */
-    Set<Class<?>> searchForPersistenceCapables(final Map<String, String> configuration) {
-
-        final String packagePrefixes = lookupPackagePrefixes(configuration);
-
-        final Set<Class<?>> persistenceCapableTypes = Sets.newLinkedHashSet();
-        final List<String> domPackages = parseDomPackages(packagePrefixes);
-        for (final String packageName : domPackages) {
-        	
-        	final Discovery dicovery = _Reflect.discover(packageName);
-        	
-            final Set<Class<?>> entityTypesInPackage =
-            		dicovery.getTypesAnnotatedWith(PersistenceCapable.class);
-
-            if(entityTypesInPackage.isEmpty()) {
-                throw new IllegalArgumentException(String.format(
-                        "Bad configuration.\n\nCould not locate any @PersistenceCapable entities in package '%s'\n" +
-                                "Check value of '%s' key in WEB-INF/*.properties\n",
-                        packageName,
-                        PACKAGE_PREFIX_KEY));
-            }
-            persistenceCapableTypes.addAll(entityTypesInPackage);
-        }
-        return persistenceCapableTypes;
-    }
-
-    private String lookupPackagePrefixes(final Map<String, String> configuration) {
-        final String packagePrefixes = configuration.get(PACKAGE_PREFIX_KEY);
-        if(Strings.isNullOrEmpty(packagePrefixes)) {
-            throw new IllegalArgumentException(String.format(
-                    "Could not locate '%s' key in property files - aborting",
-                    PACKAGE_PREFIX_KEY));
-        }
-        return packagePrefixes;
-    }
-
-    private static List<String> parseDomPackages(String packagePrefixes) {
-        return Collections.unmodifiableList(Lists.newArrayList(Iterables.transform(Splitter.on(",").split(packagePrefixes), trim())));
-    }
 
     private static boolean ignore(final Class<?> entityType) {
         try {
             if(entityType.isAnonymousClass() || entityType.isLocalClass() || entityType.isMemberClass() ||
-               entityType.isInterface()) {
+               entityType.isInterface() || entityType.isAnnotation()) {
                 return true;
             }
             final PersistenceCapable persistenceCapable = entityType.getAnnotation(PersistenceCapable.class);
@@ -140,20 +96,9 @@ public class RegisterEntities {
         }
     }
 
-    private static Function<String,String> trim() {
-        return new Function<String,String>(){
-            @Override
-            public String apply(String input) {
-                return input.trim();
-            }
-        };
-    }
-
-    // //////////////////////////////////////
 
     SpecificationLoader getSpecificationLoader() {
         return specificationLoader;
     }
 
-
 }

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.

[isis] 21/29: ISIS-1775 added license

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch dev/2.0.0-M2
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 455946619e0ff14f3ea30357312fc8ae57c1bf60
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Nov 12 19:55:13 2017 +0100

    ISIS-1775 added license
---
 .../apache/isis/core/webapp/WebAppContextSupport.java | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/webapp/WebAppContextSupport.java b/core/metamodel/src/main/java/org/apache/isis/core/webapp/WebAppContextSupport.java
index 044fe67..10aa314 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/webapp/WebAppContextSupport.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/webapp/WebAppContextSupport.java
@@ -1,3 +1,22 @@
+/*
+ *  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.webapp;
 
 import javax.servlet.ServletContext;

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.