Skip to content

Latest commit

 

History

History
71 lines (52 loc) · 1.61 KB

File metadata and controls

71 lines (52 loc) · 1.61 KB

Contributing to JCapsLock

Development Setup

Prerequisites

  • Java 17 or later
  • Maven 3.9+

Building

# Build the project
mvn clean compile

# Package the application and Maven plugin
mvn clean package

# Install to local Maven repository
mvn clean install

Running Tests

# Run all tests (unit + integration)
mvn verify

# Run specific integration test
./test-plugin.sh quick    # Quick test
./test-plugin.sh compress # Full test with commons-compress
./test-plugin.sh all      # Run all integration tests

# End-to-end test for snapshot/check workflow
./test-lockfile.sh

Project Structure

jcapslock/
├── core/                   # Core analysis engine
│   └── src/main/java/com/github/serj/jcapslock/
│       ├── analyzer/       # Call graph and capability analysis
│       ├── capability/     # Capability mappings
│       ├── model/          # Data models
│       └── snapshot/       # Snapshot management
├── maven-plugin/           # Maven plugin
│   └── src/main/java/com/github/serj/jcapslock/maven/
├── examples/               # Example projects
└── capslock-proto/         # Protocol buffer definitions

Adding New Capabilities

  1. Update core/src/main/resources/interesting/java-interesting.cm with method signatures
  2. Add test cases
  3. Update documentation

Roadmap

Future Work

  • Runtime capability enforcement
  • VTA/Qilin support for fewer false positives
  • Gradle plugin support

Code Style

  • Follow existing code conventions
  • Use meaningful variable names
  • Add Javadoc for public APIs