I agree that it's duplicate info. One reason is to make the tests as self-contained as possible. This makes report generation easier because there is no dependency on an external, separately maintained resource. Maybe it is too much data and isn't necessary? Maybe the following is more reasonable:
@spec name="J2EE" version="1.4" chapter-name="Transaction Management" section-name="Transactional JDBC Technology Support" section-number="4.2.7" page-number="64"
I think you'll end up with a situation where a spec-test developer will just put in the section-number, since that's essentially what highlights it. Also, if the section is prefixed with a document name (J2EE_1.4-4.2.7) then you can pretty much get rid of everything else.
I agree that having everything self-contained is good, but I can't see developers caring about typing in chapter-name and section-name each time they need a test. It should be relatively easy to put the sections in a properties file listing each of them and just do a lookup (using J2EE_1.4-4.2.7 as a key in a properties file)
:
J2EE_1.4-4.2.7=J2EE 1.4: Transaction Management (Transactional JDBC Technology Support)
:
J2EE_1.4-6.17=J2EE 1.4: Java Management Extensions
:
(see attached file)
J2EE_1-4.1=Introduction J2EE_1-4.1.1=Acknowledgements J2EE_1-4.1.2=Acknowledgements for Version 1.3 J2EE_1-4.1.3=Acknowledgements for Version 1.4 J2EE_1-4.2=Platform Overview J2EE_1-4.2.1=Architecture J2EE_1-4.2.2=Application Components J2EE_1-4.2.2.1=J2EE Server Support for Application Components J2EE_1-4.2.3=Containers J2EE_1-4.2.3.1=Container Requirements J2EE_1-4.2.3.2=J2EE Servers J2EE_1-4.2.4=Resource Adapters J2EE_1-4.2.5=Database J2EE_1-4.2.6=J2EE Standard Services J2EE_1-4.2.6.1=HTTP J2EE_1-4.2.6.2=HTTPS J2EE_1-4.2.6.3=Java™ Transaction API (JTA) J2EE_1-4.2.6.4=RMI-IIOP J2EE_1-4.2.6.5=Java IDL J2EE_1-4.2.6.6=JDBC™ API J2EE_1-4.2.6.7=Java™ Message Service (JMS) J2EE_1-4.2.6.8=Java Naming and Directory Interface™ (JNDI) J2EE_1-4.2.6.9=JavaMail™ J2EE_1-4.2.6.10=JavaBeans™ Activation Framework (JAF) J2EE_1-4.2.6.11=Java™ API for XML Parsing (JAXP) J2EE_1-4.2.6.12=J2EE™ Connector Architecture J2EE_1-4.2.6.13=Security Services J2EE_1-4.2.6.14=Web Services J2EE_1-4.2.6.15=Management J2EE_1-4.2.6.16=Deployment J2EE_1-4.2.7=Interoperability J2EE_1-4.2.8=Flexibility of Product Requirements J2EE_1-4.2.9=J2EE Product Extensions J2EE_1-4.2.10=Platform Roles J2EE_1-4.2.10.1=J2EE Product Provider J2EE_1-4.2.10.2=Application Component Provider J2EE_1-4.2.10.3=Application Assembler J2EE_1-4.2.10.4=Deployer J2EE_1-4.2.10.5=System Administrator J2EE_1-4.2.10.6=Tool Provider J2EE_1-4.2.10.7=System Component Provider J2EE_1-4.2.11=Platform Contracts J2EE_1-4.2.11.1=J2EE APIs J2EE_1-4.2.11.2=J2EE Service Provider Interfaces (SPIs) J2EE_1-4.2.11.3=Network Protocols J2EE_1-4.2.11.4=Deployment Descriptors J2EE_1-4.2.12=Changes in J2EE 1.3. J2EE_1-4.2.13=Changes in J2EE 1.4. J2EE_1-4.3=Security J2EE_1-4.3.1=Introduction J2EE_1-4.3.2=A Simple Example J2EE_1-4.3.3=Security Architecture J2EE_1-4.3.3.1=Goals J2EE_1-4.3.3.2=Non Goals J2EE_1-4.3.3.3=Terminology J2EE_1-4.3.3.4=Container Based Security J2EE_1-4.3.3.5=Distributed Security J2EE_1-4.3.3.6=Authorization Model J2EE_1-4.3.3.7=HTTP Login Gateways J2EE_1-4.3.3.8=User Authentication J2EE_1-4.3.3.9=Lazy Authentication J2EE_1-4.3.4=User Authentication Requirements J2EE_1-4.3.4.1=Login Sessions J2EE_1-4.3.4.2=Required Login Mechanisms J2EE_1-4.3.4.3=Unauthenticated Users J2EE_1-4.3.4.4=Application Client User Authentication J2EE_1-4.3.4.5=Resource Authentication Requirements J2EE_1-4.3.5=Authorization Requirements J2EE_1-4.3.5.1=Code Authorization J2EE_1-4.3.5.2=Caller Authorization J2EE_1-4.3.5.3=Propagated Caller Identities J2EE_1-4.3.5.4=Run As Identities J2EE_1-4.3.6=Deployment Requirements J2EE_1-4.3.7=Future Directions J2EE_1-4.3.7.1=Auditing J2EE_1-4.3.7.2=Instance-based Access Control J2EE_1-4.3.7.3=User Registration J2EE_1-4.4=Transaction Management J2EE_1-4.4.1=Overview J2EE_1-4.4.2=Requirements J2EE_1-4.4.2.1=Web Components J2EE_1-4.4.2.2=Transactions in Web Component Life Cycles J2EE_1-4.4.2.3=Transactions and Threads J2EE_1-4.4.2.4=Enterprise JavaBeans™ Components J2EE_1-4.4.2.5=Application Clients J2EE_1-4.4.2.6=Applet Clients J2EE_1-4.4.2.7=Transactional JDBC™ Technology Support J2EE_1-4.4.2.8=Transactional JMS Support J2EE_1-4.4.2.9=Transactional Resource Adapter (Connector) Support J2EE_1-4.4.3=Transaction Interoperability J2EE_1-4.4.3.1=Multiple J2EE Platform Interoperability J2EE_1-4.4.3.2=Support for Transactional Resource Managers J2EE_1-4.4.4=Local Transaction Optimization J2EE_1-4.4.4.1=Requirements J2EE_1-4.4.4.2=A Possible Design J2EE_1-4.4.5=Connection Sharing J2EE_1-4.4.6=JDBC and JMS Deployment Issues J2EE_1-4.4.7=Two-Phase Commit Support J2EE_1-4.4.8=System Administration Tools J2EE_1-4.5=Naming J2EE_1-4.5.1=Overview J2EE_1-4.5.1.1=Chapter Organization J2EE_1-4.5.1.2=Required Access to the JNDI Naming Environment J2EE_1-4.5.2=Java Naming and Directory Interface™ (JNDI) Naming Context J2EE_1-4.5.2.1=Application Component Provider’s Responsibilities J2EE_1-4.5.2.2=Application Assembler’s Responsibilities J2EE_1-4.5.2.3=Deployer’s Responsibilities J2EE_1-4.5.2.4=J2EE Product Provider’s Responsibilities J2EE_1-4.5.3=Enterprise JavaBeans™ (EJB) References J2EE_1-4.5.3.1=Application Component Provider’s Responsibilities J2EE_1-4.5.3.2=Application Assembler’s Responsibilities J2EE_1-4.5.3.3=Deployer’s Responsibilities J2EE_1-4.5.3.4=J2EE Product Provider’s Responsibilities J2EE_1-4.5.4=Resource Manager Connection Factory References J2EE_1-4.5.4.1=Application Component Provider’s Responsibilities J2EE_1-4.5.4.2=Deployer’s Responsibilities J2EE_1-4.5.4.3=J2EE Product Provider’s Responsibilities J2EE_1-4.5.4.4=System Administrator’s Responsibilities J2EE_1-4.5.5=Resource Environment References J2EE_1-4.5.5.1=Application Component Provider’s Responsibilities J2EE_1-4.5.5.2=Deployer’s Responsibilities J2EE_1-4.5.5.3=J2EE Product Provider’s Responsibilities J2EE_1-4.5.6=Message Destination References J2EE_1-4.5.6.1=Application Component Provider’s Responsibilities J2EE_1-4.5.6.2=Application Assembler’s Responsibilities J2EE_1-4.5.6.3=Deployer’s Responsibilities J2EE_1-4.5.6.4=J2EE Product Provider’s Responsibilities J2EE_1-4.5.7=UserTransaction References J2EE_1-4.5.7.1=Application Component Provider’s Responsibilities J2EE_1-4.5.7.2=Deployer’s Responsibilities J2EE_1-4.5.7.3=J2EE Product Provider’s Responsibilities J2EE_1-4.5.7.4=System Administrator’s Responsibilities J2EE_1-4.5.8=ORB References J2EE_1-4.5.8.1=Application Component Provider’s Responsibilities J2EE_1-4.5.8.2=Deployer’s Responsibilities J2EE_1-4.5.8.3=J2EE Product Provider’s Responsibilities J2EE_1-4.5.8.4=System Administrator’s Responsibilities J2EE_1-4.6=Application Programming Interface J2EE_1-4.6.1=Required APIs J2EE_1-4.6.1.1=Java Compatible APIs J2EE_1-4.6.1.2=Java Optional Packages J2EE_1-4.6.2=Java 2 Platform, Standard Edition (J2SE) Requirements J2EE_1-4.6.2.1=Programming Restrictions J2EE_1-4.6.2.2=The J2EE Security Permissions Set J2EE_1-4.6.2.3=Listing of the J2EE Security Permissions Set J2EE_1-4.6.2.4=Additional Requirements J2EE_1-4.6.3=Enterprise JavaBeans™ (EJB) 2.1 Requirements J2EE_1-4.6.4=Servlet 2.4 Requirements J2EE_1-4.6.5=JavaServer Pages™ (JSP) 2.0 Requirements J2EE_1-4.6.6=Java™ Message Service (JMS) 1.1 Requirements J2EE_1-4.6.7=Java™ Transaction API (JTA) 1.0 Requirements J2EE_1-4.6.8=JavaMail™ 1.3 Requirements J2EE_1-4.6.9=JavaBeans™ Activation Framework 1.0 Requirements J2EE_1-4.6.10=Java™ API for XML Processing (JAXP) 1.2 Requirements J2EE_1-4.6.11=J2EE™ Connector Architecture 1.5 Requirements J2EE_1-4.6.12=Web Services for J2EE 1.1 Requirements J2EE_1-4.6.13=Java™ API for XML-based RPC (JAX-RPC) 1.1 Requirements J2EE_1-4.6.14=SOAP with Attachments API for Java™ (SAAJ) 1.2 J2EE_1-4.6.15=Java™ API for XML Registries (JAXR) 1.0 Requirements J2EE_1-4.6.16=Java™ 2 Platform, Enterprise Edition Management API 1.0 Requirements J2EE_1-4.6.17=Java™ Management Extensions (JMX) 1.2 Requirements J2EE_1-4.6.18=Java™ 2 Platform, Enterprise Edition Deployment API 1.1 Requirements J2EE_1-4.6.19=Java™ Authorization Service Provider Contract for Containers (JACC) 1.0 Requirements J2EE_1-4.7=Interoperability J2EE_1-4.7.1=Introduction to Interoperability J2EE_1-4.7.2=Interoperability Protocols J2EE_1-4.7.2.1=Internet and Web Protocols J2EE_1-4.7.2.2=OMG Protocols J2EE_1-4.7.2.3=Java Technology Protocols J2EE_1-4.7.2.4=Data Formats J2EE_1-4.8=Application Assembly and Deployment J2EE_1-4.8.1=Application Development Life Cycle J2EE_1-4.8.1.1=Component Creation J2EE_1-4.8.1.2=Application Assembly J2EE_1-4.8.1.3=Deployment J2EE_1-4.8.2=Optional Package Support J2EE_1-4.8.3=Application Assembly J2EE_1-4.8.3.1=Assembling a J2EE Application J2EE_1-4.8.3.2=Adding and Removing Modules J2EE_1-4.8.4=Deployment J2EE_1-4.8.4.1=Deploying a Stand-Alone J2EE Module J2EE_1-4.8.4.2=Deploying a J2EE Application J2EE_1-4.8.4.3=Deploying an Optional Package J2EE_1-4.8.5=J2EE Application XML Schema J2EE_1-4.8.6=Common J2EE XML Schema Definitions J2EE_1-4.9=Application Clients J2EE_1-4.9.1=Overview J2EE_1-4.9.2=Security J2EE_1-4.9.3=Transactions J2EE_1-4.9.4=Naming J2EE_1-4.9.5=Application Programming Interfaces J2EE_1-4.9.6=Packaging and Deployment J2EE_1-4.9.7=J2EE Application Client XML Schema J2EE_1-4.10=Service Provider Interface J2EE_1-4.11=Future Directions J2EE_1-4.11.1=XML Data Binding API J2EE_1-4.11.2=JNLP (Java™ Web Start) J2EE_1-4.11.3=J2EE SPI J2EE_1-4.11.4=JDBC RowSets J2EE_1-4.11.5=Security APIs J2EE_1-4.11.6=SQLJ Part 0.
I agree that there needs to be a measuring stick of sorts for determining
how much further we need to go. But the idea is that the inclusion of the
section-number adds the ability to view a report and easily see gaps in
the section numbers. I'll be honest that I don't care to volunteer for
going through each spec and making a list of the tests. Maybe someone
else is interested in performing this task.
I know the feeling :-)
Anyway, instead of having to type chapter-title-section-name each time, I've munged the J2EE 1.4 ToC and prepared the attached properties file. Should save developers having to type in the lot each time.
The Doclet can then weave the section number in and lookup entries in the keyset. Should also be able to do sufficient sorting so that it can order things by chapter and title anyway, since they're encoded in the key itself.
I'm not trying to defend my idea and force it down everyone's throats. I'm
simply trying to better explain my reasoning. I'm very open to suggestions
or complete changes.
I still think the doclet is a good idea, but just having to type J2EE_1-4.6.2 should be enough. However, the previous caveat still applies; tests can be missed out.
Alex.
