Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
674e85b
Move poms
AB-xdev Sep 18, 2026
93e85d1
Migrate root pom
AB-xdev Sep 18, 2026
5d6bf82
Create src pom.xml and hand over control to it
AB-xdev Sep 18, 2026
97244be
Create demos pom.xml and hand over control to it
AB-xdev Sep 18, 2026
09816ec
Update workflows
AB-xdev Sep 18, 2026
41d60e6
Correctly prefix
AB-xdev Sep 18, 2026
103406f
Standardize format
AB-xdev Sep 18, 2026
d42728a
Correct artifact id
AB-xdev Sep 18, 2026
a9ecf33
Fix deprecation
AB-xdev Sep 21, 2026
ff1c79e
Merge pull request #311 from xdev-software/v2-structure-rework
AB-xdev Sep 21, 2026
f962f53
Correctly ignore in renovate
AB-xdev Sep 21, 2026
32da745
Update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.2.0
xdev-renovate Sep 21, 2026
bc0ee58
Update dependency org.apache.maven.plugins:maven-install-plugin to v3…
xdev-renovate Sep 21, 2026
9ad0a14
Merge pull request #312 from xdev-software/renovate/org.apache.maven.…
AB-xdev Sep 21, 2026
593e4d2
Merge pull request #313 from xdev-software/renovate/org.apache.maven.…
AB-xdev Sep 21, 2026
c46e008
Fix site aggregation
AB-xdev Sep 21, 2026
4014d50
Fix release problems due to incorrect urls
AB-xdev Sep 21, 2026
0419f32
Remove deploy to gh pages duplicated step
AB-xdev Sep 21, 2026
2427362
Fix if statement
AB-xdev Sep 21, 2026
b0f46f2
Fix launcher
AB-xdev Sep 22, 2026
0d10d28
Correctly build site layout
AB-xdev Sep 22, 2026
e9203ce
Fix link
AB-xdev Sep 22, 2026
6bbe8c3
Skip license plugin during pages generation
AB-xdev Sep 22, 2026
082dff3
Update net.sourceforge.pmd to v7.28.0
xdev-renovate Sep 26, 2026
a93bbb2
Update dependency com.puppycrawl.tools:checkstyle to v14.3.0
xdev-renovate Sep 28, 2026
92775a4
Update CheckStyle rules
AB-xdev Sep 28, 2026
26d8308
Merge pull request #314 from xdev-software/renovate/net.sourceforge.pmd
AB-xdev Sep 28, 2026
c87d116
Merge pull request #315 from xdev-software/renovate/com.puppycrawl.to…
AB-xdev Sep 28, 2026
93297c3
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 28, 2026
81e025f
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -112,14 +112,17 @@
<module name="ModifierOrder"/>
<module name="NeedBraces"/>
<module name="NoClone"/>
<module name="NoCodeInFile"/>
<module name="NoFinalizer"/>
<module name="NonEmptyAtclauseDescription"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="ModifierOrder"/>
<module name="OneStatementPerLine"/>
<module name="OneTopLevelClass"/>
<module name="OperatorWrap"/>
<module name="OuterTypeNumber"/>
<module name="PackageDeclaration"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="ParenPad"/>
Expand Down
14 changes: 2 additions & 12 deletions .github/workflows/check-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ on:
- '.idea/**'
- 'assets/**'

env:
DEMO_MAVEN_MODULE: ${{ github.event.repository.name }}-demo

jobs:
build:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -69,13 +66,6 @@ jobs:
exit 1
fi

- name: Upload demo files
uses: actions/upload-artifact@v7
with:
name: demo-files-java-${{ matrix.java }}
path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar
if-no-files-found: error

checkstyle:
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' || !startsWith(github.head_ref, 'renovate/') }}
Expand Down Expand Up @@ -148,10 +138,10 @@ jobs:
${{ runner.os }}-pmd-

