Hi guys, based on example from ToDo, we have wrote an our own
AppSystemInitializier, where we building our own IsisSystemForTest but with
the difference that we want to reuse current property files, and not
explicitly declare same we have in the properties again (e.g. domain
services).

So the question is how to build a IsisSystemForTest where we just point to
webapp\WEBINF\ directory.

Here what we tried using the idea (
http://isis.apache.org/reference/externalized-configuration.html) but yet
not succeeded.


package integration;

import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
import
org.apache.isis.core.commons.config.IsisConfigurationBuilderResourceStreams;
import org.apache.isis.core.commons.resource.ResourceStreamSourceComposite;
import org.apache.isis.core.commons.resource.ResourceStreamSourceFileSystem;
import org.apache.isis.core.integtestsupport.IsisSystemForTest;

/**
 * Holds an instance of an {@link IsisSystemForTest} as a {@link
ThreadLocal} on
 * the current thread, initialized with ToDo app's domain services.
 */
public class AddressSearchEngineSystemInitializer {

    public static IsisSystemForTest initIsft() {
        IsisSystemForTest isft = IsisSystemForTest.getElseNull();
        if (isft == null) {
            isft = new
AddressSearchEngineSystemBuilder().build().setUpSystem();
            IsisSystemForTest.set(isft);
        }
        return isft;
    }

    private static class AddressSearchEngineSystemBuilder extends
IsisSystemForTest.Builder {

        public AddressSearchEngineSystemBuilder() {
            with(loadFromFileSystem());

        }

        private static IsisConfiguration loadFromFileSystem() {
            final String configLocation =
"D:\\aseDev\\WorkspaceAse.eclipse.luna\\ase\\webapp\\src\\main\\webapp\\WEB-INF\\";
            final ResourceStreamSourceComposite compositeSource = new
ResourceStreamSourceComposite(ResourceStreamSourceFileSystem.create(configLocation));
            final IsisConfigurationBuilder isisConfigurationBuilder = new
IsisConfigurationBuilderResourceStreams(compositeSource);
            return isisConfigurationBuilder.getConfiguration();
        }
    }
}



Thanks,Vladimir

Reply via email to