Skip to content

Commit cf5e6db

Browse files
authored
Merge pull request #131 from cip4/jakarta
javax -> jakarta + jetty 12
2 parents 3d62329 + 06784e7 commit cf5e6db

22 files changed

+198
-246
lines changed

build.gradle

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ java {
1818
withJavadocJar()
1919
withSourcesJar()
2020
toolchain {
21-
languageVersion = JavaLanguageVersion.of(11)
21+
languageVersion = JavaLanguageVersion.of(17)
2222
}
2323
}
2424

@@ -123,20 +123,21 @@ processResources {
123123
}
124124

125125
dependencies {
126-
implementation('org.cip4.lib.jdf:JDFLibJ:2.1.8.+') {
126+
implementation('org.cip4.lib.jdf:JDFLibJ:2.+') {
127127
exclude group: 'xml-apis'
128128
}
129129

130-
implementation 'org.eclipse.jetty:jetty-servlet:10.0.15'
131-
implementation 'commons-fileupload:commons-fileupload:1.5'
132-
130+
implementation 'org.eclipse.jetty:jetty-server:12.0.19'
131+
implementation 'org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.19'
132+
implementation 'org.apache.commons:commons-fileupload2-jakarta-servlet6:2.+'
133+
implementation 'jakarta.servlet:jakarta.servlet-api:6.0.0'
133134
implementation 'org.apache.logging.log4j:log4j-core:2.24.1'
134135
implementation 'org.apache.logging.log4j:log4j-jcl:2.24.3'
135136

136137
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.11.4'
137138
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.11.4'
138-
testImplementation 'org.springframework:spring-test:5.3.39'
139-
testImplementation 'org.springframework:spring-web:5.3.39'
139+
testImplementation 'org.springframework:spring-test:6.2.+'
140+
testImplementation 'org.springframework:spring-web:6.2.+'
140141
testImplementation 'org.mockito:mockito-core:5.17.0'
141142
}
142143

src/main/java/org/cip4/jdfutility/CheckJDFServlet.java

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,8 @@
4646
import java.io.PrintWriter;
4747
import java.util.List;
4848

49-
import javax.servlet.ServletException;
50-
import javax.servlet.http.HttpServletRequest;
51-
import javax.servlet.http.HttpServletResponse;
52-
53-
import org.apache.commons.fileupload.FileItem;
54-
import org.apache.commons.fileupload.servlet.ServletFileUpload;
49+
import org.apache.commons.fileupload2.core.DiskFileItem;
50+
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
5551
import org.apache.commons.io.IOUtils;
5652
import org.cip4.jdflib.core.AttributeName;
5753
import org.cip4.jdflib.core.JDFAudit;
@@ -74,6 +70,10 @@
7470
import org.cip4.jdflib.util.UrlUtil;
7571
import org.cip4.jdflib.validate.JDFValidator;
7672

73+
import jakarta.servlet.ServletException;
74+
import jakarta.servlet.http.HttpServletRequest;
75+
import jakarta.servlet.http.HttpServletResponse;
76+
7777
/**
7878
* This servlet parses any file and returns any XMP packet found in the file.
7979
*
@@ -140,7 +140,7 @@ public CheckJDFCall(final UtilityServlet utilityServlet, final HttpServletReques
140140
@Override
141141
protected void processPost() throws ServletException, IOException
142142
{
143-
final boolean mp = ServletFileUpload.isMultipartContent(request);
143+
final boolean mp = JakartaServletFileUpload.isMultipartContent(request);
144144
if (mp)
145145
{
146146
processMultipartRequest(request, response);
@@ -169,7 +169,7 @@ public FixCall(final UtilityServlet utilityServlet, final HttpServletRequest req
169169
@Override
170170
protected void processPost() throws ServletException, IOException
171171
{
172-
if (ServletFileUpload.isMultipartContent(request))
172+
if (JakartaServletFileUpload.isMultipartContent(request))
173173
{
174174
doFix(request, response);
175175
}
@@ -186,12 +186,12 @@ protected void processPost() throws ServletException, IOException
186186
*/
187187
protected void doFix(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException
188188
{
189-
final List<FileItem> fileItems = FileItemList.getMemoryFileItemList(request, 20l * 1024 * 1024).getFileList(true, true);
190-
FileItem fileItem = null;
189+
final List<DiskFileItem> fileItems = FileItemList.getMemoryFileItemList(request, 20l * 1024 * 1024).getFileList(true, true);
190+
DiskFileItem fileItem = null;
191191
EnumVersion version = null;
192192
int nFiles = 0;
193193
String versionField = "";
194-
for (final FileItem item : fileItems)
194+
for (final DiskFileItem item : fileItems)
195195
{
196196
if (item.isFormField())
197197
{
@@ -406,11 +406,11 @@ JDFDoc updateSingle(EnumVersion version, final JDFDoc d0)
406406
protected void processMultipartRequest(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException
407407
{
408408
// Parse the multipart request
409-
final List<FileItem> fileItems = FileItemList.getMemoryFileItemList(req, 66l * 1024l * 1024l).getFileList(true, true);
409+
final List<DiskFileItem> fileItems = FileItemList.getMemoryFileItemList(req, 66l * 1024l * 1024l).getFileList(true, true);
410410

411411
// Get the first file item
412412
// To do: Process all file items
413-
FileItem fileItem = null;
413+
DiskFileItem fileItem = null;
414414
boolean bUseSchema = false;
415415
boolean bIgnorePrivate = false;
416416
boolean prettyFormat = false;
@@ -419,7 +419,7 @@ protected void processMultipartRequest(final HttpServletRequest req, final HttpS
419419
final String validationLevel = EnumValidationLevel.Complete.getName();
420420
String devcapName = null;
421421
File devcapFile = null;
422-
for (final FileItem item : fileItems)
422+
for (final DiskFileItem item : fileItems)
423423
{
424424
final String fieldName = item.getFieldName();
425425

@@ -543,7 +543,6 @@ private JDFValidator getChecker(final boolean bUseSchema, final boolean bIgnoreP
543543
final JDFValidator checker = new JDFValidator();
544544

545545
checker.setPrint(false);
546-
checker.bQuiet = true;
547546
checker.setIgnorePrivate(bIgnorePrivate);
548547
checker.level = EnumValidationLevel.Complete;
549548
try
@@ -582,7 +581,7 @@ public String getServletInfo()
582581
}
583582

584583
/**
585-
* @see org.cip4.jdfutility.UtilityServlet#getServletCall(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
584+
* @see org.cip4.jdfutility.UtilityServlet#getServletCall(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
586585
* @param request
587586
* @param response
588587
* @return

src/main/java/org/cip4/jdfutility/DumpJDFServlet.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,10 @@
5555

5656
import javax.mail.MessagingException;
5757
import javax.mail.Multipart;
58-
import javax.servlet.ServletConfig;
59-
import javax.servlet.ServletException;
60-
import javax.servlet.http.HttpServletRequest;
61-
import javax.servlet.http.HttpServletResponse;
58+
import jakarta.servlet.ServletConfig;
59+
import jakarta.servlet.ServletException;
60+
import jakarta.servlet.http.HttpServletRequest;
61+
import jakarta.servlet.http.HttpServletResponse;
6262

6363
import org.apache.commons.io.IOUtils;
6464
import org.cip4.jdflib.core.KElement;
@@ -467,7 +467,7 @@ public String getServletInfo()
467467
}
468468

469469
/**
470-
* @see org.cip4.jdfutility.UtilityServlet#getServletCall(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
470+
* @see org.cip4.jdfutility.UtilityServlet#getServletCall(jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
471471
* @param request
472472
* @param response
473473
* @return

src/main/java/org/cip4/jdfutility/FileItemList.java

Lines changed: 30 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -77,28 +77,28 @@
7777
import java.util.Map;
7878
import java.util.Set;
7979

80-
import javax.servlet.ServletException;
81-
import javax.servlet.http.HttpServletRequest;
82-
83-
import org.apache.commons.fileupload.FileItem;
84-
import org.apache.commons.fileupload.FileItemFactory;
85-
import org.apache.commons.fileupload.FileUploadException;
86-
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
87-
import org.apache.commons.fileupload.servlet.ServletFileUpload;
80+
import org.apache.commons.fileupload2.core.DiskFileItem;
81+
import org.apache.commons.fileupload2.core.DiskFileItemFactory;
82+
import org.apache.commons.fileupload2.core.DiskFileItemFactory.Builder;
83+
import org.apache.commons.fileupload2.core.FileUploadException;
84+
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
8885
import org.cip4.jdflib.datatypes.JDFAttributeMap;
8986
import org.cip4.jdflib.util.ContainerUtil;
9087
import org.cip4.jdflib.util.StreamUtil;
9188
import org.cip4.jdflib.util.StringUtil;
9289
import org.cip4.jdflib.util.UrlUtil;
9390

91+
import jakarta.servlet.ServletException;
92+
import jakarta.servlet.http.HttpServletRequest;
93+
9494
/**
9595
*
9696
* @author rainer
9797
*/
9898
public class FileItemList
9999
{
100100

101-
final private List<FileItem> fileItems;
101+
final private List<DiskFileItem> fileItems;
102102
private final JDFAttributeMap mapCache;
103103
private final JDFAttributeMap reqParameters;
104104

@@ -154,12 +154,13 @@ public FileItemList(final HttpServletRequest request, final long filesize) throw
154154
{
155155
mapCache = new JDFAttributeMap();
156156
reqParameters = new JDFAttributeMap();
157-
fileItems = new ArrayList<FileItem>();
157+
fileItems = new ArrayList<DiskFileItem>();
158158
// Create a factory for disk-based file items
159-
final FileItemFactory factory = getFactory(inMemory, filesize);
159+
final DiskFileItemFactory factory = getFactory(inMemory, filesize);
160160

161161
// Create a new file upload handler
162-
final ServletFileUpload upload = new ServletFileUpload(factory);
162+
final JakartaServletFileUpload<DiskFileItem, DiskFileItemFactory> upload = new JakartaServletFileUpload<DiskFileItem, DiskFileItemFactory>();
163+
upload.setFileItemFactory(factory);
163164
if (request != null)
164165
{
165166
final Map<String, String[]> parameterMap = request.getParameterMap();
@@ -191,18 +192,18 @@ public FileItemList(final HttpServletRequest request, final long filesize) throw
191192
}
192193
}
193194

194-
FileItemFactory getFactory(final boolean inMemory, final long filesize)
195+
DiskFileItemFactory getFactory(final boolean inMemory, final long filesize)
195196
{
196197
if (inMemory && filesize <= 1)
197198
{
198199
throw new IllegalArgumentException("cannot create in memory factory with low size " + filesize);
199200
}
200-
final DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
201+
final Builder b = DiskFileItemFactory.builder();
201202
if (inMemory)
202203
{
203-
diskFileItemFactory.setSizeThreshold((int) filesize);
204+
b.setBufferSize((int) filesize);
204205
}
205-
return diskFileItemFactory;
206+
return b.get();
206207
}
207208

208209
/**
@@ -215,8 +216,8 @@ public JDFAttributeMap getFieldsFromForm()
215216
{
216217
if (ContainerUtil.isEmpty(mapCache))
217218
{
218-
final List<FileItem> fileList = getFileList(false, true);
219-
for (final FileItem fi : fileList)
219+
final List<DiskFileItem> fileList = getFileList(false, true);
220+
for (final DiskFileItem fi : fileList)
220221
{
221222
final String itemString = StringUtil.getNonEmpty(fi.getString());
222223
if (itemString != null)
@@ -277,12 +278,12 @@ public boolean getBoolField(final String key, final boolean def)
277278
* @return
278279
*
279280
*/
280-
public List<FileItem> getFileList(final boolean bFile, final boolean bForm)
281+
public List<DiskFileItem> getFileList(final boolean bFile, final boolean bForm)
281282
{
282-
final List<FileItem> retList = new ArrayList<FileItem>();
283+
final List<DiskFileItem> retList = new ArrayList<DiskFileItem>();
283284
if (bFile || bForm)
284285
{
285-
for (final FileItem f : fileItems)
286+
for (final DiskFileItem f : fileItems)
286287
{
287288
final boolean formField = f.isFormField();
288289
if (formField && bForm || !formField && bFile)
@@ -301,9 +302,9 @@ public List<FileItem> getFileList(final boolean bFile, final boolean bForm)
301302
* @param i may be<0 to count from end
302303
* @return
303304
*/
304-
public FileItem getFile(int i)
305+
public DiskFileItem getFile(int i)
305306
{
306-
final List<FileItem> fileList = getFileList(true, false);
307+
final List<DiskFileItem> fileList = getFileList(true, false);
307308
if (i < 0)
308309
{
309310
i += fileList.size();
@@ -325,10 +326,10 @@ public FileItem getFile(int i)
325326
* @param formName
326327
* @return
327328
*/
328-
public FileItem getFile(final String formName)
329+
public DiskFileItem getFile(final String formName)
329330
{
330-
final List<FileItem> fileList = getFileList(true, false);
331-
for (final FileItem f : fileList)
331+
final List<DiskFileItem> fileList = getFileList(true, false);
332+
for (final DiskFileItem f : fileList)
332333
{
333334
if (f.getFieldName().equalsIgnoreCase(formName))
334335
{
@@ -347,7 +348,7 @@ public FileItem getFile(final String formName)
347348
*/
348349
public InputStream getFileInputStream(final String formName)
349350
{
350-
final FileItem fi = getFile(formName);
351+
final DiskFileItem fi = getFile(formName);
351352
return getInputStream(fi);
352353
}
353354

@@ -360,7 +361,7 @@ public InputStream getFileInputStream(final String formName)
360361
*/
361362
public InputStream getFileInputStream(final int i)
362363
{
363-
final FileItem fi = getFile(i);
364+
final DiskFileItem fi = getFile(i);
364365
return getInputStream(fi);
365366
}
366367

@@ -370,7 +371,7 @@ public InputStream getFileInputStream(final int i)
370371
* @param fi
371372
* @return
372373
*/
373-
public static InputStream getInputStream(final FileItem fi)
374+
public static InputStream getInputStream(final DiskFileItem fi)
374375
{
375376
if (fi != null)
376377
{

src/main/java/org/cip4/jdfutility/GetFileServlet.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@
4343
import java.nio.file.InvalidPathException;
4444
import java.nio.file.Path;
4545

46-
import javax.servlet.ServletConfig;
47-
import javax.servlet.ServletException;
48-
import javax.servlet.http.HttpServlet;
49-
import javax.servlet.http.HttpServletRequest;
50-
import javax.servlet.http.HttpServletResponse;
46+
import jakarta.servlet.ServletConfig;
47+
import jakarta.servlet.ServletException;
48+
import jakarta.servlet.http.HttpServlet;
49+
import jakarta.servlet.http.HttpServletRequest;
50+
import jakarta.servlet.http.HttpServletResponse;
5151

5252
import org.apache.commons.lang.StringEscapeUtils;
5353
import org.apache.commons.logging.Log;

src/main/java/org/cip4/jdfutility/JDFServletUtil.java

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,10 @@
4040

4141
import java.io.File;
4242
import java.io.IOException;
43-
import java.util.List;
4443

45-
import javax.servlet.ServletException;
46-
import javax.servlet.http.HttpServletRequest;
47-
48-
import org.apache.commons.fileupload.FileItem;
44+
import org.apache.commons.fileupload2.core.DiskFileItem;
4945
import org.apache.commons.logging.Log;
5046
import org.apache.commons.logging.LogFactory;
51-
import org.cip4.jdflib.util.PlatformUtil;
5247
import org.cip4.jdflib.util.StringUtil;
5348
import org.cip4.jdflib.util.UrlUtil;
5449

@@ -132,7 +127,7 @@ public static File getTmpFile(final String dirName, String tmpName, final String
132127
* @param extension
133128
* @return
134129
*/
135-
public static File getTmpFile(final String dirName, final FileItem fileItem, final String prefix, final String extension)
130+
public static File getTmpFile(final String dirName, final DiskFileItem fileItem, final String prefix, final String extension)
136131
{
137132
if (fileItem == null)
138133
{
@@ -142,19 +137,6 @@ public static File getTmpFile(final String dirName, final FileItem fileItem, fin
142137
return getTmpFile(dirName, tmpName, prefix, extension);
143138
}
144139

145-
/**
146-
* @param request
147-
* @return
148-
* @throws ServletException
149-
* @deprecated - use 4 parameter version
150-
*/
151-
@Deprecated
152-
public static List<FileItem> getFileList(final HttpServletRequest request) throws ServletException
153-
{
154-
final FileItemList fil = new FileItemList(request, 20l * 1024 * 1024);
155-
return fil.getFileList(true, true);
156-
}
157-
158140
/**
159141
* cleanup previous junk that is older than an hour
160142
*
@@ -182,16 +164,4 @@ public static void cleanup(final String dirNam)
182164
Runtime.getRuntime().gc(); // clean up memory
183165
}
184166

185-
/**
186-
*
187-
* @return
188-
* @deprecated use {@link PlatformUtil}.isWindows()
189-
*
190-
*/
191-
@Deprecated
192-
public static boolean isWindows()
193-
{
194-
return PlatformUtil.isWindows();
195-
}
196-
197167
}

0 commit comments

Comments
 (0)