autogex
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.eu.autogex</groupId>
<artifactId>autogex</artifactId>
<version>1.12.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.eu.autogex</groupId>
<artifactId>autogex</artifactId>
<version>1.12.0</version>
<name>Autogex</name>
<description>
Autogex is a lightweight, zero-dependency Java engine for parsing, converting, and minimizing Finite State Automata (DFA, NFA, ENFA) and Regular Expressions. It strictly implements Formal Language Theory theorems, featuring an immutable and thread-safe Fluent API. Key capabilities include AST-based Regex compilation via Thompson's construction, Rabin-Scott subset construction, Moore's DFA minimization, step-by-step execution tracing, and native visual graph exports to Graphviz DOT and Mermaid.js formats.
</description>
<url>https://autogex.eu.org/</url>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
</license>
</licenses>
<developers>
<developer>
<id>Tugamer89</id>
<name>Tugamer89</name>
<url>https://github.com/Tugamer89</url>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/Tugamer89/autogex.git</connection>
<developerConnection>scm:git:ssh://github.com:Tugamer89/autogex.git</developerConnection>
<url>https://github.com/Tugamer89/autogex/tree/main</url>
</scm>
<properties>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sonar.organization>tugamer89</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>6.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>6.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>6.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.23.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<java>
<googleJavaFormat>
<version>1.35.0</version>
<style>AOSP</style>
</googleJavaFormat>
<removeUnusedImports/>
</java>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.6</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.14</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>jacoco-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>0.85</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.25.3</version>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
<configuration>
<targetClasses>
<param>org.eu.autogex.*</param>
</targetClasses>
<targetTests>
<param>org.eu.autogex.*</param>
</targetTests>
<mutationThreshold>80</mutationThreshold>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
<configuration>
<release>${maven.compiler.source}</release>
<additionalOptions>
<additionalOption>--allow-script-in-comments</additionalOption>
</additionalOptions>
<overview>${basedir}/README.md</overview>
<failOnWarnings>true</failOnWarnings>
<doclint>all</doclint>
<addStylesheets>
<addStylesheet>custom-javadoc.css</addStylesheet>
</addStylesheets>
<header><![CDATA[
<div style="display: flex; align-items: center; gap: 12px; margin-top: 4px;">
<a href="/" aria-label="Go to homepage" title="Go to homepage" class="header-logo-link" style="display: flex;">
<img src="/logo.svg" alt="" aria-hidden="true" style="height: 24px;">
</a>
<select id="version-switcher" aria-label="Select documentation version" title="Loading documentation versions..." aria-busy="true" disabled>
<option value="">Loading versions...</option>
</select>
</div>
]]></header>
<windowtitle>Autogex Docs</windowtitle>
<bottom><![CDATA[
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/languages/java.min.js"></script>
<script>
window.addEventListener('load', function() {
hljs.highlightAll();
document.querySelectorAll('pre').forEach(function(el) {
el.setAttribute('tabindex', '0');
el.setAttribute('role', 'region');
el.setAttribute('aria-label', 'Code snippet');
var wrapper = document.createElement('div');
wrapper.className = 'code-snippet-wrapper';
el.parentNode.insertBefore(wrapper, el);
wrapper.appendChild(el);
var copyBtn = document.createElement('button');
copyBtn.setAttribute('type', 'button');
copyBtn.className = 'copy-btn';
copyBtn.setAttribute('aria-label', 'Copy code');
copyBtn.setAttribute('title', 'Copy code');
copyBtn.setAttribute('aria-live', 'polite');
copyBtn.innerHTML = '<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>';
copyBtn.addEventListener('click', function() {
navigator.clipboard.writeText(el.innerText).then(function() {
copyBtn.setAttribute('aria-label', 'Copied!');
copyBtn.setAttribute('title', 'Copied!');
copyBtn.innerHTML = '<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#1a7f37" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>';
setTimeout(function() {
copyBtn.setAttribute('aria-label', 'Copy code');
copyBtn.setAttribute('title', 'Copy code');
copyBtn.innerHTML = '<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>';
}, 2000);
});
});
wrapper.appendChild(copyBtn);
});
});
</script>
<script src="/version-switcher.js"></script>
Copyright © 2026 <a href="https://github.com/Tugamer89">Tugamer89</a>. All rights reserved.
]]></bottom>
<show>public</show>
<author>true</author>
<version>true</version>
<links>
<link>https://docs.oracle.com/en/java/javase/25/docs/api/</link>
</links>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.4.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.8</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.10.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
</configuration>
</plugin>
</plugins>
</build>
</project>