You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@isis.apache.org by Dan Haywood <da...@haywood-associates.co.uk> on 2014/06/10 09:17:36 UTC

ISIS-483: @DomainService

Folks,

Just committed a new feature (in 1.6.0-SNAPSHOT) to allow domain services
to be registered through an annotation.

~~~
For your application, in WEB-INF/isis.properties, add:

isis.services-installer=configuration-and-annotation
isis.services.ServicesInstallerFromAnnotation.packagePrefix=\

 com.mycompany.dom,\

 com.mycompany.fixtures,\

 com.mycompany.webapp,\

org.apache.isis.core.wrapper,\

org.apache.isis.applib,\

org.apache.isis.core.metamodel.services,\

org.apache.isis.core.runtime.services


adjusting "com.mycompany" packages accordingly.

You can then remove corresponding entries under the isis.services key.  All
of the core-applib services (except BackgroundCommandService), and
core-metamodel and core-runtime services are annotated with @DomainService
and so can be removed.  None of the JDO applib services are annotated, so
must remain in the isis.services list.


If you have integration tests, then you can make similar changes.  In your
(subclass of) IsisSystemForTest.Builder, use the new "withServicesIn(...)"
method:

            // services annotated with @DomainService
            withServicesIn("com.mycompany.dom"
                            ,"com.mycompany.fixtures"
                            ,"com.mycompany.webapp"
                            ,"org.apache.isis.core.wrapper"
                            ,"org.apache.isis.applib"
                            ,"org.apache.isis.core.metamodel.services"
                            ,"org.apache.isis.core.runtime.services");

In the original withServices(...) method, you can then remove most of the
services registered; typically you'll just have some JDO services; for
example:

            // all other services
            withServices(
                    new IsisJdoSupportImpl(),
                    new EventBusServiceJdo()
                    );

Any issues, mail here

Cheers
Dan

Re: ISIS-483: @DomainService

Posted by Dan Haywood <da...@haywood-associates.co.uk>.
um, I meant ISIS-493 [1]


[1] https://issues.apache.org/jira/browse/ISIS-493

On 10 June 2014 08:17, Dan Haywood <da...@haywood-associates.co.uk> wrote:

> Folks,
>
> Just committed a new feature (in 1.6.0-SNAPSHOT) to allow domain services
> to be registered through an annotation.
>
> ~~~
> For your application, in WEB-INF/isis.properties, add:
>
> isis.services-installer=configuration-and-annotation
> isis.services.ServicesInstallerFromAnnotation.packagePrefix=\
>
>  com.mycompany.dom,\
>
>  com.mycompany.fixtures,\
>
>  com.mycompany.webapp,\
>
> org.apache.isis.core.wrapper,\
>
> org.apache.isis.applib,\
>
> org.apache.isis.core.metamodel.services,\
>
> org.apache.isis.core.runtime.services
>
>
> adjusting "com.mycompany" packages accordingly.
>
> You can then remove corresponding entries under the isis.services key.
>  All of the core-applib services (except BackgroundCommandService), and
> core-metamodel and core-runtime services are annotated with @DomainService
> and so can be removed.  None of the JDO applib services are annotated, so
> must remain in the isis.services list.
>
>
> If you have integration tests, then you can make similar changes.  In your
> (subclass of) IsisSystemForTest.Builder, use the new "withServicesIn(...)"
> method:
>
>             // services annotated with @DomainService
>             withServicesIn("com.mycompany.dom"
>                             ,"com.mycompany.fixtures"
>                             ,"com.mycompany.webapp"
>                             ,"org.apache.isis.core.wrapper"
>                             ,"org.apache.isis.applib"
>                             ,"org.apache.isis.core.metamodel.services"
>                             ,"org.apache.isis.core.runtime.services");
>
> In the original withServices(...) method, you can then remove most of the
> services registered; typically you'll just have some JDO services; for
> example:
>
>             // all other services
>             withServices(
>                     new IsisJdoSupportImpl(),
>                     new EventBusServiceJdo()
>                     );
>
> Any issues, mail here
>
> Cheers
> Dan
>