When you say "let's", are you volunteering? :-)  I'd like to see the output
of this.

I've just committed to do a mini-book for InfoQ over the next few months; I
could see that this would make a nice topic to include?

D

On Wed, 1 Feb 2017 at 09:30 Óscar Bou - GOVERTIS <[email protected]> wrote:

> Hi Dan,
>
> Thanks for pointing me there.
>
> It would be really nice to have all metamodel info. available on Spring
> Boot, for example.
>
> The Services Injector, in your taxonomy, should correspond to the runtime,
> so it should be a responsibility of Spring Boot.
> If Isis need it for its own runtime, a Spring-based implementation would
> be needed.
>
> But I was just trying to know if it would be possible to have a Domain
> Metamodel, and seems feasible.
>
> Let’s explore it.
>
> Thanks!
>
>
>
> El 1 feb 2017, a las 1:04, Dan Haywood <[email protected]>
> escribió:
>
> Hi Oscar,
>
> One can think of the framework as breaking into two:
> - the metamodel  ... Isis' reflection stuff, cf java.lang.Class
> - the runtime  ... Isis' object mgmt stuff, leaning heavily on
> JDO/DataNucleus, cf java.lang.Object.
>
> The metamodel piece is relatively decoupled from the runtime piece, so it
> should be fairly easy to embed it.
>
> In IsisMojoAbstract - the superclass for the maven plugin goals - you'll
> see the code:
>
>        final AppManifest manifest =
> InstanceUtil.createInstance(this.appManifest, AppManifest.class);
>
>        final IsisSessionFactoryBuilder isisSessionFactoryBuilder = new
> IsisSessionFactoryBuilder(manifest);
>        IsisSessionFactory isisSessionFactory =
> isisSessionFactoryBuilder.buildSessionFactory();
>
> from which you can call:
>
>        final SpecificationLoader specificationLoader =
> isisSessionFactory.getSpecificationLoader();
>        final ServicesInjector servicesInjector =
> isisSessionFactory.getServicesInjector();
>
> The SpecificationLoader is the internal (private) API to the entire
> metamodel.
>
> The ServicesInjector can be used to inject services into any arbitrary
> object (annotated with @javax.inject.Inject).  One caveat: some services
> are implemented by the runtime, which probably won't be available.
>
> These are all basically singletons.
>
> Probably the easiest thing to do is to write a simple servlet or Spring
> boot app, then embed the above code somewhere in the bootstrapping, and see
> how you get on.
>
> HTH
> Dan
>
>
>
> On Thu, 19 Jan 2017 at 11:45 Óscar Bou - GOVERTIS <[email protected]>
> wrote:
>
>
> Hi all.
>
> I’m sure the Isis Domain meta-model can add a lot of value to Domains
> developed in another frameworks.
>
> It’s different from reflection in the way it allows you to determine, for
> example:
> - which public methods are effectively domain actions.
> - which Java properties should be considered “Domain” properties.
> - which actions or properties are available depending on the business
> logic.
> - etc.
>
> And all that with the ability to properly test it.
>
> Over that, we’ve built the Wicket viewer, the RESTful Objects viewer, the
> JDO-based persistence, the custom injection mechanism, …
>
> But I’m pretty sure it could be really useful when using other
> platforms/frameworks.
>
> Do you agree?
>
> How should we quantify the tasks and effort?
>
>
> Cheers,
>
> Oscar
>
>
>
>
>
>
>
>
> Óscar Bou Bou
> Socio - IT & GRC Management Services Director
> m: +34 620 267 520 <+34%20620%2026%2075%2020>
> s:  <http://www.govertis.com>www.govertis.com e: [email protected]
>
> LinkedIn: https://www.linkedin.com/in/oscarbou
> Twitter:  @oscarbou <https://twitter.com/oscarbou>
>
>
>
> Este mensaje y los ficheros anexos son confidenciales. Los mismos
> contienen información reservada que no puede ser difundida. Si usted ha
> recibido este correo por error, tenga la amabilidad de eliminarlo de su
> sistema y avisar al remitente mediante reenvío a su dirección electrónica;
> no deberá copiar el mensaje ni divulgar su contenido a ninguna persona.
>
> Su dirección de correo electrónico junto a sus datos personales constan en
> un fichero titularidad de GOVERTIS ADVISORY SERVICES, S.L. cuya finalidad
> es la de mantener el contacto con Ud. Si quiere saber de qué información
> disponemos de Ud., modificarla, y en su caso, cancelarla, puede hacerlo
> enviando un escrito al efecto, acompañado de una fotocopia de su D.N.I. a
> la siguiente dirección: GOVERTIS ADVISORY SERVICES, S.L. Avda Cortes
> Valencianas, 58 – 8º - 6ª. 46015 - Valencia,  y Paseo de la Castellana,
> 153, 28045 - MADRID. Asimismo, es su responsabilidad comprobar que este
> mensaje o sus archivos adjuntos no contengan virus informáticos, y en caso
> que los tuvieran eliminarlos.
>
>

Reply via email to