Versions Compared

Key

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

...

Code Block
--- JSON SERIALIZATION ---
extension: {
  key1: "value1",
  key2: "value2",
  stringList: [
    "element1",
    "element2",
    "element3"
  ],
  mapList: [
    {
      key1: "value1"
    },
    {
      key2: "value2"
    }
  ]
}

--- XML SERIALIZATION ---
<extensions>
  <key1>value1</key1>
  <key2>value2</key2>
  <stringList>
    <java.lang.String>element1</java.lang.String>
    <java.lang.String>element2</java.lang.String>
    <java.lang.String>element3</java.lang.String>
  </stringList>
  <mapList>
    <map>
      <entry>
        <key>key1</key>
        <value>value1</value>
      </entry>
    </map>
    <map>
      <entry>
        <key>key2</key>
        <value>value2</value>
      </entry>
    </map>
  </mapList>
</extensions>

...

Here are some high-level implementation details of how arbitrary extensions are supported in Shindig.  It should be a helpful starting point to anyone who wants to modify or expand for modifying or expanding this work.

First, ExtendableBean and ExtendableBeanImpl are nothing more than wrappers for Map and HashMap, respectively.  Thus, when a data object extends from ExtendableBean, it itself is a Map.

...