Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Purpose

As the OpenSocial spec matures and containers begin to support multiple versions, there needs to be a way for gadgets to specify multiple source gadget XML files for various situations.  This may be handled by a single manifest file that identifies to the container which gadget XML file to utilize based on supported features or by allowing gadgets to embed pointers to up-version or down-version implementations of themselves.

...

Manifest information MAY be embedded within a gadget XML file

xml
Code Block
lang
titleEmbedded Manifest Example
langxml
<Module>
  <ModulePrefs title="Manifest embedded gadget" description="Example showing usage of embedded manifest">
    <Require feature="opensocial-1.0"/>
    <Optional feature="gadget-manifest">
       <Param name="gadget" os-version="1.0" gadget-version="2.1" status="released">http://example.org/samplegadget/gadget.xml</Param>
       <Param name="gadget" os-version="1.0" gadget-version="2.2" status="development">http://example.org/samplegadget/gadget-dev.xml</Param>
       <Param name="gadget" os-version="0.8" >http://example.org/samplegadget/gadget.os08.xml</Param>
    </Optional>
  </ModulePrefs>
  ...
<Module>

...

When uploading a gadget, the developer may specify either the URL of a
gadget XML file OR the URL of a gadget manifest file.  The manifest
file will point to the actual gadget XML file URL based on version and
features required/supported.  For backwards compatibility purposes,
the gadget XML file may also contain a reference back up to its
manifest file URL.  In this way containers that do not support the
manifest feature will still function with their existing gadget XML
sources, and newer containers that do support the manifest feature can
take advantage of its ability to specify multiple gadgets for
different scenarios.  This will be done via an optional "gadget-
manifest" feature specified in ModulePrefs.

xml
Code Block
lang
titleManifest Example
langxml
<Module>
  <ModulePrefs title="Manifest sample gadget" description="Example showing usage of external manifest">
    <Require feature="opensocial-1.0"/>
    <Optional feature="gadget-manifest">
      <Param name="manifest">http://example.org/samplegadget/manifest.xml</Param>
    </Optional>
  </ModulePrefs>
  ...
<Module>

(manifest file at http://example.org/samplegadget/manifest.xml

<GadgetManifest>

<Gadgets>
  <Gadget os-version="1.0" gadget-version="2.1" status="released" src="http://example.org/samplegadget/gadget.xml" />
  <Gadget os-version="1.0" gadget-version="2.2" status="development" src="http://example.org/samplegadget/gadget-dev.xml" />
  <Gadget os-version="0.8" src="http://example.org/samplegadget/gadget.os08.xml" />
  <Gadget os-version="1.1"  src="http://example.org/samplegadget/gadget.11.xml">
    <Features>
      <feature name="templates" required="true" />
      <feature name="html-6" required="false" />
    </Features>
  </Gadget>
</Gadgets>

</GadgetManifest>

...