blob: 58aa0c90c82f0b044ab842ca200ac0ca95d9175b [file] [log] [blame]
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/