Skip to content

Commit 8324592

Browse files
committed
chore: set default values
Signed-off-by: Vitor Mattos <[email protected]>
1 parent 7e186c1 commit 8324592

5 files changed

Lines changed: 24 additions & 23 deletions

File tree

example/index.php

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,6 @@
2727

2828
$param = JSignParam::instance();
2929

30-
$param->setJavaVersion('openjdk version "21.0.8" 2025-07-15 LTS');
31-
$param->setJavaDownloadUrl('https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.8%2B9/OpenJDK21U-jre_x64_linux_hotspot_21.0.8_9.tar.gz');
32-
$param->setJavaPath(__DIR__ . '/../tmp/java/bin/java');
33-
34-
$param->setJsignPdfVersion('asdfasd');
35-
$param->setJSignPdfDownloadUrl('https://github.com/intoolswetrust/jsignpdf/releases/download/JSignPdf_2_3_0/jsignpdf-2.3.0.zip');
36-
$param->setjSignPdfJarPath(__DIR__ . '/../tmp/jsignpdf/JSignPdf.jar');
37-
3830
$param->setCertificate($pfxCertificateContent);
3931
$param->setPdf(file_get_contents(__DIR__ . '/../tests/resources/pdf-test.pdf'));
4032
$param->setPassword($password);

src/Runtime/JSignPdfRuntimeService.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@
66

77
use InvalidArgumentException;
88
use Jeidison\JSignPDF\Sign\JSignParam;
9-
use PharData;
10-
use PharException;
119
use RuntimeException;
12-
use UnexpectedValueException;
1310
use ZipArchive;
1411

1512
class JSignPdfRuntimeService
@@ -29,9 +26,14 @@ public function getPath(JSignParam $params): string
2926
if ($downloadUrl && $jsignPdfPath) {
3027
$baseDir = preg_replace('/\/JSignPdf.jar$/', '', $jsignPdfPath);
3128
if (!is_dir($baseDir)) {
32-
throw new InvalidArgumentException('The JSignPdf base dir is not a real directory: '. $baseDir);
29+
$ok = mkdir($baseDir, 0755, true);
30+
if ($ok === false) {
31+
throw new InvalidArgumentException('The JSignPdf base dir cannot be created: '. $baseDir);
32+
}
33+
}
34+
if (!file_exists($jsignPdfPath)) {
35+
self::downloadAndExtract($params);
3336
}
34-
self::downloadAndExtract($params);
3537
return $jsignPdfPath;
3638
}
3739

src/Runtime/JavaRuntimeService.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ public function getPath(JSignParam $params): string
3232
if ($downloadUrl && $javaPath) {
3333
$baseDir = preg_replace('/\/bin\/java$/', '', $javaPath);
3434
if (!is_dir($baseDir)) {
35-
throw new InvalidArgumentException('The java base dir is not a real directory. Create this directory first: '. $baseDir);
35+
$ok = mkdir($baseDir, 0755, true);
36+
if ($ok === false) {
37+
throw new InvalidArgumentException('The java base dir is not a real directory. Create this directory first: '. $baseDir);
38+
}
3639
}
3740
try {
3841
self::validateVersion($params);

src/Sign/JSignParam.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,22 @@ class JSignParam
1313
private $pathPdfSigned;
1414
private $JSignParameters = "-a -kst PKCS12";
1515
private $isUseJavaInstalled = false;
16-
private $javaPath = '';
16+
private string $javaPath = '';
1717
private $tempPath;
1818
private $tempName;
1919
private $isOutputTypeBase64 = false;
20-
private $jSignPdfJarPath;
21-
private ?string $javaVersion = null;
22-
private ?string $javaDownloadUrl = null;
23-
private ?string $jSignPdfDownloadUrl = null;
20+
private string $jSignPdfJarPath;
21+
private string $javaVersion = 'openjdk version "21.0.8" 2025-07-15 LTS';
22+
private string $javaDownloadUrl = 'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.8%2B9/OpenJDK21U-jre_x64_linux_hotspot_21.0.8_9.tar.gz';
23+
private string $jSignPdfDownloadUrl = 'https://github.com/intoolswetrust/jsignpdf/releases/download/JSignPdf_2_3_0/jsignpdf-2.3.0.zip';
2424
private ?string $jsignPdfVersion = null;
2525

2626
public function __construct()
2727
{
2828
$this->tempName = md5(time() . uniqid() . mt_rand());
2929
$this->tempPath = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR;
30+
$this->javaPath = $this->tempPath . 'java' . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . 'java';
31+
$this->jSignPdfJarPath = $this->tempPath . 'jsignpdf' . DIRECTORY_SEPARATOR . 'JSignPdf.jar';
3032
}
3133

3234
public static function instance()
@@ -179,7 +181,7 @@ public function setJavaDownloadUrl(string $url): self
179181
return $this;
180182
}
181183

182-
public function getJavaDownloadUrl(): ?string
184+
public function getJavaDownloadUrl(): string
183185
{
184186
return $this->javaDownloadUrl;
185187
}
@@ -190,7 +192,7 @@ public function setJSignPdfDownloadUrl(string $url): self
190192
return $this;
191193
}
192194

193-
public function getJSignPdfDownloadUrl(): ?string
195+
public function getJSignPdfDownloadUrl(): string
194196
{
195197
return $this->jSignPdfDownloadUrl;
196198
}

tests/JSignPDFTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function exec(string $command, ?array &$output = null, ?int &$return_var = null)
2424
*/
2525
class JSignPDFTest extends TestCase
2626
{
27-
private $service;
27+
private JSignService $service;
2828

2929
protected function setUp(): void
3030
{
@@ -171,7 +171,9 @@ public function testSignWhenPasswordIsInvalid()
171171
public function testJSignPDFNotFound()
172172
{
173173
$this->expectExceptionMessageMatches('/JSignPDF not found/');
174-
$params = JSignParamBuilder::instance()->withDefault()->setjSignPdfJarPath('invalid_path');
174+
$params = JSignParamBuilder::instance()->withDefault();
175+
$params->setJSignPdfDownloadUrl('');
176+
$params->setjSignPdfJarPath('invalid_path');
175177
$params->setCertificate($this->getNewCert($params->getPassword()));
176178
$params->setIsUseJavaInstalled(true);
177179
$this->service->getVersion($params);

0 commit comments

Comments
 (0)