- name: Run PMD
run: ./mvnw -B test pmd:aggregate-pmd-no-fork pmd:check -P pmd -DskipTests -T2C
run: ./mvnw -B test pmd:aggregate-pmd-no-fork pmd:check -P pmd -T2C

- name: Run CPD (Copy Paste Detector)
run: ./mvnw -B pmd:aggregate-cpd pmd:cpd-check -P pmd -DskipTests -T2C
run: ./mvnw -B pmd:aggregate-cpd pmd:cpd-check -P pmd -T2C

- name: Upload report
if: ${{ !cancelled() }}
Expand Down
100 changes: 72 additions & 28 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,6 @@ on:
push:
branches: [ master ]

env:
PRIMARY_MAVEN_MODULE: ${{ github.event.repository.name }}

permissions:
contents: write
pull-requests: write

# DO NOT RESTORE CACHE for critical release steps to prevent a (extremely unlikely) scenario
# where a supply chain attack could be achieved due to poisoned cache
jobs:
Expand All @@ -37,7 +30,8 @@ jobs:
${{ runner.os }}-mvn-build-

- name: Build with Maven
run: ./mvnw -B clean package -T2C
run: ../mvnw -B clean package -T2C
working-directory: src

- name: Check for uncommited changes
run: |
Expand All @@ -61,6 +55,8 @@ jobs:
runs-on: ubuntu-latest
needs: [check-code]
timeout-minutes: 10
permissions:
contents: write
outputs:
upload_url: ${{ steps.create-release.outputs.upload_url }}
steps:
Expand All @@ -77,10 +73,9 @@ jobs:
- name: Get version
id: version
run: |
version=$(../mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
version=$(./mvnw -B help:evaluate -Dexpression=project.version -q -DforceStdout)
echo "release=$version" >> $GITHUB_OUTPUT
echo "releasenumber=${version//[!0-9]/}" >> $GITHUB_OUTPUT
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}

- name: Commit and Push
run: |
Expand All @@ -106,7 +101,7 @@ jobs:
```XML
<dependency>
<groupId>software.xdev</groupId>
<artifactId>${{ env.PRIMARY_MAVEN_MODULE }}</artifactId>
<artifactId>${{ github.event.repository.name }}</artifactId>
<version>${{ steps.version.outputs.release }}</version>
</dependency>
```
Expand All @@ -130,13 +125,13 @@ jobs:
distribution: 'temurin'
java-version: '17'
server-id: github-central
server-password: PACKAGES_CENTRAL_TOKEN
gpg-passphrase: MAVEN_GPG_PASSPHRASE
server-password-env-var: PACKAGES_CENTRAL_TOKEN
gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once

- name: Publish to GitHub Packages Central
run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
run: ../mvnw -B deploy -P publish -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
working-directory: src
env:
PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
Expand All @@ -147,19 +142,19 @@ jobs:
distribution: 'temurin'
java-version: '17'
server-id: sonatype-central-portal
server-username: MAVEN_CENTRAL_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-passphrase: MAVEN_GPG_PASSPHRASE
server-username-env-var: MAVEN_CENTRAL_USERNAME
server-password-env-var: MAVEN_CENTRAL_TOKEN
gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE

- name: Publish to Central Portal
run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests
run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal
working-directory: src
env:
MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}

publish-pages:
build-pages:
runs-on: ubuntu-latest
needs: [prepare-release]
timeout-minutes: 15
Expand Down Expand Up @@ -188,20 +183,69 @@ jobs:
${{ runner.os }}-mvn-build-

- name: Build site
run: ../mvnw -B compile site -DskipTests -T2C
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
run: ../mvnw -B compile site -P site -T2C
working-directory: src

- name: Aggregate site
run: |
# Compile is required, otherwise dep resolution failure
echo "Looking up modules"
module_dirs=($(../mvnw -B -q --also-make compile exec:exec -P site -Dexec.executable="pwd" -Dmaven.main.skip))
base_module_full="${module_dirs[0]}"

