All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.optaplanner.openshift.employeerostering.benchmark.OptaShiftEmployeeRosteringBenchmarkApp Maven / Gradle / Ivy

There is a newer version: 7.8.0.Final
Show newest version
package org.optaplanner.openshift.employeerostering.benchmark;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import org.optaplanner.benchmark.api.PlannerBenchmark;
import org.optaplanner.benchmark.api.PlannerBenchmarkFactory;
import org.optaplanner.core.api.solver.SolverFactory;
import org.optaplanner.openshift.employeerostering.server.roster.RosterGenerator;
import org.optaplanner.openshift.employeerostering.server.rotation.ShiftGenerator;
import org.optaplanner.openshift.employeerostering.shared.roster.Roster;

public class OptaShiftEmployeeRosteringBenchmarkApp {

    public static void main(String[] args) {
        List rosterList = generateRosters();

        SolverFactory solverFactory = SolverFactory.createFromXmlResource(
                "org/optaplanner/openshift/employeerostering/server/solver/employeeRosteringSolverConfig.xml");
        PlannerBenchmarkFactory benchmarkFactory = PlannerBenchmarkFactory.createFromSolverFactory(solverFactory);
        PlannerBenchmark plannerBenchmark = benchmarkFactory.buildPlannerBenchmark(rosterList);
        plannerBenchmark.benchmark();
    }

    private static List generateRosters() {
        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(
                "optashift-employee-rostering-persistence-unit");
        EntityManager entityManager = entityManagerFactory.createEntityManager();
        RosterGenerator rosterGenerator = new RosterGenerator(entityManager, new ShiftGenerator());

        List rosterList = new ArrayList<>();
        rosterList.add(rosterGenerator.generateRoster(10, 7, false, false));
        rosterList.add(rosterGenerator.generateRoster(80, (28 * 4), false, true));

        entityManager.close();
        entityManagerFactory.close();
        return rosterList;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy