Author: [email protected]
Date: Fri May  4 15:06:45 2012
New Revision: 2311

Log:
[AMDATUOPENSOCIAL-209] Multi-tenant fixed for 0.4.0 upgrade

Modified:
   
trunk/amdatu-opensocial/config/src/main/resources/org.amdatu.opensocial.shindig.xml
   trunk/amdatu-opensocial/opensocial-gadgetmanagement/pom.xml
   
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/osgi/Activator.java
   
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/service/PersonDispatchExtenderFilter.java
   trunk/amdatu-opensocial/opensocial-shindig/pom.xml
   
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/ConfigurationAdminGuiceModule.java
   
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/osgi/Activator.java
   
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigDispatchExtenderFilter.java
   
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigRegistrationServiceImpl.java
   
trunk/amdatu-opensocial/opensocial-shindig/src/main/resources/conf/container.js
   trunk/amdatu-opensocial/opensocial-stores/mem-store-oauthdata/pom.xml
   trunk/amdatu-opensocial/pom.xml
   trunk/amdatu-opensocial/release-demo/pom.xml
   trunk/amdatu-opensocial/release-demo/src/main/assembly/bin-component.xml

Modified: 
trunk/amdatu-opensocial/config/src/main/resources/org.amdatu.opensocial.shindig.xml
==============================================================================
--- 
trunk/amdatu-opensocial/config/src/main/resources/org.amdatu.opensocial.shindig.xml
 (original)
+++ 
trunk/amdatu-opensocial/config/src/main/resources/org.amdatu.opensocial.shindig.xml
 Fri May  4 15:06:45 2012
@@ -16,18 +16,18 @@
 -->
 <MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.1.0"; 
filter="(|(!(org.amdatu.tenant.pid=*))(org.amdatu.tenant.pid=org.amdatu.tenant.PLATFORM))">
   <OCD name="Amdatu OpenSocial - Shindig Config" 
id="org.amdatu.opensocial.shindig">
-    <AD id="shindig.features.default" type="STRING" cardinality="0" />
-    <AD id="shindig.containers.default" type="STRING" cardinality="0" />
-    <AD id="shindig.blacklist.file" type="STRING" cardinality="0" />
-    <AD id="shindig.oauth.base-url" type="STRING" cardinality="0" />
+    <AD id="shindig.features.default" description="Location of feature 
manifests (comma separated)" type="STRING" cardinality="0" />
+    <AD id="shindig.containers.default" description="Location of container 
configurations (comma separated) NB: this property is set by 
org.amdatu.opensocial.shindig.module.ConfigurationAdminGuiceModule" 
type="STRING" cardinality="0" />
+    <AD id="shindig.blacklist.file" description="A file containing blacklisted 
gadgets." type="STRING" cardinality="0" />
+    <AD id="shindig.oauth.base-url" description="Inbound OAuth support. The 
URL base to use for full OAuth support (three-legged)" type="STRING" 
cardinality="0" />
     <AD id="shindig.oauth.authorize-action" type="STRING" cardinality="0" />
-    <AD id="shindig.signing.state-key" type="STRING" cardinality="0" />
+    <AD id="shindig.signing.state-key" description="Outbound OAuth support" 
type="STRING" cardinality="0" />
     <AD id="shindig.signing.key-name" type="STRING" cardinality="0" />
     <AD id="shindig.signing.global-callback-url" type="STRING" cardinality="0" 
/>
     <AD id="shindig.signing.enable-signed-callbacks" type="STRING" 
cardinality="0" />
-    <AD id="shindig.signing.viewer-access-tokens-enabled" type="STRING" 
cardinality="0" />
-    <AD id="shindig.locked-domain.enabled" type="STRING" cardinality="0" />
-    <AD id="shindig.content-rewrite.only-allow-excludes" type="STRING" 
cardinality="0" />
+    <AD id="shindig.signing.viewer-access-tokens-enabled" description="Set to 
true if you want to allow the use of 3-legged OAuth tokens when viewer != 
owner. This setting is not recommeneded for pages that allow user-controlled 
javascript, since that javascript could be used to make unauthorized requests 
on behalf of the viewer of the page" type="STRING" cardinality="0" />
+    <AD id="shindig.locked-domain.enabled"  description="If enabled here, 
configuration values can be found in container configuration files." 
type="STRING" cardinality="0" />
+    <AD id="shindig.content-rewrite.only-allow-excludes" description="TODO: 
This needs to be moved to container configuration." type="STRING" 
cardinality="0" />
     <AD id="shindig.content-rewrite.include-urls" type="STRING" 
cardinality="0" />
     <AD id="shindig.content-rewrite.exclude-urls" type="STRING" 
cardinality="0" />
     <AD id="shindig.content-rewrite.include-tags" type="STRING" 
cardinality="0" />
@@ -35,99 +35,77 @@
     <AD id="shindig.content-rewrite.proxy-url" type="STRING" cardinality="0" />
     <AD id="shindig.content-rewrite.concat-url" type="STRING" cardinality="0" 
/>
     <AD id="shindig.content-rewrite.enable-split-js-concat" type="STRING" 
cardinality="0" />
-    <AD id="shindig.gadget-rewrite.default-forced-libs" type="STRING" 
cardinality="0" />
-    <AD id="shindig.gadget-rewrite.externalize-feature-libs" type="STRING" 
cardinality="0" />
-    <AD id="shindig.image-rewrite.max-inmem-bytes" type="STRING" 
cardinality="0" />
-    <AD id="shindig.image-rewrite.max-palette-size" type="STRING" 
cardinality="0" />
-    <AD id="shindig.image-rewrite.allow-jpeg-conversion" type="STRING" 
cardinality="0" />
-    <AD id="shindig.image-rewrite.jpeg-compression" type="STRING" 
cardinality="0" />
-    <AD id="shindig.image-rewrite.min-threshold-bytes" type="STRING" 
cardinality="0" />
-    <AD id="shindig.flash.min-version" type="STRING" cardinality="0" />
-    <AD id="shindig.template-rewrite.extension-tag-namespace" type="STRING" 
cardinality="0" />
-    <AD id="shindig.cache.http.defaultTtl" type="STRING" cardinality="0" />
+    <AD id="shindig.gadget-rewrite.default-forced-libs" description="Default 
set of forced libs to allow for better caching. NOTE: setting this causes the 
EndToEnd test to fail the opensocial-templates test." type="STRING" 
cardinality="0" />
+    <AD id="shindig.gadget-rewrite.externalize-feature-libs" 
description="Allow supported JavaScript features required by a gadget to be 
externalized on demand" type="STRING" cardinality="0" />
+    <AD id="shindig.image-rewrite.max-inmem-bytes" description="Configuration 
for image rewriter" type="STRING" cardinality="0" />
+    <AD id="shindig.image-rewrite.max-palette-size" description="Configuration 
for image rewriter" type="STRING" cardinality="0" />
+    <AD id="shindig.image-rewrite.allow-jpeg-conversion" 
description="Configuration for image rewriter" type="STRING" cardinality="0" />
+    <AD id="shindig.image-rewrite.jpeg-compression" description="Configuration 
for image rewriter" type="STRING" cardinality="0" />
+    <AD id="shindig.image-rewrite.min-threshold-bytes" 
description="Configuration for image rewriter" type="STRING" cardinality="0" />
+    <AD id="shindig.flash.min-version" description="Configuration for the 
os:Flash tag" type="STRING" cardinality="0" />
+    <AD id="shindig.template-rewrite.extension-tag-namespace" 
description="Configuration for template rewriter" type="STRING" cardinality="0" 
/>
+    <AD id="shindig.cache.http.defaultTtl" description="These values provide 
default TTLs for HTTP responses that don't use caching headers." type="STRING" 
cardinality="0" />
     <AD id="shindig.cache.http.negativeCacheTtl" type="STRING" cardinality="0" 