echo "Found modules - Src: $base_module_full"

base_cut_away_length=$((${#base_module_full}+1))

echo "BasePathLengthToCutAway: $base_cut_away_length"

- name: Deploy to Github pages
uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4
is_first=true
for full_module_path in "${module_dirs[@]}"
do
if [ $is_first = true ]; then
echo "Skipping initial/base module"
is_first=false
continue
fi

m=${full_module_path:$base_cut_away_length}

echo "$m/target/site/. -> ./target/site/$m"
mkdir -p ./target/site/$m
cp -r $m/target/site/. ./target/site/$m
done
working-directory: src

- name: Upload pages artifact
uses: actions/upload-pages-artifact@v5
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./${{ env.PRIMARY_MAVEN_MODULE }}/target/site
force_orphan: true
path: src/target/site

deploy-pages:
runs-on: ubuntu-latest
needs: [build-pages]
timeout-minutes: 10
concurrency:
group: 'pages'
cancel-in-progress: false
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5

after-release:
runs-on: ubuntu-latest
needs: [publish-maven]
timeout-minutes: 10
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v7

Expand Down
21 changes: 9 additions & 12 deletions .github/workflows/test-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ name: Test Deployment
on:
workflow_dispatch:

env:
PRIMARY_MAVEN_MODULE: ${{ github.event.repository.name }}

jobs:
publish-maven:
runs-on: ubuntu-latest
Expand All @@ -19,13 +16,13 @@ jobs:
distribution: 'temurin'
java-version: '17'
server-id: github-central
server-password: PACKAGES_CENTRAL_TOKEN
gpg-passphrase: MAVEN_GPG_PASSPHRASE
server-password-env-var: PACKAGES_CENTRAL_TOKEN
gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once

- name: Publish to GitHub Packages Central
run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
run: ../mvnw -B deploy -P publish -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
working-directory: src
env:
PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
Expand All @@ -36,13 +33,13 @@ jobs:
distribution: 'temurin'
java-version: '17'
server-id: sonatype-central-portal
server-username: MAVEN_CENTRAL_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-passphrase: MAVEN_GPG_PASSPHRASE
server-username-env-var: MAVEN_CENTRAL_USERNAME
server-password-env-var: MAVEN_CENTRAL_TOKEN
gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE

- name: Publish to Central Portal
run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal
working-directory: src
env:
MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }}
Expand Down
1 change: 0 additions & 1 deletion .run/Run Demo.run.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
<configuration default="false" name="Run Demo" type="Application" factoryName="Application">
<option name="MAIN_CLASS_NAME" value="software.xdev.Application" />
<module name="template-placeholder-demo" />
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="software.xdev.*" />
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ If you need support as soon as possible and you can't wait for any pull request,
See the [contributing guide](./CONTRIBUTING.md) for detailed instructions on how to get started with our project.

## Dependencies and Licenses
View the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/template-placeholder/dependencies)
View the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/template-placeholder)
19 changes: 19 additions & 0 deletions demos/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?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>

<parent>
<groupId>software.xdev</groupId>
<artifactId>root</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>

<artifactId>demos</artifactId>
<packaging>pom</packaging>

<modules>
<module>template-placeholder-demo</module>
</modules>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,14 @@

<parent>
<groupId>software.xdev</groupId>
<artifactId>template-placeholder-root</artifactId>
<artifactId>demos</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>

<artifactId>template-placeholder-demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>

<organization>
<name>XDEV Software</name>
<url>https://xdev.software</url>
</organization>

<properties>
<javaVersion>17</javaVersion>
<maven.compiler.release>${javaVersion}</maven.compiler.release>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<mainClass>software.xdev.Application</mainClass>
</properties>

Expand All @@ -41,17 +29,6 @@
<finalName>${project.artifactId}</finalName>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.15.0</version>
<configuration>
<release>${maven.compiler.release}</release>
<compilerArgs>
<arg>-proc:none</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
Expand Down
Loading