I'll get this =)

G.-

On Fri, Jul 18, 2008 at 5:12 PM, Chris Chabot <[EMAIL PROTECTED]> wrote:

> I should really make this for the php side too, but as was noticeable on
> the spec list i've been a bit tied up with other area's :)
>
> If there's any volunteers to help hurry this along on the php side (switch
> from the xml over to the json db), please don't hold back! :)
>
>        -- Chris
>
>
> On Jul 18, 2008, at 10:07 PM, Louis Ryan wrote:
>
>  Very cool :)
>>
>> On Fri, Jul 18, 2008 at 12:46 PM, <[EMAIL PROTECTED]> wrote:
>>
>>  Author: doll
>>> Date: Fri Jul 18 12:46:48 2008
>>> New Revision: 678013
>>>
>>> URL: http://svn.apache.org/viewvc?rev=678013&view=rev
>>> Log:
>>> Replaced the XmlStateFileFetcher with the JsonDbOpensocialService for the
>>> samplecontainer. In order to suppor this added key checking to the
>>> service
>>> and exposed the main db object.
>>>
>>> This also eliminated the need for the Basic*Services.
>>>
>>>
>>>
>>> Removed:
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicActivitiesService.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicDataService.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/BasicPeopleService.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/XmlStateFileFetcher.java
>>> Modified:
>>>
>>>
>>> incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiGuiceModule.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/canonical/JsonDbOpensocialService.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/ActivityService.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/AppDataService.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/DataServiceServlet.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonService.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/SampleContainerHandler.java
>>>
>>>
>>> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java
>>>  incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndModule.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -17,15 +17,11 @@
>>> */
>>> package org.apache.shindig.server.endtoend;
>>>
>>> -import com.google.inject.AbstractModule;
>>> -import com.google.inject.name.Names;
>>> -
>>> import org.apache.shindig.common.servlet.ParameterFetcher;
>>> -import org.apache.shindig.social.canonical.JsonDbOpensocialService;
>>> -import org.apache.shindig.social.dataservice.ActivityService;
>>> -import org.apache.shindig.social.dataservice.AppDataService;
>>> import org.apache.shindig.social.dataservice.DataServiceServletFetcher;
>>> -import org.apache.shindig.social.dataservice.PersonService;
>>> +
>>> +import com.google.inject.AbstractModule;
>>> +import com.google.inject.name.Names;
>>>
>>> /**
>>> * Guice module for the end-to-end tests.
>>> @@ -33,9 +29,6 @@
>>> public class EndToEndModule extends AbstractModule {
>>>
>>>  protected void configure() {
>>> -    bind(ActivityService.class).to(JsonDbOpensocialService.class);
>>> -    bind(PersonService.class).to(JsonDbOpensocialService.class);
>>> -    bind(AppDataService.class).to(JsonDbOpensocialService.class);
>>>   bind(String.class).annotatedWith(Names.named("canonical.json.db"))
>>>       .toInstance("sampledata/canonicaldb.json");
>>>
>>>
>>> bind(ParameterFetcher.class).annotatedWith(Names.named("DataServiceServlet"))
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiGuiceModule.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiGuiceModule.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiGuiceModule.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/SocialApiGuiceModule.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -38,6 +38,9 @@
>>>
>>>
>>>
>>> bind(ParameterFetcher.class).annotatedWith(Names.named("DataServiceServlet"))
>>>       .to(DataServiceServletFetcher.class);
>>> +
>>> +    bind(String.class).annotatedWith(Names.named("canonical.json.db"))
>>> +        .toInstance("sampledata/canonicaldb.json");
>>>  }
>>>
>>> }
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/canonical/JsonDbOpensocialService.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/canonical/JsonDbOpensocialService.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/canonical/JsonDbOpensocialService.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/canonical/JsonDbOpensocialService.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -105,6 +105,14 @@
>>>   this.converter = converter;
>>>  }
>>>
>>> +  public JSONObject getDb() {
>>> +    return db;
>>> +  }
>>> +
>>> +  public void setDb(JSONObject db) {
>>> +    this.db = db;
>>> +  }
>>> +
>>>  public Future<ResponseItem<RestfulCollection<Activity>>>
>>> getActivities(UserId userId,
>>>     GroupId groupId, String appId, Set<String> fields, SecurityToken
>>> token) {
>>>   List<Activity> result = Lists.newArrayList();
>>> @@ -331,6 +339,14 @@
>>>   // TODO: this seems redundant. No need to pass both fields and a map of
>>> field->value
>>>   // TODO: According to rest, yes there is. If a field is in the param
>>> list but not in the map
>>>   // that means it is a delete
>>> +
>>> +    for (String key : values.keySet()) {
>>> +      if (!isValidKey(key)) {
>>> +        return ImmediateFuture.newInstance(new
>>> ResponseItem<Object>(ResponseError.BAD_REQUEST,
>>> +            "The person data key had invalid characters", null));
>>> +      }
>>> +    }
>>> +
>>>   try {
>>>     JSONObject personData =
>>> db.getJSONObject(DATA_TABLE).getJSONObject(userId.getUserId(token));
>>>     if (personData == null) {
>>> @@ -349,6 +365,33 @@
>>>  }
>>>
>>>  /**
>>> +   * Determines whether the input is a valid key. Valid keys match the
>>> regular
>>> +   * expression [\w\-\.]+. The logic is not done using java.util.regex.*
>>> as
>>> +   * that is 20X slower.
>>> +   *
>>> +   * @param key the key to validate.
>>> +   * @return true if the key is a valid appdata key, false otherwise.
>>> +   */
>>> +  public static boolean isValidKey(String key) {
>>> +    if (key == null || key.length() == 0) {
>>> +      return false;
>>> +    }
>>> +    for (int i = 0; i < key.length(); ++i) {
>>> +      char c = key.charAt(i);
>>> +      if ((c >= 'a' && c <= 'z') ||
>>> +          (c >= 'A' && c <= 'Z') ||
>>> +          (c >= '0' && c <= '9') ||
>>> +          (c == '-') ||
>>> +          (c == '_') ||
>>> +          (c == '.')) {
>>> +        continue;
>>> +      }
>>> +      return false;
>>> +    }
>>> +    return true;
>>> +  }
>>> +
>>> +  /**
>>>  * Get the set of user id's from a user and group
>>>  */
>>>  private Set<String> getIdSet(UserId user, GroupId group, SecurityToken
>>> token)
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/ActivityService.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/ActivityService.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/ActivityService.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/ActivityService.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -19,15 +19,15 @@
>>>
>>> import org.apache.shindig.common.SecurityToken;
>>> import org.apache.shindig.social.ResponseItem;
>>> -import org.apache.shindig.social.samplecontainer.BasicActivitiesService;
>>> +import org.apache.shindig.social.canonical.JsonDbOpensocialService;
>>> import org.apache.shindig.social.opensocial.model.Activity;
>>>
>>> +import com.google.inject.ImplementedBy;
>>> +
>>> import java.util.Set;
>>> import java.util.concurrent.Future;
>>>
>>> -import com.google.inject.ImplementedBy;
>>> -
>>> [EMAIL PROTECTED](BasicActivitiesService.class)
>>> [EMAIL PROTECTED](JsonDbOpensocialService.class)
>>>
>>> public interface ActivityService {
>>>
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/AppDataService.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/AppDataService.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/AppDataService.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/AppDataService.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -19,15 +19,15 @@
>>>
>>> import org.apache.shindig.common.SecurityToken;
>>> import org.apache.shindig.social.ResponseItem;
>>> -import org.apache.shindig.social.samplecontainer.BasicDataService;
>>> +import org.apache.shindig.social.canonical.JsonDbOpensocialService;
>>> +
>>> +import com.google.inject.ImplementedBy;
>>>
>>> import java.util.Map;
>>> import java.util.Set;
>>> import java.util.concurrent.Future;
>>>
>>> -import com.google.inject.ImplementedBy;
>>> -
>>> [EMAIL PROTECTED](BasicDataService.class)
>>> [EMAIL PROTECTED](JsonDbOpensocialService.class)
>>> public interface AppDataService {
>>>
>>>  /**
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/DataServiceServlet.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/DataServiceServlet.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/DataServiceServlet.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/DataServiceServlet.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -206,7 +206,7 @@
>>>
>>>  /**
>>>  * Delivers a request item to the appropriate DataRequestHandler.
>>> -   *
>>> +   *
>>>  * @return the resulting ResponseItem
>>>  */
>>>  Future<? extends ResponseItem> handleRequestItem(RequestItem
>>> requestItem)
>>> {
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonService.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonService.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonService.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/dataservice/PersonService.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -19,15 +19,15 @@
>>>
>>> import org.apache.shindig.common.SecurityToken;
>>> import org.apache.shindig.social.ResponseItem;
>>> -import org.apache.shindig.social.samplecontainer.BasicPeopleService;
>>> +import org.apache.shindig.social.canonical.JsonDbOpensocialService;
>>> import org.apache.shindig.social.opensocial.model.Person;
>>>
>>> +import com.google.inject.ImplementedBy;
>>> +
>>> import java.util.Set;
>>> import java.util.concurrent.Future;
>>>
>>> -import com.google.inject.ImplementedBy;
>>> -
>>> [EMAIL PROTECTED](BasicPeopleService.class)
>>> [EMAIL PROTECTED](JsonDbOpensocialService.class)
>>>
>>> public interface PersonService {
>>>
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/SampleContainerHandler.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/SampleContainerHandler.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/SampleContainerHandler.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/samplecontainer/SampleContainerHandler.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -21,25 +21,27 @@
>>> import org.apache.shindig.common.util.ImmediateFuture;
>>> import org.apache.shindig.social.ResponseError;
>>> import org.apache.shindig.social.ResponseItem;
>>> +import org.apache.shindig.social.canonical.JsonDbOpensocialService;
>>> import org.apache.shindig.social.dataservice.DataRequestHandler;
>>> import org.apache.shindig.social.dataservice.RequestItem;
>>>
>>> -import com.google.common.collect.Maps;
>>> import com.google.inject.Inject;
>>> +import org.apache.commons.httpclient.HttpClient;
>>> +import org.apache.commons.httpclient.HttpMethod;
>>> +import org.apache.commons.httpclient.methods.GetMethod;
>>> +import org.json.JSONException;
>>> +import org.json.JSONObject;
>>>
>>> -import java.net.URI;
>>> -import java.net.URISyntaxException;
>>> -import java.util.Map;
>>> +import java.io.IOException;
>>> import java.util.concurrent.Future;
>>>
>>> -// TODO(doll): This class won't be needed anymore once we switch to the
>>> canonical data set
>>> public class SampleContainerHandler extends DataRequestHandler {
>>> -  private final XmlStateFileFetcher fetcher;
>>> +  private final JsonDbOpensocialService service;
>>>  private static final String POST_PATH =
>>> "/samplecontainer/{type}/{doevil}";
>>>
>>>  @Inject
>>> -  public SampleContainerHandler(XmlStateFileFetcher fetcher) {
>>> -    this.fetcher = fetcher;
>>> +  public SampleContainerHandler(JsonDbOpensocialService dbService) {
>>> +    this.service = dbService;
>>>  }
>>>
>>>  /**
>>> @@ -56,18 +58,6 @@
>>>   return handlePost(request);
>>>  }
>>>
>>> -  public static class SetStateInput {
>>> -    public String fileUrl;
>>> -
>>> -    public String getFileUrl() {
>>> -      return fileUrl;
>>> -    }
>>> -
>>> -    public void setFileUrl(String fileUrl) {
>>> -      this.fileUrl = fileUrl;
>>> -    }
>>> -  }
>>> -
>>>  /**
>>>  * Handles /samplecontainer/setstate and
>>> /samplecontainer/setevilness/{doevil}
>>>  * TODO(doll): These urls aren't very resty. Consider changing the
>>> samplecontainer.html calls
>>> @@ -81,14 +71,14 @@
>>>   if (type.equals("setstate")) {
>>>     try {
>>>       String stateFile = request.getParameters().get("fileurl");
>>> -        fetcher.resetStateFile(new URI(stateFile));
>>> -      } catch (URISyntaxException e) {
>>> +        service.setDb(new JSONObject(fetchStateDocument(stateFile)));
>>> +      } catch (JSONException e) {
>>>       response = new ResponseItem<Object>(ResponseError.BAD_REQUEST,
>>> -            "The state file was not a valid url", null);
>>> +            "The json state file was not valid json", null);
>>>     }
>>>   } else if (type.equals("setevilness")) {
>>> -      String doEvil = request.getParameters().get("doevil");
>>> -      fetcher.setEvilness(Boolean.valueOf(doEvil));
>>> +      response = new ResponseItem<Object>(ResponseError.NOT_IMPLEMENTED,
>>> +          "evil data has not been implemented yet", null);
>>>   }
>>>
>>>   return ImmediateFuture.newInstance(response);
>>> @@ -98,11 +88,26 @@
>>>  * Handles /samplecontainer/dumpstate
>>>  */
>>>  protected Future<? extends ResponseItem> handleGet(RequestItem request)
>>> {
>>> -    Map<String, Object> state = Maps.newHashMap();
>>> -    state.put("people", fetcher.getAllPeople());
>>> -    state.put("friendIds", fetcher.getFriendIds());
>>> -    state.put("data", fetcher.getAppData());
>>> -    state.put("activities", fetcher.getActivities());
>>> -    return ImmediateFuture.newInstance(new ResponseItem<Object>(state));
>>> +    return ImmediateFuture.newInstance(new
>>> ResponseItem<Object>(service.getDb()));
>>> +  }
>>> +
>>> +  private String fetchStateDocument(String stateFileLocation) {
>>> +    String errorMessage = "The json state file " + stateFileLocation
>>> +        + " could not be fetched and parsed.";
>>> +
>>> +    HttpMethod jsonState = new GetMethod(stateFileLocation);
>>> +    HttpClient client = new HttpClient();
>>> +    try {
>>> +      client.executeMethod(jsonState);
>>> +
>>> +      if (jsonState.getStatusCode() != 200) {
>>> +        throw new RuntimeException(errorMessage);
>>> +      }
>>> +      return jsonState.getResponseBodyAsString();
>>> +    } catch (IOException e) {
>>> +      throw new RuntimeException(errorMessage, e);
>>> +    } finally {
>>> +      jsonState.releaseConnection();
>>> +    }
>>>  }
>>> }
>>> \ No newline at end of file
>>>
>>> Modified:
>>>
>>> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>>
>>> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java
>>> (original)
>>> +++
>>>
>>> incubator/shindig/trunk/java/social-api/src/test/java/org/apache/shindig/social/SocialApiTestsGuiceModule.java
>>> Fri Jul 18 12:46:48 2008
>>> @@ -19,11 +19,7 @@
>>> package org.apache.shindig.social;
>>>
>>> import org.apache.shindig.common.servlet.ParameterFetcher;
>>> -import org.apache.shindig.social.canonical.JsonDbOpensocialService;
>>> -import org.apache.shindig.social.dataservice.ActivityService;
>>> -import org.apache.shindig.social.dataservice.AppDataService;
>>> import org.apache.shindig.social.dataservice.DataServiceServletFetcher;
>>> -import org.apache.shindig.social.dataservice.PersonService;
>>>
>>> import com.google.inject.AbstractModule;
>>> import com.google.inject.name.Names;
>>> @@ -42,9 +38,6 @@
>>>
>>>
>>> bind(ParameterFetcher.class).annotatedWith(Names.named("DataServiceServlet"))
>>>       .to(DataServiceServletFetcher.class);
>>>
>>> -    bind(ActivityService.class).to(JsonDbOpensocialService.class);
>>> -    bind(PersonService.class).to(JsonDbOpensocialService.class);
>>> -    bind(AppDataService.class).to(JsonDbOpensocialService.class);
>>>   bind(String.class).annotatedWith(Names.named("canonical.json.db"))
>>>       .toInstance("sampledata/canonicaldb.json");
>>>  }
>>>
>>> Modified:
>>> incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html?rev=678013&r1=678012&r2=678013&view=diff
>>>
>>>
>>> ==============================================================================
>>> ---
>>> incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>> (original)
>>> +++
>>> incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
>>> Fri Jul 18 12:46:48 2008
>>> @@ -48,7 +48,7 @@
>>> var gadgetUrl = baseUrl + 'examples/SocialHelloWorld.xml';
>>> var gadgetUrlCookie = 'sampleContainerGadgetUrl';
>>>
>>> -var stateFileUrl = baseUrl + 'state-basicfriendlist.xml';
>>> +var stateFileUrl = baseUrl + '../sampledata/canonicaldb.json';
>>> var stateFileUrlCookie = 'sampleContainerStateFileUrl';
>>>
>>> var useCaja;
>>> @@ -114,7 +114,7 @@
>>>  ownerId = document.getElementById("ownerId").value;
>>>  gadgetUrl = document.getElementById("gadgetUrl").value;
>>>
>>> -  gadget.secureToken = escape(generateSecureToken());
>>> +  gadget.secureToken = escape(generateSecureToken());
>>>  gadget.specUrl = gadgetUrl;
>>>  goog.net.cookies.set(gadgetUrlCookie, encodeURIComponent(gadgetUrl));
>>>
>>>
>>>
>>>
>>>
>

Reply via email to