From b46c89e10b02838907cd8c014416198c7c61486e Mon Sep 17 00:00:00 2001 From: Gaetano Savo Date: Tue, 1 Apr 2025 11:50:10 +0200 Subject: [PATCH] filtro del log --- build-and-deploy.ps1 | 170 ++++- config.json | 24 + ...ndalone-full-ADV360-BES-EAP_8_POSTGRES.xml | 617 ++++++++++++++++++ start-jboss.ps1 | 67 +- stop-jboss.ps1 | 48 +- unpack_ear.ps1 | 74 ++- 6 files changed, 937 insertions(+), 63 deletions(-) create mode 100644 config.json create mode 100644 config/standalone-full-ADV360-BES-EAP_8_POSTGRES.xml diff --git a/build-and-deploy.ps1 b/build-and-deploy.ps1 index 5a443cd..e99b998 100644 --- a/build-and-deploy.ps1 +++ b/build-and-deploy.ps1 @@ -1,56 +1,117 @@ # PowerShell script for building and deploying arm_am-pom to JBoss EAP 8.0 -# Configuration -$JBOSS_HOME = "C:\Dev2012\BUILDERS\jboss-eap-8.0" -$PROJECT_DIR = Join-Path $PSScriptRoot "workspace\arm_am-pom" -$DEPLOYMENT_DIR = "$JBOSS_HOME\standalone\deployments" -$MAVEN_PROFILE = "adv360-DEV" # Default development profile -$JAVA_HOME = "C:\Dev2012\BUILDERS\java\jdk-17.0.9" # Path to Java 17 +# Read configuration from config.json +$configPath = Join-Path $PSScriptRoot "config.json" +if (-not (Test-Path $configPath)) { + Write-Host "Error: config.json not found at $configPath" -ForegroundColor Red + exit 1 +} + +$config = Get-Content $configPath -Raw | ConvertFrom-Json + +# Configuration from config.json +$JBOSS_HOME = $config.jboss.jbossHome +$DEPLOYMENT_DIR = $config.jboss.deploymentDir +$PROJECT_DIR = $config.ear.projectDir +$MAVEN_PROFILE = $config.ear.mavenProfile +$JAVA_HOME = $config.jboss.javaHome +$ASSET_GUI_DIR = $config.assetGui.projectDir +$ASSET_GUI_TARGET = $config.assetGui.targetDir # Store the original directory $originalDirectory = Get-Location # Function to check if JBoss is running -function Is-JBossRunning { +function Test-JBossRunning { $jbossProcess = Get-CimInstance Win32_Process -Filter "Name = 'java.exe'" | Where-Object { $_.CommandLine -like "*jboss.home.dir=$JBOSS_HOME*" } return $null -ne $jbossProcess } Write-Host "Starting build and deploy process..." -ForegroundColor Green +Write-Host "Using configuration:" -ForegroundColor Yellow +Write-Host " Java Home: $JAVA_HOME" -ForegroundColor Yellow +Write-Host " JBoss Home: $JBOSS_HOME" -ForegroundColor Yellow +Write-Host " Project Directory: $PROJECT_DIR" -ForegroundColor Yellow +Write-Host " Maven Profile: $MAVEN_PROFILE" -ForegroundColor Yellow +Write-Host " Asset GUI Directory: $ASSET_GUI_DIR" -ForegroundColor Yellow # Check if Java exists if (-not (Test-Path $JAVA_HOME)) { - Write-Host "Error: Java 17 not found at $JAVA_HOME" -ForegroundColor Red - Set-Location $originalDirectory # Restore original directory + Write-Host "Error: Java not found at $JAVA_HOME" -ForegroundColor Red + Set-Location $originalDirectory exit 1 } # Set JAVA_HOME for the build $env:JAVA_HOME = $JAVA_HOME -Write-Host "Using Java from: $JAVA_HOME" -ForegroundColor Yellow # Check if JBoss directory exists if (-not (Test-Path $JBOSS_HOME)) { Write-Host "Error: JBoss directory not found at $JBOSS_HOME" -ForegroundColor Red - Set-Location $originalDirectory # Restore original directory + Set-Location $originalDirectory exit 1 } -# Check if project directory exists +# Check if project directories exist if (-not (Test-Path $PROJECT_DIR)) { Write-Host "Error: Project directory not found at $PROJECT_DIR" -ForegroundColor Red - Set-Location $originalDirectory # Restore original directory + Set-Location $originalDirectory exit 1 } -# Navigate to project directory +# Check Asset GUI directory and package.json +$skipAssetGui = $false +if (-not (Test-Path $ASSET_GUI_DIR)) { + Write-Host "Warning: Asset GUI directory not found at $ASSET_GUI_DIR" -ForegroundColor Yellow + Write-Host "Skipping Asset GUI build..." -ForegroundColor Yellow + $skipAssetGui = $true +} +elseif (-not (Test-Path (Join-Path $ASSET_GUI_DIR "package.json"))) { + Write-Host "Warning: package.json not found in Asset GUI directory" -ForegroundColor Yellow + Write-Host "Skipping Asset GUI build..." -ForegroundColor Yellow + $skipAssetGui = $true +} + +if (-not $skipAssetGui) { + # Build and deploy Asset GUI + Write-Host "Building Asset GUI..." -ForegroundColor Yellow + Set-Location $ASSET_GUI_DIR + + # Run npm install and build for Asset GUI + Write-Host "Installing Asset GUI dependencies..." -ForegroundColor Yellow + npm install + if ($LASTEXITCODE -ne 0) { + Write-Host "Warning: npm install failed! Skipping Asset GUI build..." -ForegroundColor Yellow + $skipAssetGui = $true + } + + if (-not $skipAssetGui) { + Write-Host "Building Asset GUI..." -ForegroundColor Yellow + npm run build + if ($LASTEXITCODE -ne 0) { + Write-Host "Warning: Asset GUI build failed! Continuing with EAR build..." -ForegroundColor Yellow + $skipAssetGui = $true + } + else { + # Create Asset GUI target directory if it doesn't exist + if (-not (Test-Path $ASSET_GUI_TARGET)) { + New-Item -ItemType Directory -Path $ASSET_GUI_TARGET -Force + } + + # Copy Asset GUI build to target directory + Write-Host "Copying Asset GUI build to target directory..." -ForegroundColor Yellow + Copy-Item -Path "$ASSET_GUI_DIR\dist\*" -Destination $ASSET_GUI_TARGET -Recurse -Force + } + } +} + +# Build EAR project +Write-Host "Building EAR project..." -ForegroundColor Yellow Set-Location $PROJECT_DIR -# Build process -Write-Host "Building project with profile $MAVEN_PROFILE..." -ForegroundColor Yellow - # Build parent +Write-Host "Building parent project..." -ForegroundColor Yellow mvn clean install -N "-P$MAVEN_PROFILE" if ($LASTEXITCODE -ne 0) { Write-Host "Maven parent build failed!" -ForegroundColor Red @@ -59,30 +120,32 @@ if ($LASTEXITCODE -ne 0) { } # Build EJB module +Write-Host "Building EJB module..." -ForegroundColor Yellow Set-Location "$PROJECT_DIR\arm_am-ejb" mvn clean install -DskipTests "-P$MAVEN_PROFILE" if ($LASTEXITCODE -ne 0) { Write-Host "Maven EJB module build failed!" -ForegroundColor Red - Set-Location $originalDirectory # Restore original directory + Set-Location $originalDirectory exit 1 } # Build WAR module +Write-Host "Building WAR module..." -ForegroundColor Yellow Set-Location "$PROJECT_DIR\arm_am" mvn clean install -DskipTests "-P$MAVEN_PROFILE" if ($LASTEXITCODE -ne 0) { Write-Host "Maven WAR module build failed!" -ForegroundColor Red - Set-Location $originalDirectory # Restore original directory + Set-Location $originalDirectory exit 1 } -# Finally build the EAR module with debug output +# Build EAR module Write-Host "Building EAR module..." -ForegroundColor Yellow -Set-Location (Join-Path $PROJECT_DIR "arm_am-ear") +Set-Location "$PROJECT_DIR\arm_am-ear" mvn clean package -DskipTests "-P$MAVEN_PROFILE" if ($LASTEXITCODE -ne 0) { Write-Host "Maven EAR module build failed!" -ForegroundColor Red - Set-Location $originalDirectory # Restore original directory + Set-Location $originalDirectory exit 1 } @@ -92,29 +155,82 @@ $earFile = Get-ChildItem -Path "$PROJECT_DIR\arm_am-ear\target\*.ear" -ErrorActi if (-not $earFile) { Write-Host "Error: EAR file not found after build" -ForegroundColor Red Write-Host "Searching in: $PROJECT_DIR\arm_am-ear\target\" -ForegroundColor Yellow - Set-Location $originalDirectory # Restore original directory + Set-Location $originalDirectory exit 1 } # Create deployments directory if it doesn't exist if (-not (Test-Path $DEPLOYMENT_DIR)) { - New-Item -ItemType Directory -Path $DEPLOYMENT_DIR + New-Item -ItemType Directory -Path $DEPLOYMENT_DIR -Force } # Copy EAR file to JBoss deployments directory Write-Host "Deploying EAR to JBoss..." -ForegroundColor Yellow Write-Host "Copying from: $($earFile.FullName)" -ForegroundColor Yellow Write-Host "Copying to: $DEPLOYMENT_DIR" -ForegroundColor Yellow -Copy-Item $earFile.FullName $DEPLOYMENT_DIR + +# Remove existing deployment if present +$deployedEarPath = Join-Path $DEPLOYMENT_DIR $config.ear.deployedFile +if (Test-Path $deployedEarPath) { + Write-Host "Removing existing deployment..." -ForegroundColor Yellow + Remove-Item $deployedEarPath -Force +} + +# Copy new EAR file with the configured name +Copy-Item $earFile.FullName $deployedEarPath + +# Unpack EAR if configured +if ($config.ear.unpackDir) { + Write-Host "Unpacking EAR to: $($config.ear.unpackDir)" -ForegroundColor Yellow + + # Create unpack directory if it doesn't exist + if (-not (Test-Path $config.ear.unpackDir)) { + New-Item -ItemType Directory -Path $config.ear.unpackDir -Force + } + + # Clean existing content + Remove-Item "$($config.ear.unpackDir)\*" -Recurse -Force -ErrorAction SilentlyContinue + + # Use 7-Zip to unpack the EAR (Java JAR files are ZIP format) + try { + $7zPath = "C:\Program Files\7-Zip\7z.exe" + if (Test-Path $7zPath) { + # Use 7-Zip + Start-Process -FilePath $7zPath -ArgumentList "x", "`"$deployedEarPath`"", "-o`"$($config.ear.unpackDir)`"", "-y" -Wait -NoNewWindow + } else { + # Fallback to jar command from Java + $jarPath = Join-Path $JAVA_HOME "bin\jar.exe" + if (Test-Path $jarPath) { + Set-Location $config.ear.unpackDir + Start-Process -FilePath $jarPath -ArgumentList "xf", "`"$deployedEarPath`"" -Wait -NoNewWindow + } else { + Write-Host "Warning: Could not unpack EAR - neither 7-Zip nor jar command found" -ForegroundColor Yellow + } + } + } + catch { + Write-Host "Warning: Failed to unpack EAR: $_" -ForegroundColor Yellow + } + finally { + Set-Location $originalDirectory + } +} # Check if JBoss is running -if (Is-JBossRunning) { +if (Test-JBossRunning) { Write-Host "JBoss is running - deployment will be automatically picked up" -ForegroundColor Green } else { Write-Host "Note: JBoss is not running. Start JBoss to complete deployment" -ForegroundColor Yellow } -Write-Host "Build and deploy process completed!" -ForegroundColor Green +Write-Host "Build and deploy process completed successfully!" -ForegroundColor Green +if (-not $skipAssetGui) { + Write-Host " - Asset GUI deployed to: $ASSET_GUI_TARGET" -ForegroundColor Green +} +Write-Host " - EAR deployed to: $deployedEarPath" -ForegroundColor Green +if ($config.ear.unpackDir) { + Write-Host " - EAR unpacked to: $($config.ear.unpackDir)" -ForegroundColor Green +} # Restore the original directory Set-Location $originalDirectory diff --git a/config.json b/config.json new file mode 100644 index 0000000..d242847 --- /dev/null +++ b/config.json @@ -0,0 +1,24 @@ +{ + "jboss": { + "configFile": "standalone-full-ADV360-BES-EAP_8_POSTGRES.xml", + "jbossHome": "C:\\Dev2012\\BUILDERS\\jboss-eap-8.0", + "deploymentDir": "C:\\Dev2012\\BUILDERS\\jboss-eap-8.0\\standalone\\deployments", + "javaHome": "C:\\Dev2012\\BUILDERS\\java\\jdk-17.0.9" + }, + "customFormatter": { + "src": "src", + "build": "build", + "classes": "build/classes", + "jar": "custom-formatter.jar" + }, + "ear": { + "projectDir": "C:\\Dev2012\\source\\WindSurf\\adv8\\workspace\\arm_am-pom", + "mavenProfile": "adv360-DEV", + "deployedFile": "adv360-ear.ear", + "unpackDir": "C:\\Dev2012\\source\\WindSurf\\adv8\\workspace\\arm_am-unpacked" + }, + "assetGui": { + "projectDir": "C:\\Dev2012\\source\\WindSurf\\adv8\\workspace\\asset-gui", + "targetDir": "C:\\Dev2012\\source\\WindSurf\\adv8\\workspace\\arm_am-pom\\arm_am\\WebContent\\adv" + } +} diff --git a/config/standalone-full-ADV360-BES-EAP_8_POSTGRES.xml b/config/standalone-full-ADV360-BES-EAP_8_POSTGRES.xml new file mode 100644 index 0000000..9d94179 --- /dev/null +++ b/config/standalone-full-ADV360-BES-EAP_8_POSTGRES.xml @@ -0,0 +1,617 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=${wildfly.h2.compatibility.mode:REGULAR} + h2 + + sa + sa + + + + jdbc:postgresql://localhost:5432/advc?currentSchema=advc_own + postgresql + + bes2 + Armu4010 + + + select 1 + false + 300000 + + + 60 + + + + + org.h2.jdbcx.JdbcDataSource + + + org.postgresql.Driver + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${jboss.bind.address:127.0.0.1} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/start-jboss.ps1 b/start-jboss.ps1 index a215031..632d99a 100644 --- a/start-jboss.ps1 +++ b/start-jboss.ps1 @@ -1,11 +1,21 @@ # PowerShell script to start JBoss EAP 8.0 -# Configuration -$JBOSS_HOME = "C:\Dev2012\BUILDERS\jboss-eap-8.0" -$JAVA_HOME = "C:\Dev2012\BUILDERS\java\jdk-17.0.9" +# Read configuration from config.json +$configPath = Join-Path $PSScriptRoot "config.json" +if (-not (Test-Path $configPath)) { + Write-Host "Error: config.json not found at $configPath" -ForegroundColor Red + exit 1 +} -# Function to check if JBoss is already running -function Is-JBossRunning { +$config = Get-Content $configPath -Raw | ConvertFrom-Json + +# Configuration from config.json +$JBOSS_HOME = $config.jboss.jbossHome +$JAVA_HOME = $config.jboss.javaHome +$CONFIG_FILE = $config.jboss.configFile + +# Function to check if JBoss is running +function Test-JBossRunning { $jbossProcess = Get-CimInstance Win32_Process -Filter "Name = 'java.exe'" | Where-Object { $_.CommandLine -like "*jboss.home.dir=$JBOSS_HOME*" } return $null -ne $jbossProcess @@ -13,7 +23,7 @@ function Is-JBossRunning { # Check if Java exists if (-not (Test-Path $JAVA_HOME)) { - Write-Host "Error: Java 17 not found at $JAVA_HOME" -ForegroundColor Red + Write-Host "Error: Java not found at $JAVA_HOME" -ForegroundColor Red exit 1 } @@ -23,8 +33,33 @@ if (-not (Test-Path $JBOSS_HOME)) { exit 1 } -# Check if configuration file exists -$configFile = "$JBOSS_HOME\standalone\configuration\standalone-full-ADV360-BES-EAP_8_POSTGRES.xml" +# Copy configuration file from local config directory +$localConfigDir = Join-Path $PSScriptRoot "config" +$localConfigFile = Join-Path $localConfigDir (Split-Path $CONFIG_FILE -Leaf) +$jbossConfigDir = Join-Path $JBOSS_HOME "standalone\configuration" + +if (Test-Path $localConfigFile) { + Write-Host "Copying configuration file from local config directory..." -ForegroundColor Yellow + Write-Host "From: $localConfigFile" -ForegroundColor Yellow + Write-Host "To: $jbossConfigDir" -ForegroundColor Yellow + + # Create backup of existing config if it exists + $targetConfigFile = Join-Path $jbossConfigDir (Split-Path $CONFIG_FILE -Leaf) + if (Test-Path $targetConfigFile) { + $backupFile = "$targetConfigFile.backup" + Write-Host "Creating backup of existing config: $backupFile" -ForegroundColor Yellow + Copy-Item $targetConfigFile $backupFile -Force + } + + # Copy the new config file + Copy-Item $localConfigFile $jbossConfigDir -Force +} else { + Write-Host "Warning: Local config file not found at $localConfigFile" -ForegroundColor Yellow + Write-Host "Using existing JBoss configuration" -ForegroundColor Yellow +} + +# Check if configuration file exists in JBoss +$configFile = Join-Path $jbossConfigDir (Split-Path $CONFIG_FILE -Leaf) if (-not (Test-Path $configFile)) { Write-Host "Error: Configuration file not found at $configFile" -ForegroundColor Red exit 1 @@ -39,7 +74,7 @@ $env:NOPAUSE = "true" # $env:LAUNCH_JBOSS_IN_BACKGROUND = "true" # Check if JBoss is already running -if (Is-JBossRunning) { +if (Test-JBossRunning) { Write-Host "JBoss is already running!" -ForegroundColor Yellow exit 0 } @@ -47,10 +82,10 @@ if (Is-JBossRunning) { Write-Host "Starting JBoss EAP 8.0..." -ForegroundColor Green Write-Host "Using Java from: $JAVA_HOME" -ForegroundColor Yellow Write-Host "JBoss Home: $JBOSS_HOME" -ForegroundColor Yellow -Write-Host "Using configuration: standalone-full-ADV360-BES-EAP_8_POSTGRES.xml" -ForegroundColor Yellow +Write-Host "Using configuration: $CONFIG_FILE" -ForegroundColor Yellow # Start JBoss in standalone mode -$startScript = "$JBOSS_HOME\bin\standalone.bat" +$startScript = Join-Path $JBOSS_HOME "bin\standalone.bat" $jvmOptions = @( "-DIDServer=GS", "-Dbtf.PathToParse=C:\Dev2012\advc0\in", @@ -71,16 +106,16 @@ Write-Host "JVM Options: $env:JAVA_OPTS" -ForegroundColor Yellow Write-Host "Remote debugging enabled on port 8787" -ForegroundColor Cyan # Create the command line arguments -$cmdArgs = "-c standalone-full-ADV360-BES-EAP_8_POSTGRES.xml --debug -b 0.0.0.0 -bmanagement 0.0.0.0" +$cmdArgs = "-c $CONFIG_FILE --debug -b 0.0.0.0 -bmanagement 0.0.0.0" # Start JBoss - Modified to use Start-Process with RedirectStandardOutput -$logFile = "$JBOSS_HOME\standalone\log\server-info.log" +$logFile = Join-Path $JBOSS_HOME "standalone\log\server-info.log" $processStartInfo = @{ FilePath = $startScript ArgumentList = $cmdArgs RedirectStandardOutput = $logFile - RedirectStandardError = "$JBOSS_HOME\standalone\log\server_error.log" - WorkingDirectory = "$JBOSS_HOME\bin" + RedirectStandardError = Join-Path $JBOSS_HOME "standalone\log\server_error.log" + WorkingDirectory = Join-Path $JBOSS_HOME "bin" NoNewWindow = $true PassThru = $true } @@ -91,7 +126,7 @@ $jbossProcess = Start-Process @processStartInfo # Wait a few seconds to check if the process started successfully Start-Sleep -Seconds 10 -if (Is-JBossRunning) { +if (Test-JBossRunning) { Write-Host "JBoss started successfully!" -ForegroundColor Green Write-Host "Admin console will be available at: http://localhost:9990" -ForegroundColor Yellow Write-Host "Remote debugging is enabled on port 8787" -ForegroundColor Cyan diff --git a/stop-jboss.ps1 b/stop-jboss.ps1 index fddc8ed..619e84c 100644 --- a/stop-jboss.ps1 +++ b/stop-jboss.ps1 @@ -1,9 +1,19 @@ # PowerShell script to stop JBoss EAP 8.0 -# Configuration -$JBOSS_HOME = "C:\Dev2012\BUILDERS\jboss-eap-8.0" +# Read configuration from config.json +$configPath = Join-Path $PSScriptRoot "config.json" +if (-not (Test-Path $configPath)) { + Write-Host "Error: config.json not found at $configPath" -ForegroundColor Red + exit 1 +} + +$config = Get-Content $configPath -Raw | ConvertFrom-Json + +# Configuration from config.json +$JBOSS_HOME = $config.jboss.jbossHome Write-Host "Stopping JBoss EAP 8.0..." -ForegroundColor Yellow +Write-Host "JBoss Home: $JBOSS_HOME" -ForegroundColor Yellow # Find and stop JBoss process $jbossProcess = Get-CimInstance Win32_Process -Filter "Name = 'java.exe'" | @@ -11,7 +21,29 @@ $jbossProcess = Get-CimInstance Win32_Process -Filter "Name = 'java.exe'" | if ($jbossProcess) { Write-Host "Found JBoss process (PID: $($jbossProcess.ProcessId))" -ForegroundColor Yellow - Stop-Process -Id $jbossProcess.ProcessId -Force + + # Try graceful shutdown first + Write-Host "Attempting graceful shutdown..." -ForegroundColor Yellow + $jbossCli = Join-Path $JBOSS_HOME "bin\jboss-cli.bat" + $cliCommand = "--connect --command=:shutdown" + + try { + Start-Process -FilePath $jbossCli -ArgumentList $cliCommand -Wait -NoNewWindow + Start-Sleep -Seconds 5 # Give it time for graceful shutdown + + # Check if process is still running + $processStillRunning = Get-Process -Id $jbossProcess.ProcessId -ErrorAction SilentlyContinue + + if ($processStillRunning) { + Write-Host "Graceful shutdown failed, forcing process termination..." -ForegroundColor Yellow + Stop-Process -Id $jbossProcess.ProcessId -Force + } + } + catch { + Write-Host "Graceful shutdown failed, forcing process termination..." -ForegroundColor Yellow + Stop-Process -Id $jbossProcess.ProcessId -Force + } + Write-Host "JBoss process stopped" -ForegroundColor Green } else { Write-Host "No JBoss process found running" -ForegroundColor Yellow @@ -19,3 +51,13 @@ if ($jbossProcess) { # Wait a moment to ensure process is fully stopped Start-Sleep -Seconds 2 + +# Verify JBoss is stopped +$jbossStillRunning = Get-CimInstance Win32_Process -Filter "Name = 'java.exe'" | + Where-Object { $_.CommandLine -like "*jboss.home.dir=$JBOSS_HOME*" } + +if ($jbossStillRunning) { + Write-Host "Warning: JBoss process is still running!" -ForegroundColor Red +} else { + Write-Host "Confirmed: JBoss is fully stopped" -ForegroundColor Green +} diff --git a/unpack_ear.ps1 b/unpack_ear.ps1 index 8cc82fb..a3977c4 100644 --- a/unpack_ear.ps1 +++ b/unpack_ear.ps1 @@ -1,28 +1,59 @@ -$sourceFile = "C:\Dev2012\BUILDERS\jboss-eap-8.0\standalone\deployments\adv360-ear.ear" -$destinationPath = ".\arm_am-unpacked" +# PowerShell script to unpack EAR file + +# Read configuration from config.json +$configPath = Join-Path $PSScriptRoot "config.json" +if (-not (Test-Path $configPath)) { + Write-Host "Error: config.json not found at $configPath" -ForegroundColor Red + exit 1 +} + +$config = Get-Content $configPath -Raw | ConvertFrom-Json + +# Get paths from config +$sourceFile = Join-Path $config.jboss.jbossHome "standalone\deployments\adv360-ear.ear" +$destinationPath = $config.ear.unpackDir + +Write-Host "Using configuration:" -ForegroundColor Yellow +Write-Host " Source EAR: $sourceFile" -ForegroundColor Yellow +Write-Host " Destination: $destinationPath" -ForegroundColor Yellow + +# Verify source file exists +if (-not (Test-Path -Path $sourceFile)) { + Write-Host "Error: Source EAR file not found at $sourceFile" -ForegroundColor Red + exit 1 +} # Remove destination directory if it exists if (Test-Path -Path $destinationPath) { Remove-Item -Path $destinationPath -Recurse -Force - Write-Host "Removed existing directory: $destinationPath" + Write-Host "Removed existing directory: $destinationPath" -ForegroundColor Yellow } # Create destination directory if (-not (Test-Path -Path $destinationPath)) { - New-Item -ItemType Directory -Path $destinationPath -Force + New-Item -ItemType Directory -Path $destinationPath -Force | Out-Null + Write-Host "Created destination directory: $destinationPath" -ForegroundColor Yellow } -# Rename .ear to .zip temporarily to use Expand-Archive -$tempZipPath = $sourceFile -replace '\.ear$', '.zip' -Copy-Item -Path $sourceFile -Destination $tempZipPath +# Try using 7-Zip first, fall back to zip method if not available +$7zPath = "C:\Program Files\7-Zip\7z.exe" +if (Test-Path $7zPath) { + Write-Host "Using 7-Zip to extract EAR..." -ForegroundColor Yellow + Start-Process -FilePath $7zPath -ArgumentList "x", "`"$sourceFile`"", "-o`"$destinationPath`"", "-y" -Wait -NoNewWindow +} else { + Write-Host "7-Zip not found, using PowerShell Expand-Archive..." -ForegroundColor Yellow + # Rename .ear to .zip temporarily to use Expand-Archive + $tempZipPath = $sourceFile -replace '\.ear$', '.zip' + Copy-Item -Path $sourceFile -Destination $tempZipPath + + # Extract the EAR contents + Expand-Archive -Path $tempZipPath -DestinationPath $destinationPath -Force + + # Clean up temporary zip file + Remove-Item -Path $tempZipPath +} -# Extract the EAR contents -Expand-Archive -Path $tempZipPath -DestinationPath $destinationPath -Force - -# Clean up temporary zip file -Remove-Item -Path $tempZipPath - -Write-Host "EAR file extracted to $destinationPath" +Write-Host "EAR file extracted to $destinationPath" -ForegroundColor Green # Function to unpack archive files (war/ejb) function Expand-JavaArchive { @@ -39,10 +70,19 @@ function Expand-JavaArchive { New-Item -ItemType Directory -Path $destinationPath -Force } - # Extract contents - Expand-Archive -Path $tempZipPath -DestinationPath $destinationPath -Force + # Try using 7-Zip first, fall back to zip method if not available + if (Test-Path $7zPath) { + Write-Host "Using 7-Zip to extract $archivePath..." -ForegroundColor Yellow + Start-Process -FilePath $7zPath -ArgumentList "x", "`"$tempZipPath`"", "-o`"$destinationPath`"", "-y" -Wait -NoNewWindow + } else { + Write-Host "7-Zip not found, using PowerShell Expand-Archive..." -ForegroundColor Yellow + # Extract contents + Expand-Archive -Path $tempZipPath -DestinationPath $destinationPath -Force + } + + # Clean up temporary zip file Remove-Item -Path $tempZipPath - Write-Host "Extracted $archivePath to $destinationPath" + Write-Host "Extracted $archivePath to $destinationPath" -ForegroundColor Green } # Find and extract WAR and EJB files