Compare commits

...

6 Commits

Author SHA1 Message Date
Ludy
a3dedf3e8b
Merge branch 'main' into pre-commit 2025-09-05 00:57:13 +02:00
stirlingbot[bot]
c1ef1b6e26
📁 pre-commit
Signed-off-by: stirlingbot[bot] <stirlingbot[bot]@users.noreply.github.com>
2025-09-04 22:48:39 +00:00
stirlingbot[bot]
dde6cc2d49
🤖 format everything with pre-commit by stirlingbot (#4375)
Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-09-04 23:46:20 +01:00
stirlingbot[bot]
5617740db9
Update 3rd Party Licenses (#4385)
Co-authored-by: stirlingbot[bot] <195170888+stirlingbot[bot]@users.noreply.github.com>
2025-09-04 23:44:42 +01:00
Eray Türkay
7f4071204e
Update messages_tr_TR.properties (#4384) 2025-09-04 23:44:34 +01:00
Anthony Stirling
7a73a62a9c
Bump project version from 1.2.0 to 1.3.0 (#4383) 2025-09-04 23:30:39 +01:00
14 changed files with 45 additions and 47 deletions

View File

@ -315,6 +315,5 @@ public class ProcessExecutor {
this.rc = rc; this.rc = rc;
this.messages = messages; this.messages = messages;
} }
} }
} }

View File

