<!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" xml:lang="en" lang="en" dir="ltr">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
				<meta name="keywords" content="SMILA/Documentation/ObjectStore/Bundle org.eclipse.smila.objectstore,SMILA/Documentation/ObjectStore/filesystem/SimpleObjectStoreService" />
		<link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Documentation/ObjectStore/favicon.ico" />
		<link rel="search" type="application/opensearchdescription+xml" href="http://wiki.eclipse.org/opensearch_desc.php" title="Eclipsepedia (English)" />
<link rel="alternate" type="application/rss+xml" title="Eclipsepedia RSS Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=rss" />
<link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=atom" />
	
		
		<title>SMILA/Documentation/ObjectStore/Bundle org.eclipse.smila.objectstore - Eclipsepedia</title>

		<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "http://wiki.eclipse.org/skins/eclipsenova/novaWide.css?116"; /*]]>*/</style>
		<link rel="stylesheet" type="text/css" media="print" href="http://wiki.eclipse.org/skins/eclipsenova/eclipsenovaPrint.css?116" />
		<link rel="stylesheet" type="text/css" media="handheld" href="http://wiki.eclipse.org/skins/eclipsenova/handheld.css?116" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/header.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/tabs.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/visual.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/layout.css" media="screen" />
		<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/footer.css" media="screen" />
	        <!--[if IE]><link rel="stylesheet" type="text/css" href="/skins/eclipsenova/IEpngfix.css" media="screen" /><![endif]-->
		<!--[if lt IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE50Fixes.css?116";</style> <![endif]-->
		<!--[if IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE55Fixes.css?116";</style><![endif]-->
		<!--[if IE 6]><style type="text/css">@import "/skins/eclipsenova/IE60Fixes.css?116";</style><![endif]-->
		<!--[if IE 7]><style type="text/css">@import "/skins/eclipsenova/IE70Fixes.css?116";</style><![endif]-->
		<!--[if lt IE 7]><script type="text/javascript" src="/skins/common/IEFixes.js?116"></script>
		<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
		<script type= "text/javascript">/*<![CDATA[*/
var skin = "eclipsenova";
var stylepath = "/skins";
var wgArticlePath = "/$1";
var wgScriptPath = "";
var wgScript = "/index.php";
var wgServer = "http://wiki.eclipse.org";
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore";
var wgTitle = "SMILA/Documentation/ObjectStore/Bundle org.eclipse.smila.objectstore";
var wgAction = "view";
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
var wgArticleId = "32139";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "285828";
var wgVersion = "1.12.0";
var wgEnableAPI = true;
var wgEnableWriteAPI = false;
/*]]>*/</script>
                
		<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/wikibits.js?116"><!-- wikibits js --></script>

<!-- Performance mods similar to those for bug 166401 -->
		<script type="text/javascript" src="http://wiki.eclipse.org/index.php?title=-&amp;action=raw&amp;gen=js&amp;useskin=eclipsenova"><!-- site js --></script>

		<!-- Head Scripts -->
				<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script>
<link rel="stylesheet" type="text/css" href="Bundle_org.eclipse.smila.objectstore.html" />	</head>
<body  class="mediawiki ns-0 ltr page-SMILA_Documentation_ObjectStore_Bundle_org_eclipse_smila_objectstore">
	<div id="globalWrapper">


		<div id="column-one">
<!-- Eclipse Additions for the Top Nav start here M. Ward-->

		      <div id="header">
               <div id="header-graphic">
                 <img src="http://wiki.eclipse.org/skins/eclipsenova/eclipse.png" alt="Eclipse Wiki">
               </div>
<!-- Pulled 101409 Mward	   -->
            
            <div class="portlet" id="p-personal">
              <div class="pBody">
              <ul>
                <li id="pt-login"><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore">Log in</a></li>
                      </ul>
              </div>
            </div>

            <div id="header-icons">
	      <div id="sites">
              <ul id="sitesUL">
                <li><a href="http://www.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/eclipseIcon.png" width="28" height="28" alt="Eclipse Foundation" title="Eclipse Foundation" /><div>Eclipse Foundation</div></a></li>
                <li><a href="http://marketplace.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/marketplace.png" width="28" height="28" alt="Eclipse Marketplace" title="Eclipse Marketplace" /><div>Eclipse Marketplace</div></a></li>
                <li><a href="https://bugs.eclipse.org/bugs"><img src="http://dev.eclipse.org/custom_icons/system-search-bw.png" width="28" height="28" alt="Bugzilla" title="Bugzilla" /><div>Bugzilla</div></a></li>
                <li><a href="http://live.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/audio-input-microphone-bw.png" width="28" height="28" alt="Live" title="Live" /><div>Eclipse Live</div></a></li>
                <li><a href="http://planeteclipse.org"><img src="http://dev.eclipse.org/large_icons/devices/audio-card.png" width="28" height="28" alt="PlanetEclipse" title="Planet" /><div>Planet Eclipse</div></a></li>
                <li><a href="http://portal.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/preferences-system-network-proxy-bw.png" width="28" height="28" alt="Portal" title="Portal" /><div>My Foundation Portal</div></a></li>
              </ul>
              </div>
            </div>
        </div> 
<!-- NEW HEADER STUFF HERE -->
       <div id="header-menu">
         <div id="header-nav">
               <ul> 		 <li><a class="first_one" href="http://wiki.eclipse.org/" target="_self">Home</a></li>                  <li><a  href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li> 
                 <li><a  href="http://www.eclipse.org/users/" target="_self">Users</a></li> 
                 <li><a  href="http://www.eclipse.org/membership/" target="_self">Members</a></li> 
                 <li><a  href="http://wiki.eclipse.org/index.php/Development_Resources" target="_self">Committers</a></li> 
                 <li><a  href="http://www.eclipse.org/resources/" target="_self">Resources</a></li> 
                 <li><a  href="http://www.eclipse.org/projects/" target="_self">Projects</a></li> 
                 <li><a  href="http://www.eclipse.org/org/" target="_self">About Us</a></li> 
                </ul>
         </div>
         <div id="header-utils">
<!-- moved the search window here -->
                           <form action="http://wiki.eclipse.org/Special:Search" >
                  <input class="input" name="search" type="text" accesskey="f" value="" />
                    <input type='submit' onclick="this.submit();" name="go" id="searchGoButton" class="button" title="Go to a page with this exact name if one exists" value="Go" />&nbsp;
                    <input type='submit' onclick="this.submit();" name="fulltext" class="button" id="mw-searchButton" title="Search Eclipsepedia for this text"  value="Search" />
                </form>
		 </div>
      </div>


<!-- Eclipse Additions for the Header stop here -->
<!-- Additions and mods for leftside nav Start here -->

<!--Started nav  rip here-->
<!-- these are the nav controls main page, changes etc -->
    <div id="novaContent" class="faux">
            <div id="leftcol">
          <ul id="leftnav">
<!-- these are the page controls, edit history etc -->
            	  <li class="separator"><a class="separator">Navigation &#160;&#160;</li>
                                <li id="n-mainpage"><a href="http://wiki.eclipse.org/Main_Page">Main Page</a></li>
	                                <li id="n-portal"><a href="http://wiki.eclipse.org/Eclipsepedia:Community_Portal">Community portal</a></li>
	                                <li id="n-currentevents"><a href="http://wiki.eclipse.org/Eclipsepedia:Current_events">Current events</a></li>
	                                <li id="n-recentchanges"><a href="http://wiki.eclipse.org/Special:Recentchanges">Recent changes</a></li>
	                                <li id="n-randompage"><a href="http://wiki.eclipse.org/Special:Random">Random page</a></li>
	                                <li id="n-help"><a href="http://wiki.eclipse.org/Help:Contents">Help</a></li>
		  <li class="separator"><a class="separator">Toolbox &#160;&#160;</a></li>

				<li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore">What links here</a></li>
				<li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore">Related changes</a></li>
                <!-- This is the toolbox section -->
<li id="t-upload"><a href="http://wiki.eclipse.org/Special:Upload">Upload file</a></li>
<li id="t-specialpages"><a href="http://wiki.eclipse.org/Special:Specialpages">Special pages</a></li>
				<li id="t-print"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore&amp;printable=yes">Printable version</a></li>				<li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore&amp;oldid=285828">Permanent link</a></li>	  </ul>
        </div>


<!-- Additions and mods for leftside nav End here -->


  <div id="column-content">
    <div id="content">
      <a name="top" id="top"></a>

              <div id="tabs">
         <ul class="primary">
                                         <li class="active"><a href="Bundle_org.eclipse.smila.objectstore.html"><span class="tab">Page</span></a></li>
                                                         <li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore&amp;action=edit"><span class="tab">Discussion</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore&amp;action=edit"><span class="tab">View source</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore&amp;action=history"><span class="tab">History</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Documentation/ObjectStore/Bundle&#32;org.eclipse.smila.objectstore"><span class="tab">Edit</span></a></li>
                  </ul>
        </div>


          <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
            <h1 class="firstHeading">SMILA/Documentation/ObjectStore/Bundle org.eclipse.smila.objectstore</h1>
      <div id="bodyContent">
        <h3 id="siteSub">From Eclipsepedia</h3>
        <div id="contentSub"><span class="subpages">&lt; <a href="../../../SMILA.html" title="SMILA">SMILA</a> | <a href="../../Documentation.1.html" title="SMILA/Documentation">Documentation</a></span></div>
                              <div id="jump-to-nav">Jump to: <a href="Bundle_org.eclipse.smila.objectstore.html#column-one">navigation</a>, <a href="Bundle_org.eclipse.smila.objectstore.html#searchInput">search</a></div>          <!-- start content -->
          <table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="Bundle_org.eclipse.smila.objectstore.html#Bundle_org.eclipse.smila.objectstore"><span class="tocnumber">1</span> <span class="toctext">Bundle org.eclipse.smila.objectstore</span></a>
<ul>
<li class="toclevel-2"><a href="Bundle_org.eclipse.smila.objectstore.html#org.eclipse.smila.objectstore.ObjectStoreService"><span class="tocnumber">1.1</span> <span class="toctext">org.eclipse.smila.objectstore.ObjectStoreService</span></a>
<ul>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#JavaDoc"><span class="tocnumber">1.1.1</span> <span class="toctext">JavaDoc</span></a></li>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#Description"><span class="tocnumber">1.1.2</span> <span class="toctext">Description</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="Bundle_org.eclipse.smila.objectstore.html#org.eclipse.smila.objectstore.StoreObject"><span class="tocnumber">1.2</span> <span class="toctext">org.eclipse.smila.objectstore.StoreObject</span></a>
<ul>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#JavaDoc_2"><span class="tocnumber">1.2.1</span> <span class="toctext">JavaDoc</span></a></li>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#Description_2"><span class="tocnumber">1.2.2</span> <span class="toctext">Description</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="Bundle_org.eclipse.smila.objectstore.html#org.eclipse.smila.objectstore.StoreOutputStream"><span class="tocnumber">1.3</span> <span class="toctext">org.eclipse.smila.objectstore.StoreOutputStream</span></a>
<ul>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#JavaDoc_3"><span class="tocnumber">1.3.1</span> <span class="toctext">JavaDoc</span></a></li>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#Description_3"><span class="tocnumber">1.3.2</span> <span class="toctext">Description</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="Bundle_org.eclipse.smila.objectstore.html#Exceptions_defined_in_org.eclipse.smila.objectstore"><span class="tocnumber">1.4</span> <span class="toctext">Exceptions defined in org.eclipse.smila.objectstore</span></a>
<ul>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#JavaDoc_4"><span class="tocnumber">1.4.1</span> <span class="toctext">JavaDoc</span></a></li>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#Description_4"><span class="tocnumber">1.4.2</span> <span class="toctext">Description</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="Bundle_org.eclipse.smila.objectstore.html#Handlers_in_org.eclipse.smila.objectstore"><span class="tocnumber">1.5</span> <span class="toctext">Handlers in org.eclipse.smila.objectstore</span></a>
<ul>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#JavaDoc_5"><span class="tocnumber">1.5.1</span> <span class="toctext">JavaDoc</span></a></li>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#Description_5"><span class="tocnumber">1.5.2</span> <span class="toctext">Description</span></a>
<ul>
<li class="toclevel-4"><a href="Bundle_org.eclipse.smila.objectstore.html#ObjectStoreServiceHandler"><span class="tocnumber">1.5.2.1</span> <span class="toctext">ObjectStoreServiceHandler</span></a></li>
<li class="toclevel-4"><a href="Bundle_org.eclipse.smila.objectstore.html#StoreAdminHandler"><span class="tocnumber">1.5.2.2</span> <span class="toctext">StoreAdminHandler</span></a></li>
<li class="toclevel-4"><a href="Bundle_org.eclipse.smila.objectstore.html#StoreObjectHandler"><span class="tocnumber">1.5.2.3</span> <span class="toctext">StoreObjectHandler</span></a></li>
</ul>
</li>
<li class="toclevel-3"><a href="Bundle_org.eclipse.smila.objectstore.html#Implementations"><span class="tocnumber">1.5.3</span> <span class="toctext">Implementations</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<a name="Bundle_org.eclipse.smila.objectstore"></a><h1> <span class="mw-headline"> Bundle org.eclipse.smila.objectstore  </span></h1>
<p>This page gives only a rough overview of the components. Please refer to the <a href="http://build.eclipse.org/rt/smila/javadoc/current/index.html?org/eclipse/smila/objectstore/package-summary.html" class="external text" title="http://build.eclipse.org/rt/smila/javadoc/current/index.html?org/eclipse/smila/objectstore/package-summary.html" rel="nofollow">JavaDoc</a> for specific information. 
</p>
<a name="org.eclipse.smila.objectstore.ObjectStoreService"></a><h2> <span class="mw-headline"> org.eclipse.smila.objectstore.ObjectStoreService  </span></h2>
<a name="JavaDoc"></a><h3> <span class="mw-headline"> JavaDoc  </span></h3>
<p>The JavaDoc for the <tt>ObjectStoreService</tt> API can be found at <a href="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/ObjectStoreService.html" class="external text" title="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/ObjectStoreService.html" rel="nofollow">org.eclipse.smila.objectstore.ObjectStoreService</a>. 
</p>
<a name="Description"></a><h3> <span class="mw-headline"> Description  </span></h3>
<p>In SMILA, the ObjectStoreService is mainly used to store binary data during bulk processing. Data objects pertaining to this service are for example large bulks of records that are to be processed in a single step by some worker.
</p><p>The interface of ObjectStoreService is defined in <tt>org.eclipse.smila.objectstore.ObjectStoreService</tt>. 
</p>
<a name="org.eclipse.smila.objectstore.StoreObject"></a><h2> <span class="mw-headline"> org.eclipse.smila.objectstore.StoreObject  </span></h2>
<a name="JavaDoc_2"></a><h3> <span class="mw-headline"> JavaDoc  </span></h3>
<p>The JavaDoc for the <tt>StoreObject</tt> interface can be found at <a href="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/StoreObject.html" class="external text" title="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/StoreObject.html" rel="nofollow">org.eclipse.smila.objectstore.StoreObject</a>. 
</p>
<a name="Description_2"></a><h3> <span class="mw-headline"> Description  </span></h3>
<p>A <tt>StoreObject</tt> contains information about an object in a store. Common pieces of information provided by <tt>StoreObject</tt> are: 
</p>
<ul><li>ID (String) 
<ul><li>Contains the ID of the object. Can be used to request the object from the store. 
</li></ul>
</li><li>Size (long) 
<ul><li>Contains the size of the object in byte. 
</li></ul>
</li><li>Timestamp (Date) 
<ul><li>Contains the timestamp of the object. In the file system based object store implementation this is the time of the latest modification of the object.
</li></ul>
</li></ul>
<p>In addition to the above, an ObjectStore implementation might add further information as required.
</p>
<a name="org.eclipse.smila.objectstore.StoreOutputStream"></a><h2> <span class="mw-headline"> org.eclipse.smila.objectstore.StoreOutputStream  </span></h2>
<a name="JavaDoc_3"></a><h3> <span class="mw-headline"> JavaDoc  </span></h3>
<p>The JavaDoc for the <tt>StoreOutputStream</tt> interface can be found at <a href="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/StoreOutputStream.html" class="external text" title="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/StoreOutputStream.html" rel="nofollow">org.eclipse.smila.objectstore.StoreOutputStream</a>. 
</p>
<a name="Description_3"></a><h3> <span class="mw-headline"> Description  </span></h3>
<p>The <tt>StoreOutputStream</tt> interface defines an extension of <tt>java.io.OutputStream</tt> that allows a stream to be aborted if it has not been closed yet, meaning the content of the stream will not be visible but discarded.
</p><p>As a result, the content of <tt>StoreOutputStream</tt> will only be visible after <tt>close()</tt> has been called successfully.
</p>
<a name="Exceptions_defined_in_org.eclipse.smila.objectstore"></a><h2> <span class="mw-headline"> Exceptions defined in org.eclipse.smila.objectstore  </span></h2>
<a name="JavaDoc_4"></a><h3> <span class="mw-headline"> JavaDoc  </span></h3>
<p>The JavaDoc for the exceptions defined in <tt>org.eclipse.smila.objectstore</tt> can be found at <a href="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/package-summary.html" class="external text" title="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/package-summary.html" rel="nofollow">org.eclipse.smila.objectstore</a>. 
</p>
<a name="Description_4"></a><h3> <span class="mw-headline"> Description  </span></h3>
<p>The individual exceptions are (in hierarchical order): 
</p>
<ul><li><tt>ObjectStoreException</tt>: This is the base class of all object store exceptions. There are subclasses which give more details about the exception: 
<ul><li><tt>BadRequestException</tt>: Caused by invalid arguments or other conditions that render it impossible to perform the requested operation. 
<ul><li><tt>InvalidStoreNameException</tt>: The store name does not apply to the restrictions defined by the respective service implementation. 
</li><li><tt>NoSuchObjectException</tt>: The requested object does not exist. 
</li><li><tt>NoSuchStoreException</tt>: The requested store does not exist. 
</li><li><tt>StoreExistsException</tt>: The store to be created already exists. 
</li></ul>
</li><li><tt>ServiceUnavailableException</tt>: The request could not be fulfilled by the service due to some temporary condition. The client may retry the request shortly afterwards.
</li></ul>
</li></ul>
<a name="Handlers_in_org.eclipse.smila.objectstore"></a><h2> <span class="mw-headline"> Handlers in org.eclipse.smila.objectstore  </span></h2>
<a name="JavaDoc_5"></a><h3> <span class="mw-headline"> JavaDoc  </span></h3>
<p>The JavaDoc for the handlers of the <tt>org.eclipse.smila.objectstore</tt> bundle can be found at <a href="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/httphandler/package-summary.html" class="external text" title="http://build.eclipse.org/rt/smila/javadoc/current/org/eclipse/smila/objectstore/httphandler/package-summary.html" rel="nofollow">org.eclipse.smila.objectstore.httphandler</a>. 
</p>
<a name="Description_5"></a><h3> <span class="mw-headline"> Description  </span></h3>
<p>The following handlers exist: 
</p>
<a name="ObjectStoreServiceHandler"></a><h4> <span class="mw-headline"> ObjectStoreServiceHandler  </span></h4>
<p>This handler lists the stores handled by <tt>ObjectStoreService</tt>. 
</p><p><b>Supported operations:</b>
</p>
<ul><li>GET: Lists all stores handled by <tt>ObjectStoreService</tt>.
</li></ul>
<p><b>Usage:</b>
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/store/</tt>
</li><li>Allowed methods:
<ul><li>GET (no further URL parameters and no request body allowed)
</li></ul>
</li><li>Response status codes: 
<ul><li>200 OK: Upon successful execution.
</li><li>500 INTERNAL SERVER ERROR: An internal error occurred.
</li><li>503 SERVICE UNAVAILABLE: The service is currently unable to perform the requested operation, please retry later.
</li></ul>
</li></ul>
<p><b>Example:</b>
</p>
<pre>
GET http://&lt;hostname&gt;:8080/smila/store/
200 OK
{
  &quot;stores&quot;&nbsp;: [ {
    &quot;store&quot;&nbsp;: &quot;store1&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/store/store1/&quot;
  }, {
    &quot;store&quot;&nbsp;: &quot;store2&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/store/store2/&quot;
  } ]
}
</pre>
<a name="StoreAdminHandler"></a><h4> <span class="mw-headline"> StoreAdminHandler  </span></h4>
<p>This handler allows the stores handled by the <tt>ObjectStoreService</tt> to be managed or queried. 
</p><p><b>Supported operations:</b>
</p>
<ul><li>GET: Returns the store information. Without the optional parameter <tt>returnObjects</tt> set to <tt>false</tt> also information on the contained objects will be returned.
</li><li>PUT: Creates a new store. Optional parameters can be sent as part of a JSON body. 
</li><li>DELETE: Deletes a store. If the store does not exist, it will be ignored and 200 OK will be returned.
</li></ul>
<p><b>Usage:</b>
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/store/&lt;store-name&gt;/</tt>. 
</li><li>Allowed methods:
<ul><li>GET (with optional URL parameter <tt>returnObjects</tt>)
</li><li>PUT
</li><li>DELETE 
</li></ul>
</li><li>Response status codes: 
<ul><li>200 OK: Upon successful execution (GET, DELETE).
</li><li>201 CREATED: Upon successful creation of a store (PUT).
</li><li>400 BAD REQUEST: The calling client provided some information that lead to an error, e.g. an invalid store name, or tried to create a store that already exists etc. 
</li><li>404 NOT FOUND: The requested store could not be found.
</li><li>500 INTERNAL SERVER ERROR: An internal error occurred.
</li><li>503 SERVICE UNAVAILABLE: The service is currently unable to perform the requested operation, please retry later.
</li></ul>
</li></ul>
<p><b>Examples:</b>
</p>
<pre>
GET http://&lt;hostname&gt;:8080/smila/store/store1/?returnObjects=false

200 OK
{
  &quot;storeName&quot;&nbsp;: &quot;store1&quot;,
  &quot;storeProperties&quot;&nbsp;: {
  },
  &quot;objectCount&quot;&nbsp;: 1,
  &quot;size&quot;&nbsp;: 25
}
</pre>
<pre>
GET http://&lt;hostname&gt;:8080/smila/store/store1/

200 OK
{
 &quot;storeName&quot;&nbsp;: &quot;store1&quot;,
 &quot;storeProperties&quot;&nbsp;: {
 },
 &quot;objectCount&quot;&nbsp;: 1,
 &quot;size&quot;&nbsp;: 25,
 &quot;objects&quot;&nbsp;: [ {
  &quot;id&quot;&nbsp;: &quot;sample-object&quot;,
  &quot;size&quot;&nbsp;: 25,
  &quot;timestamp&quot;&nbsp;: &quot;2011-06-20T17:12:35.417+0200&quot;
 } ]
}
</pre> 
<a name="StoreObjectHandler"></a><h4> <span class="mw-headline"> StoreObjectHandler  </span></h4>
<p>This handler allows to PUTting, GETting, or DELETing objects to or from a store. 
</p><p><b>Supported operations:</b>
</p>
<ul><li>GET: Retrieves an object from a store. 
</li><li>PUT: Puts a new object to or updates an existing one in a store. The content of the object is sent with the PUT command as a JSON body. 
</li><li>DELETE: Deletes an object from a store. If the object does not exist, it will be ignored and 200 OK will be returned.
</li></ul>
<p><b>Usage:</b>
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/store/&lt;store-name&gt;/&lt;object-id&gt;/</tt>. 
</li><li>Allowed methods
<ul><li>GET
</li><li>PUT
</li><li>DELETE 
</li></ul>
</li><li>Response status codes: 
<ul><li>200 OK: Upon successful execution.
</li><li>400 BAD REQUEST: The client provided information that lead to an error, e.g. an invalid store or object name etc. 
</li><li>404 NOT FOUND: The requested object (or the store) could not be found.
</li><li>500 INTERNAL SERVER ERROR: An internal error occurred.
</li><li>503 SERVICE UNAVAILABLE: The service is currently unable to perform the requested operation, please retry later.
</li></ul>
</li></ul>
<p><b>Examples:</b>
</p>
<pre>
PUT http://&lt;hostname&gt;:8080/smila/store/store2/object1/
{
  &quot;id&quot;: &quot;object1&quot;,
  &quot;content&quot;: &quot;my content.&quot;
}
200 OK
</pre>
<pre>
GET http://&lt;hostname&gt;:8080/smila/store/store2/object1/

200 OK
{
 &quot;id&quot;: &quot;object1&quot;,
 &quot;content&quot;: &quot;my content.&quot;
}
</pre> 
<a name="Implementations"></a><h3> <span class="mw-headline"> Implementations  </span></h3>
<p>A file system based implementation can be found in package <a href="filesystem/SimpleObjectStoreService.html" class="mw-redirect" title="SMILA/Documentation/ObjectStore/filesystem/SimpleObjectStoreService">org.eclipse.smila.objectstore.filesystem</a>.
</p>
<!-- 
NewPP limit report
Preprocessor node count: 82/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
#ifexist count: 0/100
-->

<!-- Saved in parser cache with key wikidb:pcache:idhash:32139-0!1!0!!en!2!edit=0 and timestamp 20130416060934 -->
<div class="printfooter">
Retrieved from "<a href="Bundle_org.eclipse.smila.objectstore.html">http://wiki.eclipse.org/SMILA/Documentation/ObjectStore/Bundle_org.eclipse.smila.objectstore</a>"</div>
                    <!-- end content -->
          <div class="visualClear"></div>
        </div>
      </div>


    </div>


	<!-- Yoink of toolbox for phoenix moved up -->


  </div>
  </div>
              <div id="clearFooter"/>
            <div id="footer" >  
	      <ul id="footernav">
                <li class="first"><a href="http://www.eclipse.org/">Home</a></li>
               	<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
	        <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
		<li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
                <li><a href="http://www.eclipse.org/org/foundation/contact.php">Contact</a></li>
               	<li><a href="http://wiki.eclipse.org/Eclipsepedia:About" title="Eclipsepedia:About">About Eclipsepedia</a></li>
	      </ul>
              <span id="copyright">Copyright &copy; 2013 The Eclipse Foundation. All Rights Reserved</span>
	      <p id="footercredit">This page was last modified 15:40, 23 January 2012 by <a href="http://wiki.eclipse.org/User:Andreas.schank.attensity.com" title="User:Andreas.schank.attensity.com">A. Schank</a>. Based on work by <a href="http://wiki.eclipse.org/index.php?title=User:Nadine.auslaender.attensity.com&amp;action=edit" class="new" title="User:Nadine.auslaender.attensity.com"> </a>, <a href="http://wiki.eclipse.org/User:Drazen.cindric.attensity.com" title="User:Drazen.cindric.attensity.com">Drazen Cindric</a> and <a href="http://wiki.eclipse.org/User:Igor.novakovic.attensity.com" title="User:Igor.novakovic.attensity.com">Igor Novakovic</a>.</p>
	      <p id="footerviews">This page has been accessed 2,039 times.</p>
	    </div>

            <script type="text/javascript">
              var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
              document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
            </script>
            <script type="text/javascript">
              var pageTracker = _gat._getTracker("UA-910670-4");
              pageTracker._trackPageview();
            </script>
 
 	



		

<!-- 			<div class="visualClear"></div> -->
	
		<script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script>
</div>

<!-- Served in 0.055 secs. --></body></html>
