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

Reply via email to