/>
-    <AD id="shindig.cache.xml.refreshInterval" type="STRING" cardinality="0" />
+    <AD id="shindig.cache.xml.refreshInterval" description="A default refresh 
interval for XML files, since there is no natural way for developers to specify 
this value, and most HTTP responses don't include good cache control headers. 
Setting this to 1 prevents the XML files to be cached forever, handy during 
development" type="STRING" cardinality="0" />
     <AD id="shindig.cache.xml.refreshInterval.401" type="STRING" 
cardinality="0" />
-    <AD id="shindig.cache.lru.default.capacity" type="STRING" cardinality="0" 
/>
+    <AD id="shindig.cache.lru.default.capacity" description="Add entries in 
the form shindig.cache.lru.<name>.capacity to specify capacities for different 
caches when using the LruCacheProvider. It is highly recommended that the 
EhCache implementation be used instead of the LRU cache." type="STRING" 
cardinality="0" />
     <AD id="shindig.cache.lru.expressions.capacity" type="STRING" 
cardinality="0" />
     <AD id="shindig.cache.lru.gadgetSpecs.capacity" type="STRING" 
cardinality="0" />
     <AD id="shindig.cache.lru.messageBundles.capacity" type="STRING" 
cardinality="0" />
     <AD id="shindig.cache.lru.httpResponses.capacity" type="STRING" 
cardinality="0" />
-    <AD id="shindig.cache.ehcache.config" type="STRING" cardinality="0" />
-    <AD id="shindig.cache.ehcache.jmx.enabled" type="STRING" cardinality="0" />
-    <AD id="shindig.cache.ehcache.jmx.stats" type="STRING" cardinality="0" />
-    <AD id="shindig.http.fast-encoding-detection" type="STRING" 
cardinality="0" />
-    <AD id="shindig.http.client.connection-timeout-ms" type="STRING" 
cardinality="0" />
-    <AD id="shindig.http.client.max-object-size-bytes" type="STRING" 
cardinality="0" />
-    <AD id="shindig.uri.proxy.use-strict-parsing" type="STRING" 
cardinality="0" />
+    <AD id="shindig.cache.ehcache.config" description="The location of the 
EhCache configuration file. Leave this entry empty to completely disable the 
ehcache, otherwise enter: 
res://org/apache/shindig/common/cache/ehcache/ehcacheConfig.xml" type="STRING" 
cardinality="0" />
+    <AD id="shindig.cache.ehcache.jmx.enabled" description="True to enable JMX 
integration with cache stats" type="STRING" cardinality="0" />
+    <AD id="shindig.cache.ehcache.jmx.stats"  description="true to enable JMX 
stats." type="STRING" cardinality="0" />
+    <AD id="shindig.http.fast-encoding-detection" description="true to skip 
expensive encoding detection. if true, will only attempt to validate utf-8. 
Assumes all other encodings are ISO-8859-1." type="STRING" cardinality="0" />
+    <AD id="shindig.http.client.connection-timeout-ms" 
description="Configuration for the HttpFetcher Connection timeout, in 
milliseconds, for requests." type="STRING" cardinality="0" />
+    <AD id="shindig.http.client.max-object-size-bytes" description="Maximum 
size, in bytes, of the object we fetched, 0 == no limit" type="STRING" 
cardinality="0" />
+    <AD id="shindig.uri.proxy.use-strict-parsing" description="Strict-mode 
parsing for proxy and concat URIs ensures that the authority/host and path for 
the URIs match precisely what is found in the container config for it. This is 
useful where statistics and traffic routing patterns, typically in large 
installations, key on hostname (and occasionally path). Enforcing this does 
come at the cost that mismatches break, which in turn mandates that URI 
generation always happen in consistent fashion, ie. by the class itself or 
tightly controlled code." type="STRING" cardinality="0" />
     <AD id="shindig.uri.concat.use-strict-parsing" type="STRING" 
cardinality="0" />
-    <AD id="org.apache.shindig.gadgets.http.basicHttpFetcherProxy" 
type="STRING" cardinality="0" />
+    <AD id="org.apache.shindig.gadgets.http.basicHttpFetcherProxy" 
description="Host:port of the proxy to use while fetching urls. Leave blank if 
proxy is not to be used." type="STRING" cardinality="0" />
     <AD id="org.apache.shindig.serviceExpirationDurationMinutes" type="STRING" 
cardinality="0" />
-    <AD id="shindig.json-rpc.result-field" type="STRING" cardinality="0" />
-    <AD id="shindig.accelerate.remapInternalServerError" type="STRING" 
cardinality="0" />
-    <AD id="shindig.host" type="STRING" cardinality="0" />
+    <AD id="shindig.json-rpc.result-field" description="Older versions of 
shindig used 'data' in the json-rpc response format The spec calls for using 
'result' instead, however to avoid breakage we allow you to set it back to the 
old way here valid values are result - new form, data - old broken form, both - 
return both fields for full compatibility" type="STRING" cardinality="0" />
+    <AD id="shindig.accelerate.remapInternalServerError" description="Remap 
Internal server errors received from the basicHttpFetcherProxy server to Bad 
Gateway errors, so that it is clear to the user that the proxy server is the 
one that threw the exception." type="STRING" cardinality="0" />
+    <AD id="shindig.host" description="shindig.host is not used anymore, but 
remains here since Guice requires this config entry to invoke the container 
coniguration" type="STRING" cardinality="0" />
     <AD id="shindig.port" type="STRING" cardinality="0" />
     <AD id="shindig.proxy.remapInternalServerError" type="STRING" 
cardinality="0" />
     <AD id="workdir" type="STRING" cardinality="0" />
-    <AD id="shindig.securitytoken.secretkey" type="STRING" cardinality="0" />
-
+    <AD id="shindig.securitytoken.secretkey" description="The secret key used 
to generate security tokens. The key must contain at least 16 characters. In a 
single server setup, you may choose to let the token provider a random key for 
you. In that case, specify the value [randomkey]. By default this key is empty, 
such that the admin is forced to think about the policy to be used here." 
type="STRING" cardinality="0" />
   </OCD>
   <Designate pid="org.amdatu.opensocial.shindig" bundle="*">
     <Object ocdref="org.amdatu.opensocial.shindig">