@ -15,8 +15,7 @@ import lombok.extern.slf4j.Slf4j;
public class TempFile implements AutoCloseable { public class TempFile implements AutoCloseable {
private final TempFileManager manager; private final TempFileManager manager;
@Getter @Getter private final File file;
private final File file;
public TempFile(TempFileManager manager, String suffix) throws IOException { public TempFile(TempFileManager manager, String suffix) throws IOException {
this.manager = manager; this.manager = manager;

View File

@ -11,9 +11,9 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.Getter;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/** /**
@ -25,18 +25,18 @@ import lombok.extern.slf4j.Slf4j;
public class TempFileRegistry { public class TempFileRegistry {
private final ConcurrentMap<Path, Instant> registeredFiles = new ConcurrentHashMap<>(); private final ConcurrentMap<Path, Instant> registeredFiles = new ConcurrentHashMap<>();
/** /**
* -- GETTER -- * -- GETTER -- Get all registered third-party temporary files.
* Get all registered third-party temporary files.
* *
* @return Set of third-party file paths * @return Set of third-party file paths
*/ */
@Getter @Getter
private final Set<Path> thirdPartyTempFiles = private final Set<Path> thirdPartyTempFiles =
Collections.newSetFromMap(new ConcurrentHashMap<>()); Collections.newSetFromMap(new ConcurrentHashMap<>());
/** /**
* -- GETTER -- * -- GETTER -- Get all registered temporary directories.
* Get all registered temporary directories.
* *
* @return Set of temporary directory paths * @return Set of temporary directory paths
*/ */

View File

@ -31,8 +31,6 @@ import java.security.cert.X509Certificate;
import java.util.Arrays; import java.util.Arrays;
import java.util.Enumeration; import java.util.Enumeration;
import lombok.Getter;
import lombok.Setter;
import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface; import org.apache.pdfbox.pdmodel.interactive.digitalsignature.SignatureInterface;
import org.bouncycastle.cert.jcajce.JcaCertStore; import org.bouncycastle.cert.jcajce.JcaCertStore;
import org.bouncycastle.cms.CMSException; import org.bouncycastle.cms.CMSException;
@ -44,24 +42,25 @@ import org.bouncycastle.operator.OperatorCreationException;
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;
import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder; import org.bouncycastle.operator.jcajce.JcaDigestCalculatorProviderBuilder;
import lombok.Getter;
import lombok.Setter;
public abstract class CreateSignatureBase implements SignatureInterface { public abstract class CreateSignatureBase implements SignatureInterface {
private PrivateKey privateKey; private PrivateKey privateKey;
@Getter @Getter private Certificate[] certificateChain;
private Certificate[] certificateChain; @Setter private String tsaUrl;
@Setter
private String tsaUrl;
/** /**
* Specifies whether the external signing scenario should be used. * Specifies whether the external signing scenario should be used. If set to {@code true},
* If set to {@code true}, external signing will be performed and * external signing will be performed and {@link SignatureInterface} will be used for signing.
* {@link SignatureInterface} will be used for signing.
* If set to {@code false}, internal signing will be performed. * If set to {@code false}, internal signing will be performed.
*
* <p>Default: {@code false} * <p>Default: {@code false}
* *
* @param externalSigning {@code true} if external signing should be performed; {@code false} for internal signing * @param externalSigning {@code true} if external signing should be performed; {@code false}
* for internal signing
*/ */
@Setter @Setter @Getter private boolean externalSigning;
@Getter
private boolean externalSigning;
/** /**
* Initialize the signature creator with a keystore (pkcs12) and pin that should be used for the * Initialize the signature creator with a keystore (pkcs12) and pin that should be used for the
@ -158,5 +157,4 @@ public abstract class CreateSignatureBase implements SignatureInterface {
throw new IOException(e); throw new IOException(e);
} }
} }
} }

View File

@ -6,10 +6,10 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import stirling.software.common.model.ApplicationProperties; import stirling.software.common.model.ApplicationProperties;
@ -20,8 +20,7 @@ public class EndpointConfiguration {
private static final String REMOVE_BLANKS = "remove-blanks"; private static final String REMOVE_BLANKS = "remove-blanks";
private final ApplicationProperties applicationProperties; private final ApplicationProperties applicationProperties;
@Getter @Getter private Map<String, Boolean> endpointStatuses = new ConcurrentHashMap<>();
private Map<String, Boolean> endpointStatuses = new ConcurrentHashMap<>();
private Map<String, Set<String>> endpointGroups = new ConcurrentHashMap<>(); private Map<String, Set<String>> endpointGroups = new ConcurrentHashMap<>();
private Set<String> disabledGroups = new HashSet<>(); private Set<String> disabledGroups = new HashSet<>();
private Map<String, Set<String>> endpointAlternatives = new ConcurrentHashMap<>(); private Map<String, Set<String>> endpointAlternatives = new ConcurrentHashMap<>();

View File

@ -6,8 +6,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline; import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocumentOutline;
@ -29,7 +27,9 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import stirling.software.SPDF.model.api.EditTableOfContentsRequest; import stirling.software.SPDF.model.api.EditTableOfContentsRequest;
@ -242,6 +242,5 @@ public class EditTableOfContentsController {
private String title; private String title;
private int pageNumber; private int pageNumber;
private List<BookmarkItem> children = new ArrayList<>(); private List<BookmarkItem> children = new ArrayList<>();
} }
} }

View File

@ -56,10 +56,9 @@ public class StampController {
private final TempFileManager tempFileManager; private final TempFileManager tempFileManager;
/** /**
* Initialize data binder for multipart file uploads. * Initialize data binder for multipart file uploads. This method registers a custom editor for
* This method registers a custom editor for MultipartFile to handle file uploads. * MultipartFile to handle file uploads. It sets the MultipartFile to null if the uploaded file
* It sets the MultipartFile to null if the uploaded file is empty. * is empty. This is necessary to avoid binding errors when the file is not present.
* This is necessary to avoid binding errors when the file is not present.
*/ */
@InitBinder @InitBinder
public void initBinder(WebDataBinder binder) { public void initBinder(WebDataBinder binder) {

View File

@ -9,8 +9,6 @@ import java.nio.file.Paths;
import java.util.*; import java.util.*;
import java.util.stream.Stream; import java.util.stream.Stream;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.ResourceLoader;
@ -24,6 +22,8 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Hidden;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import stirling.software.SPDF.model.SignatureFile; import stirling.software.SPDF.model.SignatureFile;
@ -334,6 +334,5 @@ public class GeneralWebController {
this.extension = extension; this.extension = extension;
this.type = getFormatFromExtension(extension); this.type = getFormatFromExtension(extension);
} }
} }
} }

View File

@ -4,8 +4,6 @@ import java.time.Duration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import lombok.Getter;
import lombok.Setter;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -21,7 +19,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import stirling.software.SPDF.config.EndpointInspector; import stirling.software.SPDF.config.EndpointInspector;
@ -376,6 +376,5 @@ public class MetricsController {
this.endpoint = endpoint; this.endpoint = endpoint;
this.count = count; this.count = count;
} }
} }
} }

View File

