NES for Apache Struts 1.x Dependencies
Runtime dependencies of NES for Apache Struts 1.0, 1.1, 1.2 and 1.3 compared with the OSS releases
Overview
This page lists the dependencies Maven resolves for each NES for Apache Struts 1.x artifact, compared with the matching OSS release from Maven Central:
| Struts line | OSS | NES |
|---|---|---|
| 1.0 | 1.0.2 | 1.0.2-struts-1.0.4 |
| 1.1 | 1.1 | 1.1.0-struts-1.1.4 |
| 1.2 | 1.2.9 | 1.2.9-struts-1.2.10 |
| 1.3 | 1.3.10 | 1.3.10-struts-1.3.17 |
Test-scoped dependencies are not listed. Dependencies marked (NES) are HeroDevs-patched builds; see NES-patched dependencies.
NES for Apache Struts 1.3 Forward Compatibility has its own Dependencies page.
Struts 1.0
struts
struts:struts has no runtime dependencies in either OSS or NES. The Digester, multipart upload and collection utilities it uses are bundled inside the jar under org.apache.struts.*.
Provided by the container
| Dependency | OSS 1.0.2 | NES 1.0.2-struts-1.0.4 |
|---|---|---|
javax.servlet:servlet-api | Not declared | 2.3 |
The OSS 1.0.2 build also used jdbc2_0-stdext.jar and xerces.jar. Struts does not need either on Java 8, where javax.sql and JAXP are part of the JDK. Keep them in WEB-INF/lib only if your own code uses them.
Struts 1.1
struts
| Dependency | OSS 1.1 | NES 1.1.0-struts-1.1.4 | Notes |
|---|---|---|---|
commons-beanutils | 1.6.1 | 1.11.0 | NES 1.7 also available; see below |
commons-collections | 3.1 | 3.2.2 | |
commons-digester | 1.6 | 1.8 | |
commons-fileupload | 1.0 | 1.5.0-commons-fileupload-1.5.2 (NES) | Required for file uploads; see below |
commons-io | — | 2.14.0 | Brought in by commons-fileupload |
commons-lang | 2.1 | — | Declare it directly if your code uses it |
commons-logging | 1.0 | 1.3.5 | |
commons-validator | 1.1.4 | 1.1.4 | |
oro | 2.0.7 | 2.0.8 | |
struts:struts-legacy | 1.1 | 1.1.0-struts-1.1.4 | |
javax.sql:jdbc-stdext | 2.0 | 2.0 (sources classifier) | See below |
xml-apis | 1.0.b2 | — | Brought in by commons-digester 1.6 in OSS |
NES resolves the sources classifier of javax.sql:jdbc-stdext, which contains Java source files and no classes. The javax.sql classes it describes have been part of the JDK since Java 1.4, so you can exclude it. If you use struts-el, add the same exclusion to that dependency as well:
<dependency>
<groupId>struts</groupId>
<artifactId>struts</artifactId>
<version>1.1.0-struts-1.1.4</version>
<exclusions>
<exclusion>
<groupId>javax.sql</groupId>
<artifactId>jdbc-stdext</artifactId>
</exclusion>
</exclusions>
</dependency>
struts-el
The OSS struts-el 1.1 POM on Maven Central declares no dependencies. The NES artifact declares what it needs:
| Dependency | OSS 1.1 | NES 1.1.0-struts-1.1.4 | Notes |
|---|---|---|---|
struts:struts | — | 1.1.0-struts-1.1.4 | Brings in everything listed above |
javax.servlet:jstl | — | 1.0.6 | |
taglibs:standard | — | 1.0.6-taglibs-standard-1.0.7 (NES) | |
xalan:xalan | — | 2.7.3 | Brought in by taglibs:standard |
xalan:serializer | — | 2.7.3 | Brought in by taglibs:standard |
saxpath:saxpath | — | 1.0-FCS | Brought in by taglibs:standard |
jaxen:jaxen | — | 1.0-FCS | Brought in by taglibs:standard |
commons-beanutils | — | 1.11.0 | |
javax.sql:jdbc-stdext | — | 2.0 (sources classifier) | Can be excluded; see Struts 1.1 |
struts-legacy
| Dependency | OSS 1.1 | NES 1.1.0-struts-1.1.4 |
|---|---|---|
commons-logging | — | 1.3.5 |
Provided by the container
| Dependency | OSS 1.1 | NES 1.1.0-struts-1.1.4 |
|---|---|---|
javax.servlet:servlet-api | 2.3 | 2.3 |
Migrating from the Apache distribution
If your application uses the jars from the Apache Struts 1.1 binary distribution rather than Maven Central, your current versions differ from the OSS column above: commons-beanutils 1.6.1, commons-collections 2.1, commons-digester 1.5, commons-logging 1.0.3, commons-validator 1.0.2, oro 2.0.6 and commons-lang 1.0.1, and struts-el shipped with JSTL and taglibs:standard 1.0.2. Remove those jars from WEB-INF/lib and use the NES versions above; keep commons-lang only if your own code uses it.
Struts 1.2
struts
| Dependency | OSS 1.2.9 | NES 1.2.9-struts-1.2.10 | Notes |
|---|---|---|---|
commons-beanutils | 1.7.0 | 1.11.0 | NES 1.7 also available; see below |
commons-collections | 2.1 | 3.2.2 | Brought in by commons-digester (OSS) or commons-beanutils (NES) |
commons-digester | 1.6 | 1.8 | |
commons-fileupload | 1.0 | 1.5.0-commons-fileupload-1.5.2 (NES) | Required for file uploads; see below |
commons-io | — | 2.14.0 | Brought in by commons-fileupload |
commons-logging | 1.0.4 | 1.3.5 | |
commons-validator | 1.1.4 | 1.1.4 | |
oro | 2.0.7 | 2.0.8 | |
antlr | 2.7.2 | 2.7.2 | |
xalan | 2.5.1 | 2.7.3 | Declared in the Maven Central POM only; the Apache distribution did not ship it |
xml-apis | 1.0.b2 | — | Brought in by commons-digester 1.6 in OSS; provided by the JDK |
struts-el
| Dependency | OSS 1.2.9 | NES 1.2.9-struts-1.2.10 | Notes |
|---|---|---|---|
struts:struts | 1.2.8 | 1.2.9-struts-1.2.10 | The OSS 1.2.9 POM points at Struts 1.2.8 |
javax.servlet:jstl | 1.0.6 | 1.0.6 | |
taglibs:standard | 1.0.6 | 1.0.6-taglibs-standard-1.0.7 (NES) | |
xalan:xalan | — | 2.7.3 | Brought in by taglibs:standard |
xalan:serializer | — | 2.7.3 | Brought in by taglibs:standard |
saxpath:saxpath | — | 1.0-FCS | Brought in by taglibs:standard |
jaxen:jaxen | — | 1.0-FCS | Brought in by taglibs:standard |
commons-logging | 1.0.4 | 1.3.5 |
Provided by the container
| Dependency | OSS 1.2.9 | NES 1.2.9-struts-1.2.10 |
|---|---|---|
javax.servlet:servlet-api | 2.2 | 2.3 |
xml-apis:xml-apis | 2.0.2 | 1.0.b2 |
Struts 1.3
struts-core
| Dependency | OSS 1.3.10 | NES 1.3.10-struts-1.3.17 | Notes |
|---|---|---|---|
antlr | 2.7.2 | 2.7.2 | |
commons-beanutils | 1.8.0 | 1.11.0 | NES 1.7 also available; see below |
commons-chain | 1.2 | 1.2 | |
commons-collections | — | 3.2.2 | Brought in by commons-beanutils; optional in OSS beanutils 1.8.0 |
commons-digester | 1.8 | 1.8 | |
commons-fileupload | 1.1.1 optional | 1.5.0-commons-fileupload-1.5.2 (NES) | Optional in OSS, so you had to declare it yourself. Required for file uploads; see below |
commons-io | — | 2.14.0 | Brought in by commons-fileupload (1.1 in OSS if you declared it) |
commons-logging | 1.0.4 | 1.3.5 | |
commons-validator | 1.3.1 | 1.3.1 | |
oro | 2.0.8 | 2.0.8 |
struts-taglib, struts-tiles and struts-extras
Each depends only on struts-core, in both OSS and NES.
struts-el
| Dependency | OSS 1.3.10 | NES 1.3.10-struts-1.3.17 | Notes |
|---|---|---|---|
struts-core, struts-taglib | 1.3.10 | 1.3.10-struts-1.3.17 | |
struts-tiles | Optional | Optional | Add it if you use the Tiles EL tags |
javax.servlet:jstl | 1.0.2 | 1.0.2 | |
taglibs:standard | 1.0.6 | 1.0.6-taglibs-standard-1.0.8 (NES) | |
xalan:xalan | — | 2.7.3 | Brought in by taglibs:standard |
xalan:serializer | — | 2.7.3 | Brought in by taglibs:standard |
saxpath:saxpath | — | 1.0-FCS | Brought in by taglibs:standard |
jaxen:jaxen | — | 1.0-FCS | Brought in by taglibs:standard |
struts-faces
struts-faces depends on struts-core, struts-taglib and struts-tiles in both OSS and NES. JavaServer Faces is provided by the container or your application; see the container-provided dependencies below.
struts-scripting
| Dependency | OSS 1.3.10 | NES 1.3.10-struts-1.3.17 | Notes |
|---|---|---|---|
bsf | 2.3.0 | 2.3.0 | Add a scripting language such as Groovy; see Scripting support |
struts-mailreader-dao
| Dependency | OSS 1.3.10 | NES 1.3.10-struts-1.3.17 | Notes |
|---|---|---|---|
commons-digester | 1.8 | 1.8 | |
commons-beanutils | 1.7.0 | 1.11.0 | Brought in by commons-digester in OSS; declared directly in NES |
commons-collections | — | 3.2.2 | Brought in by commons-beanutils |
commons-logging | 1.0.4 | 1.3.5 |
Provided by the container
| Dependency | Used by | OSS 1.3.10 | NES 1.3.10-struts-1.3.17 |
|---|---|---|---|
javax.servlet:servlet-api | All modules | 2.3 | 2.3 |
javax.servlet:jsp-api | struts-faces | 2.0 | 2.0 |
myfaces:myfaces-jsf-api | struts-faces | 1.0.9 | 1.0.9 |
commons-beanutils 1.7
On 1.1, 1.2 and 1.3, NES uses commons-beanutils 1.11.0 by default, and 1.11.0 is the recommended version. If your application needs to stay on BeanUtils 1.7, HeroDevs also offers a patched 1.7 build, 1.7.0-commons-beanutils-1.7.5. Declare it directly to override the default:
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.7.0-commons-beanutils-1.7.5</version>
</dependency>
See the Commons BeanUtils 1.7 release notes for the fixes it includes.
File uploads
On 1.1, 1.2 and 1.3, commons-fileupload is required if your application accepts file uploads. Struts only uses it to handle multipart/form-data POST requests, through org.apache.struts.upload.CommonsMultipartRequestHandler. NES includes it by default.
Use the NES commons-fileupload build, not the OSS release, and make sure no other version reaches the classpath. See Struts 1.x File Upload for the required coordinates and the upload limits you can configure.
NES-patched dependencies
commons-beanutils:commons-beanutils:1.7.0-commons-beanutils-1.7.5(1.1, 1.2 and 1.3; optional, see commons-beanutils 1.7) — release notescommons-fileupload:commons-fileupload:1.5.0-commons-fileupload-1.5.2(1.1, 1.2 and 1.3) — release notestaglibs:standard:1.0.6-taglibs-standard-1.0.7(1.1 and 1.2) — release notestaglibs:standard:1.0.6-taglibs-standard-1.0.8(1.3) — release notes