-      <!-- Location of feature manifests (comma separated) -->
       <Attribute adref="shindig.features.default">
         <Value>res://features/features.txt</Value>
       </Attribute>
-
-      <!-- Location of container configurations (comma separated)
-           NB: this property is set by 
org.amdatu.opensocial.shindig.module.ConfigurationAdminGuiceModule -->
       <Attribute adref="shindig.containers.default">
         <Value></Value>
       </Attribute>
-
-      <!-- A file containing blacklisted gadgets. -->
       <Attribute adref="shindig.blacklist.file">
         <Value></Value>
       </Attribute>
-
-      <!-- Inbound OAuth support
-           The URL base to use for full OAuth support (three-legged) -->
       <Attribute adref="shindig.oauth.base-url">
         <Value>/oauth/</Value>
       </Attribute>
       <Attribute adref="shindig.oauth.authorize-action">
         <Value>/dashboard/authorize.jsp</Value>
       </Attribute>
-
-      <!-- Outbound OAuth support -->
       <Attribute adref="shindig.signing.state-key">
         <Value></Value>
       </Attribute>
       <Attribute adref="shindig.signing.key-name">
         <Value>amdatu_public_key</Value>
       </Attribute>
-
-      <!-- shindig.signing.key-file=res://conf/oauthkey.pem -->
       <Attribute adref="shindig.signing.global-callback-url">
         
<Value>http://${amdatu.http.hostname}:${amdatu.http.port}/gadgets/oauthcallback</Value>
       </Attribute>
       <Attribute adref="shindig.signing.enable-signed-callbacks">
         <Value>true</Value>
       </Attribute>
-
-      <!-- Set to true if you want to allow the use of 3-legged OAuth tokens 
when viewer != owner.
-           This setting is not recommeneded for pages that allow 
user-controlled javascript, since
-           that javascript could be used to make unauthorized requests on 
behalf of the viewer of the page -->
       <Attribute adref="shindig.signing.viewer-access-tokens-enabled">
         <Value>false</Value>
       </Attribute>
-
-      <!-- If enabled here, configuration values can be found in container 
configuration files. -->
       <Attribute adref="shindig.locked-domain.enabled">
         <Value>false</Value>
       </Attribute>
-
-      <!-- TODO: This needs to be moved to container configuration. -->
       <Attribute adref="shindig.content-rewrite.only-allow-excludes">
         <Value>false</Value>
       </Attribute>
@@ -144,29 +122,20 @@
         <Value>86400</Value>
       </Attribute>
       <Attribute adref="shindig.content-rewrite.proxy-url">
-        <Value>/gadgets/proxy?container=default&url=</Value>
+        <Value>/gadgets/proxy?container=default&amp;url=</Value>
       </Attribute>
       <Attribute adref="shindig.content-rewrite.concat-url">
-        <Value>/gadgets/concat?container=default&</Value>
+        <Value>/gadgets/concat?container=default&amp;</Value>
       </Attribute>
       <Attribute adref="shindig.content-rewrite.enable-split-js-concat">
         <Value>true</Value>
       </Attribute>
-
-      <!-- Default set of forced libs to allow for better caching
-           NOTE: setting this causes the EndToEnd test to fail the 
opensocial-templates test -->
       <Attribute adref="shindig.gadget-rewrite.default-forced-libs">
         <Value>core:rpc</Value>
       </Attribute>
-
-      <!-- shindig.gadget-rewrite.default-forced-libs= -->
-
-      <!-- Allow supported JavaScript features required by a gadget to be 
externalized on demand -->
       <Attribute adref="shindig.gadget-rewrite.externalize-feature-libs">
         <Value>false</Value>
       </Attribute>
-
-      <!-- Configuration for image rewriter -->
       <Attribute adref="shindig.image-rewrite.max-inmem-bytes">
         <Value>1048576</Value>
       </Attribute>
@@ -182,38 +151,24 @@
       <Attribute adref="shindig.image-rewrite.min-threshold-bytes">
         <Value>200</Value>
       </Attribute>
-
-      <!-- Configuration for the os:Flash tag -->
       <Attribute adref="shindig.flash.min-version">
         <Value>9.0.115</Value>
       </Attribute>
-
-      <!-- Configuration for template rewriter -->
       <Attribute adref="shindig.template-rewrite.extension-tag-namespace">
         <Value>http://ns.opensocial.org/2009/extensions</Value>
       </Attribute>
-
-      <!-- These values provide default TTLs for HTTP responses that don't use 
caching headers. -->
       <Attribute adref="shindig.cache.http.defaultTtl">
         <Value>0</Value>
       </Attribute>
       <Attribute adref="shindig.cache.http.negativeCacheTtl">
         <Value>0</Value>
       </Attribute>
-
-      <!-- A default refresh interval for XML files, since there is no natural 
way for developers to
-           specify this value, and most HTTP responses don't include good 
cache control headers.
-           Setting this to 1 prevents the XML files to be cached forever, 
handy during development -->
       <Attribute adref="shindig.cache.xml.refreshInterval">
         <Value>60000</Value>
       </Attribute>
       <Attribute adref="shindig.cache.xml.refreshInterval.401">
         <Value>0</Value>
       </Attribute>
-
-      <!-- Add entries in the form shindig.cache.lru.<name>.capacity to 
specify capacities for different
-           caches when using the LruCacheProvider.
-           It is highly recommended that the EhCache implementation be used 
instead of the LRU cache. -->
       <Attribute adref="shindig.cache.lru.default.capacity">
         <Value>1000</Value>
       </Attribute>
@@ -229,84 +184,42 @@
       <Attribute adref="shindig.cache.lru.httpResponses.capacity">
         <Value>10000</Value>
       </Attribute>
-
-      <!-- The location of the EhCache configuration file.
-           Leave this entry empty to completely disable the ehcache, otherwise 
enter:
-           res://org/apache/shindig/common/cache/ehcache/ehcacheConfig.xml -->
       <Attribute adref="shindig.cache.ehcache.config">
         <Value></Value>
       </Attribute>
-
-      <!-- True to enable JMX integration with cache stats -->
       <Attribute adref="shindig.cache.ehcache.jmx.enabled">
         <Value>true</Value>
       </Attribute>
-
-      <!-- true to enable JMX stats. -->
       <Attribute adref="shindig.cache.ehcache.jmx.stats">
         <Value>true</Value>
       </Attribute>
-
-      <!-- true to skip expensive encoding detection.
-           if true, will only attempt to validate utf-8. Assumes all other 
encodings are ISO-8859-1. -->
       <Attribute adref="shindig.http.fast-encoding-detection">
         <Value>true</Value>
       </Attribute>
