Thanks Martin. Fixed. - Cassie
On Mon, Mar 17, 2008 at 1:28 PM, Martin Webb <[EMAIL PROTECTED]> wrote: > Rather late reply - but the site refers to: > http://wiki.corp.google.com/twiki/bin/view/Main/ASF > > Likewise so does: http://incubator.apache.org/shindig/#tab-contribute > > On Mon, Feb 4, 2008 at 11:55 PM, <[EMAIL PROTECTED]> wrote: > > > Author: doll > > Date: Mon Feb 4 15:55:34 2008 > > New Revision: 618495 > > > > URL: http://svn.apache.org/viewvc?rev=618495&view=rev > > Log: > > The initial version of a slightly better shindig website. Feel free to > > make any changes to this site as it is by no means perfect > > > > Added: > > incubator/shindig/trunk/shindig.html > > > > Added: incubator/shindig/trunk/shindig.html > > URL: > > > http://svn.apache.org/viewvc/incubator/shindig/trunk/shindig.html?rev=618495&view=auto > > > > > ============================================================================== > > --- incubator/shindig/trunk/shindig.html (added) > > +++ incubator/shindig/trunk/shindig.html Mon Feb 4 15:55:34 2008 > > @@ -0,0 +1,448 @@ > > +<html><head><title>Shindig - an Apache incubator project for OpenSocial > > and gadgets</title> > > + > > + > > +<style type="text/css"> > > + body { > > + font-family: arial, sans-serif; > > + margin: 2em 5em; > > + padding: 0.5em; > > + border: 1px solid lightgrey; > > + } > > + > > + .tabbar { > > + border-top: 5px solid lightgrey; > > + clear: both; > > + } > > + > > + .tab { > > + float: left; > > + padding: .1em 1em; > > + background-color: #3366EE; > > + color: white; > > + font-weight: bold; > > + font-size: .9em; > > + } > > + > > + .selectedTab { > > + background-color: lightgrey; > > + color: black; > > + } > > + > > + .content { > > + clear:both; > > + padding-top: 0.5em; > > + } > > + > > + .header { > > + font-size: 1.5em; > > + font-weight: bold; > > + padding-bottom: .5em; > > + } > > + > > + .smaller { > > + font-size: smaller; > > + } > > +</style> > > +<script type="text/javascript"> > > + var APPLICATION_TABS = ['home', 'download', 'building', 'contribute', > > 'support']; > > + var tabAnchorPrefix = "#tab-"; > > + > > + function changeActiveTab(activeTab, updateAnchor) { > > + if (activeTab == undefined) > > + return false; > > + if (updateAnchor) > > + location.href = tabAnchorPrefix + activeTab.id; > > + for (var idx in APPLICATION_TABS) { > > + var tab = APPLICATION_TABS[idx]; > > + if (tab == activeTab.id) { > > + document.getElementById(tab).className = 'tab selectedTab'; > > + document.getElementById(tab + 'Div').style.display = 'block'; > > + } else { > > + document.getElementById(tab).className = 'tab'; > > + document.getElementById(tab + 'Div').style.display = 'none'; > > + } > > + } > > + } > > + > > + function activeTabFromAnchor() { > > + // first check for match to tab name > > + var tabAnchorRE = new RegExp(tabAnchorPrefix + "(.*)$", "g"); > > + var tabAnchor = tabAnchorRE.exec(location.href); > > + if (tabAnchor && tabAnchor.length == 2) { > > + var tabAnchorObj = document.getElementById(tabAnchor[1]); > > + if (tabAnchorObj != undefined) { > > + changeActiveTab(tabAnchorObj, false); > > + return; > > + } > > + } > > + // anchor might be inside hidden tab, if so then activate tab > > + var anchorIdx = location.href.indexOf("#"); > > + if (anchorIdx == -1) > > + return; > > + var urlAnchor = location.href.substr(anchorIdx + 1); > > + var anchors = document.getElementsByTagName("a"); > > + for (var idx in anchors) { > > + var anchor = anchors[idx]; > > + if (anchor.name == urlAnchor) { > > + // found anchor, now find parent tab > > + var parent = anchor; > > + do { > > + parent = parent.parentNode; > > + } while (parent && ! /.*Div$/.test(parent.id)) > > + if (! parent) > > + return; // failed > > + var divMatch = /^(.*)Div$/g.exec(parent.id); > > + if (! divMatch || divMatch.length != 2) > > + return; // failed > > + var tabAnchorObj = document.getElementById(divMatch[1]); > > + if (tabAnchorObj == undefined) > > + return; // failed > > + changeActiveTab(tabAnchorObj, false); //SUCCESS! > > + // need to set location again as browser can't navigate > > + // to anchor in hidden tab > > + location.href = location.href; > > + } > > + } > > + } > > +</script></head><body onload="activeTabFromAnchor();"> > > + > > + <table border="0" cellspacing="0" width="100%"> > > + <tbody><tr><!-- SITE BANNER AND PROJECT IMAGE --> > > + <td align="left" valign="top"> > > + > > +<a href="http://www.apache.org/"><img src=" > > http://incubator.apache.org/images/asf_logo_wide.gif" alt="The Apache > > Software Foundation" border="0"></a> > > +</td> > > +<td align="right"> > > +<a href="http://incubator.apache.org/"><img src=" > > http://incubator.apache.org/images/apache-incubator-logo.png" > alt="Apache > > Incubator" border="0"></a> > > +</td> > > + </tr> > > +<tr><td> </td></tr> > > + </tbody></table> > > + > > + > > +<div class="header">Shindig - <span class="smaller"> an Apache > incubator > > project for OpenSocial and gadgets</span></div> > > +<div class="tab selectedTab" onclick="changeActiveTab(this, true);" > > style="cursor: pointer;" id="home">Home</div> > > + > > +<div class="tab" onclick="changeActiveTab(this, true);" style="cursor: > > pointer;" id="download">Download</div> > > +<div class="tab" onclick="changeActiveTab(this, true);" style="cursor: > > pointer;" id="building">Building Shindig</div> > > +<div class="tab" onclick="changeActiveTab(this, true);" style="cursor: > > pointer;" id="contribute">Contribute</div> > > +<div class="tab" onclick="changeActiveTab(this, true);" style="cursor: > > pointer;" id="support">Support</div> > > +<div class="tabbar"></div> > > + > > +<div class="content" id="homeDiv" style="display: block;"> > > + <h3>What is Shindig?</h3> > > + <p>Shindig is a new project in the Apache Software Foundation > incubator > > and is an open source implementation of the <a href=" > > http://code.google.com/apis/opensocial/docs/spec.html">OpenSocial > > specification</a> and <a href=" > > http://code.google.com/apis/gadgets/docs/spec.html">gadgets > > specification</a>.</p> > > + > > +<p>The architectural components of Shindig can be broken down as > > follows:</p> > > +<ul> > > + <li><b>Gadget Container JavaScript </b>-- core JavaScript > foundation > > for general gadget functionality. This JavaScript manages security, > > +communication, UI layout, and feature extensions, such as the > OpenSocial > > API.</li> > > + > > + <li><b>Gadget Server</b> -- an open source version of Google's > > gmodules.com, which is used to render the gadget XML into JavaScript and > > HTML for > > +the container to expose via the container JavaScript. > > + > > + </li><li><b>OpenSocial Container JavaScript</b> -- JavaScript > > environment that sits on top of the Gadget Container JavaScript and > provides > > OpenSocial > > +specific functionality (profiles, friends, activities, datastore).</li> > > + > > + <li><b>OpenSocial Gateway Server</b> (does not yet exist in the > > repository) -- an implementation of the server interface to > > container-specific > > +information, including the OpenSocial REST APIs, with clear extension > > points so others can connect it to their own backends.</li> </ul> > <p></p> > > + > > +</div> > > + > > +<div class="content" id="downloadDiv" style="display: none;"> > > + <h3>Downloading periodic builds of Shindig</h3> > > + <p> > > +We currently do not have an automated builds infrastructure set up to > > +offer periodic builds yet, but hope to have it available soon. Check > > +back here in the near future for downloadable builds of Shindig. </p> > > +<p> > > +In the meantime, please visit the Building Shindig tab for instructions > > on using the code in the repository. > > + </p> > > + > > +</div> > > + > > +<div class="content" id="buildingDiv" style="display: none;"> > > + <h3>Building and running Shindig </h3> > > + > > + <p>The following steps provide useful information on how to build and > > run Shindig. > > + </p> > > + > > + <ul> > > + > > + <li><a href="#preReqs">Prequisites</a></li> > > + <li><a href="#getTheCode">Get the code</a></li> > > + <li><a href="#buildTheCode">Build and run the code (with > > Maven)</a></li> > > + <li><a href="#eclipseProject">Setting up an Eclipse > project</a></li> > > + <li><a href="#caja">Running with Caja</a></li> > > + </ul> > > + > > + > > + <h4><a name="preReqs">Prequisites before building Shindig</a></h4> > > + <p> In order to build Shindig, you must have the following: </p> > > + <ul> > > + <li>Java (JDK/JRE) 1.5 or later installed on your system and the > > JAVA_HOME environment variable set.</li> > > + <ul><li>See: <a href="http://java.sun.com/">http://java.sun.com/ > </a> > > for installation instructions.</li></ul> > > + > > + <li>A Subversion client installed in order to checkout the > code.</li> > > + <ul><li>Instructions for downloading and installing Subversion can > > be found here: <a href="http://subversion.tigris.org/"></a> > > http://subversion.tigris.org/</li></ul> > > + <li>Apache Maven installed to perform the build. > > + <ul><li>Instructions for downloading and installing Maven can be > > found here: <a href="http://maven.apache.org/download.html"> > > http://maven.apache.org/download.html</a></li></ul> > > + </li> > > + </ul> > > + > > + <h4><a name="getTheCode">Getting the code</a></h4> > > + <p> Create a subdirectory and checkout the Shindig code from its > > Subversion repository</p> > > + <ol> > > + <li> <code>mkdir ~/src/shindig</code> (or wherever you'd like to > put > > it)</li> > > + <li> <code>cd ~/src/shindig</code></li> > > + > > + <li> <code>svn co > > http://svn.apache.org/repos/asf/incubator/shindig/trunk/ .</code> </li> > > + </ol> > > + > > + <h4><a name="buildTheCode">Building and running the code <span > > class="smaller">(with Maven)</span></a></h4> > > + > > + > > + <p> To build a Web Archive (WAR) file for the Gadget server and run > > tests, perform the following: </p> > > + > > + <ol> > > + <li> Make sure you have the <a href="#preReqs">prerequisites</a> > > installed first.</li> > > + <li> <code>cd ~/src/shindig/java/\gadgets</code></li> > > + <li> <code>mvn package</code></li> > > + > > + <li> > > +Once the build successfully completes, you can install the built WAR > > +file (gadgets.war) located in the /target subdirectory onto your JEE > > +server.</li> > > + </ol> > > + > > + <p>To build the code (with no tests) and start a Jetty server that > will > > run on at localhost:8080: </p> > > + <p></p><ul> > > + <li><code>mvn jetty:run-war</code></li> > > + </ul><p></p> > > + > > + <p> To run the Jetty server on a different port, use:</p> > > + <p></p><ul><li><code>mvn -Djetty.port=<port> > > jetty:run</code></li></ul><p></p> > > + > > + <p> > > +Once you've either installed the WAR file on your JEE server, or are > > +running locally using the Jetty server, you can test the Gadget server > > +using:</p> > > + <p></p><ul><li> > > http://localhost:<port>/gadgets/ifr?url= > http://www.labpixies.com/campaigns/todo/todo.xml > > </li></ul><p></p> > > + > > + <h4><a name="eclipseProject">Setting up an Eclipse project to build > > Shindig</a></h4> > > + <p> These steps, after completing the previous section, will allow > you > > to > > + build from within Eclipse using the Maven2 plugin. You should first > > + install the Maven plugin, then create the new Java project. > > + </p> > > + > > + <ul><li> Create <code>~/.m2/settings.xml</code> consisting solely of > > + </li></ul> > > + <pre><settings><br></settings><br></pre> > > + > > + <ul><li> Install the Maven2 plugin > > + <ol><li> Help -> Software Updates -> Find and Install > > + > > + </li><li> Search for new features to install > > + </li><li> Create a new remote update site for the Maven 2 plugin > > + <ul><li> Name: Maven2 - Codehaus > > + </li><li> URL: <code>http://m2eclipse.codehaus.org/update/</code> > > + > > + </li></ul> > > + </li><li> Select the site and click "Finish" > > + </li><li> Select only the Maven Integration plug-in (mylyn and > > subclipse integration have other dependencies.) > > + </li><li> Complete the installation > > + > > + </li></ol> > > + </li></ul> > > + <p> > > + </p><ul><li> Setup new workspace and project<br> > > + > > + Creating a new workspace eliminates the performance cost from > existing > > projects and makes it easier to manage the code. > > + <ol><li> File -> Switch Workspace -> Other... > > + </li><li> Select directory to store workspace > > + <ul><li> Do not select a parent directory of the shindig source (e.g. > > + ~/src/shindig) as Eclipse won't allow you to create the Java project. > > + > > + </li><li> Something like <code>~/eclipse/workspaces/shindig</code> > > would work fine > > + </li></ul> > > + > > + </li><li> File -> New -> Java Project > > + <ol><li> Select 'Create project from existing source' and navigate > > to:<br> > > + ~/src/shindig/java/gadgets > > + </li><li> Click Finish > > + </li><li> If you see a dialog for "Open Associated Perspective", > click > > Ok. > > + Don't worry about the errors after loading as they will be fixed in > the > > next step. > > + </li></ol> > > + > > + </li><li> Right-click the project, select <code>Maven : Enable > > Dependency Management</code> > > + </li><li> Right-click the project, select <code>Maven : Update Source > > Folders</code> > > + </li></ol> > > + </li></ul> > > + <p> > > + </p><p> > > + > > + > > +</p><h4><font size="3"><a name="Running_inside_Eclipse"> Running inside > > Eclipse </a></font></h4> > > + > > + <p> > > + To debug the server in Eclipse, follow the last two steps <a href=" > > > http://www.google.com/url?sa=D&q=http%3A%2F%2Fcwiki.apache.org%2FWICKET%2Fmaven-jetty-plugin.html > " > > target="_top">here</a> (takes a few > > +minutes to set up): > > + </p><p> > > + </p><ul><li> "Using eclipse external tools" > > + </li><li> "Attaching to the server running in debug mode, using > > eclipse" > > + </li></ul> > > + > > + <p> > > + <b>Note:</b> You must have set up Eclipse to build the code or do > > <code>mvn package</code> yourself after making changes, but you won't > need > > to > > +restart Jetty to see your changes. > > + > > + </p><p> > > +</p><h3><a name="caja">Running with Caja </a></h3> > > + <p> Caja is an > > +important part of OpenSocial that greatly enhances JavaScript security. > > +Caja is managed in a separate open source project hosted by Google code > > +projects. For more information on Caja, see: <a href=" > > http://code.google.com/p/google-caja/wiki/CajaEasyIntro"> > > http://code.google.com/p/google-caja/wiki/CajaEasyIntro</a> > > + > > + </p><p> > > + </p><ol><li> Load this page: <a href=" > > http://localhost:8080/gadgets/samplecontainer/samplecontainer.html" > > target="_top"> > > http://localhost:8080/gadgets/samplecontainer/samplecontainer.html</a> > > + </li><li> Point it to this gadget: <a href=" > > > http://www.google.com/url?sa=D&q=http%3A%2F%2Fhosting.gmodules.com%2Fig%2Fgadgets%2Ffile%2F117247905274371511495%2FSocialHelloWorld.xml > " > > target="_top"> > > > http://hosting.gmodules.com/ig/gadgets/file/117247905274371511495/SocialHelloWorld.xml > > </a> > > + </li></ol> > > + <p>To see the cajoled code (Firefox only), right-click inside the > > iframe and do "This Frame -> View Frame Source"</p> > > + > > + <h3><a name="Additonal_reading"> Additonal reading </a></h3> > > + Read <a href=" > > > http://svn.apache.org/repos/asf/incubator/shindig/trunk/java/gadgets/README > ">java/gadgets/README</a> > > for original instructions on > > +how to start up your own Shindig Gadget Server. > > + <p> > > + Read <a href=" > > > http://svn.apache.org/repos/asf/incubator/shindig/trunk/javascript/README > ">javascript/README</a> > > for instructions for using the > > +Shindig Gadget > > + Container <a href=" > > http://wiki.corp.google.com/twiki/bin/view/Main/JavaScript > ">JavaScript</a> > > to enable your page to render Gadgets using > > + gmodules.com or a server started up as described above. > > + </p> > > +</div> > > + > > + > > + > > +<div class="content" id="contributeDiv" style="display: none;"> > > + > > + <h3>How to contribute to Shindig</h3> > > + <p> > > +Shindig is strengthened by accepting quality contributions from a wide > > +variety of sources. These steps serve as an in-progress guide to > > +contributing code into the <a href=" > > http://svn.apache.org/repos/asf/incubator/shindig/trunk/">source code > > repository for Shindig</a>. > > + > > +</p> > > + > > + <ul> > > + <li><a href="#codeSubmissions">Code submissions</a> > > + <ul> > > + <li><a href="#creatingPatches">Creating patches</a></li> > > + <li><a href="#submittingPatches">Submitting Patches</a></li> > > + </ul> > > + > > + </li> > > + </ul> > > + > > + > > + <h3><a name="codeSubmissions"> Code Submissions </a></h3> > > + > > + > > +<p> > > + </p><p> > > + </p><h4><a name="creatingPatches"> Creating Patches </a></h4> > > + > > + <p> > > + For new people to the project, creating patches is the way to get > > started and build your reputation. > > + </p><p> > > + </p><ol><li> Start editing the code, since Subversion is being used > no > > checkout is needed > > + </li><li> Move to top level folder, e.g. <code>cd > ~/src/shindig</code> > > + </li><li> Generate diffs using <code>svn di > fix-xxx-bug.patch > > </code> > > + > > + </li><li> If needed, remove from the patch file any changes you do > not > > want to submit until later > > + </li><li> If you're new, create an account on <a href=" > > > http://www.google.com/url?sa=D&q=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FSHINDIG > " > > target="_top">https://issues.apache.org/jira/browse/SHINDIG</a> > > + </li><li> Create a new issue with the patch: > > + <ol><li> Follow the "New" link: <a href=" > > > http://www.google.com/url?sa=D&q=https%3A%2F%2Fissues.apache.org%2Fjira%2Fsecure%2FCreateIssue%21default.jspa > " > > target="_top"> > > https://issues.apache.org/jira/secure/CreateIssue!default.jspa<https://issues.apache.org/jira/secure/CreateIssue%21default.jspa> > <https://issues.apache.org/jira/secure/CreateIssue%21default.jspa> > > </a> > > + </li><li> For the "Issue Type", select "Bug", "Improvement" or "New > > Feature" > > + </li><li> Click "Next>>" > > + > > + </li><li> Enter summary / description and select the > > component<br></li><li> Click "Create" > > + </li><li> Click "Attach file" and select the > <code>mychanges.patch</code> > > file > > + </li><li> Check the "Grant license to <a href=" > > http://wiki.corp.google.com/twiki/bin/view/Main/ASF">ASF</a> for > inclusion > > in <a href="http://wiki.corp.google.com/twiki/bin/view/Main/ASF">ASF</a> > > works" option > > + > > + </li><li> Click on "Watching" and then click on "Start" watching to > get > > updates > > + </li></ol> > > + > > + </li></ol> > > + <p> > > + The newly created issue will automatically be sent to <a > href="mailto: > > [email protected]">[email protected]</a>. > > You > > +should also subscribe using <a href="mailto: > > [EMAIL PROTECTED]"> > > [EMAIL PROTECTED]</a> to see all > > +the feedback, in which case you'll get the updates on the issue without > > needing to "Watch" them individually. > > + </p><p> > > + </p><p> > > + </p><h4><a name="submittingPatches"> Submitting Patches </a></h4> > > + > > + <p> > > +If you have commit permission, then you can submit directly from > > +subversion and should also look at patches provided by others. </p><p> > > + </p><ol><li> Move to top level folder, e.g. <code>cd > > ~/src/shindig</code> (you might find it helpful to create a separate > tree > > from your working > > +tree) > > + </li><li> Apply patch: <code>patch p0 < mychanges.patch</code> > > + > > + </li><li> <code>svn commit</code> > > + </li><li> For the log message put <code>Applied patch for JIRA issue > > SHINDIG-XXX</code>, > > + where XXX is the JIRA issue number you are applying the patch for. > This > > + will automatically update the JIRA issue with a link to the > subversion > > + commit. You don't need additional comments as the JIRA issue should > > + contain enough information already. > > + > > + </li></ol> > > + <p> > > + </p><h4><a name="Example"> Example </a></h4> > > + <p> > > + > > + </p><ul><li> JIRA Issue with patch: <a href=" > > > http://www.google.com/url?sa=D&q=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FSHINDIG-13 > " > > target="_top">https://issues.apache.org/jira/browse/SHINDIG-13</a> > > + </li><li> Code Change: <a href=" > > > http://www.google.com/url?sa=D&q=http%3A%2F%2Fsvn.apache.org%2Fviewvc%3Fview%3Drev%26revision%3D612299 > " > > target="_top">http://svn.apache.org/viewvc?view=rev&revision=612299 > > </a> > > + </li></ul> > > + <p> > > + > > + </p><p> > > + > > + </p> > > + > > +</div> > > + > > +<div class="content" id="supportDiv" style="display: none;"> > > + <h3><a name="mailingList">Mailing List </a></h3> > > + <p> > > +</p><ul> > > +<li>To subscribe to the Shindig mailing list, send a blank email to <a > > href="mailto:[EMAIL PROTECTED]"> > > [EMAIL PROTECTED]</a></li> > > +<li>The email archives are located at: <a href=" > > http://mail-archives.apache.org/mod_mbox/incubator-shindig-dev/"> > > http://mail-archives.apache.org/mod_mbox/incubator-shindig-dev/</a></li> > > + > > +</ul> > > + <p></p> > > + > > + <h3><a name="bugs">Issue Tracker (using JIRA)</a></h3> > > + <p> > > + To file bugs or feature requests, please use <a href=" > > https://issues.apache.org/jira/secure/BrowseProject.jspa?id=12310741 > ">Shindig's > > issue > > +tracker (JIRA)</a>: > > + </p><ol> > > + <li>Login to the issue tracker (top right corner) or follow the > > instructions to make a new account (anyone can make an account).</li> > > + > > + <li>Once logged in you should be able to see all of Shindig's > open > > issues. </li> > > + <li>If the issue has not been filed, use the "Create a new issue" > > link (this will not be shown if you are not logged in).</li> > > + </ol> > > + <p></p> > > + > > +<!-- disabled until we have a faq > > + <h3><a name="FAQ">FAQ </a></h3> > > + <p> > > + <ol> > > + <li>Why don't you have any questions in your FAQ?</li> > > + <ul><li>That's a great question!</li></ul> > > + </ol> > > + </p> > > +--> > > +</div> > > + > > + > > + > > +</body></html> > > > > > > > > > -- > Internet Related Technologies - http://www.irt.org >

