Commit 443af4b3 authored by Benedikt Kleinmeier's avatar Benedikt Kleinmeier
Browse files

Merged branch 'master' into add_event_handling, but removed event handling in...

Merged branch 'master' into add_event_handling, but removed event handling in "OptimalStepsModel.java" to avoid merge conflicts.

# Conflicts:
#	.gitlab-ci.yml
#	VadereModelTests/TestOSM/scenarios/rimea_14_select_route_pso.scenario
#	VadereSimulator/src/org/vadere/simulator/control/Simulation.java
#	VadereSimulator/src/org/vadere/simulator/models/osm/OptimalStepsModel.java
parents 142e78fc 87b4fe32
Pipeline #73580 failed with stages
in 77 minutes and 48 seconds
......@@ -2,6 +2,10 @@
target/
*.out
*.preferences.xml
swing-inspector-linux-1.2.3/
#Tools and build utils
bin/
#IntelliJ
.idea/
......@@ -17,9 +21,11 @@ target/
VadereGui/*.png
VadereGui/*.svg
VadereGui/*.mov
VadereGui/testResources/**/*.legacy
VadereUtils/testreports/*.txt
VadereUtils/output/*
VadereSimulator/resources/current_commit_hash.txt
VadereSimulator/testResources/**/*.legacy
#model test output
VadereModelTests/TestOSM/output/*
......@@ -41,7 +47,6 @@ VadereModelTests/TestOVM/processed output/*
VadereUtils/output/*
#deprecated: can potentially be removed
bin/
VadereGui/output/
#mac osx files
......
......@@ -41,17 +41,18 @@ unit_tests_with_coverage:
stage: test
script:
- Documentation/version-control/git-hook-vadere-software
- mvn clean
- mvn -Dtest=!TestConvolution,!TestBitonicSort,!TestCLLinkedList test
- mvn -Dtest=!TestConvolution,!TestBitonicSort,!TestCLLinkedList,!TestCLOptimalStepsModel test
- python3 Tools/ContinuousIntegration/collect_line_and_branch_coverage.py
artifacts:
paths:
- "*/target/site/coverage-reports"
#run_scenario_files:
# stage: deploy
#
# script:
# - mvn clean
# - mvn -Dmaven.test.skip=true package
# - python3 Tools/ContinuousIntegration/run_vadere_console_with_all_scenario_files.py
run_scenario_files:
stage: deploy
script:
- Documentation/version-control/git-hook-vadere-software
- mvn -Dmaven.test.skip=true package
- python3 Tools/ContinuousIntegration/run_vadere_console_with_all_scenario_files.py
**Note:** Before writing into this file, read the guidelines in [Writing Changelog Entries.md](Documentation/contributing/Writing Changelog Entries.md).
# In Progress: v0.7
## Added
- Two new outputprocessors - mainly for the BHM - to evaluaet queueWidth
(QueueWidthProcessor) and behavior (PedestrianBehaviorProcessor)
- In package `org.vadere.simulator.utils`, added `TopographyChecker` to show
user if the current topography contains problems. The `TopographyChecker`
will check for overlapping `ScenarioElements` and check for inconsistence
settings such as missing TargetIDs for sources or inconsistenct speed ranges
for pedestrians. See this
[table](Documentation/changelLogImages/TopographyCheckerMessages.md) for
supported warnings and erros as well as this
[picture](Documentation/changelLogImages/TopographyChecker.png) to see which
kind of overlap produces erros or warnings.
- Add `--output-dir [on, off]` (default: `on`) switch to `scenario-run`
sub-command. This will will turn the ScenarioChecker on or off for the command
line. If the Checker detects an error the simulation will not be executed.
# v0.6 (2018-09-07)
## Added
- Graphical simulation result is displayed in a table view to show run-time and overlap information if the corresponding processors are loaded. The Simulation result dialog can be deactivated in the preferences. (5ffca5a3: Simulator, GUI)
- Added new OutputProcessors for Overlaps. (8028c523: Simulator)
- Added "fixedSeed" and "simulationSeed" to AttributesSimulation. (79268262: Simulator)
- VadereConsole.jar migrate will migrate all scenario files within the specified directory and all child directories. (37fde165: Simulator)
* To exclude specific sub-trees or only specific directories the igonoreDirs List can be expanded.
* DO_NOT_MIGRATE or .DO_NOT_MIGRATE: Ignore current directory but continue with existing child directories.
* DO_NOT_MIGRATE_TREE or .DO_NOT_MIGRATE_TREE: Ignore the directories and the complete sub-tree.
- Added a new OutputProcessor, NumberOverlapsProcessor. This processor saves the number of overlaps that occurred during a simulation run. It needs the PedestrianOverlapProcessor. (57d90e93: Simulator, State)
- Added sub commands to "VadereConsole": project-run, scenario-run, suq, migrate (c7e0538c: GUI)
- In the onlinevisualization it is now possible to display the target potential field of a selected pedestrian. (123457aa: GUI)
## Changed
- PedestrianOverlapProcessor returns two values "distance", "overlaps"for each overlap detected. (5ffca5a3: Simulator)
* If no overlap occurs the output is empty.
* "distance": The distance between the center of the two pedestrians
* "overlaps": The amount the two pedestrian overlap
- Moved and renamed attributes in scenario files. (c7e0538c: State)
* Move /scenario/attributesModel/org.vadere.state.attributes.models.AttributesCGM/groupSizeDistribution to each source in /scenario/topography/sources/[]/groupSizeDistribution. This allows different group size distribution for each source
* Rename /scenario/attributesModel/*/timeCostAttributes/standardDerivation to standardDeviation.
## Performance
- Faster distance computation. (6214738c: Simulator)
* To compute the distance from a point x the closest obstacle we compute the distances on a Cartesian grid of cell size equal to the default value of AttributesFloorField.potentialFieldResolution. There are two methods to compute the distances.
* Brute force (default): Compute the distance for a grid point x by computing all distances (for all obstacles) taking the minimal
* Eikonal Equation solvers (unused): Use obstacles to be the targets are of the eikonal equation and solve the equation using one of the solvers (default is the Fast Marching Method).
# v0.2 (2016-12-22)
## Added
- Stability and usability improved, additional pedestrian simulation models are supported. (babf0b67: GUI, Simulator, State, Utils)
# v0.1 (2016-08-05)
## Added
- Initial release of the software as open source. (72391fab: GUI, Simulator, State, Utils)
......@@ -31,7 +31,7 @@ Basic rules:
For source code formatting, we use an adapted version of
[Google's Coding style guide](https://google.github.io/styleguide/javaguide.html).
Please check the [README in this repository](/vadere/styleguide)
Please check the [README in this repository](https://gitlab.lrz.de/vadere/styleguide)
for the style guide and for how to import the style settings into your IDE.
Commit style guide
......
# TopographyChecker Messages
## Overlapping ScenarioElements
|Type of Elemetns | TotalOvelrap/ contained in | PartialOverlap |
|--------------------|:----------------:|:----------------:|
|Obstacle / Obstacle | WARN | ./. |
|Obstacle / Source | ERROR | ERROR |
|Obstacle / Target | ERROR | WARN |
|Obstacle / Stairs | ERROR | WARN |
|Obstacle / Ped. | ERROR | ERROR |
|Source / Source | WARN | WARN |
|Source / Target | WARN | WARN |
|Source / Stairs | WARN | WARN |
|Target / Target | WARN | WARN |
|Target / Stairs | WARN | WARN |
|Stairs / Stairs | ERROR | ERROR |
Legend:
WARN Warning but simulation is possible
ERROR Error and simulation is not possible
./. Nothing to do all good
## Misc Tests
### Errors
- A Source has no targetId set but is setup to spawn pedestrians. Solution: Set targetId
- A Source has a targetId set but the target does not exist. Solution: Create target or remove unused targetId from Source.
- If the SpeedDistributionMean of a pedestrian ist not between min/max speed.
### Warnings
- A Source has no targetId set and does not spawn pedestrians. Solution: Possible error
- A Target is never used by any Source. Solution: Possible error and this will cost performance.
- The Stairs model only works for 'normal' one-step-stairs. If the tread is outside of
the range of 10cm < x < 35cm. The simulation does not make sense.
- If the speed setup of a pedestrian is bigger then 12.0 m/s (world record). This is possible an error.
# Writing Changelog Entries
## Introduction
A good changelog entry should be descriptive and concise. It should explain the change to a reader who has **zero** context about the change. Each change should be categorized into one of the following types: `added`, `removed`, `changed`, `fixed`, `performance`, `security`, `deprecated` or `other`.
- **Bad:** Highlight agents.
- **Good:** In class `OnlineVisualization`, highlight the agent which was selected with left-mouse button.
The first example doest not provide any context where the change was made or what benefit it brings to the user.
## Writing into Changelog.md
1. Each new version number gets an own section prefixed with `#` and a date, e.g., `# v0.1 (2018-01-31)`.
Notes:
* Unreleased versions should be marked explicitly, e.g., `# 0.1 (unreleased)`.
* New versions should be added on top (and not at bottom).
2. Each change type gets an own subsection prefixed with `##`, e.g., `Added`.
3. Each changelog entry should contain following parts:
1. An own bullet point.
2. The description of the change.
3. The commit hash.
4. A list of affected simulator components: `Annotation`, `GUI`, `Simulator`, `State` or `Utils`.
5. Optional: More details as sub bullet points.
For instance:
```
# v0.1 (2018-01-31)
## Removed
- Removed obsolete model attribute "foo" from class "bar". (e8af1b77: State).
* ...
* ...
```
![Vadere](vadere.png "Vadere")
![VADERE](vadere.png "VADERE")
---
# Vadere
# VADERE
Vadere is an open source framework for the simulation of microscopic pedestrian dynamics. In addition to this core domain, other systems including cars and granular flow can be introduced into the framework. Vadere provides generic model classes and visualisation and data analysis tools for two-dimensional systems. A series of simulation models are already implemented in the framework that are also the basis for scientific publications. Namely the optimal steps model, the gradient navigation model, and the social force model are available for simulation studies.
VADERE is an open source framework for the simulation of microscopic pedestrian dynamics. In addition to this core domain, other systems including cars and granular flow can be introduced into the framework. VADERE provides generic model classes and visualisation and data analysis tools for two-dimensional systems. A series of simulation models are already implemented in the framework that are also the basis for scientific publications. Namely the optimal steps model, the gradient navigation model, and the social force model are available for simulation studies.
This software runs on OS X, Windows, and Linux.
This software runs on OS X, Windows, and Linux.
Vadere has been developed at the Munich University of Applied Sciences at the department for Computer Science and Mathematics. However, we welcome contributions from external sources.
VADERE has been developed by [Prof. Dr. Gerta Köster's](http://www.cs.hm.edu/die_fakultaet/ansprechpartner/professoren/koester/index.de.html)
research group at the [Munich University of Applied Sciences](https://www.hm.edu/) at the
[department for Computer Science and Mathematics](http://cs.hm.edu/).
However, we welcome contributions from external sources.
## Pipeline Status
| Branch | Pipeline Status | Coverage |
|:--------|:----------------:|:--------:|
| master | [![pipeline status (master)](https://gitlab.lrz.de/vadere/vadere/badges/master/pipeline.svg)](https://gitlab.lrz.de/vadere/vadere/commits/master) | [![coverage report (master)](https://gitlab.lrz.de/vadere/vadere/badges/master/coverage.svg)](https://gitlab.lrz.de/vadere/vadere/commits/master) |
| stable | [![pipeline status (stable)](https://gitlab.lrz.de/vadere/vadere/badges/stable/pipeline.svg)](https://gitlab.lrz.de/vadere/vadere/commits/stable) | [![coverage report (stable)](https://gitlab.lrz.de/vadere/vadere/badges/stable/coverage.svg)](https://gitlab.lrz.de/vadere/vadere/commits/stable) |
## Installation
......@@ -30,16 +40,18 @@ For this project, GPGPU with OpenCL is used to speed up some computations. There
* Windows: For further information using OpenCL on Windows [click here](https://streamcomputing.eu/blog/2015-03-16/how-to-install-opencl-on-windows/).
* OS X: OpenCL is pre-installed for OS X.
* Linux: Please refer to the installation manual of your Linux distribution.
* Linux: Please refer to the installation manual of your Linux distribution.
* [Sources: OpenCL HowTo](https://wiki.tiker.net/OpenCLHowTo)
* [Intel Driverpack (only driver needed)](https://software.intel.com/en-us/articles/opencl-drivers#latest_linux_driver)
### Run the Application
1. Get the Source: Run `git clone https://gitlab.lrz.de/vadere/vadere.git`.
2. Build the Application: Go to the project directory and run `mvn clean package` (or `mvn clean package -DskipTests` if you want to skip the unit tests). This will build `vadere.jar`and `postvis.jar`.
2. Build the Application: Go to the project directory and run `mvn clean package` (or `mvn clean package -Dmaven.test.skip` if you want to skip the unit tests). This will build `vadere.jar`and `postvis.jar`.
3. Start the Application: After building the application, you can start Vadere by running `java -jar VadereGui/target/vadere.jar`.
4. (If you only want to use the Postvisualization-Tool you can do so by running `java -jar VadereGui/target/postvis.jar`).
## Usage Example
## Usage Example
With the following steps, you can start a scenario of one of the model test projects in [VadereModelTests](VadereModelTests):
......@@ -57,14 +69,17 @@ Follow the **installation instructions** above i.e. install all required softwar
- *File* > *Import* > *Maven* > *Existing Maven Projects*
- choose `pom.xml` as *Root Directory* and click *Finish*
- open *VadereGui* > *src* > *projectview* > `VadereApplication`
- open *Vaderegui (gui)* > *src* > *org.vadere.gui.projectview* > `Vadereapplication`
### IntelliJ IDEA
- on the welcome-screen select *Import Project*
- on the welcome-screen select *Import Project*
- select `pom.xml` > *Next* > *Next* > *Next* > *Finish*
- open *VadereGui* > *src* > *projectview* > `VadereApplication`
- open *VadereGui (gui)* > *src* > *org.vadere.gui.projectview* > `VadereApplication`
- click the *run*-icon next to the `main` method
- edit the run configuration for `VadereApplication` to build the project using Maven instead of IntelliJ's internal builder to avoid compilation errors:
* click *Edit Configurations* (in dropdown menu next to the play/debug button)
* under *Before launch*, add *Run Maven Goal* and use the Maven goal `compile`
Alternatively, run `mvn eclipse:eclipse` using the [Maven Eclipse Plugin](http://maven.apache.org/plugins/maven-eclipse-plugin/usage.html) or `mvn idea:idea` using the [Maven IntelliJ Plugin](http://maven.apache.org/plugins/maven-idea-plugin/).
......@@ -82,27 +97,25 @@ from [version-control](Documentation/version-control) to your local **.git/hooks
These files start the script [git-hook-vadere-software](Documentation/version-control/git-hook-vadere-software).
2. Make sure that [git-hook-vadere-software](Documentation/version-control/git-hook-vadere-software) is executable.
To create this file without changes to the current commit, you can choose *Switch/Checkout...* on the Repository folder or you
To create the **current_commit_hash.txt** without changes to the current commit, you can choose *Switch/Checkout...* on the Repository folder or you
switch to another branch and switch back again using the command line or any other tool you prefer.
## Contribution
Please see [Contribution guidelines](CONTRIBUTION.md). The document defines guidelines for coding style and commit messages.
## Release History
- 0.1 initial release of the software as open source
- 0.2 stability and usability improved, additional pedestrian simulation models are supported
Please see [Contribution guidelines](CONTRIBUTING.md). The document defines guidelines for coding style and commit messages.
## Contributors
People who have contributed code to the project at the Munich University of Applied Sciences (in alphabetical order):
Florian Albrecht, Benjamin Degenhart, Felix Dietrich, Benedikt Kleinmeier, Jakob Sch&ouml;ttl, Michael Seitz, Swen Stemmer, Isabella von Sivers, Mario Teixeira Parente, Peter Zarnitz, Benedikt Z&ouml;nnchen
Florian Albrecht, Benjamin Degenhart, Felix Dietrich, Marion Gödel, Benedikt Kleinmeier, Daniel Lehmberg, Jakob Schöttl, Stefan Schuhbäck, Michael Seitz, Swen Stemmer, Isabella von Sivers, Mario Teixeira Parente, Peter Zarnitz, Benedikt Zönnchen
## Changelog
See [CHANGELOG.md](CHANGELOG.md) for a list of changes.
## License
This software is licensed under the GNU Lesser General Public License ([LGPL](LICENSE)).
For more information: http://www.gnu.org/licenses/lgpl.html
\ No newline at end of file
For more information: http://www.gnu.org/licenses/lgpl.html
......@@ -2,7 +2,7 @@
# scenario files under "VadereModelTests" subdirectory.
#
# Note: script contains some print statements so that progress can be tracked
# a little bit
# a little bit while script is running in continuous integration pipeline.
# Wach out: call this script from root directory of project. E.g.
#
......@@ -15,28 +15,26 @@ import shutil
import subprocess
import time
def find_scenario_files(path="VadereModelTests"):
scenario_search_pattern = "*.scenario"
def find_scenario_files(path="VadereModelTests", scenario_search_pattern = "*.scenario", exclude_patterns = ["TESTOVM", "output","legacy"]):
scenario_files = []
exclude_patterns = ["TESTOVM"]
for root, dirnames, filenames in os.walk(path):
for filename in fnmatch.filter(filenames, scenario_search_pattern):
scenario_path = os.path.join(root, filename)
scenario_path_excluded = False
for exclude_pattern in exclude_patterns:
regex_pattern = re.compile(exclude_pattern)
match = regex_pattern.search(scenario_path)
if match:
scenario_path_excluded = True
if match is None:
scenario_files.append(scenario_path)
print("Total scenario files: {}".format(len(scenario_files)))
print("Exclude patterns: {}".format(exclude_patterns))
if scenario_path_excluded == False:
scenario_files.append(scenario_path)
return sorted(scenario_files)
def run_scenario_files_with_vadere_console(scenario_files, vadere_console="VadereGui/target/vadere-console.jar", scenario_timeout_in_sec=60):
def run_scenario_files_with_vadere_console(scenario_files, vadere_console="VadereSimulator/target/vadere-console.jar", scenario_timeout_in_sec=60):
output_dir = "output"
if not os.path.exists(output_dir):
......@@ -51,7 +49,7 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
try:
print("Running scenario file ({}/{}): {}".format(i + 1, total_scenario_files, scenario_file))
# Measure wall time and not cpu because it is the easiest.
# Measure wall time and not CPU time simply because it is the simplest method.
wall_time_start = time.time()
# Use timout feature, check return value and capture stdout/stderr to a PIPE (use completed_process.stdout to get it).
......@@ -69,11 +67,14 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
passed_scenarios.append(scenario_file)
except subprocess.TimeoutExpired as exception:
print("Scenario file failed: {}".format(scenario_file))
print("-> Reason: timeout after {} s ({})".format(exception.timeout, exception.cmd))
print("-> Reason: timeout after {} s".format(exception.timeout))
failed_scenarios_with_exception.append((scenario_file, exception))
except subprocess.CalledProcessError as exception:
print("Scenario file failed: {}".format(scenario_file))
print("-> Reason: non-zero return value {} ({})".format(exception.returncode, exception.cmd))
prefix = ""
if "TestOSM" in scenario_file:
prefix = " * OSM * "
print(prefix + "Scenario file failed: {}".format(scenario_file))
print("-> Reason: non-zero return value {}".format(exception.returncode))
failed_scenarios_with_exception.append((scenario_file, exception))
if os.path.exists(output_dir):
......@@ -81,9 +82,43 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
return {"passed": passed_scenarios, "failed": failed_scenarios_with_exception}
def print_summary(passed_and_failed_scenarios):
total_passed_scenarios = len(passed_and_failed_scenarios["passed"])
total_failed_scenarios = + len(passed_and_failed_scenarios["failed"])
total_scenarios = total_passed_scenarios + total_failed_scenarios
print("###########")
print("# Summary #")
print("###########")
print("")
print("Total scenario runs: {}".format(total_scenarios))
print("Passed: {}".format(total_passed_scenarios))
print("Failed: {}".format(total_failed_scenarios))
if __name__ == "__main__":
scenario_files = find_scenario_files()
passed_and_failed_scenarios = run_scenario_files_with_vadere_console(scenario_files)
long_running_scenarios = [
"basic_4_1_wall_gnm1",
"queueing",
"rimea_09",
"rimea_11",
"TestSFM",
"thin_wall_and_closer_source_nelder_mead_ok",
"thin_wall_and_closer_source_pso_could_fail"
]
excluded_scenarios = ["TESTOVM", "output", "legacy"]
excluded_scenarios.extend(long_running_scenarios)
scenario_files_regular_length = find_scenario_files(exclude_patterns=excluded_scenarios)
passed_and_failed_scenarios = run_scenario_files_with_vadere_console(scenario_files_regular_length)
for scenario in long_running_scenarios:
search_pattern = "*" + scenario + "*.scenario"
scenario_files_long = find_scenario_files(scenario_search_pattern=search_pattern)
tmp_passed_and_failed_scenarios = run_scenario_files_with_vadere_console(scenario_files_long, scenario_timeout_in_sec=480)
passed_and_failed_scenarios["passed"].extend(tmp_passed_and_failed_scenarios["passed"])
passed_and_failed_scenarios["failed"].extend(tmp_passed_and_failed_scenarios["failed"])
print_summary(passed_and_failed_scenarios)
if len(passed_and_failed_scenarios["failed"]) > 0:
exit(1)
......
# Marker-File for MigrationUtil
The content of this file is ignored
All scenario files in this directory will NOT be migrated.
This Marker-File will allow traversal down the directory tree.
Use DO_NOT_MIGRATE_TREE or .DO_NOT_MIGRATE_TREE to stop migration for
the complete subtree of the current directory.
\ No newline at end of file
# Marker-File for MigrationUtil
The content of this file is ignored.
All scenario files in this directory and all child directories will _NOT_ be migrated.
Use DO_NOT_MIGRATE or .DO_NOT_MIGRATE to stop migration only for the current directory and
allow traversal down to child directories.
\ No newline at end of file
......@@ -159,7 +159,7 @@ public abstract class AbstractFactoryProcessor extends AbstractProcessor {
protected void createSingletone(final String instanceType, PrintWriter writer){
writer.append(" private static ").append(instanceType).append(" instance;").println();
writer.println();
writer.println(" //performance threadsafe Singletone. Sync block will only be used once");
writer.println(" //good performance threadsafe Singletone. Sync block will only be used once");
writer.append(" public static ").append(instanceType).append(" instance(){").println();
writer.println(" if(instance == null){");
writer.append(" synchronized (").append(instanceType).append(".class){").println();
......
package org.vadere.annotation.factories.migrationassistant;
import com.google.auto.service.AutoService;
import org.vadere.annotation.factories.BaseFactoryProcessor;
import java.io.PrintWriter;
import java.util.Set;
import javax.annotation.processing.Processor;
import javax.annotation.processing.SupportedAnnotationTypes;
import javax.annotation.processing.SupportedSourceVersion;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
import javax.lang.model.type.MirroredTypeException;
@SupportedAnnotationTypes("org.vadere.annotation.factories.migrationassistant.MigrationTransformation")
@SupportedSourceVersion(SourceVersion.RELEASE_8)
@AutoService(Processor.class)
public class JoltTransformationFactoryProcessor extends BaseFactoryProcessor {
@Override
protected void addImports(Set<? extends Element> elements, PrintWriter writer) {
}
@Override
protected void addMembers(Set<? extends Element> elements, PrintWriter writer) {
}
@Override
protected void addLastConstructor(Set<? extends Element> elements, PrintWriter writer) {
for (Element e : elements) {
MigrationTransformation annotation = e.getAnnotation(MigrationTransformation.class);
String versionLabel;
try {
versionLabel = annotation.targetVersionLabel();
} catch (MirroredTypeException ex) {
versionLabel = ex.getTypeMirror().toString();
}
writer.append(" addMember(");
writer.append(quote(versionLabel)).append(", ");
writer.append(e.getSimpleName().toString()).append(".class, ");
writer.append("this::").append("get").append(name(e)).append(");");
writer.println();
}
}
@Override
protected void addLast(Set<? extends Element> elements, PrintWriter writer) {
}
}
package org.vadere.annotation.factories.migrationassistant;
import org.vadere.annotation.factories.FactoryType;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@FactoryType(
factoryClassName = "JoltTransformationFactory",
extendedClassName = "JoltTransformationBaseFactory",
factoryImports = {"org.vadere.simulator.projects.migration.jolttranformation.JoltTransformationBaseFactory"},
factoryPackage = "org.vadere.simulator.projects.migration.jolttranformation"
)
public @interface MigrationTransformation {
String targetVersionLabel();
}
......@@ -73,25 +73,6 @@
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>build-vadere-console</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>org.vadere.simulator.entrypoints.VadereConsole</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>vadere-console</finalName>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
<execution>
<id>build-vadere</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
......
......@@ -11,9 +11,14 @@ Toolbar.size=40
Logo.show=true
SettingsDialog.maxNumberOfTargets=10
View.dataFormat=yyyy_MM_dd_HH_mm_ss
View.outputDirectory.path=.
View.icon.height.value=35
View.icon.width.value=35
SettingsDialog.dataFormat=yyyy_MM_dd_HH_mm_ss
SettingsDialog.outputDirectory.path=.
SettingsDialog.snapshotDirectory.path=.
ProjectView.icon.height.value=35
ProjectView.icon.width.value=35
ProjectView.cellWidth=1.0
ProjectView.minCellWidth=0.01
ProjectView.maxCellWidth=10.0
PostVis.SVGWidth=1024
PostVis.SVGHeight=768
PostVis.snapshotDirectory.path=.
PostVis.maxNumberOfSaveDirectories=5
PostVis.maxFramePerSecond=30
PostVis.framesPerSecond=5
...