-
-      <!-- Configuration for the HttpFetcher
-           Connection timeout, in milliseconds, for requests. -->
       <Attribute adref="shindig.http.client.connection-timeout-ms">
         <Value>15000</Value>
       </Attribute>
-
-      <!-- Maximum size, in bytes, of the object we fetched, 0 == no limit -->
       <Attribute adref="shindig.http.client.max-object-size-bytes">
         <Value>0</Value>
       </Attribute>
-
-      <!-- Strict-mode parsing for proxy and concat URIs ensures that the 
authority/host and path
-           for the URIs match precisely what is found in the container config 
for it. This is
-           useful where statistics and traffic routing patterns, typically in 
large installations,
-           key on hostname (and occasionally path). Enforcing this does come 
at the cost that
-           mismatches break, which in turn mandates that URI generation always 
happen in consistent
-           fashion, ie. by the class itself or tightly controlled code. -->
       <Attribute adref="shindig.uri.proxy.use-strict-parsing">
         <Value>false</Value>
       </Attribute>
       <Attribute adref="shindig.uri.concat.use-strict-parsing">
         <Value>false</Value>
       </Attribute>
-
-      <!-- Host:port of the proxy to use while fetching urls. Leave blank if 
proxy is
-           not to be used. -->
       <Attribute adref="org.apache.shindig.gadgets.http.basicHttpFetcherProxy">
         <Value></Value>
       </Attribute>
       <Attribute adref="org.apache.shindig.serviceExpirationDurationMinutes">
         <Value>60</Value>
       </Attribute>
-
-      <!-- Older versions of shindig used 'data' in the json-rpc response 
format
-           The spec calls for using 'result' instead, however to avoid 
breakage we
-           allow you to set it back to the old way here
-
-           valid values are
-           result  - new form
-           data    - old broken form
-           both    - return both fields for full compatibility -->
       <Attribute adref="shindig.json-rpc.result-field">
         <Value>result</Value>
       </Attribute>
-
-      <!-- Remap "Internal server error"s received from the 
basicHttpFetcherProxy server to
-          "Bad Gateway error"s, so that it is clear to the user that the proxy 
server is
-           the one that threw the exception. -->
       <Attribute adref="shindig.accelerate.remapInternalServerError">
         <Value>true</Value>
       </Attribute>
-
-      <!-- shindig.host is not used anymore, but remains here since Guice 
requires this config
-           entry to invoke the container coniguration -->
       <Attribute adref="shindig.host">
         <Value>null</Value>
       </Attribute>
@@ -319,19 +232,9 @@
       <Attribute adref="workdir">
         <Value>work/shindig</Value>
       </Attribute>
-
-      <!-- The secret key used to generate security tokens. The key must 
contain at least
-           16 characters.
-
-           In a single server setup, you may choose to let the token provider 
a random key
-           for you. In that case, specify the value "[randomkey]" (without the 
quotes).
-
-           By default this key is empty, such that the admin is forced to 
think about the
-           policy to be used here. -->
       <Attribute adref="shindig.securitytoken.secretkey">
         <Value>${shindig.secretkey}</Value>
       </Attribute>
-
     </Object>
   </Designate>
 </MetaData>

Modified: trunk/amdatu-opensocial/opensocial-gadgetmanagement/pom.xml
==============================================================================
--- trunk/amdatu-opensocial/opensocial-gadgetmanagement/pom.xml (original)
+++ trunk/amdatu-opensocial/opensocial-gadgetmanagement/pom.xml Fri May  4 
15:06:45 2012
@@ -144,7 +144,7 @@
             <X-MultiTenant-Version>1</X-MultiTenant-Version>
             
<X-MultiTenant-Bundle-Activator>org.amdatu.opensocial.gadgetmanagement.osgi.Activator</X-MultiTenant-Bundle-Activator>
             <X-MultiTenant-Binding>TENANTS</X-MultiTenant-Binding>
-            
<X-MultiTenant-Scope>(|(org.amdatu.tenant.pid=%TENANTPID%)(objectClass=org.osgi.service.log.LogService))</X-MultiTenant-Scope>
+            
<X-MultiTenant-Scope>(|(org.amdatu.tenant.pid=%TENANTPID%)(objectClass=org.osgi.service.log.LogService)(objectClass=org.amdatu.web.rest.jaxrs.JaxRsSpi))</X-MultiTenant-Scope>
             
<Bundle-Activator>org.amdatu.tenant.adapter.MultiTenantBundleActivator</Bundle-Activator>
             <Bundle-SymbolicName> 
org.amdatu.opensocial.gadgetmanagement</Bundle-SymbolicName>
             
<Embed-Dependency>*;scope=compile;artifactId=!org.amdatu.auth.tools.rest.doclet</Embed-Dependency>

Modified: 
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/osgi/Activator.java
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/osgi/Activator.java
  (original)
+++ 
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/osgi/Activator.java
  Fri May  4 15:06:45 2012
@@ -15,7 +15,6 @@
  */
 package org.amdatu.opensocial.profile.osgi;
 
-import org.amdatu.auth.tokenprovider.TokenProvider;
 import org.amdatu.opensocial.profile.PersonService;
 import org.amdatu.opensocial.profile.service.PersonDispatchExtenderFilter;
 import org.amdatu.opensocial.profile.service.PersonServiceImpl;
@@ -50,8 +49,7 @@
         manager.add(
             createComponent()
                 .setInterface(DispatchExtenderFilter.class.getName(), 
properties)
-                .setImplementation(PersonDispatchExtenderFilter.class)
-                
.add(createServiceDependency().setService(TokenProvider.class).setRequired(true)));
+                .setImplementation(PersonDispatchExtenderFilter.class));
     }
 
     @Override

Modified: 
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/service/PersonDispatchExtenderFilter.java
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/service/PersonDispatchExtenderFilter.java
    (original)
+++ 
trunk/amdatu-opensocial/opensocial-profile/src/main/java/org/amdatu/opensocial/profile/service/PersonDispatchExtenderFilter.java
    Fri May  4 15:06:45 2012
