thekid/rfc — Issue #173: RFC 0173: xp-tools.xar
Author: thekid
Created: 2011-10-09 15:34:57+00:00
State: open
Labels: implemented, rfc

Scope of Change
====
Classes used by command line utilities but not in xp-rt will be added
to a new XAR file called xp-tools.xar

Rationale
====
Separate classes currently in xp-net.xp_framework.xar and used for core
utilities from unittests.

Functionality
====
The classes from the following packages will be moved to the new tools
infrastructure:

* net.xp_framework.xar - xar command classes
* net.xp_framework.db.generator - DataSet code generator
* net.xp_framework.wsdl.cmd - WSDL code generator

Package contents
----
All classes inside the tools directory reside in the "xp" package.

```
xp
|- codegen # Classes for the "cgen" utility
| |- dataset
| |- esdl
| `- wsdl
|- doclet # Classes for the "doclet" utility
|- runtime # Classes for the "xp" utility
|- unittest # Classes for the "unittest" utility
|- command # Classes for the "xpcli" utility
`- xar # Classes for the "xar" utility

```

The classes for the "xpcli" utility will stay in the util.cmd package
for backwards compatibility reasons but will be deprecated and later
removed.

Entry point
----
As PHP always needs an entry point PHP file, the following files will
represent them:

* class.php - class runner (classes with public static main method)
* xar.php - xar runner (xars with a META-INF/manifest.ini poiting to main-class
* web.php - web runner

Security considerations
====
n/a

Speed impact
====
Faster, xp-net.xp_framework.xar can be dropped from core dependencies and
the replacing xp-tools.xar will be smaller in size

Dependencies
====
None.

Related documents
====
xp-framework/rfc #166 - XP Runners
[http://xp-framework.net/rfc/contrib/rfc0173.diff patch for xp, xp.admin]

Comments
====