Skip to content

opendis7-java v7.0.35 #4

opendis7-java v7.0.35

opendis7-java v7.0.35 #4

Workflow file for this run

name: Publish Release
on:
release:
types: [published]
workflow_dispatch:
jobs:
build-and-release:
runs-on: ubuntu-latest
container:
image: eclipse-temurin:17-jdk
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Ant and tools
run: |
apt-get update
apt-get install -y ant zip git gh
- name: Build
run: ant all
- name: Package javadoc for browsing
run: |
cd dist/javadoc && zip -r ../opendis7-javadoc.zip .
- name: Create release bundle
run: |
mkdir -p release
cp dist/opendis7-*.jar release/
cp dist/license.txt release/
cp dist/license.html release/
cd release && zip -r ../opendis7-release.zip .
- name: Generate release description
run: |
cat > /tmp/release-body.md <<'RELEASE_EOF'
![Open-DIS Surfer Dude](https://raw.githubusercontent.com/open-dis/opendis7-java/master/images/OpenDisSurferDude.png)
# opendis7-java Distribution Products
Complete type-safe open-source Java implementation of the IEEE Distributed Interactive Simulation (DIS) Protocol, including all Protocol Data Units (PDUs), entity enumerations, and supporting utilities.
## Downloads
| Asset | Description |
|-------|-------------|
| `opendis7-full.jar` | Complete library — PDUs, enumerations, utilities, and javadoc in one jar |
| `opendis7-pdus-classes.jar` | PDU compiled classes only |
| `opendis7-pdus-source.jar` | PDU Java source files |
| `opendis7-enumerations-classes.jar` | Enumeration compiled classes (from opendis7-source-generator) |
| `opendis7-enumerations-source.jar` | Enumeration Java source files |
| `opendis7-enumerations-javadoc.jar` | Enumeration javadoc archive |
| `opendis7-javadoc.zip` | Browseable javadoc (unzip and open `index.html`) |
| `opendis7-release.zip` | Complete bundle with all JARs and license files |
## Documentation
- [Javadoc (online)](https://savage.nps.edu/opendis7-java/javadoc)
- [IEEE DIS7 PDU Color Figure](https://www.nps.edu/web/moves/dis)
- [DIS 101 Tutorial (IITSEC 2021)](https://www.nps.edu/web/moves/networked-virtual-environments)
- [Wikipedia: Distributed Interactive Simulation](https://en.wikipedia.org/wiki/Distributed_Interactive_Simulation)
## Source Code
- [opendis7-java](https://github.com/open-dis/opendis7-java) — Java library, PDUs, utilities, and tests
- [opendis7-source-generator](https://github.com/open-dis/opendis7-source-generator) — Code generator for enumerations and entity types from SISO-REF-010
## Specifications
- IEEE Standard 1278.1-2012, IEEE Standard for Distributed Interactive Simulation (DIS) — Application Protocols
- SISO-REF-010 — Reference for Enumerations for Simulation Interoperability
## Course Materials
- [MV3500 Distributed Simulation Fundamentals](https://www.nps.edu/web/moves/mv3500) — NPS course using this library
## Contact
- [Don Brutzman](https://faculty.nps.edu/brutzman) — Naval Postgraduate School (NPS)
- [open-dis GitHub Organization](https://github.com/open-dis)
RELEASE_EOF
# Strip leading whitespace from heredoc (caused by YAML indentation)
sed -i 's/^ //' /tmp/release-body.md
- name: Upload release assets
if: github.event_name == 'release'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
TAG="${{ github.event.release.tag_name }}"
REPO="${{ github.repository }}"
# Upload individual JARs
for jar in dist/opendis7-*.jar; do
gh release upload "$TAG" "$jar" --clobber --repo "$REPO"
done
# Upload javadoc zip
gh release upload "$TAG" dist/opendis7-javadoc.zip --clobber --repo "$REPO"
# Upload complete bundle
gh release upload "$TAG" opendis7-release.zip --clobber --repo "$REPO"
# Update release body with the generated description
gh release edit "$TAG" --notes-file /tmp/release-body.md --repo "$REPO"
- name: Upload artifacts
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: opendis7-release
path: |
dist/opendis7-*.jar
dist/opendis7-javadoc.zip
opendis7-release.zip