@@ -47,7 +47,6 @@
 public class PersonDispatchExtenderFilter implements DispatchExtenderFilter {
     // Service dependencies, injected by the framework
     private volatile BundleContext m_bundleContext;
-    private volatile TokenProvider m_tokenProvider;
 
     // Singleton instance
     private static PersonDispatchExtenderFilter INSTANCE = null;
@@ -92,23 +91,31 @@
     }
 
     private String getUserFromRequest(final HttpServletRequest request) {
-        String token = m_tokenProvider.getTokenFromRequest(request);
-        if (token != null) {
-            // Now decrypt to get the username and signature
-            try {
-                Map<String, String> attributes = 
m_tokenProvider.verifyToken(token);
-                if (attributes != null) {
-                    return attributes.get(TokenProvider.USERNAME);
+        TokenProvider tokenProvider;
+        try {
+            tokenProvider = internalGetTokenProvider();
+            if (tokenProvider != null) {
+                String token = tokenProvider.getTokenFromRequest(request);
+                if (token != null) {
+                    // Now decrypt to get the username and signature
+                    try {
+                        Map<String, String> attributes = 
tokenProvider.verifyToken(token);
+                        if (attributes != null) {
+                            return attributes.get(TokenProvider.USERNAME);
+                        }
+                    }
+                    catch (TokenProviderException e) {
+                        // Ignore the exception here
+                    }
+                    catch (InvalidTokenException e) {
+                        // Ignore the exception here
+                    }
                 }
             }
-            catch (TokenProviderException e) {
-                // Ignore the exception here
-            }
-            catch (InvalidTokenException e) {
-                // Ignore the exception here
-            }
         }
-
+        catch (InvalidSyntaxException e1) {
+            // // Ignore exception here
+        }
         return null;
     }
 
@@ -125,15 +132,24 @@
     }
 
     private UserAdmin internalGetUserAdmin() throws InvalidSyntaxException {
+        return getTenantAwareService(UserAdmin.class);
+    }
+
+    private TokenProvider internalGetTokenProvider() throws 
InvalidSyntaxException {
+        return getTenantAwareService(TokenProvider.class);
+    }
+
+    @SuppressWarnings("unchecked")
+    private <T> T getTenantAwareService(Class<T> clazz) throws 
InvalidSyntaxException {
         Tenant tenant = m_tenant.get();
         if (tenant == null) {
             return null;
         }
-        ServiceReference[] refs = 
m_bundleContext.getAllServiceReferences(UserAdmin.class.getName(), null);
+        ServiceReference[] refs = 
m_bundleContext.getAllServiceReferences(clazz.getName(), null);
         if (refs != null) {
             for (ServiceReference ref : refs) {
                 if 
(tenant.getPID().equals(ref.getProperty(org.amdatu.tenant.Constants.PID_KEY))) {
-                    return (UserAdmin) m_bundleContext.getService(ref);
+                    return (T) m_bundleContext.getService(ref);
                 }
             }
         }

Modified: trunk/amdatu-opensocial/opensocial-shindig/pom.xml
==============================================================================
--- trunk/amdatu-opensocial/opensocial-shindig/pom.xml  (original)
+++ trunk/amdatu-opensocial/opensocial-shindig/pom.xml  Fri May  4 15:06:45 2012
@@ -245,8 +245,8 @@
             <X-MultiTenant-Version>1</X-MultiTenant-Version>
             
<X-MultiTenant-Bundle-Activator>org.amdatu.opensocial.shindig.osgi.Activator</X-MultiTenant-Bundle-Activator>
             <X-MultiTenant-Binding>PLATFORM</X-MultiTenant-Binding>
-            
<X-MultiTenant-Scope>(|(org.amdatu.tenant.pid=%TENANTPID%)(objectClass=org.osgi.service.log.LogService))</X-MultiTenant-Scope>
-            
<Bundle-Activator>org.amdatu.tenant.adapter.MultiTenantBundleActivator</Bundle-Activator>
+            
<X-MultiTenant-Scope>(|(org.amdatu.tenant.pid=%TENANTPID%)(objectClass=org.osgi.service.log.LogService)(objectClass=org.amdatu.template.processor.TemplateEngine))</X-MultiTenant-Scope>
+            
<Bundle-Activator>org.amdatu.opensocial.shindig.osgi.Activator</Bundle-Activator>
             
<Bundle-SymbolicName>org.amdatu.opensocial.shindig</Bundle-SymbolicName>
             
<Embed-Dependency>*;scope=compile;artifactId=!guice|guice-jmx|guice-multibindings|commons-beanutils|commons-beanutils-core|commons-collections|commons-digester|jdom|org.amdatu.auth.tools.rest.doclet</Embed-Dependency>
             <Embed-Transitive>true</Embed-Transitive>
@@ -261,8 +261,6 @@
               !junit.framework,
               !net.sf.cglib.proxy.*,
               !nu.xom,
-              !oracle.xml.parser.*,
-              !org.aopalliance.*,
               !org.apache.log4j,
               !org.apache.log,
               !org.apache.xml.*,
@@ -275,7 +273,6 @@
               !org.codehaus.jettison.*,
               !org.dom4j.*,
               !org.hibernate.*,
-              !org.jaxen.*,
               !org.mortbay.jetty.*,
               !org.mozilla.*,
               !org.openqa.selenium.*,
@@ -289,8 +286,7 @@
             </Export-Package>
             <_exportcontents>
               org.apache.shindig.*,
-              org.amdatu.opensocial.shindig,
-              net.oauth.*
+              org.amdatu.opensocial.shindig
             </_exportcontents>
           </instructions>
         </configuration>

Modified: 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/ConfigurationAdminGuiceModule.java
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/ConfigurationAdminGuiceModule.java
    (original)
+++ 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/module/ConfigurationAdminGuiceModule.java
    Fri May  4 15:06:45 2012
@@ -23,12 +23,16 @@
 import org.amdatu.template.processor.velocity.VelocityTemplateEngine;
 
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.felix.dm.Component;
 import org.apache.felix.dm.DependencyManager;
 import org.apache.felix.dm.ServiceDependency;
@@ -103,26 +107,25 @@
      * @throws TemplateException
      */
     private void copyContainerJs() throws IOException, URISyntaxException, 
TemplateException {
-        // FIXME: is this OK?
         // Create & fill the context
         TemplateContext context = m_templateEngine.createContext();
+        File workDirectory = 
m_configService.get(ShindigConfigurationService.WORKDIR, File.class);
 
         // Copy all properties from config admin
-        String prefix = ShindigConfigurationService.SHINDIG_CONFIG_PID + "/";
         for (Object key : m_properties.keySet()) {
             Object value = m_properties.get(key);
-            context.put(prefix + key.toString(), value.toString());
+            context.put(key.toString(), value.toString());
         }
 
         // As of 0.4.0 the context path is always empty (no WAR support)
-        context.put("system/amdatu.contextpath", "");
+        context.put("amdatu_contextpath", "");
 
-        // Source file
+        // First write the source fileSource file
         Bundle bundle = m_bundleContext.getBundle();
-        File sourceFile = new File(bundle.getResource(CONTAINER_JS).toURI());
+        File sourceFile = new File(workDirectory, "container.js.tmp");
+        toTempFile(bundle.getResource(CONTAINER_JS), sourceFile);
 
         // Target file
-        File workDirectory = 
m_configService.get(ShindigConfigurationService.WORKDIR, File.class);
         File targetFile = new File(workDirectory, "container.js");
 
         // Create the processor using an input file
@@ -130,5 +133,40 @@
 
         // Process the input file and write the result to an output file
         processor.generateFile(context, targetFile);
+        m_properties.put("shindig.containers.default", 
targetFile.getAbsolutePath());
+
+        // Delete the temporary source file
+        sourceFile.delete();
+    }
+
+    private void toTempFile(URL url, File targetFile) throws IOException {
+        InputStream is = null;
+        FileOutputStream fos = null;
+        byte[] buffer = new byte[1024];
+        try {
+            is = url.openStream();
+            fos = new FileOutputStream(targetFile);
+            int size;
+            while ((size = is.read(buffer)) != -1) {
+                fos.write(buffer, 0, size);
+            }
+        }
+        finally {
+            if (fos != null) {
+                try {
+                    fos.close();
+                }
+                finally {
+                    if (is != null) {
+                        try {
+                            is.close();
+                        }
+                        catch (IOException e) {
+                            m_logService.log(LogService.LOG_ERROR, "Couldn't 
load oAuth private key", e);
+                        }
+                    }
+                }
+            }
+        }
     }
 }

Modified: 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/osgi/Activator.java
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/osgi/Activator.java
  (original)
+++ 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/osgi/Activator.java
  Fri May  4 15:06:45 2012
@@ -15,7 +15,6 @@
  */
 package org.amdatu.opensocial.shindig.osgi;
 
-import org.amdatu.auth.tokenprovider.TokenProvider;
 import org.amdatu.opensocial.gadgetcontainer.OpenSocialContainer;
 import org.amdatu.opensocial.gadgetcontainer.SecurityTokenService;
 import org.amdatu.opensocial.shindig.OAuthModule;
@@ -48,6 +47,7 @@
 import org.apache.shindig.social.opensocial.spi.AppDataService;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
+import org.osgi.service.cm.ManagedService;
 import org.osgi.service.log.LogService;
 
 /**
@@ -77,7 +77,7 @@
         manager.add(
             createComponent()
                 .setImplementation(ShindigConfigurationServiceImpl.class)
-                .setInterface(ShindigConfigurationService.class.getName(), 
null)
+                .setInterface(new 
String[]{ShindigConfigurationService.class.getName(), 
ManagedService.class.getName()}, null)
                 
.add(createServiceDependency().setService(LogService.class).setRequired(true))
                 
.add(createConfigurationDependency().setPid(ShindigConfigurationService.SHINDIG_CONFIG_PID)));
 
@@ -174,8 +174,7 @@
         manager.add(
             createComponent()
                 .setInterface(DispatchExtenderFilter.class.getName(), 
properties2)
-                .setImplementation(ShindigDispatchExtenderFilter.class)
-                
.add(createServiceDependency().setService(TokenProvider.class).setRequired(true)));
+                .setImplementation(ShindigDispatchExtenderFilter.class));
 
         // FIXME: this is the only multi-tenant service in this bundle and it 
cannot be moved
         // due to Shindig dependencies. So we must fix multi-tenancy manually 
here.

Modified: 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigDispatchExtenderFilter.java
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigDispatchExtenderFilter.java
   (original)
+++ 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigDispatchExtenderFilter.java
   Fri May  4 15:06:45 2012
@@ -48,7 +48,6 @@
 public class ShindigDispatchExtenderFilter implements DispatchExtenderFilter {
     // Service dependencies, injected by the framework
     private volatile BundleContext m_bundleContext;
-    private volatile TokenProvider m_tokenProvider;
 
     // Singleton instance
     private static ShindigDispatchExtenderFilter INSTANCE = null;
@@ -93,23 +92,29 @@
     }
 
     private String getUserFromRequest(final HttpServletRequest request) {
-        String token = m_tokenProvider.getTokenFromRequest(request);
-        if (token != null) {
-            // Now decrypt to get the username and signature
-            try {
-                Map<String, String> attributes = 
m_tokenProvider.verifyToken(token);
-                if (attributes != null) {
-                    return attributes.get(TokenProvider.USERNAME);
+        TokenProvider tokenProvider;
+        try {
+            tokenProvider = internalGetTokenProvider();
+            String token = tokenProvider.getTokenFromRequest(request);
+            if (token != null) {
+                // Now decrypt to get the username and signature
+                try {
+                    Map<String, String> attributes = 
tokenProvider.verifyToken(token);
+                    if (attributes != null) {
+                        return attributes.get(TokenProvider.USERNAME);
+                    }
+                }
+                catch (TokenProviderException e) {
+                    // Ignore the exception here
+                }
+                catch (InvalidTokenException e) {
+                    // Ignore the exception here
                 }
-            }
-            catch (TokenProviderException e) {
-                // Ignore the exception here
-            }
-            catch (InvalidTokenException e) {
-                // Ignore the exception here
             }
         }
-
+        catch (InvalidSyntaxException e1) {
+            // // Ignore exception here
+        }
         return null;
     }
 
@@ -126,15 +131,24 @@
     }
 
     private UserAdmin internalGetUserAdmin() throws InvalidSyntaxException {
+        return getTenantAwareService(UserAdmin.class);
+    }
+
+    private TokenProvider internalGetTokenProvider() throws 
InvalidSyntaxException {
+        return getTenantAwareService(TokenProvider.class);
+    }
+
+    @SuppressWarnings("unchecked")
+    private <T> T getTenantAwareService(Class<T> clazz) throws 
InvalidSyntaxException {
         Tenant tenant = m_tenant.get();
         if (tenant == null) {
             return null;
         }
-        ServiceReference[] refs = 
m_bundleContext.getAllServiceReferences(UserAdmin.class.getName(), null);
+        ServiceReference[] refs = 
m_bundleContext.getAllServiceReferences(clazz.getName(), null);
         if (refs != null) {
             for (ServiceReference ref : refs) {
                 if 
(tenant.getPID().equals(ref.getProperty(org.amdatu.tenant.Constants.PID_KEY))) {
-                    return (UserAdmin) m_bundleContext.getService(ref);
+                    return (T) m_bundleContext.getService(ref);
                 }
             }
         }

Modified: 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigRegistrationServiceImpl.java
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigRegistrationServiceImpl.java
  (original)
+++ 
trunk/amdatu-opensocial/opensocial-shindig/src/main/java/org/amdatu/opensocial/shindig/service/ShindigRegistrationServiceImpl.java
  Fri May  4 15:06:45 2012
@@ -99,7 +99,7 @@
 
     /**
      * The init() method is invoked by the Felix dependency manager.
-     *
+     * 
      * @throws ConfigurationException
      */
     public void init() throws ConfigurationException {
@@ -155,6 +155,9 @@
         servletProperties.put(org.amdatu.web.dispatcher.Constants.ALIAS_KEY, 
GuiceInjectorServletImpl.SERVLET_ALIAS);
         
servletProperties.put(org.amdatu.web.dispatcher.Constants.CONTEXT_ID_KEY, 
Activator.CONTEXTID);
 
+        // Bind this service to the PLATFORM tenant
+        servletProperties.put(org.amdatu.tenant.Constants.PID_KEY, 
org.amdatu.tenant.Constants.PID_VALUE_PLATFORM);
+
         Component servletComponent = m_dependencyManager.createComponent()
             .setImplementation(guiceInjectorServlet)
             .setInterface(Servlet.class.getName(), servletProperties);

Modified: 
trunk/amdatu-opensocial/opensocial-shindig/src/main/resources/conf/container.js
==============================================================================
--- 
trunk/amdatu-opensocial/opensocial-shindig/src/main/resources/conf/container.js 
    (original)
+++ 
trunk/amdatu-opensocial/opensocial-shindig/src/main/resources/conf/container.js 
    Fri May  4 15:06:45 2012
@@ -69,25 +69,25 @@
 // iframeBaseUri will automatically have the host inserted
 // if locked domain is enabled and the implementation supports it.
 // query parameters will be added.
-"gadgets.iframeBaseUri" : "${system/amdatu.contextpath}/gadgets/ifr",
-"gadgets.uri.iframe.basePath" : "${system/amdatu.contextpath}/gadgets/ifr",
+"gadgets.iframeBaseUri" : "${amdatu_contextpath}/gadgets/ifr",
+"gadgets.uri.iframe.basePath" : "${amdatu_contextpath}/gadgets/ifr",
 
 // jsUriTemplate will have %host% and %js% substituted.
 // No locked domain special cases, but jsUriTemplate must
 // never conflict with a lockedDomainSuffix.
-"gadgets.jsUriTemplate" : 
"http://%host%${system/amdatu.contextpath}/gadgets/js/%js%";,
+"gadgets.jsUriTemplate" : "http://%host%${amdatu_contextpath}/gadgets/js/%js%";,
 
 //New configuration for iframeUri generation:
 "gadgets.uri.iframe.lockedDomainSuffix" :  "-a.example.com:8080",
 "gadgets.uri.iframe.unlockedDomain" : "www.example.com:8080",
-"gadgets.uri.iframe.basePath" : "${system/amdatu.contextpath}/gadgets/ifr",
+"gadgets.uri.iframe.basePath" : "${amdatu_contextpath}/gadgets/ifr",
 
 "gadgets.uri.js.host" : "http://www.example.com/";,
-"gadgets.uri.js.path" : "${system/amdatu.contextpath}/gadgets/js",
+"gadgets.uri.js.path" : "${amdatu_contextpath}/gadgets/js",
 
 
 // Callback URL.  Scheme relative URL for easy switch between https/http.
-"gadgets.uri.oauth.callbackTemplate" : 
"//%host%${system/amdatu.contextpath}/gadgets/oauthcallback",
+"gadgets.uri.oauth.callbackTemplate" : 
"//%host%${amdatu_contextpath}/gadgets/oauthcallback",
 
 // Use an insecure security token by default
 //"gadgets.securityTokenType" : "insecure",
@@ -95,12 +95,12 @@
 // Config param to load Opensocial data for social
 // preloads in data pipelining.  %host% will be
 // substituted with the current host.
-"gadgets.osDataUri" : "http://%host%${system/amdatu.contextpath}/rpc";,
+"gadgets.osDataUri" : "http://%host%${amdatu_contextpath}/rpc";,
 
 // Uncomment these to switch to a secure version
 //
 "gadgets.securityTokenType" : "secure",
-"gadgets.securityTokenKeyFile" : 
"${org.amdatu.opensocial.shindig/workdir}/securitytokenkey.txt",
+"gadgets.securityTokenKeyFile" : "${workdir}/securitytokenkey.txt",
 
 // URI for the default shindig test instance.
 "defaultShindigTestHost": "http://%tenant_host%:${SERVER_PORT}";,
@@ -114,16 +114,16 @@
 
 // Default Js Uri config: also must be overridden.
 "gadgets.uri.js.host": "${Cur['defaultShindigTestHost']}",
-"gadgets.uri.js.path": "${system/amdatu.contextpath}/gadgets/js",
+"gadgets.uri.js.path": "${amdatu_contextpath}/gadgets/js",
 
 // Default concat Uri config; used for testing.
 "gadgets.uri.concat.host" : "${Cur['defaultShindigProxyConcatAuthority']}",
-"gadgets.uri.concat.path" : "${system/amdatu.contextpath}/gadgets/concat",
+"gadgets.uri.concat.path" : "${amdatu_contextpath}/gadgets/concat",
 "gadgets.uri.concat.js.splitToken" : "false",
 
 // Default proxy Uri config; used for testing.
 "gadgets.uri.proxy.host" : "${Cur['defaultShindigProxyConcatAuthority']}",
-"gadgets.uri.proxy.path" : "${system/amdatu.contextpath}/gadgets/proxy",
+"gadgets.uri.proxy.path" : "${amdatu_contextpath}/gadgets/proxy",
 
 // This config data will be passed down to javascript. Please
 // configure your object using the feature name rather than
@@ -135,18 +135,18 @@
   "core.io" : {
     // Note: /proxy is an open proxy. Be careful how you expose this!
     // Note: Here // is replaced with the current protocol http/https
-    "proxyUrl" : 
"//%host%${system/amdatu.contextpath}/gadgets/proxy?container=default&refresh=%refresh%&url=%url%%rewriteMime%",
-    "jsonProxyUrl" : "//%host%${system/amdatu.contextpath}/gadgets/makeRequest"
+    "proxyUrl" : 
"//%host%${amdatu_contextpath}/gadgets/proxy?container=default&refresh=%refresh%&url=%url%%rewriteMime%",
+    "jsonProxyUrl" : "//%host%${amdatu_contextpath}/gadgets/makeRequest"
   },
   "views" : {
     "profile" : {
       "isOnlyVisible" : false,
-      "urlTemplate" : 
"http://%host%${system/amdatu.contextpath}/gadgets/profile?{var}";,
+      "urlTemplate" : 
"http://%host%${amdatu_contextpath}/gadgets/profile?{var}";,
       "aliases": ["DASHBOARD", "default"]
     },
     "canvas" : {
       "isOnlyVisible" : true,
-      "urlTemplate" : 
"http://%host%${system/amdatu.contextpath}/gadgets/canvas?{var}";,
+      "urlTemplate" : 
"http://%host%${amdatu_contextpath}/gadgets/canvas?{var}";,
       "aliases" : ["FULL_PAGE"]
     }
   },
@@ -223,7 +223,7 @@
     // parameter if it passes input validation and is not null.
     // This should never be on the same host in a production environment!
     // Only use this for TESTING!
-    "parentRelayUrl" : "${system/amdatu.contextpath}/container/rpc_relay.html",
+    "parentRelayUrl" : "${amdatu_contextpath}/container/rpc_relay.html",
 
     // If true, this will use the legacy ifpc wire format when making rpc
     // requests.
@@ -243,9 +243,9 @@
   "opensocial" : {
     // Path to fetch opensocial data from
     // Must be on the same domain as the gadget rendering server
-    "path" : "http://%host%${system/amdatu.contextpath}/rpc";,
+    "path" : "http://%host%${amdatu_contextpath}/rpc";,
     // Path to issue invalidate calls
-    "invalidatePath" : "http://%host%${system/amdatu.contextpath}/rpc";,
+    "invalidatePath" : "http://%host%${amdatu_contextpath}/rpc";,
     "domain" : "shindig",
     "enableCaja" : false,
     "supportedFields" : {
@@ -271,7 +271,7 @@
   },
   "osapi" : {
     // The endpoints to query for available JSONRPC/REST services
-    "endPoints" : [ "http://%host%${system/amdatu.contextpath}/rpc"; ]
+    "endPoints" : [ "http://%host%${amdatu_contextpath}/rpc"; ]
   },
   "osml": {
     // OSML library resource.  Can be set to null or the empty string to 
disable OSML

Modified: trunk/amdatu-opensocial/opensocial-stores/mem-store-oauthdata/pom.xml
==============================================================================
--- trunk/amdatu-opensocial/opensocial-stores/mem-store-oauthdata/pom.xml       
(original)
+++ trunk/amdatu-opensocial/opensocial-stores/mem-store-oauthdata/pom.xml       
Fri May  4 15:06:45 2012
@@ -28,6 +28,7 @@
   <description>Provides an in-memory implementation of the OAuth Data 
store</description>
 
   <dependencies>
+    <!-- Provided dependencies -->
     <dependency>
       <groupId>org.amdatu.tenant</groupId>
       <artifactId>org.amdatu.tenant.api</artifactId>
@@ -43,6 +44,14 @@
       <artifactId>org.amdatu.opensocial.gadgetmanagement</artifactId>
       <type>bundle</type>
     </dependency>
+
+    <!-- Embedded dependencies -->
+    <dependency>
+      <groupId>commons-io</groupId>
+      <artifactId>commons-io</artifactId>
+      <version>2.2</version>
+      <scope>compile</scope>
+    </dependency>
   </dependencies>
 
   <build>
@@ -61,6 +70,11 @@
             
<X-MultiTenant-Scope>(|(org.amdatu.tenant.pid=%TENANTPID%)(objectClass=org.osgi.service.log.LogService))</X-MultiTenant-Scope>
             
<Bundle-Activator>org.amdatu.tenant.adapter.MultiTenantBundleActivator</Bundle-Activator>
             
<Bundle-SymbolicName>org.amdatu.opensocial.store.mem.oauthdata</Bundle-SymbolicName>
+            <Embed-Dependency>*;scope=compile</Embed-Dependency>
+            <Import-Package>
+              net.oauth;version="[1.0,1.1)",
+              *
+            </Import-Package>
           </instructions>
         </configuration>
       </plugin>

Modified: trunk/amdatu-opensocial/pom.xml
==============================================================================
--- trunk/amdatu-opensocial/pom.xml     (original)
+++ trunk/amdatu-opensocial/pom.xml     Fri May  4 15:06:45 2012
@@ -140,6 +140,13 @@
       </dependency>
       <dependency>
         <groupId>org.amdatu.opensocial</groupId>
+        <artifactId>org.amdatu.opensocial.store.mem.oauthdata</artifactId>
+        <version>${project.version}</version>
+        <scope>provided</scope>
+        <type>bundle</type>
+      </dependency>
+      <dependency>
+        <groupId>org.amdatu.opensocial</groupId>
         <artifactId>org.amdatu.opensocial.profile</artifactId>
         <version>${project.version}</version>
         <scope>provided</scope>

Modified: trunk/amdatu-opensocial/release-demo/pom.xml
==============================================================================
--- trunk/amdatu-opensocial/release-demo/pom.xml        (original)
+++ trunk/amdatu-opensocial/release-demo/pom.xml        Fri May  4 15:06:45 2012
@@ -301,6 +301,18 @@
     </dependency>
     <dependency>
       <groupId>org.amdatu.auth</groupId>
+      <artifactId>org.amdatu.auth.oauth.store.consumer.mem</artifactId>
+      <version>${org.amdatu.auth.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.auth</groupId>
+      <artifactId>org.amdatu.auth.oauth.store.nonce.mem</artifactId>
+      <version>${org.amdatu.auth.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.auth</groupId>
       <artifactId>org.amdatu.auth.oauth.server</artifactId>
       <version>${org.amdatu.auth.version}</version>
       <scope>compile</scope>
@@ -313,6 +325,12 @@
     </dependency>
     <dependency>
       <groupId>org.amdatu.auth</groupId>
+      <artifactId>org.amdatu.auth.tokenstore.mem</artifactId>
+      <version>${org.amdatu.auth.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.auth</groupId>
       <artifactId>org.amdatu.auth.useradmin.rest</artifactId>
       <version>${org.amdatu.auth.version}</version>
       <scope>compile</scope>
@@ -345,6 +363,18 @@
     </dependency>
     <dependency>
       <groupId>org.amdatu.opensocial</groupId>
+      <artifactId>org.amdatu.opensocial.gadgetmanagement</artifactId>
+      <type>bundle</type>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.opensocial</groupId>
+      <artifactId>org.amdatu.opensocial.store.mem.oauthdata</artifactId>
+      <type>bundle</type>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.amdatu.opensocial</groupId>
       <artifactId>org.amdatu.opensocial.profile</artifactId>
       <type>bundle</type>
       <scope>compile</scope>
@@ -379,6 +409,13 @@
       <type>bundle</type>
       <scope>compile</scope>
     </dependency>
+
+    <!-- Extra bundles -->
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.apache.felix.webconsole</artifactId>
+      <version>3.1.8</version>
+    </dependency>
   </dependencies>
   <build>
     <defaultGoal>package</defaultGoal>

Modified: 
trunk/amdatu-opensocial/release-demo/src/main/assembly/bin-component.xml
==============================================================================
--- trunk/amdatu-opensocial/release-demo/src/main/assembly/bin-component.xml    
(original)
+++ trunk/amdatu-opensocial/release-demo/src/main/assembly/bin-component.xml    
Fri May  4 15:06:45 2012
@@ -59,6 +59,7 @@
       <includes>
         <include>org.amdatu.auth:*</include>
         <include>org.amdatu.opensocial:*</include>
+        <include>org.apache.felix:org.apache.felix.webconsole</include>
       </includes>
       <excludes>
         <exclude>org.amdatu.auth:org.amdatu.auth.config</exclude>
@@ -70,7 +71,7 @@
       <fileMode>0644</fileMode>
     </dependencySet>
 
-  <!--Unpack the the config files to deploy directory -->
+    <!--Unpack the the config files to deploy directory -->
     <dependencySet>
       <outputDirectory>deploy</outputDirectory>
       <includes>
@@ -115,7 +116,7 @@
     </fileSet>
     <fileSet>
       <directory>src/main/resources/config</directory>
-      <outputDirectory>deploy</outputDirectory>
+      <outputDirectory>multitenantweb</outputDirectory>
       <filtered>true</filtered>
     </fileSet>
   </fileSets>
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to