// Path: fixture/src/main/java/com/ofbizian/semat/fixture/scenarios/DemoFixture.java
// public class DemoFixture extends AbstractFixtureScript {
//     public DemoFixture() {
//         withDiscoverability(Discoverability.DISCOVERABLE);
//     }
// 
//     private Set<Project> projects = Sets.newLinkedHashSet();
// 
//     @Override
//     protected void doExecute(ExecutionContext ec) {
//         ec.executeChild(this, new ProjectTearDown());
//         createProject(ec, "SOE", "Standard Operating Environment", "This is a demo SOE project");
//         createProject(ec, "ESB", "Enterprise Service Bus",  "This is a demo ESB project");
//     }
// 
//     private void createProject(ExecutionContext ec, String code, String name, String description) {
//         ProjectCreate projectCreate = new ProjectCreate();
//         projectCreate.setCode(code);
//         projectCreate.setName(name);
//         projectCreate.setDescription(description);
//         ec.executeChild(this, projectCreate.getName(), projectCreate);
//         Project project = projectCreate.getProject();
//         projects.add(project);
//     }
// 
//     @javax.inject.Inject
//     private ProjectRepository repository;
// }


import com.ofbizian.semat.fixture.scenarios.DemoFixture;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecification;
import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecificationProvider;
package com.ofbizian.semat.fixture;


/**
 * Specifies where to find fixtures, and other settings.
 */
@DomainService(nature = NatureOfService.DOMAIN)
public class DomainAppFixtureScriptsSpecificationProvider implements FixtureScriptsSpecificationProvider {
    @Override
    public FixtureScriptsSpecification getSpecification() {
        return FixtureScriptsSpecification
                .builder(DomainAppFixtureScriptsSpecificationProvider.class)
                .with(FixtureScripts.MultipleExecutionStrategy.EXECUTE)
// Path: fixture/src/main/java/com/ofbizian/semat/fixture/scenarios/DemoFixture.java
// public class DemoFixture extends AbstractFixtureScript {
//     public DemoFixture() {
//         withDiscoverability(Discoverability.DISCOVERABLE);
//     }
// 
//     private Set<Project> projects = Sets.newLinkedHashSet();
// 
//     @Override
//     protected void doExecute(ExecutionContext ec) {
//         ec.executeChild(this, new ProjectTearDown());
//         createProject(ec, "SOE", "Standard Operating Environment", "This is a demo SOE project");
//         createProject(ec, "ESB", "Enterprise Service Bus",  "This is a demo ESB project");
//     }
// 
//     private void createProject(ExecutionContext ec, String code, String name, String description) {
//         ProjectCreate projectCreate = new ProjectCreate();
//         projectCreate.setCode(code);
//         projectCreate.setName(name);
//         projectCreate.setDescription(description);
//         ec.executeChild(this, projectCreate.getName(), projectCreate);
//         Project project = projectCreate.getProject();
//         projects.add(project);
//     }
// 
//     @javax.inject.Inject
//     private ProjectRepository repository;
// }


// Path: fixture/src/main/java/com/ofbizian/semat/fixture/DomainAppFixtureScriptsSpecificationProvider.java
import com.ofbizian.semat.fixture.scenarios.DemoFixture;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecification;
import org.apache.isis.applib.services.fixturespec.FixtureScriptsSpecificationProvider;

package com.ofbizian.semat.fixture;


/**
 * Specifies where to find fixtures, and other settings.
 */
@DomainService(nature = NatureOfService.DOMAIN)
public class DomainAppFixtureScriptsSpecificationProvider implements FixtureScriptsSpecificationProvider {
    @Override
    public FixtureScriptsSpecification getSpecification() {
        return FixtureScriptsSpecification
                .builder(DomainAppFixtureScriptsSpecificationProvider.class)
                .with(FixtureScripts.MultipleExecutionStrategy.EXECUTE)
                .withRunScriptDefault(DemoFixture.class)