gitextract__s5biv9q/ ├── .gitattributes ├── .github/ │ └── dependabot.yml ├── .gitignore ├── .mvn/ │ ├── extensions.xml │ └── wrapper/ │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── CONTRIBUTING.adoc ├── CREDITS.adoc ├── LICENSE.txt ├── README.adoc ├── mvnw ├── mvnw.cmd ├── optaweb-vehicle-routing-backend/ │ ├── .dockerignore │ ├── .env-example │ ├── .gitignore │ ├── Dockerfile │ ├── README.adoc │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── docker/ │ │ │ ├── Dockerfile.jvm │ │ │ ├── Dockerfile.legacy-jar │ │ │ ├── Dockerfile.native │ │ │ └── Dockerfile.native-micro │ │ ├── java/ │ │ │ └── org/ │ │ │ └── optaweb/ │ │ │ └── vehiclerouting/ │ │ │ ├── Profiles.java │ │ │ ├── domain/ │ │ │ │ ├── Coordinates.java │ │ │ │ ├── CountryCodeValidator.java │ │ │ │ ├── Distance.java │ │ │ │ ├── Location.java │ │ │ │ ├── LocationData.java │ │ │ │ ├── Route.java │ │ │ │ ├── RouteWithTrack.java │ │ │ │ ├── RoutingPlan.java │ │ │ │ ├── RoutingProblem.java │ │ │ │ ├── Vehicle.java │ │ │ │ ├── VehicleData.java │ │ │ │ ├── VehicleFactory.java │ │ │ │ └── package-info.java │ │ │ ├── plugin/ │ │ │ │ ├── persistence/ │ │ │ │ │ ├── DistanceCrudRepository.java │ │ │ │ │ ├── DistanceEntity.java │ │ │ │ │ ├── DistanceKey.java │ │ │ │ │ ├── DistanceRepositoryImpl.java │ │ │ │ │ ├── LocationCrudRepository.java │ │ │ │ │ ├── LocationEntity.java │ │ │ │ │ ├── LocationRepositoryImpl.java │ │ │ │ │ ├── VehicleCrudRepository.java │ │ │ │ │ ├── VehicleEntity.java │ │ │ │ │ ├── VehicleRepositoryImpl.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── planner/ │ │ │ │ │ ├── Constants.java │ │ │ │ │ ├── DistanceMapImpl.java │ │ │ │ │ ├── RouteChangedEventPublisher.java │ │ │ │ │ ├── RouteOptimizerConfig.java │ │ │ │ │ ├── RouteOptimizerImpl.java │ │ │ │ │ ├── SolverManager.java │ │ │ │ │ ├── VehicleRoutingConstraintProvider.java │ │ │ │ │ ├── change/ │ │ │ │ │ │ ├── AddVehicle.java │ │ │ │ │ │ ├── AddVisit.java │ │ │ │ │ │ ├── ChangeVehicleCapacity.java │ │ │ │ │ │ ├── RemoveVehicle.java │ │ │ │ │ │ ├── RemoveVisit.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── domain/ │ │ │ │ │ │ ├── DistanceMap.java │ │ │ │ │ │ ├── PlanningDepot.java │ │ │ │ │ │ ├── PlanningLocation.java │ │ │ │ │ │ ├── PlanningLocationFactory.java │ │ │ │ │ │ ├── PlanningVehicle.java │ │ │ │ │ │ ├── PlanningVehicleFactory.java │ │ │ │ │ │ ├── PlanningVisit.java │ │ │ │ │ │ ├── PlanningVisitFactory.java │ │ │ │ │ │ ├── SolutionFactory.java │ │ │ │ │ │ ├── Standstill.java │ │ │ │ │ │ ├── VehicleRoutingSolution.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ └── weight/ │ │ │ │ │ ├── DepotAngleVisitDifficultyWeightFactory.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── rest/ │ │ │ │ │ ├── ClearResource.java │ │ │ │ │ ├── DataSetDownloadResource.java │ │ │ │ │ ├── DemoResource.java │ │ │ │ │ ├── LocationResource.java │ │ │ │ │ ├── RouteEventResource.java │ │ │ │ │ ├── ServerInfoResource.java │ │ │ │ │ ├── VehicleResource.java │ │ │ │ │ └── model/ │ │ │ │ │ ├── PortableCoordinates.java │ │ │ │ │ ├── PortableDistance.java │ │ │ │ │ ├── PortableErrorMessage.java │ │ │ │ │ ├── PortableLocation.java │ │ │ │ │ ├── PortableRoute.java │ │ │ │ │ ├── PortableRoutingPlan.java │ │ │ │ │ ├── PortableRoutingPlanFactory.java │ │ │ │ │ ├── PortableVehicle.java │ │ │ │ │ ├── RoutingProblemInfo.java │ │ │ │ │ └── ServerInfo.java │ │ │ │ └── routing/ │ │ │ │ ├── AirDistanceRouter.java │ │ │ │ ├── Constants.java │ │ │ │ ├── GraphHopperRouter.java │ │ │ │ ├── RoutingConfig.java │ │ │ │ ├── RoutingEngineException.java │ │ │ │ ├── RoutingProperties.java │ │ │ │ └── package-info.java │ │ │ └── service/ │ │ │ ├── demo/ │ │ │ │ ├── DemoProperties.java │ │ │ │ ├── DemoService.java │ │ │ │ ├── RoutingProblemConfig.java │ │ │ │ ├── RoutingProblemList.java │ │ │ │ ├── dataset/ │ │ │ │ │ ├── DataSet.java │ │ │ │ │ ├── DataSetLocation.java │ │ │ │ │ ├── DataSetMarshaller.java │ │ │ │ │ ├── DataSetVehicle.java │ │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ ├── distance/ │ │ │ │ ├── DistanceCalculator.java │ │ │ │ ├── DistanceMatrixImpl.java │ │ │ │ ├── DistanceRepository.java │ │ │ │ ├── RoutingException.java │ │ │ │ └── package-info.java │ │ │ ├── error/ │ │ │ │ ├── ErrorEvent.java │ │ │ │ ├── ErrorListener.java │ │ │ │ ├── ErrorMessage.java │ │ │ │ ├── ErrorMessageConsumer.java │ │ │ │ └── package-info.java │ │ │ ├── location/ │ │ │ │ ├── DistanceMatrix.java │ │ │ │ ├── DistanceMatrixRow.java │ │ │ │ ├── LocationPlanner.java │ │ │ │ ├── LocationRepository.java │ │ │ │ ├── LocationService.java │ │ │ │ └── package-info.java │ │ │ ├── region/ │ │ │ │ ├── BoundingBox.java │ │ │ │ ├── Region.java │ │ │ │ ├── RegionProperties.java │ │ │ │ ├── RegionService.java │ │ │ │ └── package-info.java │ │ │ ├── reload/ │ │ │ │ ├── ReloadService.java │ │ │ │ └── package-info.java │ │ │ ├── route/ │ │ │ │ ├── RouteChangedEvent.java │ │ │ │ ├── RouteListener.java │ │ │ │ ├── Router.java │ │ │ │ ├── ShallowRoute.java │ │ │ │ └── package-info.java │ │ │ └── vehicle/ │ │ │ ├── VehiclePlanner.java │ │ │ ├── VehicleRepository.java │ │ │ ├── VehicleService.java │ │ │ └── package-info.java │ │ └── resources/ │ │ ├── .gitignore │ │ ├── application.properties │ │ ├── org/ │ │ │ └── optaweb/ │ │ │ └── vehiclerouting/ │ │ │ └── service/ │ │ │ └── demo/ │ │ │ └── belgium-cities.yaml │ │ └── solverConfig.xml │ └── test/ │ ├── java/ │ │ └── org/ │ │ └── optaweb/ │ │ └── vehiclerouting/ │ │ ├── TestConfig.java │ │ ├── domain/ │ │ │ ├── CoordinatesTest.java │ │ │ ├── CountryCodeValidatorTest.java │ │ │ ├── DistanceTest.java │ │ │ ├── LocationDataTest.java │ │ │ ├── LocationTest.java │ │ │ ├── RouteTest.java │ │ │ ├── RouteWithTrackTest.java │ │ │ ├── RoutingPlanTest.java │ │ │ ├── VehicleDataTest.java │ │ │ ├── VehicleFactoryTest.java │ │ │ └── VehicleTest.java │ │ ├── plugin/ │ │ │ ├── persistence/ │ │ │ │ ├── DistanceEntityTest.java │ │ │ │ ├── DistanceRepositoryImplTest.java │ │ │ │ ├── DistanceRepositoryIntegrationTest.java │ │ │ │ ├── LocationEntityTest.java │ │ │ │ ├── LocationRepositoryImplTest.java │ │ │ │ ├── LocationRepositoryIntegrationTest.java │ │ │ │ ├── VehicleEntityTest.java │ │ │ │ └── VehicleRepositoryImplTest.java │ │ │ ├── planner/ │ │ │ │ ├── DistanceMapImplTest.java │ │ │ │ ├── MockSolver.java │ │ │ │ ├── RouteChangedEventPublisherTest.java │ │ │ │ ├── RouteOptimizerImplTest.java │ │ │ │ ├── SolverExceptionTest.java │ │ │ │ ├── SolverIntegrationTest.java │ │ │ │ ├── SolverManagerIntegrationTest.java │ │ │ │ ├── SolverManagerTest.java │ │ │ │ ├── SolverTestProfile.java │ │ │ │ ├── VehicleRoutingConstraintProviderTest.java │ │ │ │ ├── change/ │ │ │ │ │ ├── AddVehicleTest.java │ │ │ │ │ ├── AddVisitTest.java │ │ │ │ │ ├── ChangeVehicleCapacityTest.java │ │ │ │ │ ├── RemoveVehicleTest.java │ │ │ │ │ └── RemoveVisitTest.java │ │ │ │ ├── domain/ │ │ │ │ │ ├── PlanningLocationFactoryTest.java │ │ │ │ │ ├── PlanningLocationTest.java │ │ │ │ │ ├── PlanningVehicleFactoryTest.java │ │ │ │ │ ├── PlanningVehicleTest.java │ │ │ │ │ ├── PlanningVisitFactoryTest.java │ │ │ │ │ └── SolutionFactoryTest.java │ │ │ │ └── weight/ │ │ │ │ └── DepotAngleVisitDifficultyWeightFactoryTest.java │ │ │ ├── rest/ │ │ │ │ ├── ClearResourceTest.java │ │ │ │ ├── DataSetDownloadResourceTest.java │ │ │ │ ├── DemoResourceTest.java │ │ │ │ ├── LocationResourceTest.java │ │ │ │ ├── ServerInfoResourceTest.java │ │ │ │ ├── VehicleResourceTest.java │ │ │ │ └── model/ │ │ │ │ ├── PortableCoordinatesTest.java │ │ │ │ ├── PortableDistanceTest.java │ │ │ │ ├── PortableErrorMessageTest.java │ │ │ │ ├── PortableLocationTest.java │ │ │ │ ├── PortableRouteTest.java │ │ │ │ ├── PortableRoutingPlanFactoryTest.java │ │ │ │ └── PortableVehicleTest.java │ │ │ └── routing/ │ │ │ ├── AirDistanceRouterTest.java │ │ │ ├── GraphHopperIntegrationTest.java │ │ │ ├── GraphHopperRouterTest.java │ │ │ └── RoutingConfigTest.java │ │ ├── service/ │ │ │ ├── demo/ │ │ │ │ ├── DemoServiceTest.java │ │ │ │ ├── RoutingProblemListTest.java │ │ │ │ └── dataset/ │ │ │ │ └── DataSetMarshallerTest.java │ │ │ ├── distance/ │ │ │ │ └── DistanceMatrixImplTest.java │ │ │ ├── error/ │ │ │ │ └── ErrorListenerTest.java │ │ │ ├── location/ │ │ │ │ ├── LocationServiceIntegrationTest.java │ │ │ │ └── LocationServiceTest.java │ │ │ ├── region/ │ │ │ │ ├── BoundingBoxTest.java │ │ │ │ ├── RegionPropertiesTest.java │ │ │ │ └── RegionServiceTest.java │ │ │ ├── reload/ │ │ │ │ └── ReloadServiceTest.java │ │ │ ├── route/ │ │ │ │ ├── RouteListenerTest.java │ │ │ │ └── ShallowRouteTest.java │ │ │ └── vehicle/ │ │ │ ├── VehicleServiceIntegrationTest.java │ │ │ └── VehicleServiceTest.java │ │ └── util/ │ │ ├── jackson/ │ │ │ ├── JacksonAssertions.java │ │ │ ├── JsonAssert.java │ │ │ └── ObjectAssert.java │ │ └── junit/ │ │ ├── FileContent.java │ │ └── FileContentExtension.java │ └── resources/ │ ├── mockito-extensions/ │ │ ├── README.adoc │ │ └── org.mockito.plugins.MockMaker │ └── org/ │ └── optaweb/ │ └── vehiclerouting/ │ ├── plugin/ │ │ ├── rest/ │ │ │ └── model/ │ │ │ ├── portable-error-message.json │ │ │ ├── portable-location.json │ │ │ └── portable-route.json │ │ └── routing/ │ │ ├── CREDITS.adoc │ │ └── planet_12.032,53.0171_12.1024,53.0491.osm.pbf │ └── service/ │ └── demo/ │ └── dataset/ │ └── test-belgium.yaml ├── optaweb-vehicle-routing-distribution/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ ├── assembly/ │ │ └── assembly-optaweb-vehicle-routing.xml │ └── resources/ │ └── README.adoc ├── optaweb-vehicle-routing-docs/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ ├── asciidoc/ │ │ ├── appendix-backend-architecture.adoc │ │ ├── appendix-backend-config.adoc │ │ ├── attributes.adoc │ │ ├── contributing.adoc │ │ ├── development-guide.adoc │ │ ├── index.adoc │ │ ├── introduction.adoc │ │ ├── modules.dot │ │ ├── quickstart.adoc │ │ ├── run-locally.adoc │ │ ├── run-noscript.adoc │ │ ├── run-openshift.adoc │ │ └── user-guide.adoc │ └── assembly/ │ └── assembly-generated-docs-zip.xml ├── optaweb-vehicle-routing-frontend/ │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.json │ ├── .gitignore │ ├── .prettierrc │ ├── README.adoc │ ├── cypress/ │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── fixtures/ │ │ │ ├── example.json │ │ │ ├── response-garz.json │ │ │ └── response-hoppenrade.json │ │ ├── integration/ │ │ │ └── fromLocationsToRoute.js │ │ ├── plugins/ │ │ │ └── index.js │ │ └── support/ │ │ ├── commands.js │ │ └── index.js │ ├── cypress.json │ ├── docker/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── default.conf │ │ └── nginx.conf │ ├── package.json │ ├── pom.xml │ ├── public/ │ │ ├── index.html │ │ └── manifest.json │ ├── src/ │ │ ├── @types/ │ │ │ └── eventsourcemock.d.ts │ │ ├── common.ts │ │ ├── index.css │ │ ├── index.tsx │ │ ├── react-app-env.d.ts │ │ ├── registerServiceWorker.ts │ │ ├── setupTests.ts │ │ ├── store/ │ │ │ ├── client/ │ │ │ │ ├── actions.ts │ │ │ │ ├── client.test.ts │ │ │ │ ├── index.ts │ │ │ │ ├── operations.ts │ │ │ │ ├── reducers.ts │ │ │ │ └── types.ts │ │ │ ├── demo/ │ │ │ │ ├── actions.ts │ │ │ │ ├── demo.test.ts │ │ │ │ ├── index.ts │ │ │ │ ├── operations.ts │ │ │ │ ├── reducers.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ ├── message/ │ │ │ │ ├── actions.ts │ │ │ │ ├── index.ts │ │ │ │ ├── message.test.ts │ │ │ │ ├── reducers.ts │ │ │ │ ├── selectors.ts │ │ │ │ └── types.ts │ │ │ ├── mockStore.ts │ │ │ ├── route/ │ │ │ │ ├── actions.ts │ │ │ │ ├── index.ts │ │ │ │ ├── operations.ts │ │ │ │ ├── reducers.ts │ │ │ │ ├── route.test.ts │ │ │ │ ├── selectors.ts │ │ │ │ └── types.ts │ │ │ ├── server/ │ │ │ │ ├── actions.ts │ │ │ │ ├── index.ts │ │ │ │ ├── operations.ts │ │ │ │ ├── reducers.ts │ │ │ │ ├── server.test.ts │ │ │ │ └── types.ts │ │ │ ├── store.ts │ │ │ ├── types.ts │ │ │ └── websocket/ │ │ │ ├── actions.ts │ │ │ ├── index.ts │ │ │ ├── operations.ts │ │ │ ├── reducers.ts │ │ │ ├── types.ts │ │ │ └── websocket.test.ts │ │ ├── ui/ │ │ │ ├── App.test.tsx │ │ │ ├── App.tsx │ │ │ ├── __snapshots__/ │ │ │ │ └── App.test.tsx.snap │ │ │ ├── components/ │ │ │ │ ├── Alerts.test.tsx │ │ │ │ ├── Alerts.tsx │ │ │ │ ├── Background.tsx │ │ │ │ ├── DemoDropdown.css │ │ │ │ ├── DemoDropdown.test.tsx │ │ │ │ ├── DemoDropdown.tsx │ │ │ │ ├── Location.test.tsx │ │ │ │ ├── Location.tsx │ │ │ │ ├── LocationList.css │ │ │ │ ├── LocationList.test.tsx │ │ │ │ ├── LocationList.tsx │ │ │ │ ├── LocationMarker.test.tsx │ │ │ │ ├── LocationMarker.tsx │ │ │ │ ├── RouteMap.test.tsx │ │ │ │ ├── RouteMap.tsx │ │ │ │ ├── SearchBox.test.tsx │ │ │ │ ├── SearchBox.tsx │ │ │ │ ├── Vehicle.test.tsx │ │ │ │ ├── Vehicle.tsx │ │ │ │ └── __snapshots__/ │ │ │ │ ├── Alerts.test.tsx.snap │ │ │ │ ├── DemoDropdown.test.tsx.snap │ │ │ │ ├── Location.test.tsx.snap │ │ │ │ ├── LocationList.test.tsx.snap │ │ │ │ ├── LocationMarker.test.tsx.snap │ │ │ │ ├── RouteMap.test.tsx.snap │ │ │ │ ├── SearchBox.test.tsx.snap │ │ │ │ └── Vehicle.test.tsx.snap │ │ │ ├── connection/ │ │ │ │ ├── ConnectionError.test.tsx │ │ │ │ ├── ConnectionError.tsx │ │ │ │ ├── ConnectionManager.test.tsx │ │ │ │ ├── ConnectionManager.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── ConnectionError.test.tsx.snap │ │ │ │ │ └── ConnectionManager.test.tsx.snap │ │ │ │ └── index.ts │ │ │ ├── header/ │ │ │ │ ├── Header.test.tsx │ │ │ │ ├── Header.tsx │ │ │ │ ├── Navigation.test.tsx │ │ │ │ ├── Navigation.tsx │ │ │ │ └── __snapshots__/ │ │ │ │ ├── Header.test.tsx.snap │ │ │ │ └── Navigation.test.tsx.snap │ │ │ ├── pages/ │ │ │ │ ├── Demo.test.tsx │ │ │ │ ├── Demo.tsx │ │ │ │ ├── InfoBlock.test.tsx │ │ │ │ ├── InfoBlock.tsx │ │ │ │ ├── Route.test.tsx │ │ │ │ ├── Route.tsx │ │ │ │ ├── Vehicles.test.tsx │ │ │ │ ├── Vehicles.tsx │ │ │ │ ├── Visits.test.tsx │ │ │ │ ├── Visits.tsx │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── Demo.test.tsx.snap │ │ │ │ │ ├── InfoBlock.test.tsx.snap │ │ │ │ │ ├── Route.test.tsx.snap │ │ │ │ │ ├── Vehicles.test.tsx.snap │ │ │ │ │ └── Visits.test.tsx.snap │ │ │ │ ├── common.ts │ │ │ │ └── index.ts │ │ │ └── shallow-test-util.ts │ │ └── websocket/ │ │ ├── WebSocketClient.test.ts │ │ └── WebSocketClient.ts │ └── tsconfig.json ├── optaweb-vehicle-routing-standalone/ │ ├── .gitignore │ ├── data/ │ │ └── openstreetmap/ │ │ ├── CREDITS.adoc │ │ └── planet_12.032,53.0171_12.1024,53.0491.osm.pbf │ ├── pom.xml │ └── src/ │ └── main/ │ ├── assembly/ │ │ └── assembly-quarkus-app.xml │ └── resources/ │ ├── META-INF/ │ │ └── undertow-handlers.conf │ └── application.properties ├── pom.xml ├── runLocally.sh └── runOnOpenShift.sh