node {
    try {
        // Checkout project
        stage('checkout project') {
            checkout scm
        }

        // Check environment
        stage('check env') {
            sh "mvn -v"
            sh "java -version"
        }

        // Install local JAR
        stage('install zatca SDK') {
            sh 'mvn install:install-file -Dfile=libs/zatca-einvoicing-sdk-238-R3.3.3.jar -DgroupId=com.gazt -DartifactId=einvoicing-sdk -Dversion=238-R3.3.3 -Dpackaging=jar'
        }

        // Clean and package the project
        stage('clean package') {
            sh "./mvnw clean package -X"
        }

        // Verify JAR creation
        stage('verify JAR creation') {
            sh "ls -l target/"
        }

        // Manually inspect JAR file
        stage('inspect JAR file') {
            sh "jar tf target/RestForYou.jar"
        }

        // Reload systemd daemon
        stage('reload daemon') {
            sh " sudo -S systemctl daemon-reload"
        }

        // Start systemd service with debug logging
        stage('start daemon with debug') {
            sh " sudo -S systemctl start RestForYou-0.0.1-SNAPSHOT"
        }

        // Enable systemd service
        stage('enable daemon') {
            sh " sudo -S systemctl enable RestForYou-0.0.1-SNAPSHOT"
        }

        // Restart systemd service
        stage('restart daemon') {
            sh " sudo -S systemctl restart RestForYou-0.0.1-SNAPSHOT"
        }
    } catch (e) {
        throw e;
    }
}
