Skip to content

Latest commit

 

History

History

features

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
                          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/