Visit NES for Apache Struts Home Page

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 lineOSSNES
1.01.0.21.0.2-struts-1.0.4
1.11.11.1.0-struts-1.1.4
1.21.2.91.2.9-struts-1.2.10
1.31.3.101.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

DependencyOSS 1.0.2NES 1.0.2-struts-1.0.4
javax.servlet:servlet-apiNot declared2.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

DependencyOSS 1.1NES 1.1.0-struts-1.1.4Notes
commons-beanutils1.6.11.11.0NES 1.7 also available; see below
commons-collections3.13.2.2
commons-digester1.61.8
commons-fileupload1.01.5.0-commons-fileupload-1.5.2 (NES)Required for file uploads; see below
commons-io—2.14.0Brought in by commons-fileupload
commons-lang2.1—Declare it directly if your code uses it
commons-logging1.01.3.5
commons-validator1.1.41.1.4
oro2.0.72.0.8
struts:struts-legacy1.11.1.0-struts-1.1.4
javax.sql:jdbc-stdext2.02.0 (sources classifier)See below
xml-apis1.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:

Maven (pom.xml)
<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:

DependencyOSS 1.1NES 1.1.0-struts-1.1.4Notes
struts:struts—1.1.0-struts-1.1.4Brings 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.3Brought in by taglibs:standard
xalan:serializer—2.7.3Brought in by taglibs:standard
saxpath:saxpath—1.0-FCSBrought in by taglibs:standard
jaxen:jaxen—1.0-FCSBrought 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

DependencyOSS 1.1NES 1.1.0-struts-1.1.4
commons-logging—1.3.5

Provided by the container

DependencyOSS 1.1NES 1.1.0-struts-1.1.4
javax.servlet:servlet-api2.32.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

DependencyOSS 1.2.9NES 1.2.9-struts-1.2.10Notes
commons-beanutils1.7.01.11.0NES 1.7 also available; see below
commons-collections2.13.2.2Brought in by commons-digester (OSS) or commons-beanutils (NES)
commons-digester1.61.8
commons-fileupload1.01.5.0-commons-fileupload-1.5.2 (NES)Required for file uploads; see below
commons-io—2.14.0Brought in by commons-fileupload
commons-logging1.0.41.3.5
commons-validator1.1.41.1.4
oro2.0.72.0.8
antlr2.7.22.7.2
xalan2.5.12.7.3Declared in the Maven Central POM only; the Apache distribution did not ship it
xml-apis1.0.b2—Brought in by commons-digester 1.6 in OSS; provided by the JDK

struts-el

DependencyOSS 1.2.9NES 1.2.9-struts-1.2.10Notes
struts:struts1.2.81.2.9-struts-1.2.10The OSS 1.2.9 POM points at Struts 1.2.8
javax.servlet:jstl1.0.61.0.6
taglibs:standard1.0.61.0.6-taglibs-standard-1.0.7 (NES)
xalan:xalan—2.7.3Brought in by taglibs:standard
xalan:serializer—2.7.3Brought in by taglibs:standard
saxpath:saxpath—1.0-FCSBrought in by taglibs:standard
jaxen:jaxen—1.0-FCSBrought in by taglibs:standard
commons-logging1.0.41.3.5

Provided by the container

DependencyOSS 1.2.9NES 1.2.9-struts-1.2.10
javax.servlet:servlet-api2.22.3
xml-apis:xml-apis2.0.21.0.b2

Struts 1.3

struts-core

DependencyOSS 1.3.10NES 1.3.10-struts-1.3.17Notes
antlr2.7.22.7.2
commons-beanutils1.8.01.11.0NES 1.7 also available; see below
commons-chain1.21.2
commons-collections—3.2.2Brought in by commons-beanutils; optional in OSS beanutils 1.8.0
commons-digester1.81.8
commons-fileupload1.1.1 optional1.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.0Brought in by commons-fileupload (1.1 in OSS if you declared it)
commons-logging1.0.41.3.5
commons-validator1.3.11.3.1
oro2.0.82.0.8

struts-taglib, struts-tiles and struts-extras

Each depends only on struts-core, in both OSS and NES.

struts-el

DependencyOSS 1.3.10NES 1.3.10-struts-1.3.17Notes
struts-core, struts-taglib1.3.101.3.10-struts-1.3.17
struts-tilesOptionalOptionalAdd it if you use the Tiles EL tags
javax.servlet:jstl1.0.21.0.2
taglibs:standard1.0.61.0.6-taglibs-standard-1.0.8 (NES)
xalan:xalan—2.7.3Brought in by taglibs:standard
xalan:serializer—2.7.3Brought in by taglibs:standard
saxpath:saxpath—1.0-FCSBrought in by taglibs:standard
jaxen:jaxen—1.0-FCSBrought 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

DependencyOSS 1.3.10NES 1.3.10-struts-1.3.17Notes
bsf2.3.02.3.0Add a scripting language such as Groovy; see Scripting support

struts-mailreader-dao

DependencyOSS 1.3.10NES 1.3.10-struts-1.3.17Notes
commons-digester1.81.8
commons-beanutils1.7.01.11.0Brought in by commons-digester in OSS; declared directly in NES
commons-collections—3.2.2Brought in by commons-beanutils
commons-logging1.0.41.3.5

Provided by the container

DependencyUsed byOSS 1.3.10NES 1.3.10-struts-1.3.17
javax.servlet:servlet-apiAll modules2.32.3
javax.servlet:jsp-apistruts-faces2.02.0
myfaces:myfaces-jsf-apistruts-faces1.0.91.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:

Maven (pom.xml)
<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 notes
  • commons-fileupload:commons-fileupload:1.5.0-commons-fileupload-1.5.2 (1.1, 1.2 and 1.3) — release notes
  • taglibs:standard:1.0.6-taglibs-standard-1.0.7 (1.1 and 1.2) — release notes
  • taglibs:standard:1.0.6-taglibs-standard-1.0.8 (1.3) — release notes