Clone Tools
  • last updated 24 mins ago
Constraints: committers
Constraints: files
Constraints: dates
ISIS-2033: cleaning up ServiceInjector interface


  1. … 30 more files in changeset.
ISIS-2033: split MetaModelValidationException into 2 parts

MetaModelDeficiencies to hold the validation result

MetaModelValidationException to be constructed from



  1. … 13 more files in changeset.
ISIS-2033: removes IsisComponentProvider and its entire package


  1. … 12 more files in changeset.
ISIS-2033: disentangle IsisSessionFactory bootstrapping


  1. … 5 more files in changeset.
  1. … 46 more files in changeset.
ISIS-2033: make IsisSessionFactory an interface


  1. … 9 more files in changeset.
ISIS-2033: proper support for CDI lifecycle


  1. … 14 more files in changeset.
ISIS-2033: remove AppManifestProvider interface and do some cleanup


  1. … 24 more files in changeset.
2039 redesign of config (#134)

* ISIS-2039: major refactoring

move config code into its own module

remove number of classes in metamodel, that hold a reference to

IsisConfiguration or its implementation

hide the mutable IsisConfigurationDefault


* ISIS-2039: reduce visibility of some config classes


* ISIS-2039: simplify config access


* ISIS-2039: cleaning up the component-provider mess

for web-modules: no longer negotiate by writing attributes to the

servlet-context, instead use a java class for that


* ISIS-2039: fixing some tests


* ISIS-2039: removing arguments of @PostConstruct methods


* ISIS-2039: lazy binding to config for wicket


* ISIS-2039: proposed test fix

also cleaning up verbose tests


* ISIS-2039: more test fixes


* ISIS-2039: experimenting with AppConfig managed by Guice


* ISIS-2039: solving the AppManifest lookup problem independently of the

configuration bootstrapping


* ISIS-2039: simplify helloworld


* ISIS-2039: moving type discovery to an earlier stage in bootstrapping

Integration Test Bootstrapping works.


* ISIS-2039: on web-context: move the config bootstrapping from wicket

module to the main ServletContextListener

such that the wicket module is no longer responsible for initiating the



* ISIS-2039: config bootstrapping: fixes the resource chain


* ISIS-2039: allow ServiceLoader lookup for AppConfig to fallback ...

to previous behavior, that is to lookup the AppManifest from config

property 'isis.appManifest'


* ISIS-2039: fixes concurrent modification with _Context

add a property 'isUnitTesting' to the IsisSystemEnvironment, to help

with the decision on how to bootstrap the configuration

also doing some cleaning up


* ISIS-2039: fixing junit tests ...

by having the IsisSystemEnvironment#isUnitTesting correctly setup by



* ISIS-2039: further fixing tests ...

also moving ExceptionRecognizer services that depend on the 'config'

module from 'applib' to 'runtime'


* ISIS-2039: fixing tests, that fail due to new domain object annot.



* ISIS-2039: unify config bootstrapping code for maven-plugin,

wicket-viewer and headless


* ISIS-2039: to fix prev. commit: let the maven-plugin bootstrap the

configuration properly


* ISIS-2039: fixing mm verification tests


* ISIS-2039: reinstating the ConfigurationServiceDefault

also renaming packages within the 'config' module -> 'o.a.i.config'


* ISIS-2039: removing the ConfigurationService interface

use the singleton IsisConfiguration instead

for the UI, the ConfigurationServiceMenu was renamed to

ConfigurationMenu which uses a ConfigurationViewService for the single

purpose of displaying config values


* ISIS-2039: reorg. packages


  1. … 425 more files in changeset.
ISIS-1976: polishing ServiceInjector and ServiceRegistry API

let ServiceInjector implement ServiceRegistry

service lookup result is now an Optional instead of a nullable Object


  1. … 86 more files in changeset.
Merge branch 'master' into v2

  1. … 3 more files in changeset.
ISIS-1974: switches isis mojo logging back to INFO

ISIS-1974: attempts to track down deadlock in validate

Bootstraps validate plugin in DEBUG mode; switch specification loader to

run sequentially

  1. … 1 more file in changeset.
  1. … 314 more files in changeset.
ISIS-1841 automated source cleanup

Add missing '@Override' annotations

Remove trailing white spaces on all lines

Correct indentation

  1. … 1404 more files in changeset.
ISIS-1841: further cleaning up some compiler warnings


  1. … 8 more files in changeset.
ISIS-1841 comments: further remove visual clutter

  1. … 80 more files in changeset.
ISIS-1841 comments: reduce visual clutter

replace 'region .. endregion' comment markers with just headers

  1. … 122 more files in changeset.
ISIS-1745: updates SimpleModuleManifest so that isis:validate *does* bootstrap DataNucleus.

  1. … 1 more file in changeset.
ISIS-1427: renamed IsisSystem to IsisSessionFactoryBuilder; bind IsisSessionFactory to http servlet context rather than IsisSystem (also do this in IsisWicketApplication); make OidMarshaller a singleton; remove convenience accessors from ServicesInjector; bind DeploymentCategory as a "service" (bean) in ServicesInjector; similarly refactor to remove AuthenticationSessionProvider service; MSG_ constants now listed in MessageRegistry

  1. … 58 more files in changeset.
ISIS-1427: renames methods in IsisSystemForTest, rationalizes functionality between IsisSystem and IsisSessionFactory

The intent being that IsisSystem is just a builder for IsisSessionFactory. The responsibility for calling @PostConstruct and @PreDestroy was held by IsisSystem, meaning that it was necessary to call both shutdown on IsisSessionFactory and then on IsisSystem. Moving the responsibility for services initialization/destroy into IsisSessionFactory therefore simplifies the callers; there is no need to hold onto the IsisSystem, just use the IsisSessionFactory.

As part of this the DeploymentCategoryProviderDefault is now a fallback service, added into ServicesInjector prior to init'ing the guice IsisInjectModel (which creates the IsisSystem and thence IsisSessionFactory).

  1. … 25 more files in changeset.
ISIS-1427: simplifying IsisContext and minimizing calls to it; also removed Localization (unused)

  1. … 214 more files in changeset.
ISIS-1427: use DeploymentCategory rather than DeploymentType throughout (except in very initial bootstrapping).


- no need for IsisInjectModel to expose DeploymentType or IsisConfiguration as @Provides @Singleton

- remove DeploymentType from IsisComponentProvider classes (plays no part), just pass to IsisSystem directly.

- allow IsisSystem to be created from a non-null AppManifest (internally creates a default IsisComponentProviderDefault2)

  1. … 40 more files in changeset.
ISIS-1393: if IsisSystem fails to init (for any reason), then fail the mojo

ISIS-1419: simplified Session management.

The exception resulting, I believe, from lack of symmetry in the integ tests: they set up a single session for all tests, but in the shutdown (called by a Runtime hook), create a different session again to perform the @PreDestroy stuff. In this commit, I've decided to get rid of this shutdown stuff, basically orphaning that initial session (it is never closed down, but then the JVM quits anyway, and this is for an inmemory databases so no real harm).

A subsequent commit will take look to close the session in the teardown of each test.

In detail:

- in IsisContext, change the Map<Thread,IsisSession> into a simple ThreadLocal. remove the logic to save every IsisSession in this map, and remove the closeAllSessionsInstance(). In IsisSession, remove the id() and sessionOpenTime properties (now unused), and remove closeAll() - was now just the same as close();

- in PersistenceSession, split out calling of __isis_startRequest/__isis_postConstruct and then __isis_preDestroy/__isis_endRequest into two loops, just so easier to move around if need be. (Currently, calling one after the other, so no functional change here).


- no longer allow the ProgrammingModel to be overridden (in IsisComponentProviderDefault, IsisComponentProviderDefault2, IsisSystemForTest, IsisMojoAbstract)

- reformatted IsisSystemForTest (comments), also WebRequestCycleForIsis

- ServiceInitializer, introduced constructor for state (rather than pass into validate(...)); updated IsisSystem correspondingly

- removed unused method in DeploymentType

  1. … 11 more files in changeset.
ISIS-1407: SpecificationLoader is now a concrete class (rolled ObjectReflector up into it).

  1. … 155 more files in changeset.
ISIS-1406: simpleapp integ tests also now running

  1. … 2 more files in changeset.
ISIS-1342: IsisSystem no longer throws MetaModelException, instead pushes it onto the IsisContext. Its callers (IsisWicketApplication, or IsisSessionFilter - for RO - or CukeGlueAbstract, or IsisSystemForTest) then expose the error appropriately, accessing from IsisContext.

Additional details:

- IsisSystem no longer initializes the AuthenticationManager, AuthorizationManager or PersistenceSessionFactory if there was a metamodel validation, to minimize impact on runtime.

- IsisSystemForTest will fail with a minimal error for any subsequent tests

- IsisContext now as new metamodeInvalidException field. This is static rather than held on the IsisContext instance as a threadlocal; that's because IsisSystemForTest actually calls IsisContext.testReset() to discard the IsisContext singleton.

- IsisSessionFilter (which sits in front of RO viewer) now always checks that the metamodel is vaild. It does this simply by querying the IsisContext. (If WebAppBootstrapper was used to bootstrap, rather than wicket viewer, then IsisSystem.init() is still called so no diff in end result)

- ScenarioException simply does a fail() if no instance available on threadlocal.

- CukeGlueAbstract similarly has simple guards for if ScenarioException available, to reduce amount of noise when problem is metamodel invalid

- formatting changes only for IsisWicketApplication

- WebRequestCycleForIsis looks for validation errors first-off in its onException handler, if any are found then immediately redirects to the MmvErrorPage. This seems to work fine for always rendering MMV page.


- IsisMojoAbstract keeps the IsisSystem initialized while it executes.

  1. … 9 more files in changeset.
ISIS-1313: new 'commonSchemas' configuration parameter.

ISIS-1237: swagger mojo, also some updates to docs and simpleapp archetype

    • -0
    • +134
  1. … 3 more files in changeset.