summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Terry2013-03-06 14:37:10 (EST)
committer David Terry2013-03-06 14:37:10 (EST)
commita486629a868a91c35f7aa20ec960833a32894312 (patch)
treec31492dc6319f837386ea342a902486ff4ac16e3
parentaa52751bf201d365427e92c0c2fe0b02f7e31f8e (diff)
downloadorg.eclipse.lyo.core-a486629a868a91c35f7aa20ec960833a32894312.zip
org.eclipse.lyo.core-a486629a868a91c35f7aa20ec960833a32894312.tar.gz
org.eclipse.lyo.core-a486629a868a91c35f7aa20ec960833a32894312.tar.bz2
Bug 402577 - Initial contribution of SDK, tests suites and RIO for OSLCrefs/changes/05/10905/1
Tracked Resource Set and ACP Specifications Change-Id: I55859e4a448238f734bd3474361254b6573515db Signed-off-by: David Terry <dgterry@us.ibm.com>
-rw-r--r--org.eclipse.lyo.core.trs/.classpath7
-rw-r--r--org.eclipse.lyo.core.trs/.project23
-rw-r--r--org.eclipse.lyo.core.trs/about.html33
-rw-r--r--org.eclipse.lyo.core.trs/license/edl-v10.html60
-rw-r--r--org.eclipse.lyo.core.trs/license/epl-v10.html259
-rw-r--r--org.eclipse.lyo.core.trs/license/notice.html109
-rw-r--r--org.eclipse.lyo.core.trs/pom.xml80
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/AbstractChangeLog.java27
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Base.java159
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeEvent.java83
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeLog.java157
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Creation.java39
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Deletion.java39
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/EmptyChangeLog.java82
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/HttpConstants.java1025
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Modification.java38
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TRSConstants.java98
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TrackedResourceSet.java101
-rw-r--r--org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/package-info.java26
19 files changed, 2445 insertions, 0 deletions
diff --git a/org.eclipse.lyo.core.trs/.classpath b/org.eclipse.lyo.core.trs/.classpath
new file mode 100644
index 0000000..a2a0d09
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/main/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.lyo.core.trs/.project b/org.eclipse.lyo.core.trs/.project
new file mode 100644
index 0000000..2ff41a7
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.lyo.core.trs</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.lyo.core.trs/about.html b/org.eclipse.lyo.core.trs/about.html
new file mode 100644
index 0000000..e0fbbb2
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/about.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>About</title>
+</head>
+<body lang="EN-US">
+ <h2>About This Content</h2>
+ <p>13 December, 2011</p>
+ <h3>License</h3>
+ <p>
+ The Eclipse Foundation makes available all content in this plug-in
+ (&quot;Content&quot;). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 1.0 (&quot;EPL&quot;) and Eclipse Distribution
+ License Version 1.0 (&quot;EDL&quot;). A copy of the EPL is available
+ at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+ and a copy of the EDL is available at <a
+ href="http://www.eclipse.org/org/documents/edl-v10.php">http://www.eclipse.org/org/documents/edl-v10.php</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.
+ </p>
+ <p>If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ (&quot;Redistributor&quot;) and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL and EDL still apply to any
+ source code in the Content and such source code may be obtained at
+ <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+</body>
+</html> \ No newline at end of file
diff --git a/org.eclipse.lyo.core.trs/license/edl-v10.html b/org.eclipse.lyo.core.trs/license/edl-v10.html
new file mode 100644
index 0000000..26b0770
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/license/edl-v10.html
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Distribution License - Version 1.0</title>
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style>
+
+</head>
+
+<body lang="EN-US">
+
+<p><b>Eclipse Distribution License - v 1.0</b></p>
+
+<p>Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors. </p>
+
+<p>All rights reserved.</p>
+<p>Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+<ul><li>Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer. </li>
+<li>Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution. </li>
+<li>Neither the name of the Eclipse Foundation, Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission. </li></ul>
+</p>
+<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.</p>
+
+</body>
+
+</html>
+
diff --git a/org.eclipse.lyo.core.trs/license/epl-v10.html b/org.eclipse.lyo.core.trs/license/epl-v10.html
new file mode 100644
index 0000000..1107453
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/license/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html> \ No newline at end of file
diff --git a/org.eclipse.lyo.core.trs/license/notice.html b/org.eclipse.lyo.core.trs/license/notice.html
new file mode 100644
index 0000000..80720cd
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/license/notice.html
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+<h2>Eclipse Foundation Software User Agreement</h2>
+<p>13 December, 2011</p>
+
+<h3>Usage Of Content</h3>
+
+<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY &quot;CONTENT&quot;). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
+ OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
+ NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+ CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
+
+<h3>Applicable Licenses</h3>
+
+<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
+ (&quot;EPL&quot;). A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+ For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
+ repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
+
+<ul>
+ <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;. Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
+ and/or Fragments associated with that Feature.</li>
+ <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
+</ul>
+
+<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
+Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;). Abouts and Feature Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</p>
+
+<ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
+ <li>Feature directories</li>
+</ul>
+
+<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
+installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
+inform you where you can locate them. Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
+Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
+that directory.</p>
+
+<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
+
+<ul>
+ <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
+ <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
+ <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
+ <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
+ <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
+ <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
+</ul>
+
+<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please
+contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
+
+
+<h3>Use of Provisioning Technology</h3>
+
+<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
+ Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
+ other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ (&quot;Specification&quot;).</p>
+
+<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
+ applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
+ in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
+ Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
+
+<ol>
+ <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
+ on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
+ product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
+ Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
+ the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
+ indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
+</ol>
+
+<h3>Cryptography</h3>
+
+<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
+ another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
+ possession, or use, and re-export of encryption software, to see if this is permitted.</p>
+
+<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
+</body>
+</html>
+
diff --git a/org.eclipse.lyo.core.trs/pom.xml b/org.eclipse.lyo.core.trs/pom.xml
new file mode 100644
index 0000000..b6213dd
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/pom.xml
@@ -0,0 +1,80 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.eclipse.lyo</groupId>
+ <version>0.5.0-SNAPSHOT</version>
+ <name>OSLC TRS Toolkit</name>
+ <artifactId>oslc-trs</artifactId>
+ <description>Software development kit to assist with TRS adoption.</description>
+
+ <repositories>
+ <repository>
+ <id>eclipse.lyo.release</id>
+ <url>http://gearbox-build.rtp.raleigh.ibm.com:8081/nexus/content/repositories/eclipse.lyo.release/</url>
+ </repository>
+ <repository>
+ <id>eclipse.lyo</id>
+ <url>http://gearbox-build.rtp.raleigh.ibm.com:8081/nexus/content/repositories/eclipse.lyo/</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.lyo.oslc4j.core</groupId>
+ <artifactId>oslc4j-wink</artifactId>
+ <version>[1.0,)</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.lyo.oslc4j.core</groupId>
+ <artifactId>oslc4j-jena-provider</artifactId>
+ <version>[1.1-SNAPSHOT,)</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>oslc-trs</finalName>
+ <outputDirectory>target/classes</outputDirectory>
+ <plugins>
+
+ <!-- Compiler Plugin -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.3.2</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+
+ <!-- Source Jar Plugin -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Javadoc Plugin -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-javadocs</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+</project> \ No newline at end of file
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/AbstractChangeLog.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/AbstractChangeLog.java
new file mode 100644
index 0000000..a4882e3
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/AbstractChangeLog.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import org.eclipse.lyo.oslc4j.core.model.AbstractResource;
+
+/**
+ * Abstract base class for {@link ChangeLog} and {@link EmptyChangeLog}
+ * due to differences between RDF/XML output for a change log with
+ * and without entries.
+ */
+public abstract class AbstractChangeLog extends AbstractResource
+{
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Base.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Base.java
new file mode 100644
index 0000000..7ec960a
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Base.java
@@ -0,0 +1,159 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.RDFS_MEMBER;
+import static org.eclipse.lyo.core.trs.TRSConstants.RDFS_TERM_MEMBER;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_CUTOFFEVENT;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_NAMESPACE;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_NEXT_PAGE;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_TERM_CUTOFFEVENT;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_TERM_NEXT_PAGE;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_TYPE_BASE;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcDescription;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcName;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespace;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcPropertyDefinition;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcResourceShape;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcTitle;
+import org.eclipse.lyo.oslc4j.core.model.AbstractResource;
+
+/**
+ * The Base resources of a Tracked Resource Set are represented by an RDF
+ * container where each member references a Resource that was in the Resource
+ * Set at the time the Base was computed. HTTP GET on a Base URI returns an RDF
+ * container with the following structure:
+ *
+@prefix oslc_trs: <http://open-services.net/ns/core/trs#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+
+<https://.../myResources>
+ oslc_trs:cutoffIdentifier "2010-10-27T17:39:31.000Z#101" ;
+ rdfs:member <https://.../WorkItem/1> ;
+ rdfs:member <https://.../WorkItem/2> ;
+ rdfs:member <https://.../WorkItem/3> ;
+ ...
+ rdfs:member <https://.../WorkItem/199> ;
+ rdfs:member <https://.../WorkItem/200> .
+
+Each Resource in the Resource Set MUST be referenced from the container using
+an rdfs:member predicate. The Base MAY be broken into multiple pages, in which
+case the standard OSLC paging (reference: Resource Paging) mechanism is used to
+connect one page to the next. (Note that an OSLC queryBase satisfies these
+requirements, which may allow a Server to use existing queryBases as Base
+containers, but there is no requirement that the Tracked Resource Set Base also
+be a queryBase.) The Tracked Resource Set protocol does not attach significance
+to the order in which a Server enumerates the resources in the Base or breaks
+the Base up into pages.
+
+As shown above, a Base usually provides an oslc_trs:cutoffIdentifier property,
+whose value is the identifier (i.e., dcterms:identifier) of the most recent
+Change Event in the corresponding Change Log that is already reflected in the
+Base. This corresponds to the latest point in the Change Log from which a
+Client can begin incremental monitoring/updating if it wants to remain
+synchronized with further changes to the Resource Set. As mentioned above,
+the cutoff Change Event MUST appear in the non-truncated portion of the Change
+Log. When the oslc_trs:cutoffIdentifier is omitted, the Base enumerates the
+(possibly empty) Resource Set at the beginning of time.
+
+The Base is only an approximation of the Resource Set. A Base might omit mention
+of a Resource that ought to have been included or include a Resource that ought
+to have been omitted. For each erroneously reported Resource in the Base, the
+Server MUST at some point include a corrective Change Event in the Change Log
+more recent that the base cutoff event. The corrective Change Event corrects the
+picture for that Resource, allowing the Client to compute the correct set of
+member Resources. A corrective Change Event might not appear in the Change Log
+that was retrieved when the Client dereferenced the Tracked Resource Set URI.
+The Client might only see a corrective Change Event when it processes the Change
+Log resource obtained by dereferencing the Tracked Resource Set URI on later
+occasions.
+
+A Server MUST refer to a given resource using the exact same URI in the Base
+( rdfs:member reference) and every Change Event ( oslc_trs:changed reference)
+for that resource.
+ *
+ * @author kmbauer
+ *
+ */
+@OslcNamespace(TRS_NAMESPACE)
+@OslcResourceShape(title = "Tracked Resource Set Base Shape", describes = TRS_TYPE_BASE)
+public class Base extends AbstractResource {
+ private List<URI> members;
+ private URI cutoffEvent;
+ private URI nextPage;
+
+
+ /**
+ * @return the members
+ */
+ @OslcName(RDFS_TERM_MEMBER)
+ @OslcDescription("A member Resource of the Resource Set.")
+ @OslcPropertyDefinition(RDFS_MEMBER)
+ @OslcTitle("Member")
+ public List<URI> getMembers() {
+ if(members == null){
+ members = new ArrayList<URI>();
+ }
+ return members;
+ }
+
+ /**
+ * @param members the members to set
+ */
+ public void setMembers(List<URI> members) {
+ this.members = members;
+ }
+
+ /**
+ * @return the cutoffIdentifier
+ */
+ @OslcName(TRS_TERM_CUTOFFEVENT)
+ @OslcDescription("The most recent Change Log entry that is accounted for in this Base. When rdf:nil, the Base is an enumeration at the start of time.")
+ @OslcPropertyDefinition(TRS_CUTOFFEVENT)
+ @OslcTitle("Cutoff Event")
+ public URI getCutoffEvent() {
+ return cutoffEvent;
+ }
+ /**
+ * @param cutoffIdentifier the cutoffIdentifier to set
+ */
+ public void setCutoffEvent(URI cutoffEvent) {
+ this.cutoffEvent = cutoffEvent;
+ }
+
+ /**
+ * @return the nextPage
+ */
+ @OslcName(TRS_TERM_NEXT_PAGE)
+ @OslcDescription("The representation of a page resource will contain a subset of the Base's rdfs:member predicates. In addition, it will contain another triple, whose subject is the page resource itself (i.e., not the Base resource), with a reference to the next page.")
+ @OslcPropertyDefinition(TRS_NEXT_PAGE)
+ @OslcTitle("Next Page")
+ public URI getNextPage() {
+ return nextPage;
+ }
+
+ /**
+ * @param nextPage the nextPage to set
+ */
+ public void setNextPage(URI nextPage) {
+ this.nextPage = nextPage;
+ }
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeEvent.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeEvent.java
new file mode 100644
index 0000000..15bb044
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeEvent.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import java.net.URI;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcDescription;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcName;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcPropertyDefinition;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcTitle;
+import org.eclipse.lyo.oslc4j.core.model.AbstractResource;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.*;
+
+/**
+ * Each entry in a trs:changes list is a Local Resource representing a Change Event with the following properties:
+ */
+public class ChangeEvent extends AbstractResource {
+ private URI changed;
+ private int order;
+
+ public ChangeEvent() {}
+
+ /**
+ * @param about
+ * @param changed
+ * @param order
+ */
+ public ChangeEvent(URI about, URI changed, int order) {
+ super(about);
+ this.changed = changed;
+ this.order = order;
+ }
+
+ /**
+ * @return the changed
+ */
+ @OslcName(TRS_TERM_CHANGED)
+ @OslcDescription("The Resource that has changed.")
+ @OslcPropertyDefinition(TRS_CHANGED)
+ @OslcTitle("Changed")
+ public URI getChanged() {
+ return changed;
+ }
+
+ /**
+ * @param changed the changed to set
+ */
+ public void setChanged(URI changed) {
+ this.changed = changed;
+ }
+
+ /**
+ * @return the order
+ */
+ @OslcName(TRS_TERM_ORDER)
+ @OslcDescription("The sequence in time of the Change Event. The order of Change Events sorted according to this property is the same as they appear in the trs:changes list.")
+ @OslcPropertyDefinition(TRS_ORDER)
+ @OslcTitle("Order")
+ public int getOrder() {
+ return order;
+ }
+
+ /**
+ * @param order the order to set
+ */
+ public void setOrder(int order) {
+ this.order = order;
+ }
+} \ No newline at end of file
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeLog.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeLog.java
new file mode 100644
index 0000000..6d5a704
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/ChangeLog.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcDescription;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcName;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespace;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcPropertyDefinition;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcRdfCollectionType;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcResourceShape;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcTitle;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.*;
+
+/**
+ * A Change Log provides a list of changes organized in inverse chronological
+ * order, most recent first. The following example illustrates the contents of
+ * a Change Log:
+ *
+# Resource: http://cm1.example.com/trackedResourceSet
+@prefix trs: <http://jazz.net/ns/trs#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<http://cm1.example.com/trackedResourceSet>
+ a trs:TrackedResourceSet ;
+ trs:base <http://cm1.example.com/baseResources> ;
+ trs:changeLog [
+ a trs:ChangeLog ;
+ trs:changes (
+ <urn:urn-3:cm1.example.com:2010-10-27T17:39:33.000Z:103>
+ <urn:urn-3:cm1.example.com:2010-10-27T17:39:32.000Z:102>
+ <urn:urn-3:cm1.example.com:2010-10-27T17:39:31.000Z:101>
+ ) .
+ ] .
+
+<urn:urn-3:cm1.example.com:2010-10-27T17:39:33.000Z:103>
+ a trs:Creation ;
+ trs:changed <http://cm1.example.com/bugs/23> ;
+ trs:order "103"^^xsd:integer .
+
+<urn:urn-3:cm1.example.com:2010-10-27T17:39:32.000Z:102>
+ a trs:Modification ;
+ trs:changed <http://cm1.example.com/bugs/22> ;
+ trs:order "102"^^xsd:integer .
+
+<urn:urn-3:cm1.example.com:2010-10-27T17:39:31.000Z:101>
+ a trs:Deletion ;
+ trs:changed <http://cm1.example.com/bugs/21> ;
+ trs:order "101"^^xsd:integer .
+
+As shown, a Change Log provides a set of Change Event entries in a single-valued
+RDF collection-type property called trs:changes. An RDF collection, i.e., a
+linked list (reference: RDF Collections), is used in the Change Log to ensure
+that the entries retain their correct (inverse chronological) order.
+
+Change Events MUST have URIs (i.e., they cannot be Blank Nodes) to allow Clients
+to recognize entries they have seen before. The URI is only used to identify an
+event (i.e., it need not be HTTP GETable) and therefore MAY be a URN, as shown
+in the example.
+
+Each Change Event has a sequence number, trs:order; sequence numbers are
+non-negative integer values that increase over time. A Change Event entry
+carries the URI of the changed Resource, trs:changed, and an indication,
+via rdf:type (a.k.a. "a" in Turtle), of whether the Resource was added to the
+Resource Set, removed from the Resource Set, or changed state while a member of
+the Resource Set. The first entry in the Change Log, i.e., "103" in this
+example, is the most recent change. As changes continue to occur, a Server MUST
+add new Change Events to the front of the list. The sequence number
+(i.e., trs:order) of newer entries MUST be greater than previous ones. The
+sequence numbers MAY be consecutive numbers but need not be.
+
+Note that the actual time of change is not included in a Change Event. Only a
+sequence number, representing the "sequence in time" of each change is provided.
+The URI of a Change Event MUST be guaranteed unique, even in the wake of a
+Server roll back where sequence numbers get reused. A time stamp MAY be used to
+generate such a URI, as in the above example, although other ways of generating
+a unique URI are also possible.
+
+A Change Log represents a series of changes to its corresponding Resource Set
+over some period of time. The Change Log MUST contain Change Events for every
+Resource creation, deletion, and modification during that period. A Server MUST
+report a Resource modification event if a GET on it would return a semantically
+different response from previously. For a resource with RDF content, a
+modification is anything that would affect the set of RDF triples in a
+significant way. A Server MAY safely report a modification event even in cases
+where there would be no significant difference in response.
+
+The Server SHOULD NOT report unnecessary Change Events although it might happen,
+for example, if changes occur while the base is being computed. A Client SHOULD
+ignore a creation event for a Resource that is already a member of the Resource
+Set, and SHOULD ignore a deletion or modification event for a Resource that is
+not a member of the Resource Set.
+ */
+@OslcNamespace(TRS_NAMESPACE)
+@OslcResourceShape(title = "Change Log Shape", describes = TRS_TYPE_CHANGE_LOG)
+public class ChangeLog extends AbstractChangeLog
+{
+ private List<ChangeEvent> changes;
+ private URI previous;
+
+ /**
+ * @return the changes
+ */
+ @OslcName(TRS_TERM_CHANGES)
+ @OslcDescription("The list of Change Event entries, ordered by decreasing Change Event trs:order. Events that occurred later appear earlier in the list.")
+ @OslcPropertyDefinition(TRS_CHANGES)
+ @OslcTitle("Changes")
+ @OslcRdfCollectionType
+ public List<ChangeEvent> getChanges() {
+ if(changes == null){
+ changes = new ArrayList<ChangeEvent>();
+ }
+ return changes;
+ }
+
+ /**
+ * @param changes the changes to set
+ */
+ public void setChanges(List<ChangeEvent> changes) {
+ this.changes = changes;
+ }
+
+ /**
+ * @return the previous
+ */
+ @OslcName(TRS_TERM_PREVIOUS)
+ @OslcDescription("The continuation of the Change Log, containing the next group of chronologically earlier Change Events. ")
+ @OslcPropertyDefinition(TRS_PREVIOUS)
+ @OslcTitle("Previous")
+ public URI getPrevious() {
+ return previous;
+ }
+
+ /**
+ * @param previous the previous to set
+ */
+ public void setPrevious(URI previous) {
+ this.previous = previous;
+ }
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Creation.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Creation.java
new file mode 100644
index 0000000..ed2442f
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Creation.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import java.net.URI;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespace;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcResourceShape;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.*;
+
+@OslcNamespace(TRS_NAMESPACE)
+@OslcResourceShape(title = "Creation Shape", describes = TRS_TYPE_CREATION)
+public class Creation extends ChangeEvent {
+
+ public Creation() {}
+
+ /**
+ * @param about
+ * @param changed
+ * @param order
+ */
+ public Creation(URI about, URI changed, int order) {
+ super(about, changed, order);
+ }
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Deletion.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Deletion.java
new file mode 100644
index 0000000..7bf1217
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Deletion.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import java.net.URI;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespace;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcResourceShape;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.*;
+
+@OslcNamespace(TRS_NAMESPACE)
+@OslcResourceShape(title = "Deletion Shape", describes = TRS_TYPE_DELETION)
+public class Deletion extends ChangeEvent {
+
+ public Deletion() {}
+
+
+ /**
+ * @param changed
+ * @param order
+ */
+ public Deletion(URI about, URI changed, int order) {
+ super(about, changed, order);
+ }
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/EmptyChangeLog.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/EmptyChangeLog.java
new file mode 100644
index 0000000..e1abbdc
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/EmptyChangeLog.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.RDF_NIL;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_CHANGES;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_NAMESPACE;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_TERM_CHANGES;
+import static org.eclipse.lyo.core.trs.TRSConstants.TRS_TYPE_CHANGE_LOG;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcDescription;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcName;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespace;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcPropertyDefinition;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcResourceShape;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcTitle;
+
+/**
+ * A Change Log provides a list of changes organized in inverse chronological
+ * order, most recent first. The following example illustrates the contents of a
+ * Change Log:
+ *
+# Resource: http://cm1.example.com/trackedResourceSet
+@prefix trs: <http://jazz.net/ns/trs#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+<http://cm1.example.com/trackedResourceSet>
+ a trs:TrackedResourceSet ;
+ trs:base <http://cm1.example.com/baseResources> ;
+ trs:changeLog [
+ a trs:ChangeLog ;
+ trs:changes <http://www.w3.org/2000/01/rdf-schema#nil> .
+ ] .
+As shown, an empty Change Log just provides an single trs;changes element with a value
+of "http://www.w3.org/2000/01/rdf-schema#nil".
+ */
+@OslcNamespace(TRS_NAMESPACE)
+@OslcResourceShape(title = "Change Log Shape", describes = TRS_TYPE_CHANGE_LOG)
+@OslcName("ChangeLog")
+public class EmptyChangeLog extends AbstractChangeLog
+{
+ private URI changes;
+
+ /**
+ * @return the changes
+ * @throws URISyntaxException
+ */
+ @OslcName(TRS_TERM_CHANGES)
+ @OslcDescription("The list of Change Event entries, ordered by decreasing Change Event trs:order. Events that occurred later appear earlier in the list.")
+ @OslcPropertyDefinition(TRS_CHANGES)
+ @OslcTitle("Changes")
+ public URI getChanges() throws URISyntaxException {
+ if(changes == null) {
+ return new URI(RDF_NIL);
+ }
+
+ return changes;
+ }
+
+ /**
+ * @param changes the changes to set
+ */
+ public void setChanges(URI changes) {
+ this.changes = changes;
+ }
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/HttpConstants.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/HttpConstants.java
new file mode 100644
index 0000000..1873b9d
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/HttpConstants.java
@@ -0,0 +1,1025 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+
+/**
+ * This helper utility defines commonly used string literals from the HTTP
+ * specifications. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616.html">RFC2616</a>. See <a
+ * href="http://tools.ietf.org/html/rfc4229">RFC4229</a>.
+ * @since 1.0
+ */
+public class HttpConstants {
+
+ /**
+ * General-header field name for <i>Cache-Control</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9"
+ * >RFC2616 Section 14.9</a>
+ */
+ public static final String CACHE_CONTROL = "Cache-Control"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Connection</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.10"
+ * >RFC2616 Section 14.10</a>
+ */
+ public static final String CONNECTION = "Connection"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Date</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18"
+ * >RFC2616 Section 14.18</a>
+ */
+ public static final String DATE = "Date"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Pragma</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32"
+ * >RFC2616 Section 14.32</a>
+ */
+ public static final String PRAGMA = "Pragma"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Trailer</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.40"
+ * >RFC2616 Section 14.40</a>
+ */
+ public static final String TRAILER = "Trailer"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Transfer-Encoding</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.41"
+ * >RFC2616 Section 14.41</a>
+ */
+ public static final String TRANSFER_ENCODING = "Transfer-Encoding"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Upgrade</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.42"
+ * >RFC2616 Section 14.42</a>
+ */
+ public static final String UPGRADE = "Upgrade"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Via</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.45"
+ * >RFC2616 Section 14.45</a>
+ */
+ public static final String VIA = "Via"; //$NON-NLS-1$
+
+ /**
+ * General-header field name for <i>Warning</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.46"
+ * >RFC2616 Section 14.46</a>
+ */
+ public static final String WARNING = "Warning"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>public</i> cache response directive for {@link #CACHE_CONTROL} general-header
+ * field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1"
+ * >RFC2616 Section 14.9.1</a>
+ */
+ public static final String PUBLIC = "public"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>private</i> cache response directive for {@link #CACHE_CONTROL} general-header
+ * field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1"
+ * >RFC2616 Section 14.9.1</a>
+ */
+ public static final String PRIVATE = "private"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>no-cache</i> cache request/response directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1"
+ * >RFC2616 Section 14.9.1</a>
+ */
+ public static final String NO_CACHE = "no-cache"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>no-store</i> cache request/response directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2"
+ * >RFC2616 Section 14.9.2</a>
+ */
+ public static final String NO_STORE = "no-store"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>max-age</i> cache request/response directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3"
+ * >RFC2616 Section 14.9.3</a>
+ */
+ public static final String MAX_AGE = "max-age"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>max-stale</i> cache request directive for {@link #CACHE_CONTROL} general-header
+ * field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3"
+ * >RFC2616 Section 14.9.3</a>
+ */
+ public static final String MAX_STALE = "max-stale"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>min-fresh</i> cache request directive for {@link #CACHE_CONTROL} general-header
+ * field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3"
+ * >RFC2616 Section 14.9.3</a>
+ */
+ public static final String MIN_FRESH = "min-fresh"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>s-maxage</i> cache response directive for {@link #CACHE_CONTROL} general-header
+ * field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.3"
+ * >RFC2616 Section 14.9.3</a>
+ */
+ public static final String S_MAXAGE = "s-maxage"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>proxy-maxage</i> cache request directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4"
+ * >RFC2616 Section 14.9.4</a>
+ */
+ public static final String PROXY_MAXAGE = HttpConstants.S_MAXAGE; // descriptive
+ // alias
+
+ /**
+ * Value of <i>only-if-cached</i> cache request directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4"
+ * >RFC2616 Section 14.9.4</a>
+ */
+ public static final String ONLY_IF_CACHED = "only-if-cached"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>must-revalidate</i> cache response directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4"
+ * >RFC2616 Section 14.9.4</a>
+ */
+ public static final String MUST_REVALIDATE = "must-revalidate"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>proxy-revalidate</i> cache response directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4"
+ * >RFC2616 Section 14.9.4</a>
+ */
+ public static final String PROXY_REVALIDATE = "proxy-revalidate"; //$NON-NLS-1$
+
+ /**
+ * Value of <i>no-transform</i> cache request/response directive for {@link #CACHE_CONTROL}
+ * general-header field. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.5"
+ * >RFC2616 Section 14.9.5</a>
+ */
+ public static final String NO_TRANSFORM = "no-transform"; //$NON-NLS-1$
+
+ /**
+ * This is a custom cache control request directive for cases where the
+ * origin server doesn't include an Expires header or cache validators.
+ * Response lifetime value precedence: max_age_value expires_value -
+ * date_value x-jfs-default-lifetime
+ * Cache-Control: x-jfs-default-lifetime=<seconds>
+ * See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2.4"
+ * >RFC2616 Section 13.2.4</a>
+ */
+ public static final String DEFAULT_LIFETIME = "x-jfs-default-lifetime"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Accept</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1"
+ * >RFC2616 Section 14.1</a>
+ */
+ public static final String ACCEPT = "Accept"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Accept-Charset</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.2"
+ * >RFC2616 Section 14.2</a>
+ */
+ public static final String ACCEPT_CHARSET = "Accept-Charset"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Accept-Encoding</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.3"
+ * >RFC2616 Section 14.3</a>
+ */
+ public static final String ACCEPT_ENCODING = "Accept-Encoding"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Accept-Language</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4"
+ * >RFC2616 Section 14.4</a>
+ */
+ public static final String ACCEPT_LANGUAGE = "Accept-Language"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Authorization</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8"
+ * >RFC2616 Section 14.8</a>
+ */
+ public static final String AUTHORIZATION = "Authorization"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Expect</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.20"
+ * >RFC2616 Section 14.20</a>
+ */
+ public static final String EXPECT = "Expect"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>From</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.22"
+ * >RFC2616 Section 14.22</a>
+ */
+ public static final String FROM = "From"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Host</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23"
+ * >RFC2616 Section 14.23</a>
+ */
+ public static final String HOST = "Host"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>If-Match</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24"
+ * >RFC2616 Section 14.24</a>
+ */
+ public static final String IF_MATCH = "If-Match"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>If-Modified-Since</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25"
+ * >RFC2616 Section 14.25</a>
+ */
+ public static final String IF_MODIFIED_SINCE = "If-Modified-Since"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>If-None-Match</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26"
+ * >RFC2616 Section 14.26</a>
+ */
+ public static final String IF_NONE_MATCH = "If-None-Match"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>If-Range</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.27"
+ * >RFC2616 Section 14.27</a>
+ */
+ public static final String IF_RANGE = "If-Range"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>If-Unmodified-Since</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28"
+ * >RFC2616 Section 14.28</a>
+ */
+ public static final String IF_UNMODIFIED_SINCE = "If-Unmodified-Since"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Link</i>. See <a
+ * href="http://tools.ietf.org/html/rfc5988#section-5">RFC5988 Section 5</a>
+ */
+ public static final String LINK = "Link"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Max-Forwards</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.31"
+ * >RFC2616 Section 14.31</a>
+ */
+ public static final String MAX_FORWARDS = "Max-Forwards"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Proxy-Authorization</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.34"
+ * >RFC2616 Section 14.34</a>
+ */
+ public static final String PROXY_AUTHORIZATION = "Proxy-Authorization"; //$NON-NLS-1$
+
+ /**
+ * Non-standard request-header field name for <i>X-Method-Override</i>.
+ */
+ public static final String X_METHOD_OVERRIDE = "X-Method-Override"; //$NON-NLS-1$
+
+ /**
+ * Non-standard request-header field name for <i>X-Last-Modified-XSD</i>.
+ */
+ public static final String X_LAST_MODIFIED_XSD = "X-Last-Modified-XSD"; //$NON-NLS-1$
+
+ /**
+ * Non-standard request-header field name for <i>X-Last-Modified-User</i>.
+ */
+ public static final String X_LAST_MODIFIED_USER = "X-Last-Modified-User"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Set-Cookie</i>. See <a
+ * href="http://tools.ietf.org/html/rfc4229#section-2.1.96">RFC4229 Section
+ * 2.1.96</a>.
+ */
+ public static final String SET_COOKIE = "Set-Cookie"; //$NON-NLS-1$
+
+ /**
+ * Request-header field name for <i>Accept</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3"
+ * >RFC2616 Section 5.3</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.39"
+ * >RFC2616 Section 14.39</a>
+ */
+ public static final String TE = "TE"; //$NON-NLS-1$
+
+ /**
+ * Non-standard request-header field name for <i>Name</i>.
+ */
+ public static final String NAME_HEADER = "Name"; //$NON-NLS-1$
+
+ /**
+ * Non-standard request-header field name for <i>X-Jazz-Owning-Context</i>.
+ */
+ public static final String SECURITY_CONTEXT_HEADER = "X-Jazz-Owning-Context"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Accept-Ranges</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.5"
+ * >RFC2616 Section 14.5</a>
+ */
+ public static final String ACCEPT_RANGES = "Accept-Ranges"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Age</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.6"
+ * >RFC2616 Section 14.6</a>
+ */
+ public static final String AGE = "Age"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>ETag</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19"
+ * >RFC2616 Section 14.19</a>
+ */
+ public static final String ETAG = "ETag"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Location</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30"
+ * >RFC2616 Section 14.30</a>
+ */
+ public static final String LOCATION = "Location"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Proxy-Authenticate</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.33"
+ * >RFC2616 Section 14.33</a>
+ */
+ public static final String PROXY_AUTHENTICATE = "Proxy-Authenticate"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Retry-After</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.37"
+ * >RFC2616 Section 14.37</a>
+ */
+ public static final String RETRY_AFTER = "Retry-After"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Server</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.38"
+ * >RFC2616 Section 14.38</a>
+ */
+ public static final String SERVER = "Server"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Vary</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.44"
+ * >RFC2616 Section 14.44</a>
+ */
+ public static final String VARY = "Vary"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Vary</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.2"
+ * >RFC2616 Section 6.2</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.47"
+ * >RFC2616 Section 14.47</a>
+ */
+ public static final String WWW_AUTHENTICATE = "WWW-Authenticate"; //$NON-NLS-1$
+
+ /**
+ * Response-header field name for <i>Content-Disposition</i>. See <a
+ * href="http://tools.ietf.org/html/rfc4229#section-2.1.22">RFC4229 Section
+ * 2.1.22</a>
+ */
+ public static final String CONTENT_DISPOSITION = "Content-Disposition"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Last-Modified-User</i>.
+ */
+ public static final String LAST_MODIFIED_USER = "X-Last-Modified-User"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Last-Modified-XSD</i>.
+ */
+ public static final String LAST_MODIFIED_XSD = "X-Last-Modified-XSD"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-jazz-web-oauth-url</i>.
+ */
+ public static final String X_OAUTH_AUTHORIZATION_URL = "X-jazz-web-oauth-url"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Authorization-Guidance</i>.
+ */
+ public static final String X_JAZZ_AUTHORIZATION_GUIDANCE = "X-Jazz-Authorization-Guidance"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Creator</i>, used
+ * to specify the value for the <i>dc:creator</i> property for the import
+ * service.
+ */
+ public static final String X_JAZZ_CREATOR = "X-Jazz-Creator"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Created</i>, used
+ * to specify the value for the <i>dc:created</i> property for the import
+ * service.
+ */
+ public static final String X_JAZZ_CREATED = "X-Jazz-Created"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Contributor</i>,
+ * used to specify the value for the <i>dc:contributor</i> property for the
+ * import service.
+ */
+ public static final String X_JAZZ_CONTRIBUTOR = "X-Jazz-Contributor"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Modified</i>, used
+ * to specify the value for the <i>dc:modified</i> property for the import
+ * service.
+ */
+ public static final String X_JAZZ_MODIFIED = "X-Jazz-Modified"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Current</i>, used
+ * to specify that a revision being imported is current, and so should be
+ * indexed.
+ */
+ public static final String X_JAZZ_CURRENT = "X-Jazz-Current"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Revision</i>, used
+ * to specify the revision identifier for an imported revision.
+ */
+ public static final String X_JAZZ_REVISION = "X-Jazz-Revision"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Archived</i>, used
+ * to specify that the revision being imported should be marked archived
+ * (deleted).
+ */
+ public static final String X_JAZZ_ARCHIVED = "X-Jazz-Archived"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>X-Jazz-Force-Ordering</i>,
+ * used to specify that the individual parts of a bulk operations response
+ * are in the same order as the request parts.
+ * @since 3.0.1
+ */
+ public static final String X_JAZZ_FORCE_ORDERING = "X-Jazz-Force-Ordering"; //$NON-NLS-1$
+
+ /**
+ * Non-standard request-header field name for <i>X-Jazz-CSRF-Prevent</i>,
+ * used to prevent cross-site request forgeries
+ */
+ public static final String X_JAZZ_CSRF_PREVENT = "X-Jazz-CSRF-Prevent"; //$NON-NLS-1$
+
+ /**
+ * Non-standard response-header field name for <i>OSLC-Core-Version</i>,
+ * used to specify that the version of the OSLC Core Specification.
+ */
+ public static final String OSLC_CORE_VER = "OSLC-Core-Version"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Allow</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.7"
+ * >RFC2616 Section 14.7</a>
+ */
+ public static final String ALLOW = "Allow"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Cookie</i>. See <a
+ * href="http://tools.ietf.org/html/rfc4229#section-2.1.34">RFC4229 Section
+ * 2.1.34</a>
+ */
+ public static final String COOKIE = "Cookie"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Content-Encoding</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11"
+ * >RFC2616 Section 14.11</a>
+ */
+ public static final String CONTENT_ENCODING = "Content-Encoding"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Content-Language</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.12"
+ * >RFC2616 Section 14.12</a>
+ */
+ public static final String CONTENT_LANGUAGE = "Content-Language"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Content-Length</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13"
+ * >RFC2616 Section 14.13</a>
+ */
+ public static final String CONTENT_LENGTH = "Content-Length"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Content-Location</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.14"
+ * >RFC2616 Section 14.14</a>
+ */
+ public static final String CONTENT_LOCATION = "Content-Location"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Content-MD5</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15"
+ * >RFC2616 Section 14.15</a>
+ */
+ public static final String CONTENT_MD5 = "Content-MD5"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Content-Range</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16"
+ * >RFC2616 Section 14.16</a>
+ */
+ public static final String CONTENT_RANGE = "Content-Range"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Content-Type</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17"
+ * >RFC2616 Section 14.17</a>
+ */
+ public static final String CONTENT_TYPE = "Content-Type"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Expires</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21"
+ * >RFC2616 Section 14.21</a>
+ */
+ public static final String EXPIRES = "Expires"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Last-Modified</i>. See <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.1"
+ * >RFC2616 Section 7.1</a> and <a
+ * href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29"
+ * >RFC2616 Section 14.29</a>
+ */
+ public static final String LAST_MODIFIED = "Last-Modified"; //$NON-NLS-1$
+
+ /**
+ * Entity-header field name for <i>Cookie</i>. See <a
+ * href="http://tools.ietf.org/html/rfc4229#section-2.1.50">RFC4229 Section
+ * 2.1.50</a>
+ */
+ public static final String KEEP_ALIVE = "Keep-Alive"; //$NON-NLS-1$
+
+ /**
+ * Literal string value for HTTP wildcard character.
+ */
+ public static final String WILDCARD = "*"; //$NON-NLS-1$
+
+ /**
+ * Literal string value for the prefix used on entity tags to denote weak
+ * validation.
+ */
+ public static final String WEAK_ETAG_PREFIX = "W/"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of the encoding format produced by the <i>gzip</i>
+ * file compression program.
+ */
+ public static final String GZIP = "gzip"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of the abbreviation for the Secure Sockets Layer
+ * protocol.
+ */
+ public static final String SSL = "SSL"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of the abbreviation for the Hypertext Transfer
+ * Protocol.
+ */
+ public static final String HTTP = "http"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of the abbreviation for the Hypertext Transfer
+ * Protocol Secure.
+ */
+ public static final String HTTPS = "https"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a forward slash.
+ */
+ public static final String FORWARD_SLASH = "/"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a backwards slash.
+ */
+ public static final String BACKWARDS_SLASH = "\\"; //$NON-NLS-1$
+
+ /**
+ * Value for the <i>close</i> option of the {@link #CONNECTION} header
+ * field.
+ */
+ public static final String CLOSE = "Close"; //$NON-NLS-1$
+
+ /**
+ * Name of the <i>charset</i> parameter in the {@link #CONTENT_TYPE} header
+ * field.
+ */
+ public static final String CHARSET = "charset"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of commonly used parameter value.
+ */
+ public static final String OK = "OK"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of an ampersand.
+ */
+ public static final String AMPERSAND = "&"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a colon.
+ */
+ public static final String COLON = ":"; //$NON-NLS-1$
+
+ /**
+ * Literal string value for a ://S
+ */
+ public static final String COLON_SLASH_SLASH = "://"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a comma.
+ */
+ public static final String COMMA = ","; //$NON-NLS-1$
+
+ /**
+ * Literal string value of an empty string.
+ */
+ public static final String EMPTY = ""; //$NON-NLS-1$
+
+ /**
+ * Literal string value of an equals character.
+ */
+ public static final String EQUALS = "="; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a hash character.
+ */
+ public static final String HASH = "#"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a period.
+ */
+ public static final String PERIOD = "."; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a plus character.
+ */
+ public static final String PLUS = "+"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a question mark.
+ */
+ public static final String QUESTION = "?"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a forward slash.
+ */
+ public static final String SLASH = "/"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a whitespace character.
+ */
+ public static final String SPACE = " "; //$NON-NLS-1$
+
+ /**
+ * Literal string value of an asterick character.
+ */
+ public static final String STAR = "*"; //$NON-NLS-1$
+
+ /**
+ * Literal string value of a semi-colon.
+ */
+ public static final String SEMI_COLON = ";"; //$NON-NLS-1$
+
+ public static final String CONTEXT = "context"; //$NON-NLS-1$
+ public static final String DEFAULT_ENCODING = "UTF-8"; //$NON-NLS-1$
+ public static final int DEFAULT_PAGE_SIZE = 100;
+ public static final String PAGE_SIZE = "pageSize"; //$NON-NLS-1$
+ public static final String QUERY = "query"; //$NON-NLS-1$
+ public static final String SEARCH = "q"; //$NON-NLS-1$
+ public static final String SIZE = "size"; //$NON-NLS-1$
+ /** @since 3.0.1 */
+ public static final String ITERATE = "iterate"; //$NON-NLS-1$
+ /** @since 3.0.1 */
+ public static final String URL = "url"; //$NON-NLS-1$
+ /** @since 3.0.1 */
+ public static final String REVISION = "revision"; //$NON-NLS-1$
+
+ /**
+ * The literal string value of the whitespace character convert to a URL
+ * encoded value.
+ */
+ public static final String URL_ENCODED_SPACE = "%20"; //$NON-NLS-1$
+
+ /**
+ * The literal string value of the plus character convert to a URL encoded
+ * value.
+ */
+ public static final String URL_ENCODED_PLUS = "%2B"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for "*"
+ * XML feed.
+ */
+ public static final String CT_ANY = "*"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for "*\/*"
+ * XML feed.
+ */
+ public static final String CT_ANY_ANY = "*/*"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an ATOM
+ * XML feed.
+ */
+ public static final String CT_APPLICATION_ATOM_XML = "application/atom+xml"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for
+ * javascript.
+ */
+ public static final String CT_APPLICATION_JAVASCRIPT = "application/javascript"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for JSON data.
+ */
+ public static final String CT_APPLICATION_JSON = "application/json"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an JSON
+ * request.
+ */
+ public static final String CT_APPLICATION_JSONREQUEST = "application/jsonrequest"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for the human
+ * readable RDF triples format.
+ */
+ public static final String CT_APPLICATION_NTRIPLES = "application/ntriples"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for a SPARQL
+ * query.
+ */
+ public static final String CT_APPLICATION_SPARQL_QUERY = "application/sparql-query"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for a SPARQL result set in json
+ * format.
+ */
+ public static final String CT_APPLICATION_SPARQL_RESULTS_JSON =
+ "application/sparql-results+json"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for a SPARQL result set in xml
+ * format.
+ */
+ public static final String CT_APPLICATION_SPARQL_RESULTS_XML = "application/sparql-results+xml"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for the Terse
+ * RDF Triple Language.
+ */
+ public static final String CT_APPLICATION_TURTLE = "application/x-turtle"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an XML
+ * feed.
+ */
+ public static final String CT_APPLICATION_RDF_XML = "application/rdf+xml"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an XML
+ * document.
+ */
+ public static final String CT_APPLICATION_XML = "application/xml"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an zip archive.
+ */
+ public static final String CT_APPLICATION_ZIP = "application/zip"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for form post
+ * submissions URL encoded as name/value pairs.
+ */
+ public static final String CT_APPLICATION_URL_ENCODED = "application/x-www-form-urlencoded"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for the
+ * eXtensible Hypertext Markup Language.
+ */
+ public static final String CT_APPLICATION_XHTML = "application/xhtml+xml"; //$NON-NLS-1$
+
+ public static final String CT_APPLICATION_INDEX_SPEC =
+ "application/net.jazz.foundation.indexer+xml"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an JSON
+ * data as text.
+ */
+ public static final String CT_TEXT_JSON = "text/json"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an RDF
+ * triples as text.
+ */
+ public static final String CT_TEXT_N3 = "text/n3"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for text.
+ */
+ public static final String CT_TEXT_PLAIN = "text/plain"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for Terse RDF
+ * Triple Language as text.
+ */
+ public static final String CT_TEXT_TURTLE = "text/turtle"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an HTML as
+ * text.
+ */
+ public static final String CT_TEXT_HTML = "text/html"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an XML as
+ * text.
+ */
+ public static final String CT_TEXT_XML = "text/xml"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for CSS as
+ * text.
+ */
+ public static final String CT_TEXT_CSS = "text/css"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for JavaScript
+ * as text.
+ */
+ public static final String CT_TEXT_JAVASCRIPT = "text/javascript"; //$NON-NLS-1$
+
+ /**
+ * The internet media type or MIME type or Content-Type value for an XML as
+ * RDF.
+ */
+ public static final String CT_RDF_XML = "RDF/XML"; //$NON-NLS-1$
+
+ /**
+ * HTTP method names, as documented by RFC2616, Section 9
+ */
+ public enum HttpMethod {
+ OPTIONS("OPTIONS"), //$NON-NLS-1$
+ GET("GET"), //$NON-NLS-1$
+ HEAD("HEAD"), //$NON-NLS-1$
+ POST("POST"), //$NON-NLS-1$
+ PUT("PUT"), //$NON-NLS-1$
+ DELETE("DELETE"), //$NON-NLS-1$
+ TRACE("TRACE"), //$NON-NLS-1$
+ CONNECT("CONNECT"); //$NON-NLS-1$
+
+ private HttpMethod(final String name) {
+ _name = name;
+ }
+
+ @Override
+ public String toString() {
+ return _name;
+ }
+
+ /**
+ * Constructs a HttpMethod from the referenced name, assumed to be the
+ * result of calling {@link #toString()} on an HttpMethod instance. This
+ * differs from {@link #valueOf(String)} in that method expects the
+ * declarative name (i.e the result of {@link #name()}).
+ * @param name
+ * The name of the HttpMethod to search for. May be <code>null</code>. If
+ * <code>null</code>, <code>null</code> is returned.
+ * @return The MediaType whose {@link #toString()} value equals that of <code>name</code>,
+ * else <code>null</code>.
+ */
+ static public HttpMethod fromString(String name) {
+ if (name == null)
+ return null;
+ for (HttpMethod mType : HttpMethod.values()) {
+ if (mType.toString().equalsIgnoreCase(name))
+ return mType;
+ }
+ return null;
+ }
+
+ private final String _name;
+ }
+
+} \ No newline at end of file
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Modification.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Modification.java
new file mode 100644
index 0000000..e9d811a
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/Modification.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import java.net.URI;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespace;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcResourceShape;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.*;
+
+@OslcNamespace(TRS_NAMESPACE)
+@OslcResourceShape(title = "Modification Shape", describes = TRS_TYPE_MODIFICATION)
+public class Modification extends ChangeEvent {
+
+ public Modification() {}
+
+ /**
+ * @param changed
+ * @param order
+ */
+ public Modification(URI about, URI changed, int order) {
+ super(about, changed, order);
+ }
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TRSConstants.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TRSConstants.java
new file mode 100644
index 0000000..971df76
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TRSConstants.java
@@ -0,0 +1,98 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import org.eclipse.lyo.oslc4j.core.model.OslcConstants;
+
+/**
+ * Set of constants useful for builing TRS implementations
+ */
+public interface TRSConstants extends OslcConstants {
+
+ //TRS Constants
+ public static final String TRS_NAMESPACE = "http://jazz.net/ns/trs#"; //$NON-NLS-1$
+ public static final String TRS_NAMESPACE_PREFIX = "trs"; //$NON-NLS-1$
+
+ //Types
+ public static final String TRS_TERM_TYPE_BASE = "Base"; //$NON-NLS-1$
+ public static final String TRS__PTERM_TYPE_BASE = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TYPE_BASE; //$NON-NLS-1$
+ public static final String TRS_TYPE_BASE = TRS_NAMESPACE + TRS_TERM_TYPE_BASE;
+ public static final String TRS_TERM_TYPE_CHANGE_LOG = "Change Log"; //$NON-NLS-1$
+ public static final String TRS__PTERM_TYPE_CHANGE_LOG = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TYPE_CHANGE_LOG; //$NON-NLS-1$
+ public static final String TRS_TYPE_CHANGE_LOG = TRS_NAMESPACE + TRS_TERM_TYPE_CHANGE_LOG;
+ public static final String TRS_TERM_TYPE_CREATION = "Creation"; //$NON-NLS-1$
+ public static final String TRS__PTERM_TYPE_CREATION = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TYPE_CREATION; //$NON-NLS-1$
+ public static final String TRS_TYPE_CREATION = TRS_NAMESPACE + TRS_TERM_TYPE_CREATION;
+ public static final String TRS_TERM_TYPE_DELETION = "Deletion"; //$NON-NLS-1$
+ public static final String TRS__PTERM_TYPE_DELETION = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TYPE_DELETION; //$NON-NLS-1$
+ public static final String TRS_TYPE_DELETION = TRS_NAMESPACE + TRS_TERM_TYPE_DELETION;
+ public static final String TRS_TERM_TYPE_MODIFICATION = "Modification"; //$NON-NLS-1$
+ public static final String TRS__PTERM_TYPE_MODIFICATION = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TYPE_MODIFICATION; //$NON-NLS-1$
+ public static final String TRS_TYPE_MODIFICATION = TRS_NAMESPACE + TRS_TERM_TYPE_MODIFICATION;
+ public static final String TRS_TERM_TYPE_TRACKED_RESOURCE_SET = "TrackedResourceSet"; //$NON-NLS-1$
+ public static final String TRS__PTERM_TYPE_TRACKED_RESOURCE_SET = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TYPE_TRACKED_RESOURCE_SET; //$NON-NLS-1$
+ public static final String TRS_TYPE_TRACKED_RESOURCE_SET = TRS_NAMESPACE + TRS_TERM_TYPE_TRACKED_RESOURCE_SET;
+ public static final String TRS_TERM_TYPE_TRACKED_RESOURCE_SET_PROVIDER = "TrackedResourceSetProvider"; //$NON-NLS-1$
+ public static final String TRS__PTERM_TYPE_TRACKED_RESOURCE_SET_PROVIDER = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TYPE_TRACKED_RESOURCE_SET_PROVIDER; //$NON-NLS-1$
+ public static final String TRS_TYPE_TRACKED_RESOURCE_SET_PROVIDER = TRS_NAMESPACE + TRS_TERM_TYPE_TRACKED_RESOURCE_SET_PROVIDER;
+
+ public static final String TRS_TERM_BASE = "base"; //$NON-NLS-1$
+ public static final String TRS_PTERM_BASE = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_BASE; //$NON-NLS-1$
+ public static final String TRS_BASE = TRS_NAMESPACE + TRS_TERM_BASE;
+ public static final String TRS_TERM_CHANGE_LOG = "changeLog"; //$NON-NLS-1$
+ public static final String TRS_PTERM_CHANGE_LOG = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_CHANGE_LOG; //$NON-NLS-1$
+ public static final String TRS_TERM_CHANGED = "changed"; //$NON-NLS-1$
+ public static final String TRS_PTERM_CHANGED = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_CHANGED; //$NON-NLS-1$
+ public static final String TRS_CHANGED = TRS_NAMESPACE + TRS_TERM_CHANGED;
+ public static final String TRS_CHANGE_LOG = TRS_NAMESPACE + TRS_TERM_CHANGE_LOG;
+ public static final String TRS_TERM_CHANGES = "changes"; //$NON-NLS-1$
+ public static final String TRS_PTERM_CHANGES = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_CHANGES; //$NON-NLS-1$
+ public static final String TRS_CHANGES = TRS_NAMESPACE + TRS_TERM_CHANGES;
+ public static final String TRS_TERM_CUTOFFEVENT = "cutoffEvent"; //$NON-NLS-1$
+ public static final String TRS_PTERM_CUTOFFEVENT = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_CUTOFFEVENT; //$NON-NLS-1$
+ public static final String TRS_CUTOFFEVENT = TRS_NAMESPACE + TRS_TERM_CUTOFFEVENT;
+ public static final String TRS_TERM_NEXT_PAGE = "nextPage"; //$NON-NLS-1$
+ public static final String TRS_PTERM_NEXT_PAGE = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_NEXT_PAGE; //$NON-NLS-1$
+ public static final String TRS_NEXT_PAGE = TRS_NAMESPACE + TRS_TERM_NEXT_PAGE;
+ public static final String TRS_TERM_ORDER = "order"; //$NON-NLS-1$
+ public static final String TRS_PTERM_ORDER = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_ORDER; //$NON-NLS-1$
+ public static final String TRS_ORDER = TRS_NAMESPACE + TRS_TERM_ORDER;
+ public static final String TRS_TERM_PREVIOUS = "previous"; //$NON-NLS-1$
+ public static final String TRS_PTERM_PREVIOUS = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_PREVIOUS; //$NON-NLS-1$
+ public static final String TRS_PREVIOUS = TRS_NAMESPACE + TRS_TERM_PREVIOUS;
+ public static final String TRS_TERM_TRACKED_RESOURCE_SET = "trackedResourceSet"; //$NON-NLS-1$
+ public static final String TRS_PTERM_TRACKED_RESOURCE_SET = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TRACKED_RESOURCE_SET; //$NON-NLS-1$
+ public static final String TRS_TRACKED_RESOURCE_SET = TRS_NAMESPACE + TRS_TERM_TRACKED_RESOURCE_SET;
+ public static final String TRS_TERM_TRACKED_RESOURCE_SET_PROVIDER = "trackedResourceSetProvider"; //$NON-NLS-1$
+ public static final String TRS_PTERM_TRACKED_RESOURCE_SET_PROVIDER = TRS_NAMESPACE_PREFIX+ ':' + TRS_TERM_TRACKED_RESOURCE_SET_PROVIDER; //$NON-NLS-1$
+ public static final String TRS_TRACKED_RESOURCE_SET_PROVIDER = TRS_NAMESPACE + TRS_TERM_TRACKED_RESOURCE_SET_PROVIDER;
+
+ //RDFS Constants
+ public static final String RDFS_TERM_MEMBER = "member"; //$NON-NLS-1$
+ public static final String RDFS_PTERM_MEMBER = RDFS_NAMESPACE_PREFIX+ ':' + RDFS_TERM_MEMBER; //$NON-NLS-1$
+ public static final String RDFS_MEMBER = RDFS_NAMESPACE + RDFS_TERM_MEMBER;
+
+ //RDF Constants
+ public static final String RDF_TERM_TYPE = "type"; //$NON-NLS-1$
+ public static final String RDF_PTERM_TYPE = RDF_NAMESPACE_PREFIX+ ':' + RDF_TERM_TYPE; //$NON-NLS-1$
+ public static final String RDF_TYPE = RDF_NAMESPACE + RDF_TERM_TYPE; //$NON-NLS-1$
+
+ public static final String RDF_TERM_NIL = "nil";
+ public static final String RDF_PTERM_NIL = RDF_NAMESPACE_PREFIX+ ':' + RDF_TERM_NIL; //$NON-NLS-1$
+ public static final String RDF_NIL = RDF_NAMESPACE + RDF_TERM_NIL;
+
+ public static final String FileSep = System.getProperty("file.separator");
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TrackedResourceSet.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TrackedResourceSet.java
new file mode 100644
index 0000000..5993d30
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/TrackedResourceSet.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+package org.eclipse.lyo.core.trs;
+
+import java.net.URI;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcDescription;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcName;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespace;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcPropertyDefinition;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcResourceShape;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcTitle;
+import org.eclipse.lyo.oslc4j.core.model.AbstractResource;
+
+import static org.eclipse.lyo.core.trs.TRSConstants.*;
+
+/**
+ * An HTTP GET on a Tracked Resource Set URI returns a representation structured
+ * as follows (note: for exposition, the example snippets show the RDF
+ * information content using Turtle; the actual representation of these
+ * resources “on the wire" may vary):
+# Resource: http://cm1.example.com/trackedResourceSet
+@prefix trs: <http://jazz.net/ns/trs#> .
+
+<http://cm1.example.com/trackedResourceSet>
+ a trs:TrackedResourceSet ;
+ trs:base <http://cm1.example.com/baseResources> ;
+ trs:changeLog [
+ a trs:ChangeLog ;
+ trs:changes ( ... ) .
+ ] .
+
+A Tracked Resource Set MUST provide references to the Base and Change Log using
+the trs:base and trs:changeLog predicates respectively. A typical Client will
+periodically poll the Tracked Resource Set looking for recent Change Events.
+In order to cater to this usage, the Tracked Resource Set's HTTP response MUST
+contain the triples for the referenced Change Log (i.e., via a Blank Node, or
+an inline named Resource).
+
+The Server SHOULD also support etags, caching, and conditional GETs for Tracked
+Resource Set resources and relegate the Base to separate resources.
+
+ *
+ * Tracked Resource Set with non-empty change log
+ */
+@OslcNamespace(TRS_NAMESPACE)
+@OslcResourceShape(title = "Tracked Resource Set Shape", describes = TRS_TYPE_TRACKED_RESOURCE_SET)
+public class TrackedResourceSet extends AbstractResource
+{
+ private AbstractChangeLog changeLog;
+ private URI base;
+
+ /**
+ * @return the changeLog
+ */
+ @OslcName(TRS_TERM_CHANGE_LOG)
+ @OslcDescription("A Change Log providing a time series of incremental adjustments to the Resource Set.")
+ @OslcPropertyDefinition(TRS_CHANGE_LOG)
+ @OslcTitle("Change Log")
+ public AbstractChangeLog getChangeLog() {
+ return changeLog;
+ }
+
+ /**
+ * @param changeLog the changeLog to set
+ */
+ public void setChangeLog(AbstractChangeLog changeLog) {
+ this.changeLog = changeLog;
+ }
+
+ /**
+ * @return the base
+ */
+ @OslcName(TRS_TERM_BASE)
+ @OslcDescription("An enumeration of the Resources in the Resource Set.")
+ @OslcPropertyDefinition(TRS_BASE)
+ @OslcTitle("Base")
+ public URI getBase() {
+ return base;
+ }
+
+ /**
+ * @param base the base to set
+ */
+ public void setBase(URI base) {
+ this.base = base;
+ }
+}
diff --git a/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/package-info.java b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/package-info.java
new file mode 100644
index 0000000..8b56b13
--- /dev/null
+++ b/org.eclipse.lyo.core.trs/src/main/java/org/eclipse/lyo/core/trs/package-info.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2013 IBM Corporation.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Eclipse Distribution License v. 1.0 which accompanies this distribution.
+ *
+ * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
+ * and the Eclipse Distribution License is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * Contributors:
+ *
+ * Kevin Bauer - Initial implementation
+ *******************************************************************************/
+@OslcSchema({
+ @OslcNamespaceDefinition(prefix = OslcConstants.DCTERMS_NAMESPACE_PREFIX, namespaceURI = OslcConstants.DCTERMS_NAMESPACE),
+ @OslcNamespaceDefinition(prefix = OslcConstants.OSLC_CORE_NAMESPACE_PREFIX, namespaceURI = OslcConstants.OSLC_CORE_NAMESPACE),
+ @OslcNamespaceDefinition(prefix = OslcConstants.RDF_NAMESPACE_PREFIX, namespaceURI = OslcConstants.RDF_NAMESPACE),
+ @OslcNamespaceDefinition(prefix = OslcConstants.RDFS_NAMESPACE_PREFIX, namespaceURI = OslcConstants.RDFS_NAMESPACE),
+ @OslcNamespaceDefinition(prefix = TRSConstants.TRS_NAMESPACE_PREFIX, namespaceURI = TRSConstants.TRS_NAMESPACE) })
+package org.eclipse.lyo.core.trs;
+
+import org.eclipse.lyo.oslc4j.core.annotation.OslcNamespaceDefinition;
+import org.eclipse.lyo.oslc4j.core.annotation.OslcSchema;
+import org.eclipse.lyo.oslc4j.core.model.OslcConstants; \ No newline at end of file