<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<Module xmlns:os="http://ns.opensocial.org/2008/markup"
        xmlns:osx="http://ns.opensocial.org/2009/extensions">
  <ModulePrefs title="EndToEndTest">
    <Require feature="views" />
    <Optional feature="content-rewrite">
      <Param name="exclude-urls">.*</Param>
    </Optional>
  </ModulePrefs>
  <Content type="html" href="http://localhost:9003/echo">
    <!--  Load the canonical user -->
    <os:PeopleRequest key="me" userId="canonical"/>
    <!--  Load a JSON file -->
    <os:HttpRequest key="json" href="test.json"/>
    <!--  Process a variable -->
    <osx:Variable key="var" value="${json.content.key}"/>
  </Content>
</Module>
