A-Herzog/Warteschlangensimulator
46.9
Weak · 22 September 2026
522.6k
lines of production code
Java
primary language
6
measurements over time
What this system is
This system is a queueing theory simulator that enables users to model, analyze, and optimize discrete-event systems through a rich graphical interface and extensive scripting capabilities. It provides a robust mathematical engine for calculating complex probability distributions and statistical metrics, alongside tools for visualizing client flows and resource utilization. The application supports remote execution via web, socket, and MQTT interfaces, allowing for integration with external automation workflows and batch processing.
How it got here
2020 — Java 11 migration and feature expansion
94 changes.
The project migrated its build environment and runtime requirements from Java 8 to Java 11, updating dependencies and compiler settings across all modules. This period saw significant expansion of the simulation engine with new probability distributions, advanced statistical metrics, and enhanced scripting capabilities. Additionally, the user interface and reporting systems were overhauled to support dark mode, high-DPI displays, and new export formats like LaTeX and HTML.
2021–2024 — External integration and deployment automation
15 changes.
This period focused on expanding the simulator's connectivity by adding MQTT, socket, and Git integration for remote control and data synchronization. It also established robust deployment and automation capabilities through Docker containerization, benchmarking enhancements, and Python-based model generation tools.
Features
Added AppImage build scripts and phase-type distribution reference notebook
The Simulator/misc area now includes shell and YAML configuration files (AppImageBuilder.sh and AppImageBuilder.yml) that automate the creation of a Linux AppImage package for the 'Warteschlangensimulator' by extracting the Linux zip archive, setting up the AppDir structure, and generating the desktop entry. Additionally, a Jupyter notebook (PhaseTypDistribution.ipynb) was added to document the algorithm for generating pseudo-random numbers according to phase-type distributions, providing both a NumPy-based implementation and a pure-Python version intended to facilitate translation into Java.
Simulator/misc · high confidence
Added Docker build scripts for simulator server modes
New Docker build scripts and configuration files have been added to the \Simulator/build/Scripts/docker\ directory, enabling users to containerize the Warteschlangensimulator. The changes introduce support for three distinct server modes: a standard server mode (exposed on port 8183), a socket server mode (exposed on port 10000), and a web server mode (exposed on port 8000). Each mode includes corresponding build scripts for both Windows (.bat) and Unix (.sh) environments, along with Dockerfile definitions that package the \Simulator.jar\ and its dependencies using the Eclipse Temurin 17 base image.
Simulator/build/Scripts/docker · high confidence
Added German and English Lecturer's Guide documentation
New LaTeX source files for the Lecturer's Guide have been added for both German and English locales. These documents provide instructors with prerequisites for using the queueing simulator, including required knowledge in stochastics and queueing theory, technical setup instructions (Java runtime requirements), and a reference for the mathematical notation used in the simulator's output. The build infrastructure includes standard Springer svmono document classes and shared macro definitions to ensure consistent formatting for both language versions.
Simulator/build/Help/LecturersGuide · high confidence
Added German and English queueing theory glossary documentation
The simulator now includes a comprehensive glossary of queueing theory terms in both German and English, available as PDF documentation. This resource defines key concepts such as arrival rates, service times, batch processing, and confidence intervals, supporting users in understanding the underlying analytical models and statistics presented in the simulator's interface.
Simulator/build/Help/Glossary · high confidence
Added Java plugin example and configuration guidance
Added an example Java class (ExampleImportClass) and a readme file to the importclasses directory to demonstrate how to create and load custom plugins. The example illustrates the required package structure and provides instructions for configuring the simulator's plugin settings to allow direct imports from script stations, ensuring users can correctly set up the plugins folder and provisioning mode.
Simulator/build/UserScripts/importclasses · high confidence
Added textbook reference data to the book info help section
The book information help area now includes static content files for the associated textbook, providing users with availability details, a content summary, page offset mappings, and a full table of contents and index for quick navigation.
Simulator/src/main/java/ui/help/bookinfo · high confidence
Calculator dialog refactored into a tabbed window with new distribution and scripting capabilities
The calculator interface has been restructured from a single-expression dialog into a multi-tab window (CalculatorWindow) that includes dedicated tabs for a multi-expression calculator, probability distribution plotting, function plotting, and script execution. This change introduces the ability to generate random numbers from distributions, view statistical indicators (median, mode, excess kurtosis), and execute scripts directly from the calculator, while also adding the Pollaczek-Chintschin formula to the queueing calculator for single-server systems with non-exponential service times.
Simulator/src/main/java/ui/calculator · high confidence
Enhanced parameter series comparison with direct charting and parameter linking
The parameter series comparison feature now includes a dedicated chart viewer for output values, allowing users to visualize trends directly from the results panel. A new dialog enables users to connect input parameters using formulas, automatically updating model values based on expressions. The assistant for creating parameter series models now supports a 'Simple' mode for handling multiple input parameters and includes templates for global map variables, arrival counts, and waiting time tolerances. Additionally, the UI has been updated with high-DPI icons, drag-and-drop support for statistic files, and the ability to simulate individual models from the series list.
Simulator/src/main/java/ui/parameterseries · high confidence
Expanded animation icons and updated language resources
The simulator's animation panel now supports a significantly larger set of visual icons, including avatars, vehicles, and business symbols, allowing users to better customize the appearance of clients and elements in their models. Additionally, the language resource files have been updated with new strings, such as hints for the analytic model comparison dialog and animation controls, ensuring these new features are properly localized and explained to users.
Simulator/language · high confidence
Expanded discrete and continuous distribution support with direct parameter modes
The simulation system now supports a significantly wider range of probability distributions, including discrete types like Borel, Boltzmann, Geometric, Logarithmic, Planck, and Zeta, as well as continuous types such as Arcsine, Continuous Bernoulli, and Cosine. Additionally, several existing distributions (Binomial, Negative Binomial, Beta, Gamma, and Gumbel) now offer 'Direct' variants that accept mean and standard deviation as parameters instead of traditional shape/rate parameters, making them easier to use when those statistics are known. These changes are implemented via new parser symbols in the distribution package, enabling users to model more complex stochastic behaviors directly in their formulas.
SimSystem/src/main/java/parser/symbols/distributions · high confidence
Expanded discrete distribution library with new implementations and base classes
The distribution system now supports a significantly wider range of discrete probability models, including Binomial, Borel, Boltzmann, Geometric, Hypergeometric, Logarithmic, Negative Binomial, Negative Hypergeometric, Planck, Poisson, and Uniform distributions. To support these additions, a new base class AbstractDiscreteRealDistribution was introduced to handle common logic for discrete-to-continuous representations, and AbstractSawtoothDistribution was added for specific periodic distributions. This expansion allows users to model more complex stochastic processes and perform statistical analysis on a broader set of discrete data types within the simulation environment.
SimSystem/src/main/java/mathtools/distribution · high confidence
Expanded expression parser with model-specific user functions and statistical symbols
The expression parser now supports model-specific user-defined functions (loaded via XML) and allows users to define custom calculation functions using standard expressions, JavaScript, or Java. Additionally, new calculation symbols have been added to access simulation statistics, including skewness and excess kurtosis for station data, quantiles and detailed process time statistics (average, median, min, max, variance, standard deviation, coefficient of variation, skewness, kurtosis, histogram), and simulation time/day symbols.
Simulator/src/main/java/simulator/simparser · high confidence
Expanded formula parser with new mathematical, statistical, and logical operators
The formula parser now supports a wide range of new calculation commands and symbols. Users can utilize new constants like \tau\ and operators such as \cbrt\ (cube root), \inverse\, and \binom\ (binomial coefficient). Statistical capabilities have been extended with \kurt\ (kurtosis), \RegularizedGammaP\, \RegularizedGammaQ\, and \Beta\ functions. Logical operations including \and\, \or\, \xor\, \not\, \nand\, \nor\, \nxor\, and \equals\ are now available for use in formulas. Additionally, a \RandomGenerator\ command allows generating random values based on custom distribution functions.
SimSystem/src/main/java/parser/symbols · high confidence
Expanded icon set and improved image handling for UI elements
The central image resource enum now provides a significantly larger set of icons to support new UI features, including spell checking, layers, Git operations, authentication, and text alignment. Several existing icons have been updated to PNG format for better quality, and the underlying image loading mechanism has been enhanced to support multi-resolution images, ensuring better display on high-DPI screens.
Simulator/src/main/java/ui/images · high confidence
Expanded scripting API for client, system, and runtime control
The simulator's user-scripting interface has been significantly expanded with new Java interfaces (ClientInterface, ClientsInterface, OutputInterface, RuntimeInterface, SystemInterface) that allow scripts to access detailed client data (such as waiting, transfer, and process times), manage output formatting, execute external commands, and control simulation state (including setting analog values, managing operator resources, and triggering timed script executions).
Simulator/build/UserScripts/scripting · high confidence
Expanded simulation statistics and build status tracking
The statistics module now records a broader range of simulation metrics, including total waiting, transfer, processing, and residence times at stations, inter-arrival and interleaving times for batches, maximum throughput, and client data (including text fields) differentiated by client type. It also tracks the distribution of clients in system processes and at stations by station and client type, as well as resource utilization. Additionally, the simulation output now includes the build status (official, developer, custom, or unknown) in the statistics XML.
Simulator/src/main/java/simulator/statistics · high confidence
Expression builder gains auto-complete, user-defined functions, and expanded math/logic symbols
The Expression Builder dialog now includes an auto-complete feature for formula input fields, driven by the new ExpressionBuilderAutoComplete component. It also supports global and model-specific user-defined functions, which are now visible in the builder's tree structure via ExpressionBuilderUserFunctions. Additionally, the available calculation symbols have been expanded to include logic operators (and, or, xor, etc.), new mathematical functions (cbrt, binom, beta, gammaP, gammaQ, zeta, randomRange, randomIntRange, gcd, lcm, isPrime), hyperbolic reciprocal functions (csch, sech), the tau constant, and a trunc function, with improved descriptions for many existing entries.
Simulator/src/main/java/ui/expressionbuilder · high confidence
Full-text search and print capabilities added to the help viewer
The help system now includes a full-text search feature, accessible via a new toolbar button, which allows users to search across all help pages and view a list of all available pages. Additionally, a print function has been added to the help viewer, enabling users to print the current help page directly. These features are supported by a new background indexing system that scans help files for efficient searching.
SimTools/src/main/java/systemtools/help · high confidence
Git repository integration for simulator data
The Simulator now includes a Git integration module that allows users to configure, manage, and synchronize local Git repositories directly from the application. Users can set up Git connections via the new Git configuration dialog, specifying local folders, server URLs, and authentication methods (password or SSH key). The system supports automatic synchronization, including pulling data on startup and automatically committing and pushing files (such as models, parameter series, statistics, and optimization setups) when they are saved. A dedicated Git list dialog provides bulk operations like 'Pull All' and 'Push All' for multiple configured repositories, while a branch management dialog allows checking out specific branches. Background processing ensures these operations do not block the user interface, with progress monitoring and error handling provided for all Git interactions.
Simulator/src/main/java/gitconnect · high confidence
Integrated textbook reference system with dark mode support
The help system now includes a comprehensive textbook reference feature, allowing users to search the book's table of contents and index directly from the simulator. This is implemented via new classes (BookData, BookDataDialog, BookDataSelectPageDialog) that parse book metadata and provide a dialog to select specific pages or open example models associated with the book. The help viewer's HTML rendering has been updated to support 'book:' links that trigger this dialog, and to hide book-specific UI elements when the book data is unavailable. Additionally, the help windows and dialogs now save and restore their position and size, and the HTML content has been styled to support FlatLaf dark mode.
Simulator/src/main/java/ui/help · high confidence
Java plugin support with Java 11 requirement and example implementation
Users can now extend the simulator by loading external Java classes as plugins. This change introduces a new plugin architecture where Java files in a designated folder are compiled (requiring Java 11) and made accessible to script stations via the \runPlugin\ method. The update includes example plugin code (\ExamplePluginClass\) demonstrating how to implement and call custom logic, along with a README and compile scripts to guide users through the setup process.
Simulator/build/UserScripts · high confidence
MQTT integration for remote simulation control
The Simulator now includes an MQTT client that allows remote interaction via an MQTT broker. Users can connect to a broker using TCP or SSL (with optional TLS certificate validation), authenticate with a username and password, and subscribe to specific topics to send simulation jobs or receive system load information. The client supports processing work requests, echoing messages, and optionally locking the simulation to a fixed model for parameterization only.
Simulator/src/main/java/net/mqtt · high confidence
Model generator now supports open, closed, and load test models
The model generator has been refactored to allow users to choose between three distinct model types: Open, Closed, and Load. The previous single-panel interface has been replaced by a type selector that switches between dedicated configuration panels for each scenario. Open models now offer expanded options including multiple service disciplines (FIFO, LIFO, Random, SJF, LJF), various service time distributions (including Gamma), and queue selection strategies. Closed models allow configuration of population size, station count, and branching logic. Additionally, a new Load model type enables the generation of large-scale test models with configurable arrival counts and station counts to stress-test the simulator.
Simulator/src/main/java/ui/generator · high confidence
New German and English hotkey reference documentation
Added new LaTeX source files and project configurations for the queueing simulator's hotkey reference manual in both German and English. The documentation, located in the Simulator/build/Help/Hotkeys directory, provides a comprehensive table of keyboard shortcuts (such as Ctrl+C for copy, F2 for templates, and navigation keys) and mouse interactions for the drawing area. The build system includes the svmono document class and standard LaTeX macros to generate the PDFs.
Simulator/build/Help/Hotkeys · high confidence
New Model Properties Dialog Pages for Client, Operator, and Simulation Settings
The Model Properties dialog now includes dedicated tabs for managing client types (colors, icons, costs), operator resources (secondary priority, usage info), and simulation system settings (random number generator mode, fixed seed, time steps). It also adds pages for configuring initial variable values and global maps, output analysis (autocorrelation, batch means, confidence radius), and path recording options, providing a centralized interface for these model configurations.
Simulator/src/main/java/ui/modelproperties · high confidence
New Multi-Assign station and animation control elements
This update introduces the Multi-Assign station, which allows clients to be assigned to multiple new types based on chance, client type, conditions, or key-value pairs, and adds Animation Alarm and Animation Pause stations that trigger sounds or pause the simulation view based on configurable conditions and counters.
Simulator/src/main/java/simulator/elements · high confidence
New Python model generator scripts added
Added Python scripts in the build generator directory to automate model creation: \GenerateFromTemplate.py\ replaces placeholders in non-valid template files to produce multiple models, while \model\_processor.py\ modifies valid XML model templates by updating attributes, content, operator counts, and initial variable values via XPath queries.
Simulator/build/Scripts/generator · high confidence
New UI components and search settings synchronization
This update introduces several new UI components in the systemtools package, including AlphaButton and LabeledAlphaButton for adjusting opacity, a suite of ColorChooser components (ColorChooserButton, LabeledColorChooserButton, OptionalColorChooserButton) for color selection, and JScrollPaneTouch to enable touch-based scrolling. Additionally, JSearchSettingsSync provides a centralized mechanism to synchronize search preferences (such as case sensitivity and regex usage) across different dialogs, while BaseDialog and GUITools have been updated to support these new controls and improve UI scaling and look-and-feel handling.
SimTools/src/main/java/systemtools · high confidence
New batch processing, date-time editing, and UI enhancement tools
The simulator introduces a new Batch Panel for running directory-based simulations or filtering results via scripts, alongside a DateTime Panel for precise date and time input. Visual and interaction improvements include a new text generator dialog for creating image elements, semi-transparent glass info overlays for notifications, and slide animations for panel visibility. The application now supports an optional FlatLAF look and feel with a native system file chooser, and alarm stations can now trigger configurable system or file-based sounds.
Simulator/src/main/java/ui/tools · high confidence
New calculation symbols for statistics, resource utilization, and client data
The expression parser now supports a wide range of new calculation symbols for advanced simulation analysis. Users can access client-specific data such as batch size, last waiting time tolerance, and source station ID. Resource utilization statistics are expanded with symbols for average count, median, quantile, skewness, and excess kurtosis. Station process counts can now be analyzed using mean, standard deviation, minimum, maximum, median, kurtosis, and histogram distributions. Additionally, new symbols allow querying differential counter statistics (mean, min, max, std), retrieving the current simulation day and time, and accessing values from a global script map.
Simulator/src/main/java/simulator/simparser/symbols · high confidence
New command-line commands for batch processing, MQTT simulation, and model export
The command-line interface now includes several new commands to support automation and integration. Users can run simulations on all models in a folder (CommandFolderSimulation), apply filters to statistics files in a directory (CommandFolderFilter), and count total simulation times across a folder (CommandCountSimTime). Additionally, the simulator can now act as an MQTT server for both general and fixed-model simulations (CommandServerMQTT, CommandServerMQTTFixed), and a socket-based server is available (CommandServerSocket). Model and example images can be exported to files (CommandExport, CommandBuildExampleModelImages), and output tables from save+exit stations can be processed into standard tables (CommandProcessOutput). The interface also exposes Java properties (CommandJavaProperties) and allows building a glossary from HTML (CommandBuildGlossaryText).
Simulator/src/main/java/ui/commandline · high confidence
New dialogs for animation breakpoints, video recording, variable updates, and user-defined functions
The simulator introduces several new UI components to enhance animation control and customization. Users can now manage animation breakpoints via a dedicated dialog that lists and edits pause points. Animation recording is supported through a setup dialog allowing configuration of video output, scaling, and timestamps. A new dialog prompts for initial values of global variables before simulation start. Additionally, a comprehensive interface for managing user-defined calculation functions (both expressions and scripts) has been added, featuring list and edit dialogs for both global and model-specific functions. Supporting utilities include a dialog for copying the installation directory and a privacy settings dialog for managing data collection and security options.
Simulator/src/main/java/ui/dialogs · high confidence
New dialogs for converting tables to and from client source/output formats
The Simulator now includes a new set of UI components in the input processor package to handle table format conversions. Users can use the new ClientInputTableDialog to load standard tables and configure their columns (such as arrival times and client types) so they are compatible with ModelElementSourceTable elements. Additionally, the ClientOutputTableDialog allows users to convert tables generated by Save+Exit (DisposeWithTable) stations back into standard table formats with column headers. These changes introduce new behavioral capabilities for preparing and processing input data within the simulation model.
Simulator/src/main/java/ui/inputprocessor · high confidence
New distribution XML reference documentation
The simulator now includes a comprehensive reference document detailing the XML format for storing distribution settings. This new documentation defines the specific XML tags used for both English and German interfaces and provides a complete list of supported probability distributions, including their parameters and stochastic characteristics. The release adds support for numerous new distributions such as Levy, Zeta, Borel, Log-Gamma, half-Cauchy, Irwin-Hall, trapezoid, negative hypergeometric, inverse gamma, reciprocal, Log-Cauchy, Boltzmann, Log-Laplace, cosine, U-quadratic, Kumaraswamy, discrete uniform, Maxwell Boltzmann, continuous Bernoulli, arcsine, Student t, geometric, half-normal, sine, Wigner half-circle, logarithmic, Planck, and generalized Rademacher.
Simulator/build/Help/Distributions · high confidence
New export formats and visualization tools for the model editor
The model editor now supports exporting diagrams as Draw.io and GraphViz formats, allowing users to share or visualize their simulation structures in external tools. Additionally, a new HeatMapImage utility has been added to render intensity-based heatmaps on the drawing surface, and a ModelDataResourceUsage interface enables elements to report their resource consumption for better visibility during model design.
Simulator/src/main/java/ui/modeleditor · high confidence
New help documentation for model elements and editor features
The online help has been expanded with new English documentation pages covering recently added or updated features. This includes detailed guides for new model elements such as Alarm, Pause animation, Table, Multi type assignment, Batch counter, Charts dashboard, Decide and teleport, Delay (Script), and Dispose with table. Additionally, help pages have been added for editor and utility functions including Animation breakpoints, Batch processing, Client movement visualization, Copy installation, Data privacy settings, Arrange elements, User-defined functions, Java plugins, Find and replace, Git configurations, Heat map, Java imports, Layers, and Log file analysis.
_Simulator/src/main/java/ui/help/pages\en · high confidence
New model security, dark mode support, and advanced simulation controls
This update introduces several significant capabilities to the simulator editor. For security, models with critical stations can now be signed using RSA certificates to verify integrity upon loading, with trust managed via a local certificate store. The editor now fully supports dark mode, automatically adjusting colors for all model elements and animations when switching themes. Simulation control has been expanded with options to end the warm-up phase by time, terminate runs based on batch-means confidence intervals, and select specific random number generator modes. Additionally, global variables can now be defined with expressions and optionally prompt for values at simulation start, while variable statistics recording has become configurable.
Simulator/src/main/java/simulator/editmodel · high confidence
New network integration scripts and examples for Warteschlangensimulator
Added a new set of network client/server tools in the Simulator/build/Scripts/network directory, including Python scripts (MQTTTest.py, SocketDemo.py, SocketDemo\_Full.py, socket\_connect.py) and a Java class (SimulatorConnect.java) that enable users to submit simulation models and retrieve results via MQTT, socket connections, or by directly loading the simulator JAR. The package also includes shell and batch scripts (runSimServer.sh, runSimServer.bat, runWebServer.sh, runWebServer.bat) to start the simulator in compute or web server modes, along with a Jupyter notebook (SocketConnectionTest.ipynb) for testing socket connections and an example optimization workflow.
Simulator/build/Scripts/network · high confidence
New random number generators and distribution fitting capabilities
The distribution tools now include several new pseudo-random number generators (AES-Counter, Collatz-Weyl 128-bit, Drand48, and Drand48Mix) alongside a thread-local random number abstraction for improved performance and reproducibility. Additionally, a new multi-modal distribution fitter has been added, allowing users to fit complex data by decomposing it into multiple Log-Normal or Gamma distributions, with options to view the resulting calculation commands.
SimSystem/src/main/java/mathtools/distribution/tools · high confidence
New report customization and export infrastructure
The statistics module now includes a dedicated configuration system for report styling and export. Users can customize the appearance of PDF and DOCX reports via a new dialog that allows setting page margins, header logos, footers, and font styles for headings, text, and tables. This is supported by new backend classes (ReportStyle, DOCXWriter, PDFWriterBase) that handle the generation of these documents. Additionally, the chart viewer now supports multi-pie charts for resource utilization and includes a search dialog for finding text within statistic results.
SimTools/src/main/java/systemtools/statistics · high confidence
New simulation log file analysis and export capabilities
A new log analysis module has been added to the simulator, allowing users to load and interpret simulation log files. The system supports analyzing logs with or without model context (using the current editor model, an external model file, or no model data). The analyzed data can be exported into several formats: plain text, PDF, vector graphics (SVG/EPS), and draw.io diagrams, providing flexible ways to visualize and share simulation event traces.
Simulator/src/main/java/ui · high confidence
New statistics dashboard and Sankey movement visualization
The statistics viewer now includes a customizable dashboard view that displays key performance indicators as configurable tiles, supporting number, percentage, and time formats with custom colors and gradients. Additionally, a new Sankey diagram viewer visualizes client movement paths and station transitions, using model-specific colors for stations to provide a clear overview of flow factors and throughput between process steps.
Simulator/src/main/java/ui/statistics · high confidence
New textbook example simulation models added to the help system
The simulator now includes a set of pre-built example models corresponding to chapters 5.2 and 7.1–7.4 of the accompanying textbook. These XML files, located in the help examples directory, allow users to immediately explore key queueing theory concepts such as M/M/1 systems, the impact of service time variability (CV\[S\]), the effects of customer impatience and reneging, economy of scale, and various service disciplines (FIFO, LIFO, Random, and dynamic priority based on delivery dates).
Simulator/src/main/java/ui/help/bookexamples · high confidence
New utility classes for security, model import, and GitHub integration
The tools package now includes several new classes: DrawIO for exporting diagrams to Draw.io format, JarSecurity for verifying library integrity via SHA-256 hashes, MiniQSLoader for importing models from the Mini Warteschlangensimulator, and a suite of classes (URLLoader, URLLoaderGitHubFolder, URLLoaderGitHubFolderDialog) for loading models from GitHub repositories and folders. Additionally, SystemID provides unique system identification, ZoneIdentifier checks for internet-sourced files, SplashScreenHelper manages splash screen progress, and AbstractSlidesGenerator has been updated to use a new PlugableFileChooser.
Simulator/src/main/java/tools · high confidence
Quick Access search now supports model-wide full-text search and book index lookup
The Quick Access field now includes new search capabilities: typing a query can trigger a full-text search across the entire current model (respecting case-sensitivity, ID, and regex settings) and, if available, search the help book's table of contents and index. Additionally, the expression calculator now supports model-specific user-defined functions, and the settings search has been expanded to include security and update options. The underlying search infrastructure also allows matching against additional hidden text fields, and the background processing thread pool has been optimized for better performance.
Simulator/src/main/java/ui/quickaccess · high confidence
REST API and Web Server Refactoring
The web server now exposes a structured REST interface (v1) for managing simulation jobs, supporting JSON and XML responses for uploading models, checking status, and downloading results. The previous single-file upload handler has been replaced by a modular handler system (HandlerPost, HandlerDelete, HandlerPut, etc.) that supports standard HTTP methods. Additionally, the server now supports simulating fixed models via direct parameterization and allows users to change the interface language via the web UI.
Simulator/src/main/java/net/webcalc · high confidence
Script editor enhancements: search, spell check, and command flexibility
The script editor now includes a dedicated search dialog with settings for case sensitivity, regular expressions, and whole-word matching, which are synchronized across dialogs. A new spell-checking system using Hunspell dictionaries is available for various text fields, with options to configure which elements are checked and support for user-defined word lists. Additionally, script popup commands for selecting station IDs have been extended to allow empty parameters and the use of station names instead of IDs, and the variable-setting command has been renamed to better reflect its function.
Simulator/src/main/java/ui/script · high confidence
Socket-based simulation server for external access
The simulator now exposes a socket-based server interface (in the net.socket package) that allows external clients, such as Python scripts, to submit simulation tasks and retrieve results. This new capability includes a base server class for handling connections, a calculation server that manages a task queue and supports commands like TASK, TASK\_NOW, and STATUS, and a task handler that processes simulation models and parameter series. The implementation supports configurable timeouts for long-running simulations and an option to force English identifiers in XML output, enabling more reliable integration with external automation tools.
Simulator/src/main/java/net/socket · high confidence
Standalone Java Downloader for automatic JDK installation
A new standalone Java Downloader utility has been added to the build process to automatically detect missing Java runtimes and install a JDK if needed. The tool searches for existing Java installations via environment variables (QS\_JAVA\_HOME, JAVA\_HOME) and system registry, and checks standard directories for distributions from Adoptium, Zulu, Amazon Corretto, and others. If no suitable Java environment is found, it offers an automatic download and installation of the Eclipse Adoptium OpenJDK (Java 21) or provides a manual download link, handling the download and extraction of the JDK archive for the simulator.
Simulator/build/JavaDownloader · high confidence
Behavioural changes
Background simulation and precompilation now support multiple editor windows
The background simulation and class precompilation mechanisms have been refactored to support multiple editor windows within a single application instance. Previously, these optimizations were global; now, each EditorPanel has its own BackgroundSystem instance, allowing background tasks to run independently per window. The system also includes logic to automatically shut down background threads for editor panels that have been closed for over a minute, reducing memory consumption. Additionally, the precompilation step now pre-loads specific UI dialogs (source, process, and model properties) to speed up their first opening.
Simulator/src/main/java/ui/speedup · high confidence
Benchmark scripts reorganized and enhanced with native image and fixed-time modes
The benchmarking tools have been consolidated into the Simulator/build/Scripts/benchmark directory, bringing improved usability and new capabilities. All scripts now validate the presence of the Simulator.jar before execution and provide bilingual (English/German) error messages. The benchmark model has been updated to version 4.9.0 with a new author and schema location. New scripts allow users to run benchmarks using a Graal native image (benchmark-native.sh) or with a fixed number of arrivals scaled by core count (benchmarkFixedTime.sh). Additionally, the variance analysis scripts now support configurable parameters for arrival counts and steps, and all scripts consistently append results to benchmark-results.txt.
Simulator/build/Scripts/benchmark · high confidence
Calculation commands now throw errors on invalid input instead of returning null
The calculation commands for resource, transporter, station, client costs, and user statistics data now throw a MathCalcError when encountering invalid parameters (such as out-of-bounds indices or missing data) instead of returning null. This change improves error visibility for users by ensuring that invalid calculation requests are explicitly flagged rather than silently returning null or default values. Additionally, the station data commands now support querying data for specific client types within a station using a two-parameter syntax, and histogram calculations have been optimized with scaling and caching for better performance.
Simulator/src/main/java/simulator/simparser/coresymbols · high confidence
Configurable number and date formatting and expanded distribution localization
The simulator now allows users to explicitly choose how numbers and dates are formatted (by language, by system default, comma, or point) rather than strictly following the selected interface language. Additionally, the language system has been expanded to include localized names, Wikipedia links, and info text for a significantly larger set of probability distributions, ensuring these details are correctly displayed in the distribution editor and calculator.
Simulator/src/main/java/language · high confidence
DDE server availability caching and connection robustness
The DDE connection logic now caches availability checks to avoid repeated connection attempts, and allows the DDE system to be globally deactivated. Cell reads are trimmed to remove surrounding whitespace, and empty/blank checks use Java 11's isBlank() for more accurate detection of empty inputs. The DDE update timer thread is now named for easier debugging.
Simulator/src/main/java/net/dde · high confidence
Database connection configuration is now driven by external XML and template definitions
The simulator's database connectivity has been refactored to support flexible, user-configurable database setups. Instead of hardcoding supported database types in the application code, the system now loads connection definitions from an external XML configuration file (JDBC.cfg) and applies predefined templates for common databases like SQLite, H2, PostgreSQL, and Access. This allows users to add or modify database connections without recompiling the software. The UI has been updated to reflect this change, with the database type selector now populated from the loaded configurations, and the connection test dialog now includes a link to open the configuration file directly.
Simulator/src/main/java/simulator/db · high confidence
Distribution editor dialog behavior and file handling improvements
The distribution editor dialog now uses document modality instead of application modality, allowing users to interact with other windows in the application while the editor is open. The dialog is now resizable, and keyboard shortcuts (Escape and Enter) have been added to close the dialog. Additionally, the file chooser implementation has been refactored to support pluggable file selection, with improvements to directory persistence and file filter handling.
SimSystem/src/main/java/mathtools/distribution/swing · high confidence
Enhanced analytical comparison with improved formatting and extended model support
The AnalyticCompare module now provides more detailed feedback when comparing simulation results against Erlang-C and Allen-Cunneen theoretical models. The output formatting has been updated to use the system's decimal separator and display approximate zeros, improving readability. Additionally, the system now calculates and displays estimated rho (utilization) values and includes specific informational warnings when model assumptions (such as batch sizes or coefficient of variation) differ from the standard analytical requirements. The analytical evaluation logic has also been extended to support new station types, including Batch counters, Output (Log) stations, and multi-assign stations, allowing a broader range of models to be analyzed.
Simulator/src/main/java/ui/statistics/analyticcompare · high confidence
Enhanced command-line interface with interactive mode, ANSI styling, and new report formats
The command-line interface now supports an interactive mode (invoked via 'Interactive' or 'Console') that allows users to run commands sequentially in a loop. Console output is formatted using ANSI escape codes for colors and styles, with a new ANSIFormat utility class managing these effects. The report generation command has been extended to support LaTeX and HTML Web App output formats, in addition to existing options like PDF, DOCX, and HTML. The command-line dialog UI has been updated to use monospaced fonts for results, include undo functionality for parameter input, and filter commands based on GUI-processability.
SimTools/src/main/java/systemtools/commandline · high confidence
Enhanced example model organization and searchability
The example model selection interface now supports keyword-based filtering and improved menu structuring. Users can filter examples by specific concepts such as batch processing, priorities, routing, schedules, and transport, and the menu system has been updated to use sub-menus for better navigation. Additionally, the example list is now sorted, and the selection dialog includes a quick search feature to help users find relevant simulation models more easily.
Simulator/src/main/java/simulator/examples · high confidence
Enhanced model validation and runtime builder robustness
The simulation builder now enforces stricter validation rules, including new checks for missing signal names and batch sizes smaller than one, with corresponding quick-fix options to automatically correct these errors. The runtime model creation process has been refactored to use reflection for instantiating element templates, improving maintainability, while source and split elements now correctly filter for active records during model conversion. Additionally, minor code quality improvements include replacing deprecated string trimming methods with modern equivalents and fixing a typo in the process cancellation status.
Simulator/src/main/java/simulator/builder · high confidence
Enhanced simulation logging with event details and time format options
The simulation logging system now supports richer output across all formats (text, CSV, Excel, Word, ODF, PDF, and RTF). Users can now include event object class names and event IDs in log entries, and choose between formatted time strings (HH:MM:SS,s) or numeric seconds for time stamps. Additionally, text-based loggers now support limiting the number of stored lines to manage file size, and the PDF logger has been updated to use a new ReportStyle for improved formatting.
Simulator/src/main/java/simulator/logging · high confidence
Enhanced simulation logging, thread balancing, and remote execution controls
The simulator now supports granular event logging, allowing users to record specific event types (arrivals, departures, station info, system info) and filter by station IDs. Multi-core execution is improved with a dynamic load balancer that balances client arrivals across threads and respects setup options for repeated simulations. Additionally, remote simulation restrictions are refined to only block execution when output stations are active, and the system now tracks whether a simulation has already started to optimize background class loading.
Simulator/src/main/java/simulator · high confidence
Enhanced simulation statistics, performance, and output reliability
The simulation engine now supports more granular and accurate data collection, including the option to record total client times at stations (summing multiple visits), inter-arrival and inter-leave times by queue length, and global variable values. Performance is improved through a new dynamic load balancer that optimizes client arrival distribution across threads, local random number generation to reduce contention, and optimized caching for various statistics. Output reliability is increased by fixing charset handling in text files (now using UTF-8) and adding an option to overwrite existing output files. Additionally, the system now allows models without explicit end conditions and provides more detailed warm-up phase statistics.
Simulator/src/main/java/simulator/runmodel · high confidence
Enhanced startup stability, security, and UI customization
The simulator now features a splash screen during startup and validates library integrity via hash checks before launching. A security fix restricts HSQLDB method access to prevent injection attacks, while missing library errors are now reported clearly to the user. The application supports user-defined calculation functions, syncs search settings across dialogs, and allows customization of the Look & Feel, GUI font type, and console ANSI output.
Simulator/src/main/java/start · high confidence
Enhanced station statistics, logging, and model-time scaling
Simulation models now support granular station statistics, including per-client-type counts for waiting and processing clients, inter-arrival times by queue length, and maximum throughput tracking via configurable intervals. Users can also disable station statistics on a per-station basis. Logging has been extended with separate controls for station info, arrivals, and departures, and can be filtered by element ID. The warm-up phase can now be ended by time, triggering a notification to elements. Additionally, analog processing and logic condition evaluation now correctly use the model's time-scaling factor and support user-defined functions, ensuring accurate simulation behavior.
Simulator/src/main/java/simulator/coreelements · high confidence
Enhanced statistical accuracy and new performance indicators
The statistics module now supports recording skewness and excess kurtosis for data distributions, and introduces a new maximum-value performance indicator (StatisticsSimpleValueMaxPerformanceIndicator) for tracking peak values. Numerical stability has been improved by implementing Kahan summation for sum calculations and offering an optional Welford algorithm for variance recording. Additionally, XML serialization performance is optimized through string builder reuse, and the autocorrelation range stepping is now configurable.
SimSystem/src/main/java/statistics · high confidence
Expanded icon set and high-DPI support for statistics and help interfaces
The application now includes a significantly larger set of icons for statistics, help, and report features, introducing new symbols for Sankey diagrams, bookmarks, table filtering, PDF export, and text alignment. Several legacy GIF icons have been replaced with PNG versions to improve visual consistency. The underlying image loading mechanism has been updated to support high-DPI displays via multi-resolution image handling, ensuring icons render sharply on modern screens.
SimTools/src/main/java/systemtools/images · high confidence
Expanded info panel support for new dialogs and stations
The info panel system now provides help content for a wide range of new and existing UI elements. This includes new station types such as Batch Counter, Output (Log), Pause animation, and multi-signal/multi-assign stations, as well as dialogs for parameter series (replace base model), distribution fitting (including multimodal), variance analysis, station statistics, notes, layers, Git configuration, and table processing. The change also adds support for info panels in the 'Add Element from Menu' context and updates the info panel dialog to use icons instead of URLs for its setup buttons.
Simulator/src/main/java/ui/infopanel · high confidence
Expanded statistics descriptions and new statistical metrics
The statistics help documentation has been significantly expanded to cover new metrics and visualization types. New HTML description pages have been added for resource utilization (rho), user-defined statistics intervals, thread balance, thread runtimes, and global variables. Existing descriptions for client counts, path lengths, and interarrival times have been updated to include skewness and excess kurtosis. Additionally, the documentation now explains how to configure and interpret batch-means-based confidence intervals for statistical outputs.
_Simulator/src/main/java/ui/statistics/description\de · high confidence
Formula parser now throws exceptions on calculation errors and supports right-to-left function evaluation
The formula parser in SimSystem now throws a MathCalcError instead of returning null when a calculation fails, allowing callers to handle errors explicitly. Additionally, nested functions are now evaluated right-to-left (e.g., expcos0), and input strings are trimmed before parsing to improve robustness against leading/trailing whitespace.
SimSystem/src/main/java/parser · high confidence
Formula parser switches to exception-based error handling and simplifies value retrieval
The formula parser in the core symbols layer now uses primitive double values and throws MathCalcError instead of returning null or boxed Double objects when a calculation fails. This change removes the previous null-checking logic from operators and variables, replacing it with explicit error propagation that allows the system to distinguish between valid zero results and actual calculation errors. Additionally, the post-operator priority was reduced from 20 to 9 to adjust expression evaluation order, and internal caching mechanisms for boxed values were removed to streamline the code.
SimSystem/src/main/java/parser/coresymbols · high confidence
German help documentation updated with new pages
The German-language online help (Simulator/src/main/java/ui/help/pages\_de) has been updated with numerous new HTML pages covering new and existing features. These additions include documentation for the Animation Breakpoints dialog, Batch processing, Client Movement Visualization, Copy Installation, Data Privacy settings, Editor Arrange Stations, User-defined Expressions, External Java Plugins, Find and Replace, Git integration, Glossary, Heatmap configuration, Java Imports, Layers, Log Analyzer, and various new model elements such as Alarm, Animation Pause, Table, Multi-Assign, Batch Counter, Dashboard, Decide and Teleport, and DelayJS.
_Simulator/src/main/java/ui/help/pages\de · high confidence
Improved server status visibility and simulation configuration options
The simulation server now exposes its working status, allowing users to see if a simulation is currently running via the new \isServerWorking\ method in the GUI connection layer. Additionally, the simulation client and server now support the Welford algorithm for variance recording, which is enabled via the \useWelford\ model property. The server also enforces thread limits based on available CPU cores when configured, and the client now receives detailed preparation error messages from the server.
Simulator/src/main/java/net/calc · high confidence
Improved simulation pause handling and logging precision
The simulation engine now provides more robust pause and resume capabilities, including a new \pauseExecutionAndWait\ method that ensures threads have actually stopped before returning, and an \isPaused\ status check. Logging has been enhanced to include station IDs and scaled time (converting simulation steps to seconds), and time formatting now supports system-specific number formats. Additionally, out-of-memory handling has been improved by clearing caches before capturing stack traces, and the \SimulatorBase\ methods \cancel\, \isRunning\, and \finalizeRun\ are no longer final, allowing for subclass customization.
SimSystem/src/main/java/simcore · high confidence
Java 11 minimum version requirement
The SimSystem and SimTools projects now require Java 11 as the minimum version. The Eclipse JDT compiler settings for both projects have been updated to target, compile against, and source from Java 11, replacing the previous Java 8 configuration.
SimSystem/.settings, SimTools/.settings · high confidence
Java runtime requirement updated to version 11
The Simulator project now requires Java 11 as the minimum version for compilation and execution. This change updates the Eclipse JDT compiler settings to target platform 11, enabling release mode, and adjusts resource file encoding for specific UI help pages to UTF-8.
Simulator/.settings · high confidence
Java scripting engine refactored for Java 11+ compatibility and performance
The Java scripting subsystem has been significantly restructured to support Java 11 as the minimum version and improve runtime performance. A new caching mechanism (ClassLoaderCache, JavaCodeCache) ensures that user-defined Java code is compiled and loaded only once, enabling object exchange between scripts at different stations. The legacy DynamicSecurity sandbox, which is incompatible with modern Java versions, has been removed in favor of a configurable security manager. Additionally, the client data API has been expanded to allow scripts to read and modify client waiting, transfer, and process times, and a new dialog provides improved error reporting with syntax highlighting for script compilation failures.
Simulator/src/main/java/scripting/java · high confidence
JavaScript scripting engine refactored for performance and new client control commands
The JavaScript scripting subsystem has been restructured to improve performance and expand control capabilities. The Rhino engine is now invoked directly via a custom implementation (JSEngineRhinoDirect) rather than the standard Java Scripting API, utilizing optimized context and wrap factories to reduce memory usage and increase execution speed. New scripting commands allow users to inspect and manipulate waiting clients at delay and process stations, including retrieving client types, batch contents, source station IDs, and custom data. Additionally, scripts can now explicitly release waiting clients from delay stations. The System object's time() function now correctly returns seconds instead of milliseconds, and the Output object supports configurable decimal places for number formatting.
Simulator/src/main/java/scripting/js · high confidence
New Python-based batch filtering and updated build scripts
The build scripts directory now includes a new Python utility (filter.py) that automates running filter scripts across multiple statistics files by launching the simulator in interactive mode, processing batches of .zip inputs, and writing combined results. The directory also contains a new readme documenting available tools (filter.py, JavaDownloader.exe, and subdirectories for benchmark, docker, generator, and network scripts). Additionally, the legacy Windows batch file for single-core benchmarking (benchmark.bat) has been removed, indicating a shift away from that specific manual benchmarking approach in favor of the new script-based workflows.
Simulator/build/Scripts · high confidence
New Windows launcher replaces the previous version
A new Windows launcher has been introduced to replace the previous one, which was being blocked by Windows Defender. This change includes a new GUI launcher (Simulator.exe) that locates the Java runtime and executes the simulator JAR, as well as a CLI helper (SimulatorCLIGetJava.exe) for retrieving the Java path. Both components utilize a shared Java discovery mechanism that searches standard installation directories, environment variables, and the Windows registry.
Simulator/build/Launcher, Simulator/build/LauncherCLI · high confidence
New timed simulation controls and enhanced client tracking
The simulator now supports time-based control over the warm-up phase and signal firing, allowing users to end the warm-up period and trigger signals after a specific duration rather than relying solely on event counts. Clients can now cancel their wait in queue during setup time, and script execution can be triggered with a delay. Additionally, the simulation engine now tracks specific client identities in station statistics (logging who enters/leaves) and ensures that scheduled events are properly suppressed if the simulation has been stopped.
Simulator/src/main/java/simulator/events · high confidence
Optimizer enhancements: simulated annealing, map control variables, and simulation timeouts
The optimizer now supports simulated annealing for serial algorithms, allowing temporary worsening of results to escape local optima. Users can define control variables based on global map entries (MODE\_MAP) in addition to resources, variables, and XML tags. An optional timeout can be set for individual optimization simulations to prevent them from running indefinitely. The optimizer also validates control variable tags using isBlank() instead of trim().isEmpty(), and passes the model file path to simulation starters to support relative paths in output elements.
Simulator/src/main/java/ui/optimizer · high confidence
Performance, memory, and robustness improvements in the math and table engine
The SimSystem math and table engine has been optimized for speed and lower memory consumption. Mathematical calculations in ErlangC now use Apache Commons Math's FastMath for faster floating-point operations, and the formula parser (SimpleParser) has been made more robust against erroneous input by switching to a dedicated MathCalcError exception and removing a redundant cache. Table handling has been significantly improved: XLSX loading and saving now use streaming APIs (SXSSFWorkbook) and a cached data formatter to reduce memory usage, and the reader now correctly handles locale-specific date formats. New export formats (Typst, Markdown) and stream-based loading have been added, while time and number formatting utilities have been updated to support longer durations and more efficient string building.
SimSystem/src/main/java/mathtools · high confidence
Removed hardcoded light-mode background color from tutorial pages
The hardcoded light-mode background color (\#F0F0FF) has been removed from the CSS styles for both the German and English tutorial pages. This change allows the tutorial interface to adapt to the system's dark mode settings, ensuring a consistent visual experience across different themes.
_Simulator/src/main/java/ui/tutorial/pages\_de, Simulator/src/main/java/ui/tutorial/pages\en · high confidence
Repository documentation overhaul and security policy introduction
The project's documentation has been significantly expanded and restructured. The README files (English, German, and English-specific) now feature GitHub shields for version, license, downloads, and DOI, provide direct download links for Windows and Linux (including AppImage), and update the system requirement to Java 11. New sections highlight help resources, tutorials, videos, and a reference user list. A SECURITY.md file has been added to define the vulnerability reporting process. Additionally, CITATION.bib and CITATION\_PAPERS.bib files were introduced to facilitate academic referencing, and the internal build configuration (BUILD.md) was updated to reflect the Java 11 requirement.
(repo-wide) · high confidence
Script runner supports model file paths, improved output performance, and flexible UI modes
The Script Runner in the simulator now accepts the model file path to correctly resolve relative paths for output elements and supports user-defined Java imports via updated script settings. Script execution output is now buffered and throttled to once per second, significantly improving performance when running scripts that generate frequent log messages. Additionally, the script runner panel can now operate in a compact mode (e.g., as a tab within a dialog) rather than always filling the entire window, and it uses a dedicated setting for saving the script runner's last script instead of the general JavaScript setting.
Simulator/src/main/java/ui/scriptrunner · high confidence
Simulation logging gains detailed event context and output formatting options
The simulation logging system has been expanded to provide richer event details and more flexible output formats. The core logging interface now includes a station ID for every event, and loggers can optionally display the originating event class name, the station ID, and formatted timestamps (HH:MM:SS or full date/time) in addition to raw seconds. Plain text logs now support CSV output and a limited ring buffer to cap file size, while HTML and RTF logs can toggle the display of IDs and class names. The callback logger now passes this expanded data structure to registered listeners.
SimSystem/src/main/java/simcore/logging · high confidence
Simulation time overflow protection and negative time handling
The event manager now protects the simulation against time overflow by triggering an emergency shutdown if an event has a negative time value. Additionally, event queues in the multi-sorted list manager now correctly handle negative time differences by using absolute values for queue indexing, ensuring stable scheduling regardless of time direction.
SimSystem/src/main/java/simcore/eventmanager · high confidence
Simulator launcher and installer overhaul for version 6.0
The Windows launcher and installer have been significantly updated to improve reliability and security. The launcher now verifies the integrity of the core JAR files (Simulator.jar, SimSystem.jar, SimTools.jar) using SHA-2 checksums before execution and supports a wider range of Java distributions, including Zulu, Eclipse Adoptium, and Microsoft Corretto. The installer has replaced the direct .exe launch with batch scripts (Simulator.bat, SimulatorCLI.bat) to handle Java detection more robustly, and it now automatically cleans up obsolete files (such as the old tools folder and dictionary files) during updates. Additionally, the build system now supports generating HTML-based station references and includes a new configuration reset utility.
Simulator/build · high confidence
Test simulator configuration and access modifiers updated
The test simulator now initializes simulation data with a scaling factor of 1000 seconds to sim time, and the \outputLoop\ method is no longer final, allowing subclasses to override the output behavior.
SimSystem/src/main/java/simtest · high confidence
Tutorial documentation updated for version 5.2 and new download location
The German and English queueing simulator tutorials have been updated to reflect version 5.2. The download link in the documentation now points to the official project site (a-herzog.github.io) instead of GitHub. The English tutorial XML file has been updated to include new model attributes such as batch data, secondary priority, and connection draw styles, and the LaTeX source files now use JPG images instead of PNG. Additionally, build artifacts like .aux, .log, and .out files have been removed, and the LaTeX package loading order has been adjusted.
Simulator/build/Help/Tutorial · high confidence
Tutorial help viewer dark mode and link handling improvements
The tutorial help viewer now adapts its appearance for dark mode by applying specific CSS rules for text and background colors when the FlatLAF dark theme is active. Additionally, links referencing external book chapters are automatically hidden or visually suppressed if the associated book data is not available, preventing broken navigation. A null-safety check was also added to the resource testing logic to prevent errors when the model is unavailable.
Simulator/src/main/java/ui/tutorial · high confidence
Updated command-line reference documentation
The command-line reference documentation has been updated to reflect new and modified commands. New commands include MQTT-based server modes (ServerMQTT, ServerMQTTFixed, ServerMQTTTest), a socket-based server (ServerSocket), interactive mode (Interaktiv), and folder processing commands (Folder, FolderFilter). Existing commands have been modified: ServerWeb and ServerWebFixed now support optional username and password authentication, and the Simulation command now accepts an optional input data table and a new SimulationTimeout command has been added. Several legacy commands (Benchmark, BuildCLIReference, BuildElementGroupImages, BuildLaTeXReference, GC, Reset, SetMaxThreads, SetNUMAMode) have been removed, while new commands like Outputtable, Decimalseparator, Export, JavaProperties, Language, and Setup have been introduced. The download URL in the documentation has also been updated.
Simulator/build/Help/Commandline · high confidence
Updated license documentation and build configuration
The project's license documentation has been updated to reflect the removal of the Simple ODF toolkit and its transitive dependencies (including Apache Jena components), while correcting license URLs to the official Apache 2.0 locations. Additionally, the build configuration was adjusted to simplify the JRE container classpath entry and mark a test dependency as optional, and a new Ant target was added to handle the removal of specific Creative Commons-licensed icons for commercial use cases.
SimTools · high confidence
Web interface adds language switching and REST API documentation
The web interface now allows users to switch the simulator language between German and English directly from the UI, with the current language displayed and selectable via a new status area. Additionally, the interface now includes a link to REST API documentation (v1), enabling users to access the service programmatically via URLs without the web interface. The UI also displays a warning when JavaScript is disabled, and the status polling logic has been refactored to handle language updates and connection errors more robustly.
Simulator/src/main/java/net/webcalc/res · high confidence
Web server gains authentication, TLS support, and dependency upgrade
The simulator's web interface now supports password-based authentication and TLS encryption for secure remote access. The underlying HTTP library has been upgraded from the deprecated \fi.iki.elonen:NanoHTTPD\ to \org.nanohttpd:nanohttpd\, requiring updated imports and API calls. Additionally, the server now correctly handles HTTP request parameters in text responses, fixes a potential stream read issue in response generation, and updates Java 8 syntax to Java 11 standards.
Simulator/src/main/java/net/web · high confidence
XML loading security hardening and file format alias support
The XML loading and saving components in SimSystem have been updated to improve security and usability. Security is enhanced by validating stream read lengths to prevent incomplete data processing and by configuring the XML parser to disable external entity resolution, mitigating potential injection risks. Usability improvements include adding 'tgz' as an alias for the 'tar.gz' file format, allowing users to open and save files with either extension seamlessly. Additionally, the file chooser configuration has been streamlined, and minor code quality fixes ensure more robust handling of empty inputs and character encoding.
SimSystem/src/main/java/xml · high confidence
Test coverage
Expanded test coverage for distribution tools, fitter, and UI components; Expanded test coverage for statistics performance indicators; Updated parser unit tests to verify new exception-based error handling; Updated test infrastructure for SimData and event logging; Updated test suite for SimSystem math and XML tools.
Dependencies
Configurable JDBC database connectors and updated dependency licenses
The Simulator now supports configuring JDBC database connectors (such as SQLite, HSQLDB, PostgreSQL, MariaDB, Firebird, Access, and H2) via a new \JDBC.cfg\ file, allowing users to register additional databases by placing corresponding JARs in the \libs\ folder. This change is accompanied by an update to the \LICENSE\_COMPONENTS.md\ file, which now documents several new third-party libraries including Apache Derby, Eclipse Paho MQTTv5 Client, FlatLaf, H2, Hunspell, JGit, JSON In Java, JDatePicker, and SpellChecker, while also correcting license URLs for existing components.
Simulator · high confidence
Major dependency upgrades and Java 11 migration
The build manifests for SimSystem, SimTools, and Simulator have been updated to require Java 11 and bump the project version to 24.1. This change includes significant upgrades to core libraries: Apache POI and PDFBox have been updated to version 5.5.1 and 3.0.8 respectively, the Rhino JavaScript engine is upgraded to 1.9.1, and JFreeChart is updated to 1.5.6. Additionally, new dependencies have been added for Apache Commons RNG and Gamma, spell checking (RSyntaxTextArea, Hunspell), and MQTT support (Eclipse Paho), while several database drivers (PostgreSQL, MariaDB, HSQLDB, Jaybird) and build plugins have also been updated to their latest versions.
(dependencies) · high confidence
Updated third-party dependency licenses and classpath configuration
The project has updated its third-party dependency list to include new components such as Apache Commons Numbers Gamma, Simple ODF, SLF4J, Apache Jena, and Apache Log4j, while also correcting license URLs to the official Apache 2.0 endpoints. Additionally, the Eclipse classpath configuration has been adjusted to remove redundant module attributes from JRE and JUnit entries and mark the test source output as optional, alongside a new Ant build target that manages licensing compliance for specific SVG icons.
SimSystem · high confidence
Housekeeping
Added package documentation for swingtools; Cleanup of LaTeX build artifacts in scripting documentation; Removal of LaTeX build artifacts from documentation reference; Simulator help documentation updated to version 6.0.0.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 35 → 47 (+11.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 53 → 58 (+5.8)
- Architecture 99 → 99 (-0.0)
- Maturity 73 → 74 (+0.5)
- Readiness 17 → 43 (+25.4)
- Security 75 → 76 (+1.4)
- Accessibility 34 → 36 (+1.4)
Resolved (24)
- Change coupling: SystemInterface.java ↔ JSCommandSystem.java (Simulator/src/main/java/scripting/java/SystemInterface.java)
- Change coupling: SystemInterface.java ↔ ScriptEditorAreaBuilder.java (Simulator/src/main/java/scripting/java/SystemInterface.java)
- Change coupling: SystemInterface.java ↔ ScriptPopup.java (Simulator/src/main/java/scripting/java/SystemInterface.java)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (7 lines × 2) (SimSystem/src/main/java/mathtools/distribution/tools/Drand48.java)
- Duplicated block (7 lines × 2) (Simulator/src/main/java/ui/modeleditor/elements/AxisDrawerEdit.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- No exposed public API
- Off-boarding risk: anonymized user #1
- …and 4 more
New (21)
- Boundary-crossing change coupling: CalcSymbolList.java ↔ LanguageStaticLoader.java (SimSystem/src/main/java/parser/CalcSymbolList.java)
- Boundary-crossing change coupling: StatisticViewerTable.java ↔ LanguageStaticLoader.java (SimTools/src/main/java/systemtools/statistics/StatisticViewerTable.java)
- Change coupling: LanguageStaticLoader.java ↔ ExpressionBuilderDistributions.java (Simulator/src/main/java/language/LanguageStaticLoader.java)
- Change-coupling hub: JSCommandSystem.java → SystemImpl.java, ScriptEditorAreaBuilder.java, ScriptPopup.java (Simulator/src/main/java/scripting/js/JSCommandSystem.java)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Duplicated block (5 lines × 2) (Simulator/src/main/java/ui/commandline/CommandReport.java)
- Duplicated block (7–8 lines × 2) (SimSystem/src/main/java/mathtools/distribution/tools/Drand48.java)
- Duplicated block (8 lines × 2) (Simulator/src/main/java/ui/commandline/CommandBuildCatalogImages.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- Low: security finding (details withheld)
- No ADRs found
- Scanner failed to run — not a clean result
- …and 1 more
Changes since last survey
- 32 commits — 28 feature/other, 4 fixes
By area
- Simulator/src — 18 commits
- docs/index.html — 4 commits
- Simulator/build — 2 commits
- (repo) — 1 commit
- (root) — 1 commit
- Images/Screenshot_de_stations.png — 1 commit
- SimSystem/pom.xml — 1 commit
- Simulator/LICENSE_COMPONENTS.md — 1 commit
- Simulator/language — 1 commit
- Simulator/tools — 1 commit
- docs/QSCheck — 1 commit
Notable commits
- fix: Fix RSyntaxTextArea focus problem
- fix: Homepage HTML validation fixes
- fix: Homepage button fix
- fix: Launcher scripts fix
- change: Add gamma distribution as service option in generator
- change: Added QSCheck info
- change: Added batch example model
- change: Added collect mode at batch stations in MiniQS loader
- change: Added match station to MiniQS loader
- change: Added min/max batch sizes at batch stations in MiniQS loader
- change: Added min/max batch sizes at process stations in MiniQS loader
- change: Added missing translation at signal station
- change: Added multi signal station
- change: Added multi source batch sizes to MiniQS loader
- change: Added resend on collision example model
- change: Added split station to MiniQS loader
- change: Ant helper script improvement
- change: Changed config file location under Linux
- change: Dependencies update
- change: Example model visual fine tuning
- …and 12 more
Architecture
- Containers 0 added · 0 removed · contexts 1 added · 0 removed · edges 0 added · 0 removed
Added bounded contexts (1)
- simsystem
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
A-Herzog/Warteschlangensimulator was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit d5a6feb09a196ac19fadd5e7fee1a2ed9e802284 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-90d5d2fe38ee.