| Apache Shindig Features | |
| What is it? | |
| ----------- | |
| Shindig is a JavaScript container and implementations of the backend APIs | |
| and proxy required for hosting OpenSocial applications. | |
| This is the features component of Shindig. | |
| Documentation | |
| ------------- | |
| The most up-to-date documentation can be found at http://shindig.apache.org | |
| Using features | |
| -------------- | |
| You can automatically include new features into your shindig server by adding | |
| them to this directory. Features should exist in a self-contained directory | |
| with the following structure: | |
| features | |
| |_your-feature-name | |
| |_feature.xml | |
| |_code-to-run-inside-gadget.js | |
| |_code-to-run-inside-container.js | |
| The structure of feature.xml is as follows: | |
| TODO: link to xml schema for feature.xml | |
| <?xml version="1.0"?> | |
| <feature> | |
| <name>your-feature-name (required)</name> | |
| <dependency>any dependency you have (optional, may have multiple)</dependency> | |
| <gadget> (optional) | |
| <script src="code-to-run-inside-gadget.js"/> (optional, may have multiple, | |
| may use web resources as well but we strongly encourage bundling your | |
| javascript with the xml) | |
| </gadget> | |
| <container> (optional) | |
| <script src="code-to-run-inside-container.js"> (same as for <gadget>) | |
| </container> | |
| <all> (optional, to mean for both gadget and container) | |
| <script src="code-to-run-inside-either-gadget-or-container.js"> (same as for <gadget> or <container>) | |
| <api> | |
| optional, to export API in compiled JS for external usages and incremental-loading, | |
| via ExportJsProcessor.java and exportJs JS. | |
| <exports type="js">gadgets.rpc.call</exports> | |
| optional, the API to export, for two scenarios: | |
| 1. the JS code internally can use obfuscated/property-renamed g.r.c() to reduce | |
| size, but external clients continue to use unobfuscated (exported-to-window) | |
| gadgets.rpc.call. | |
| 2. incremental-loading of JS. rpc.js is loaded (gadgets.rpc.* is exported). Then, | |
| dynamic-height!rpc.js can be loaded without rpc (and its transitive dependencies) | |
| and it will use unobfuscated (or extern'ed) gadgets.rpc. | |
| </api> | |
| </all> | |
| </feature> | |
| Please always make sure that all files you provide are encoded as utf8. | |
| When adding new features, your javascript should conform to shindig javascript | |
| coding conventions. This means that you should not be producing new globals and | |
| your feature should be compatible with Caja. | |
| When committing a new feature, you should update the features.txt file by | |
| running the following script in a unix-like environment: | |
| ls -R1a features/**/*.xml > features/features.txt | |
| TODO: Instructions for regenerating features.txt for other operating system | |
| environments. | |
| Licensing | |
| --------- | |
| Please see the file called LICENSE. | |
| Shindig URLS | |
| ------------ | |
| Home Page: http://shindig.apache.org/ | |
| Downloads: http://shindig.apache.org/download/index.html | |
| Mailing Lists: http://shindig.apache.org/mail-lists.html | |
| Source Code: http://svn.apache.org/repos/asf/shindig | |
| Issue Tracking: https://issues.apache.org/jira/browse/SHINDIG | |
| Wiki: http://cwiki.apache.org/confluence/display/SHINDIG/ |