@ -4,13 +4,13 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import lombok.Getter; import lombok.Getter;
public class ApiEndpoint { public class ApiEndpoint {
private final String name; private final String name;
private Map<String, JsonNode> parameters; private Map<String, JsonNode> parameters;
@Getter @Getter private final String description;
private final String description;
public ApiEndpoint(String name, JsonNode postNode) { public ApiEndpoint(String name, JsonNode postNode) {
this.name = name; this.name = name;

View File

@ -6,11 +6,11 @@ import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import lombok.Getter;
import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.text.PDFTextStripper; import org.apache.pdfbox.text.PDFTextStripper;
import org.apache.pdfbox.text.TextPosition; import org.apache.pdfbox.text.TextPosition;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import stirling.software.SPDF.model.PDFText; import stirling.software.SPDF.model.PDFText;
@ -21,8 +21,7 @@ public class TextFinder extends PDFTextStripper {
private final String searchTerm; private final String searchTerm;
private final boolean useRegex; private final boolean useRegex;
private final boolean wholeWordSearch; private final boolean wholeWordSearch;
@Getter @Getter private final List<PDFText> foundTexts = new ArrayList<>();
private final List<PDFText> foundTexts = new ArrayList<>();
private final List<TextPosition> pageTextPositions = new ArrayList<>(); private final List<TextPosition> pageTextPositions = new ArrayList<>();
private final StringBuilder pageTextBuilder = new StringBuilder(); private final StringBuilder pageTextBuilder = new StringBuilder();

View File

@ -135,8 +135,9 @@ lang.vie=Vietnamca
lang.yid=Yidiş lang.yid=Yidiş
lang.yor=Yoruba lang.yor=Yoruba
addPageNumbers.fontSize=Font Büyüklüğü addPageNumbers.fontSize=Yazı Tipi Büyüklüğü
addPageNumbers.fontName=Font İsmi addPageNumbers.fontName=Yazı Tipi İsmi
addPageNumbers.fontColor=Yazı Tipi Rengi
pdfPrompt=PDF(leri) seçin pdfPrompt=PDF(leri) seçin
multiPdfPrompt=PDFleri seçin (2+) multiPdfPrompt=PDFleri seçin (2+)
multiPdfDropPrompt=Tüm gerekli PDF'leri seçin (ya da sürükleyip bırakın) multiPdfDropPrompt=Tüm gerekli PDF'leri seçin (ya da sürükleyip bırakın)
@ -193,7 +194,7 @@ error.fileFormatRequired=Dosya {0} formatında olmalıdır
error.invalidFormat=Geçersiz {0} formatı: {1} error.invalidFormat=Geçersiz {0} formatı: {1}
error.endpointDisabled=Bu uç nokta yönetici tarafından devre dışı bırakılmıştır error.endpointDisabled=Bu uç nokta yönetici tarafından devre dışı bırakılmıştır
error.urlNotReachable=URL erişilebilir değil, lütfen geçerli bir URL sağlayın error.urlNotReachable=URL erişilebilir değil, lütfen geçerli bir URL sağlayın
error.invalidUrlFormat=Invalid URL format provided. The provided format is invalid. error.invalidUrlFormat=Geçersiz URL biçimi girildi. Girilen biçim geçersiz.
# DPI and image rendering messages - used by frontend for dynamic translation # DPI and image rendering messages - used by frontend for dynamic translation
# Backend sends: [TRANSLATE:messageKey:arg1,arg2] English message # Backend sends: [TRANSLATE:messageKey:arg1,arg2] English message

View File

@ -731,6 +731,13 @@
"moduleLicense": "GPL2 w/ CPE", "moduleLicense": "GPL2 w/ CPE",
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html" "moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
}, },
{
"moduleName": "jakarta.mail:jakarta.mail-api",
"moduleUrl": "https://www.eclipse.org",
"moduleVersion": "2.1.4",
"moduleLicense": "GPL2 w/ CPE",
"moduleLicenseUrl": "https://www.gnu.org/software/classpath/license.html"
},
{ {
"moduleName": "jakarta.persistence:jakarta.persistence-api", "moduleName": "jakarta.persistence:jakarta.persistence-api",
"moduleUrl": "https://www.eclipse.org", "moduleUrl": "https://www.eclipse.org",

View File

@ -65,7 +65,7 @@ repositories {
allprojects { allprojects {
group = 'stirling.software' group = 'stirling.software'
version = '1.2.0' version = '1.3.0'
configurations.configureEach { configurations.configureEach {
exclude group: 'commons-logging', module: 'commons-logging' exclude group: 'commons-logging', module: 'commons-logging'