| |
| |
| <!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/Binary Storage,SMILA/Documentation/General JPA Configuration in SMILA" /> |
| <link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Documentation/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&feed=rss" /> |
| <link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&feed=atom" /> |
| |
| |
| <title>SMILA/Documentation/Binary Storage - Eclipsepedia</title> |
| |
| <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "/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/Binary_Storage"; |
| var wgTitle = "SMILA/Documentation/Binary Storage"; |
| var wgAction = "view"; |
| var wgRestrictionEdit = []; |
| var wgRestrictionMove = []; |
| var wgArticleId = "16704"; |
| var wgIsArticle = true; |
| var wgUserName = null; |
| var wgUserGroups = null; |
| var wgUserLanguage = "en"; |
| var wgContentLanguage = "en"; |
| var wgBreakFrames = false; |
| var wgCurRevisionId = "175158"; |
| 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=-&action=raw&gen=js&useskin=eclipsenova"><!-- site js --></script> |
| |
| <!-- Head Scripts --> |
| <script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script> |
| <style type="text/css">/*<![CDATA[*/ |
| .source-xml {line-height: normal; font-size: medium;} |
| .source-xml li {line-height: normal;} |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for xml |
| * CSS class: source-xml, CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) |
| */ |
| .source-xml .de1, .source-xml .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;} |
| .source-xml {} |
| .source-xml .head {} |
| .source-xml .foot {} |
| .source-xml .imp {font-weight: bold; color: red;} |
| .source-xml .ln-xtra {color: #cc0; background-color: #ffc;} |
| .source-xml li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;} |
| .source-xml li.li2 {font-weight: bold;} |
| .source-xml .coMULTI {color: #808080; font-style: italic;} |
| .source-xml .es0 {color: #000099; font-weight: bold;} |
| .source-xml .br0 {color: #66cc66;} |
| .source-xml .st0 {color: #ff0000;} |
| .source-xml .nu0 {color: #cc66cc;} |
| .source-xml .sc0 {color: #00bbdd;} |
| .source-xml .sc1 {color: #ddbb00;} |
| .source-xml .sc2 {color: #339933;} |
| .source-xml .sc3 {color: #009900;} |
| .source-xml .re0 {color: #000066;} |
| .source-xml .re1 {font-weight: bold; color: black;} |
| .source-xml .re2 {font-weight: bold; color: black;} |
| |
| /*]]>*/ |
| </style> |
| <style type="text/css">/*<![CDATA[*/ |
| @import "/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; |
| /*]]>*/ |
| </style><style type="text/css">/*<![CDATA[*/ |
| .source-java {line-height: normal; font-size: medium;} |
| .source-java li {line-height: normal;} |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for java |
| * CSS class: source-java, CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) |
| */ |
| .source-java .de1, .source-java .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;} |
| .source-java {} |
| .source-java .head {} |
| .source-java .foot {} |
| .source-java .imp {font-weight: bold; color: red;} |
| .source-java .ln-xtra {color: #cc0; background-color: #ffc;} |
| .source-java li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;} |
| .source-java li.li2 {font-weight: bold;} |
| .source-java .kw1 {color: #7F0055; font-weight: bold;} |
| .source-java .kw2 {color: #7F0055; font-weight: bold;} |
| .source-java .kw3 {color: #000000; font-weight: normal} |
| .source-java .kw4 {color: #7F0055; font-weight: bold;} |
| .source-java .co1 {color: #3F7F5F; font-style: italic;} |
| .source-java .co2 {color: #3F7F5F;} |
| .source-java .co3 {color: #3F7F5F; font-style: italic; font-weight: bold;} |
| .source-java .coMULTI {color: #3F5FBF; font-style: italic;} |
| .source-java .es0 {color: #000000;} |
| .source-java .br0 {color: #000000;} |
| .source-java .st0 {color: #2A00ff;} |
| .source-java .nu0 {color: #000000;} |
| .source-java .me1 {color: #000000;} |
| .source-java .me2 {color: #000000;} |
| |
| /*]]>*/ |
| </style> |
| <style type="text/css">/*<![CDATA[*/ |
| @import "/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; |
| /*]]>*/ |
| </style><link rel="stylesheet" type="text/css" href="Binary_Storage.html" /> </head> |
| <body class="mediawiki ns-0 ltr page-SMILA_Documentation_Binary_Storage"> |
| <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&returnto=SMILA/Documentation/Binary_Storage">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" /> |
| <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   </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   </a></li> |
| |
| <li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Documentation/Binary_Storage">What links here</a></li> |
| <li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/Binary_Storage">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/Binary_Storage&printable=yes">Printable version</a></li> <li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Binary_Storage&oldid=175158">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="Binary_Storage.html"><span class="tab">Page</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/Binary_Storage&action=edit"><span class="tab">Discussion</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Binary_Storage&action=edit"><span class="tab">View source</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Binary_Storage&action=history"><span class="tab">History</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&returnto=SMILA/Documentation/Binary%20Storage"><span class="tab">Edit</span></a></li> |
| </ul> |
| </div> |
| |
| |
| <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script> |
| <h1 class="firstHeading">SMILA/Documentation/Binary Storage</h1> |
| <div id="bodyContent"> |
| <h3 id="siteSub">From Eclipsepedia</h3> |
| <div id="contentSub"><span class="subpages">< <a href="../../SMILA.html" title="SMILA">SMILA</a> | <a href="../Documentation.html" title="SMILA/Documentation">Documentation</a></span></div> |
| <div id="jump-to-nav">Jump to: <a href="Binary_Storage.html#column-one">navigation</a>, <a href="Binary_Storage.html#searchInput">search</a></div> <!-- start content --> |
| <p> |
| </p> |
| <table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div> |
| <ul> |
| <li class="toclevel-1"><a href="Binary_Storage.html#Overview"><span class="tocnumber">1</span> <span class="toctext">Overview</span></a></li> |
| <li class="toclevel-1"><a href="Binary_Storage.html#Configuration"><span class="tocnumber">2</span> <span class="toctext">Configuration</span></a></li> |
| <li class="toclevel-1"><a href="Binary_Storage.html#Configuration_example"><span class="tocnumber">3</span> <span class="toctext">Configuration example</span></a></li> |
| <li class="toclevel-1"><a href="Binary_Storage.html#API"><span class="tocnumber">4</span> <span class="toctext">API</span></a></li> |
| <li class="toclevel-1"><a href="Binary_Storage.html#API_Usage"><span class="tocnumber">5</span> <span class="toctext">API Usage</span></a></li> |
| <li class="toclevel-1"><a href="Binary_Storage.html#Implementations"><span class="tocnumber">6</span> <span class="toctext">Implementations</span></a> |
| <ul> |
| <li class="toclevel-2"><a href="Binary_Storage.html#eclipse.smila.binarystorage.persistence.io"><span class="tocnumber">6.1</span> <span class="toctext">eclipse.smila.binarystorage.persistence.io</span></a> |
| <ul> |
| <li class="toclevel-3"><a href="Binary_Storage.html#IOHierarchicalManager"><span class="tocnumber">6.1.1</span> <span class="toctext">IOHierarchicalManager</span></a></li> |
| <li class="toclevel-3"><a href="Binary_Storage.html#IOFlatManager"><span class="tocnumber">6.1.2</span> <span class="toctext">IOFlatManager</span></a></li> |
| </ul> |
| </li> |
| <li class="toclevel-2"><a href="Binary_Storage.html#eclipse.smila.binarystorage.persistence.efs"><span class="tocnumber">6.2</span> <span class="toctext">eclipse.smila.binarystorage.persistence.efs</span></a></li> |
| <li class="toclevel-2"><a href="Binary_Storage.html#eclipse.smila.binarystorage.persistence.jpa"><span class="tocnumber">6.3</span> <span class="toctext">eclipse.smila.binarystorage.persistence.jpa</span></a></li> |
| </ul> |
| </li> |
| </ul> |
| </td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script> |
| <a name="Overview"></a><h2> <span class="mw-headline"> Overview </span></h2> |
| <p>Binary Storage Service provides an easy way to store / access binary data documents. |
| </p><p>Client components access the Binary Storage Service for persisting binary data (attachments) into the binary storage. The binary data are identified by a unique key / identifier as a String data type. |
| </p> |
| <a name="Configuration"></a><h2> <span class="mw-headline"> Configuration </span></h2> |
| <p>Currently, Binary Storage is able to run and store data into a hierarchical structure (uses deterministically calculation based on the hash id passed by the client component, like the ID passed from the Blackboard Service) and flat structure. |
| </p><p>To configure the needed persistence storage structure, simply edit the /configuration/org.eclipse.smila.binarystorage/BinaryStorageConfiguration.xml file and change the value of <tt>implementationClass</tt> attribute to the one of the following available possibilities: |
| </p> |
| <ul><li> org.eclipse.smila.binarystorage.internal.impl.persistence.filesystem.IOHierarchicalManager |
| </li><li> org.eclipse.smila.binarystorage.internal.impl.persistence.filesystem.IOFlatManager |
| </li></ul> |
| <p>In the next future there will be other available managers that provides the appropriate implementation for Binary Storage persistence structure. |
| </p><p>The Binary Storage Configuration will be changed soon. |
| </p> |
| <a name="Configuration_example"></a><h2> <span class="mw-headline"> Configuration example </span></h2> |
| <div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1"><BinaryStorageConfiguration</span> <span class="re0">xmlns</span>=<span class="st0">"http://www.eclipse.org/smila/binarystorage"</span> |
| <span class="re0">xmlns:xsi</span>=<span class="st0">"http://www.w3.org/2001/XMLSchema-instance"</span> |
| <span class="re0">xsi:noNamespaceSchemaLocation</span>=<span class="st0">"schemas/BinaryStorageConfiguration.xsd"</span> |
| <span class="re0">name</span>=<span class="st0">"default1"</span> |
| <span class="re0">provider</span>=<span class="st0">"file"</span> |
| <span class="re0">mountPoint</span>=<span class="st0">"default"</span> |
| <span class="re0">implementationClass</span>=<span class="st0">"org.eclipse.smila.binarystorage.internal.impl.persistence.filesystem.IOHierarchicalManager"</span> |
| <span class="re0">tempFileName</span>=<span class="st0">"dummy.dat"</span> |
| <span class="re0">pathDepth</span>=<span class="st0">"2"</span> |
| <span class="re2">/></span></span></pre></div> |
| <p>Attributes explained: |
| </p> |
| <ul><li> <tt>name</tt> - configuration alias |
| </li><li> <tt>implementationClass</tt> - binary storage implementation manager class |
| </li><li> <tt>tempFileName</tt> - binary storage temporary file name |
| </li><li> <tt>pathDepth</tt> - the depth of the folder structure (Note: If not set the default value is 2.) |
| </li></ul> |
| <a name="API"></a><h2> <span class="mw-headline"> API </span></h2> |
| <div dir="ltr" style="text-align: left;"><pre class="source-java"><span class="kw4">void</span> store<span class="br0">(</span><span class="kw3">String</span> id, <span class="kw3">InputStream</span> stream<span class="br0">)</span>; |
| <span class="kw4">void</span> store<span class="br0">(</span><span class="kw3">String</span> id, <span class="kw4">byte</span><span class="br0">[</span><span class="br0">]</span> blob<span class="br0">)</span> |
| <span class="kw4">byte</span><span class="br0">[</span><span class="br0">]</span> fetchAsByte<span class="br0">(</span><span class="kw3">String</span> id<span class="br0">)</span> |
| <span class="kw3">InputStream</span> fetchAsStream<span class="br0">(</span><span class="kw3">String</span> id<span class="br0">)</span> |
| <span class="kw4">void</span> remove<span class="br0">(</span><span class="kw3">String</span> id<span class="br0">)</span> |
| <span class="kw4">int</span> fetchSize<span class="br0">(</span><span class="kw3">String</span> id<span class="br0">)</span></pre></div> |
| <a name="API_Usage"></a><h2> <span class="mw-headline"> API Usage </span></h2> |
| <div dir="ltr" style="text-align: left;"><pre class="source-java">BinaryStorageService binaryStorageService = ...; <span class="co1">// Obtain the binary storage service</span> |
| <span class="kw3">String</span> attacmentIdKey = ...; <span class="co1">// Unique ID</span> |
| <span class="kw4">byte</span><span class="br0">[</span><span class="br0">]</span> dataRecord = ... <span class="co1">// Build record</span> |
| |
| <span class="co1">// Store the binary record as byte array</span> |
| binaryStorageService.<span class="me1">store</span><span class="br0">(</span>attacmentIdKey, dataRecord<span class="br0">)</span>; |
| |
| <span class="co1">// Fetch record as stream</span> |
| <span class="kw1">final</span> <span class="kw3">InputStream</span> stream = binaryStorageService.<span class="me1">fetchAsStream</span><span class="br0">(</span>attacmentIdKey<span class="br0">)</span>; |
| |
| <span class="co1">// Define new ID and store new data from the first record's input stream</span> |
| <span class="kw1">final</span> <span class="kw3">String</span> newAttacmentIdKey = attacmentIdKey + <span class="st0">"0000"</span>; |
| binaryStorageService.<span class="me1">store</span><span class="br0">(</span>newAttacmentIdKey, stream<span class="br0">)</span>; |
| stream.<span class="me1">close</span><span class="br0">(</span><span class="br0">)</span>; |
| |
| <span class="co1">// Fetch the newest record as array of byte </span> |
| <span class="kw1">final</span> <span class="kw4">byte</span><span class="br0">[</span><span class="br0">]</span> recordByte = binaryStorageService.<span class="me1">fetchAsByte</span><span class="br0">(</span>newAttacmentIdKey<span class="br0">)</span>; |
| |
| <span class="co1">// The two records must have the same size</span> |
| <span class="kw1">final</span> <span class="kw4">int</span> sizeInitial = _binaryStorageService.<span class="me1">fetchSize</span><span class="br0">(</span>attacmentIdKey<span class="br0">)</span>; |
| <span class="kw1">final</span> <span class="kw4">int</span> sizeFinal = binaryStorageService.<span class="me1">fetchSize</span><span class="br0">(</span>newAttacmentIdKey<span class="br0">)</span>; |
| |
| <span class="co1">// Remove the two records</span> |
| binaryStorageService.<span class="me1">remove</span><span class="br0">(</span>attacmentIdKey<span class="br0">)</span>; |
| binaryStorageService.<span class="me1">remove</span><span class="br0">(</span>newAttacmentIdKey<span class="br0">)</span>;</pre></div> |
| <a name="Implementations"></a><h2> <span class="mw-headline"> Implementations </span></h2> |
| <a name="eclipse.smila.binarystorage.persistence.io"></a><h3> <span class="mw-headline"> eclipse.smila.binarystorage.persistence.io </span></h3> |
| <p>Both I/O implementations use the id in the path name of the persisted file. As a consequence |
| </p> |
| <ul><li> the characters <tt>[;/\:]</tt> are not allowed in the id |
| </li><li> too long ids will exceed the platform specific supported max. path length. this will result in a not so obvious error message, that saving failed. |
| </li></ul> |
| <p>ATM neither limitation this is a problem because the id is a hash made from letters and numbers. |
| </p> |
| <a name="IOHierarchicalManager"></a><h4> <span class="mw-headline"> IOHierarchicalManager </span></h4> |
| <p>The calculation of the path is simply to split the first part of the id into substrings of length 2 and make thees parent folders having the name of the id. |
| </p><p>Care must be taken that the folder depth is not too high, because this results in a <em>lot</em> of folders quenching the performance of the file system. |
| </p> |
| <a name="IOFlatManager"></a><h4> <span class="mw-headline"> IOFlatManager </span></h4> |
| <p>If u only have a few files or ur underlying file system is very good inhandling lots of files per folder then go with this manager. |
| </p><p><br /> |
| </p> |
| <a name="eclipse.smila.binarystorage.persistence.efs"></a><h3> <span class="mw-headline"> eclipse.smila.binarystorage.persistence.efs </span></h3> |
| <p>This implementation is based on EFS. |
| </p><p><br /> |
| </p> |
| <a name="eclipse.smila.binarystorage.persistence.jpa"></a><h3> <span class="mw-headline"> eclipse.smila.binarystorage.persistence.jpa </span></h3> |
| <p>This implementation uses eclipseLink JPA to store the binary objects in a database table named <tt>BINARY_OBJECTS</tt>. |
| </p><p>The default configuration is using Apache Derby and the DB name is <tt>BinaryStorage</tt>. |
| </p> |
| <table class="wikitable" border="1" style="text-align:left"> |
| <caption> BINARY_OBJECTS |
| </caption><tr> |
| <th> Column |
| </th><th> Type |
| </th><th> Description |
| </th></tr> |
| <tr> |
| <th> ID |
| </th><td> VARCHAR |
| </td><td> the Id of the binary object |
| </td></tr> |
| <tr> |
| <th> BIN_OBJECT |
| </th><td> BLOB |
| </td><td> the binary object |
| </td></tr> |
| </table> |
| <p><br /> |
| </p><p>In order to use this implementation you have to |
| </p> |
| <ul><li> set parameter <tt>implementationClass</tt> in file <tt>org.eclipse.smila.binarystorage.impl/BinaryStorageConfiguration.xml</tt> to <tt>org.eclipse.smila.binarystorage.persistence.jpa.JPABinaryPersistence</tt> |
| </li><li> make sure that the bundle <tt>eclipse.smila.binarystorage.persistence.jpa</tt> starts in your launch configuration |
| </li></ul> |
| <p>All other settings in <tt>BinaryStorageConfiguration.xml</tt> are ignored ! |
| </p><p><br /> |
| </p><p>See <a href="General_JPA_Configuration_in_SMILA.html" title="SMILA/Documentation/General JPA Configuration in SMILA">General JPA Configuration in SMILA</a> for a description on how to configure JPA based implementations. |
| </p> |
| <!-- |
| NewPP limit report |
| Preprocessor node count: 35/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:16704-0!1!0!!en!2!edit=0 and timestamp 20110617075051 --> |
| <div class="printfooter"> |
| Retrieved from "<a href="Binary_Storage.html">http://wiki.eclipse.org/SMILA/Documentation/Binary_Storage</a>"</div> |
| <div id="catlinks"><p class='catlinks'><a href="http://wiki.eclipse.org/Special:Categories" title="Special:Categories">Category</a>: <span dir='ltr'><a href="http://wiki.eclipse.org/Category:SMILA" title="Category:SMILA">SMILA</a></span></p></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 © 2011 The Eclipse Foundation. All Rights Reserved</span> |
| <p id="footercredit">This page was last modified 07:15, 17 October 2009 by <a href="http://wiki.eclipse.org/User:Tmenzel.brox.de" title="User:Tmenzel.brox.de">thomas menzel</a>. Based on work by <a href="http://wiki.eclipse.org/User:Daniel.stucky.empolis.com" title="User:Daniel.stucky.empolis.com">Daniel Stucky</a>, <a href="http://wiki.eclipse.org/User:Igor.novakovic.empolis.com" title="User:Igor.novakovic.empolis.com">Igor Novakovic</a> and <a href="http://wiki.eclipse.org/User:Eliseyev.softaria.com" title="User:Eliseyev.softaria.com">Alexander Eliseyev</a> and <a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Binary_Storage&action=credits" title="SMILA/Documentation/Binary Storage">others</a>.</p> |
| <p id="footerviews">This page has been accessed 2,352 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.155 secs. --></body></html> |