http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/library-shiro.html ---------------------------------------------------------------------- diff --git a/content/java/develop/library-shiro.html b/content/java/develop/library-shiro.html index 7a22cd4..7b1fb99 100644 --- a/content/java/develop/library-shiro.html +++ b/content/java/develop/library-shiro.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!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=UTF-8" /><title>Shiro Security</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-servlet.html" title="Servlet" /><link rel="next" href="library-shiro-web.html" title="Shiro Web Security" /> +<!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=UTF-8" /><title>Shiro Security</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-servlet.html" title="Servlet" /><link rel="next" href="library-shiro-web.html" title="Shiro Web Security" /> <!-- favicon --> @@ -66,7 +66,7 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a href="library-locking.html">Locking</a></sp an></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-restlet.html">Restlet Support</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><span xmlns="" href="library-shiro.html">Shiro Security</span></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href ="library-spring.html">Spring Integration</a></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section" title="Shiro Security"><div class="titlepage"><div><div><h3 class="title"><a id="library-shiro"></a>Shiro Security</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>This library provides integration with the <a class="ulink" href="http://shiro.apache.org/" target="_top">Apache Shiro</a> Java Security Framework.</p><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you are working on a HTTP based application, see the <a class="xref" href="library-shiro-web. html" title="Shiro Web Security"> Shiro Web Security Library</a> that leverages this very library + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</ a></span></dt><dt><span class="section"><a href="glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt> <dt><span class="section"><a href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><span xmlns="" href="library-shiro.html">Shiro Security</span></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href="library-spring .html">Spring Integration</a></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="library-shiro"></a>Shiro Security</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>This library provides integration with the <a class="ulink" href="http://shiro.apache.org/" target="_top">Apache Shiro</a> Java Security Framework.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>If you are working on a HTTP based application, see the <a class="xref" href="library-shiro-web.html" title="Shiro Web Security"> Shiro Web Security Library</a> that leverages this very library and is directly usable with the <a class="xref" href="library-http.html" title="HTTP"> HTTP Library</a>, the <a class="xref" href="library-servlet.html" title="Servlet">Servlet Library</a> or any other Servlet based stack.</p></div><p>âApache Shiro is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiroâs easy-to-understand API, you can quickly and easily secure any application â from the smallest mobile applications to the largest web and enterprise applications.â says the Apache @@ -74,7 +74,7 @@ Shiro website.</p><p>Altough Apache Shiro can be used as-is with Polygene⢠App handy. If your use case do not fit any of theses integrations, look at their respective code. You should find out pretty easily how to compose the provided code to write your integration. Donât hesitate to contribute interesting integrations to this very library.</p><p>We invite you to read the comprehensive <a class="ulink" href="http://shiro.apache.org/documentation.html" target="_top">Apache Shiro documentation</a>, we will -mostly discuss Polygene⢠related matters here.</p><div class="table"><a id="idm229754221840"></a><p class="title"><strong>Table 39. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.shiro-core</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Basic usage"><div class="titlepage"><div><div><h4 class="title"><a id="_basic_usage"></a>Basic usage</h4></div></div></div><p>For standalone applications, you can use plain Shiro easily. The only thing to do is to register a config ured +mostly discuss Polygene⢠related matters here.</p><div class="table"><a id="idm5277"></a><p class="title"><strong>Table 38. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.shiro-core</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_basic_usage"></a>Basic usage</h4></div></div></div><p>For standalone applications, you can use plain Shiro easily. The only thing to do is to register a configured SecurityManager when activating your Polygene⢠Application. It can be done outside the application, before its activation, "à là " by-hand ;</p><pre class="programlisting brush: java">IniSecurityManagerFactory factory = new IniSecurityManagerFactory( "classpath:standalone-shiro.ini" ); SecurityManager securityManager = factory.getInstance(); @@ -115,8 +115,8 @@ public void interactionEnds() ThreadContext.unbindSubject(); ThreadContext.unbindSecurityManager(); } -</pre><p>thatâs how Shiro works.</p></div><div class="section" title="Security Concern"><div class="titlepage"><div><div><h4 class="title"><a id="_security_concern"></a>Security Concern</h4></div></div></div><p>This library provides the <code class="literal">SecurityConcern</code> that should be used alongside the provided method annotations that mimic -Apache Shiro annotations:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> +</pre><p>thatâs how Shiro works.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_security_concern"></a>Security Concern</h4></div></div></div><p>This library provides the <code class="literal">SecurityConcern</code> that should be used alongside the provided method annotations that mimic +Apache Shiro annotations:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> The <code class="literal">@RequiresAuthentication</code> annotation requires the current Subject to have been authenticated during their current session for the annotated class/instance/method to be accessed or invoked. </li><li class="listitem"> @@ -133,7 +133,7 @@ The <code class="literal">@RequiresUser</code> annotation requires the current S class/instance/method to be accessed or invoked. An <span class="emphasis"><em>application user</em></span> is defined as a Subject that has a known identity, either known due to being authenticated during the current session or remembered from <span class="emphasis"><em>RememberMe</em></span> services from a previous session. -</li></ul></div></div><div class="section" title="Realms Services"><div class="titlepage"><div><div><h4 class="title"><a id="_realms_services"></a>Realms Services</h4></div></div></div><p>All the above is sufficient as long as you use the ini file to store user credentials and permissions or a Realm that +</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_realms_services"></a>Realms Services</h4></div></div></div><p>All the above is sufficient as long as you use the ini file to store user credentials and permissions or a Realm that has no dependency on your application code and can be specified in the ini file to be instanciated by Shiro outside the Polygene⢠scope.</p><p>One usecase where itâs not sufficient comes quickly as you would like to provide user credentials and permissions from Entities stored in an EntityStore or perform any custom logic involving your Polygene⢠Application.</p><p>Letâs look at a complete example using a Realm Service that extends one of the Shiro provided Realm which use in-memory @@ -191,9 +191,9 @@ public void assemble( ModuleAssembly module ) </pre><p>We start by defining a Realm Service and its Mixin thatâs based on SimpleAccountRealm that we configure to handle hashed passwords. For the sake of the example it is shown how to hash a password using Shiro built in mecanisms. Then comes the Assembly where we simply reuse the Standalone Shiro Assembly and declare our Realm as a Service. It works the same -way when using the <a class="xref" href="library-shiro-web.html" title="Shiro Web Security"> Shiro Web Security Library</a>.</p><p>Note that under the hood, assembled Realm Services are added to the ones configured in the INI file.</p></div><div class="section" title="Security Domain"><div class="titlepage"><div><div><h4 class="title"><a id="_security_domain"></a>Security Domain</h4></div></div></div><p>Going further, if you want to persist credentials and permissions in an EntityStore, the Shiro Security Library +way when using the <a class="xref" href="library-shiro-web.html" title="Shiro Web Security"> Shiro Web Security Library</a>.</p><p>Note that under the hood, assembled Realm Services are added to the ones configured in the INI file.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_security_domain"></a>Security Domain</h4></div></div></div><p>Going further, if you want to persist credentials and permissions in an EntityStore, the Shiro Security Library provides skeletons to easily setup some usecases consisting of Shiro setup facilities and base state model for you to -compose with.</p><div class="section" title="Passwords"><div class="titlepage"><div><div><h5 class="title"><a id="_passwords"></a>Passwords</h5></div></div></div><p>Password storage is not a simple subject. Shiro provide best practice mecanisms using salt and repeated-hashing out of +compose with.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_passwords"></a>Passwords</h5></div></div></div><p>Password storage is not a simple subject. Shiro provide best practice mecanisms using salt and repeated-hashing out of the box. It is possible to setup your Realm so that hashed passwords are stored in a future proof manner, meaning that you can change the used algorithms while retaining compatibility with passwords already stored.</p><p>Shiro use the <a class="ulink" href="http://shiro.apache.org/static/current/apidocs/org/apache/shiro/crypto/hash/format/Shiro1CryptFormat.html" target="_top">Shiro1CryptFormat</a> @@ -278,7 +278,7 @@ Property<String> hashAlgorithmName(); */ @Optional Property<Integer> hashIterationsCount(); -</pre></div><div class="section" title="Permissions & Roles"><div class="titlepage"><div><div><h5 class="title"><a id="_permissions_amp_roles"></a>Permissions & Roles</h5></div></div></div><p>In the same vein, this library provide a domain state skeleton with support in <code class="literal">PasswordRealmService</code>. It allows you to +</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_permissions_amp_roles"></a>Permissions & Roles</h5></div></div></div><p>In the same vein, this library provide a domain state skeleton with support in <code class="literal">PasswordRealmService</code>. It allows you to easily store roles, permissions and assignment to your accounts.</p><p>Letâs look at the previous example with permissions added.</p><p>First you need to add the RoleAssignee type to your account:</p><pre class="programlisting brush: java">public interface User extends PasswordSecurable, RoleAssignee { @@ -322,9 +322,9 @@ if ( !currentUser.isPermitted( "permission-one" ) ) { [...snip...] uow.discard(); -</pre></div></div><div class="section" title="Other authentication mecanisms"><div class="titlepage"><div><div><h4 class="title"><a id="_other_authentication_mecanisms"></a>Other authentication mecanisms</h4></div></div></div><p>For other authentication mecanisms you can leverage Shiro extensions available in the Shiro distribution or as external +</pre></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_other_authentication_mecanisms"></a>Other authentication mecanisms</h4></div></div></div><p>For other authentication mecanisms you can leverage Shiro extensions available in the Shiro distribution or as external libraries. Thereâs support for text files, simple JDBC, LDAP, CAS SSO, OAuth, OpenID, X.509 Certificates etcâ¦</p><p>Take the PasswordRealmService as a start and extend/rewrite it to suit your needs.</p><p>If you happen to come with a Polygene⢠integration that could be valuable in this very library, donât hesitate to -contribute.</p></div><div class="section" title="Logging"><div class="titlepage"><div><div><h4 class="title"><a id="_logging_3"></a>Logging</h4></div></div></div><p>All code from this library use the <code class="literal">org.apache.polygene.library.shiro</code> logger.</p></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p> +contribute.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_logging_3"></a>Logging</h4></div></div></div><p>All code from this library use the <code class="literal">org.apache.polygene.library.shiro</code> logger.</p></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p> Copyright © 2015 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/" target="_blank">Apache License, Version 2.0</a>. <br /><small> Apache Polygene, Polygene, Apache, the Apache feather logo, and the Apache Polygene project logo are trademarks of The Apache Software Foundation.<br />
http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/library-spring.html ---------------------------------------------------------------------- diff --git a/content/java/develop/library-spring.html b/content/java/develop/library-spring.html index 3037856..969e158 100644 --- a/content/java/develop/library-spring.html +++ b/content/java/develop/library-spring.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!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=UTF-8" /><title>Spring Integration</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-shiro-web.html" title="Shiro Web Security" /><link rel="next" href="library-sql.html" title="SQL" /> +<!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=UTF-8" /><title>Spring Integration</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-shiro-web.html" title="Shiro Web Security" /><link rel="next" href="library-sql.html" title="SQL" /> <!-- favicon --> @@ -66,7 +66,7 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a href="library-locking.html">Locking</a></sp an></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-restlet.html">Restlet Support</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><span xmlns="" href="l ibrary-spring.html">Spring Integration</span></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section" title="Spring Integration"><div class="titlepage"><div><div><h3 class="title"><a id="library-spring"></a>Spring Integration</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-beta">code</p><p class="devstatus-docs-brief">docs</p><p class="devstatus-tests-some">tests</p><div class="table"><a id="idm229754102080"></a><p class="title"><strong>Table 41. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</t h><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.spring</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Using Spring Framework in Apache Polygeneâ¢"><div class="titlepage"><div><div><h4 class="title"><a id="_using_spring_framework_in_apache_polygene"></a>Using Spring Framework in Apache Polygeneâ¢</h4></div></div></div><p>Polygene⢠supports that Spring Application Context is imported into the Polygene⢠runtime, and the declared Spring + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</ a></span></dt><dt><span class="section"><a href="glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt> <dt><span class="section"><a href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><span xmlns="" href="library-spring.ht ml">Spring Integration</span></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="library-spring"></a>Spring Integration</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-beta">code</p><p class="devstatus-docs-brief">docs</p><p class="devstatus-tests-some">tests</p><div class="table"><a id="idm5430"></a><p class="title"><strong>Table 40. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Versi on</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.spring</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_using_spring_framework_in_apache_polygene"></a>Using Spring Framework in Apache Polygeneâ¢</h4></div></div></div><p>Polygene⢠supports that Spring Application Context is imported into the Polygene⢠runtime, and the declared Spring beans will be available as Polygene⢠services. The most important things to remember are;</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> Only Spring Singletons are currently supported. </li><li class="listitem"> @@ -76,7 +76,7 @@ The Polygene⢠service will be given the same name as the Spring Bean name. </li><li class="listitem"> Polygene⢠Configuration is not reacbable from the Spring bean (kind of obvious). </li></ol></div><pre class="programlisting brush: java">new SpringImporterAssembler( appContext ).assemble( module ); -</pre></div><div class="section" title="Using Apache Polygene⢠in Spring Framework"><div class="titlepage"><div><div><h4 class="title"><a id="_using_apache_polygene_in_spring_framework"></a>Using Apache Polygene⢠in Spring Framework</h4></div></div></div><p>It is also possible to run a Polygene⢠Application as a Spring Bean and export its Services to Spring.</p><p>Steps to export Polygene⢠service:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_using_apache_polygene_in_spring_framework"></a>Using Apache Polygene⢠in Spring Framework</h4></div></div></div><p>It is also possible to run a Polygene⢠Application as a Spring Bean and export its Services to Spring.</p><p>Steps to export Polygene⢠service:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> Create spring BeanFactory service of Polygene services to export. </li><li class="listitem"> Create a class that extends PolygeneApplicationBootstrap. http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/library-sql.html ---------------------------------------------------------------------- diff --git a/content/java/develop/library-sql.html b/content/java/develop/library-sql.html index 2bf473e..8be512f 100644 --- a/content/java/develop/library-sql.html +++ b/content/java/develop/library-sql.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!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=UTF-8" /><title>SQL</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-spring.html" title="Spring Integration" /><link rel="next" href="library-uid.html" title="UID" /> +<!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=UTF-8" /><title>SQL</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-spring.html" title="Spring Integration" /><link rel="next" href="library-uid.html" title="UID" /> <!-- favicon --> @@ -66,28 +66,28 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a href="library-locking.html">Locking</a></sp an></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-restlet.html">Restlet Support</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href="library-sprin g.html">Spring Integration</a></span></dt><dt><span class="section"><span xmlns="" href="library-sql.html">SQL</span></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section" title="SQL"><div class="titlepage"><div><div><h3 class="title"><a id="library-sql"></a>SQL</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>The SQL Library provides facilities for working with SQL databases.</p><p>The center piece is the DataSource support that comes with -<a class="xref" href="library-circuitbreaker.html" title="Circuit Breaker">Circuit Breaker Library</a> and <a class="xref" href="library-jmx.html" title="JMX"> JMX Library</a> support.</p><div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>See the <a class="xref" href="sample-sql-support.html" title="SQL Support Sample">SQL Support Sample</a> that demonstrate combined use of <a class="xref" href="library-sql.html" title="SQL">SQL Library</a>, <a class="xref" href="extension-es-sqlkv.html" title="SQL Key/Value EntityStore"> SQL Key/Value EntityStore</a> and + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</ a></span></dt><dt><span class="section"><a href="glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt> <dt><span class="section"><a href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href="library-spring.html">Spring I ntegration</a></span></dt><dt><span class="section"><span xmlns="" href="library-sql.html">SQL</span></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="library-sql"></a>SQL</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>The SQL Library provides facilities for working with SQL databases.</p><p>The center piece is the DataSource support that comes with +<a class="xref" href="library-circuitbreaker.html" title="Circuit Breaker">Circuit Breaker Library</a> and <a class="xref" href="library-jmx.html" title="JMX"> JMX Library</a> support.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>See the <a class="xref" href="sample-sql-support.html" title="SQL Support Sample">SQL Support Sample</a> that demonstrate combined use of <a class="xref" href="library-sql.html" title="SQL">SQL Library</a>, <a class="xref" href="extension-es-sqlkv.html" title="SQL Key/Value EntityStore"> SQL Key/Value EntityStore</a> and <a class="xref" href="extension-indexing-sql.html" title="SQL Index/Query">SQL Index/Query</a>.</p></div><p>Moreover, supplementary libraries helps dealing with different connection pool implementations and schema migrations. -None of theses libraries depends on an actual JDBC driver, you are free to use the one that suits your needs.</p><div class="table"><a id="idm229754056512"></a><p class="title"><strong>Table 42. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.sql</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="DataSource and connection pools"><div class="titlepage"><div><div><h4 class="title"><a id="_datasource_and_connection_pools"></a>DataSource and connection pools</h4></div></div> </div><p>DataSource support comes in three flavors:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> +None of theses libraries depends on an actual JDBC driver, you are free to use the one that suits your needs.</p><div class="table"><a id="idm5504"></a><p class="title"><strong>Table 41. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.sql</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_datasource_and_connection_pools"></a>DataSource and connection pools</h4></div></div></div><p>DataSource support comes in three flav ors:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> using the <a class="ulink" href="http://jolbox.com/" target="_top">BoneCP</a> connection pool </li><li class="listitem"> using the <a class="ulink" href="http://commons.apache.org/dbcp/" target="_top">Apache DBCP</a> connection pool </li><li class="listitem"> importing an existing DataSource provided at assembly time -</li></ul></div><div class="section" title="Connection Pools"><div class="titlepage"><div><div><h5 class="title"><a id="_connection_pools"></a>Connection Pools</h5></div></div></div><p>Connection Pools support is provided by supplementary libraries.</p><p><span class="strong"><strong>BoneCP</strong></span></p><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><div class="table"><a id="idm229754034848"></a><p class="title"><strong>Table 43. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="lef t" valign="top"><p>org.apache.polygene.library.sql-bonecp</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><p>BoneCP support resides in the <span class="strong"><strong>sql-bonecp</strong></span> module.</p><pre class="programlisting brush: java">// Assemble the BoneCP based Service Importer +</li></ul></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_connection_pools"></a>Connection Pools</h5></div></div></div><p>Connection Pools support is provided by supplementary libraries.</p><p><span class="strong"><strong>BoneCP</strong></span></p><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><div class="table"><a id="idm5544"></a><p class="title"><strong>Table 42. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p> org.apache.polygene.library.sql-bonecp</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><p>BoneCP support resides in the <span class="strong"><strong>sql-bonecp</strong></span> module.</p><pre class="programlisting brush: java">// Assemble the BoneCP based Service Importer new BoneCPDataSourceServiceAssembler(). identifiedBy( DS_SERVICE_ID ). visibleIn( Visibility.module ). withConfig( config, Visibility.layer ). assemble( module ); -</pre><p><span class="strong"><strong>Apache DBCP</strong></span></p><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><div class="table"><a id="idm229754017584"></a><p class="title"><strong>Table 44. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.sql-dbcp</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><pre class="programlisting brush: java">// Assemble the Apache DBCP based Service Importer +</pre><p><span class="strong"><strong>Apache DBCP</strong></span></p><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><div class="table"><a id="idm5572"></a><p class="title"><strong>Table 43. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.sql-dbcp</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><pre class="programlisting brush: java">// Assemble the Apache DBCP ba sed Service Importer new DBCPDataSourceServiceAssembler(). identifiedBy( DS_SERVICE_ID ). visibleIn( Visibility.module ). withConfig( config, Visibility.layer ). assemble( module ); -</pre></div><div class="section" title="DataSource"><div class="titlepage"><div><div><h5 class="title"><a id="_datasource"></a>DataSource</h5></div></div></div><p><span class="strong"><strong>Assembly</strong></span></p><pre class="programlisting brush: java">// Assemble a DataSource +</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_datasource"></a>DataSource</h5></div></div></div><p><span class="strong"><strong>Assembly</strong></span></p><pre class="programlisting brush: java">// Assemble a DataSource new DataSourceAssembler(). withDataSourceServiceIdentity( DS_SERVICE_ID ). identifiedBy( DS_ID ). @@ -112,6 +112,8 @@ See <a class="xref" href="howto-configure-service.html" title="Configure a Servi @Optional Property<Integer> maxConnectionAgeSeconds(); @Optional Property<String> validationQuery(); @UseDefaults Property<String> properties(); + @UseDefaults Property<Boolean> autoCommit(); + @Optional Property<Integer> isolationLevel(); } </pre><p>Sample DataSource configuration defaults:</p><pre class="programlisting brush: plain"># # Licensed to the Apache Software Foundation (ASF) under one @@ -137,14 +139,14 @@ enabled=true url=jdbc:derby:memory:testdb;create=true driver=org.apache.derby.jdbc.EmbeddedDriver username= -password=</pre></div><div class="section" title="Importing an existing DataSource"><div class="titlepage"><div><div><h5 class="title"><a id="_importing_an_existing_datasource"></a>Importing an existing DataSource</h5></div></div></div><p>Importing an existing DataSource at assembly time is usefull when your Polygene +password=</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_importing_an_existing_datasource"></a>Importing an existing DataSource</h5></div></div></div><p>Importing an existing DataSource at assembly time is usefull when your Polygene Application runs in an environment where DataSource are already provided.</p><pre class="programlisting brush: java">new ExternalDataSourceAssembler( externalDataSource ). visibleIn( Visibility.module ). identifiedBy( "datasource-external-id" ). withCircuitBreaker( DataSources.newDataSourceCircuitBreaker() ). assemble( module ); </pre><p>This mechanism is provided as an integration convenience and using the embedded -connection pools described above is recommended.</p></div></div><div class="section" title="Circuit Breaker"><div class="titlepage"><div><div><h4 class="title"><a id="_circuit_breaker"></a>Circuit Breaker</h4></div></div></div><p>Assemblers for managed and external DataSource takes an optional +connection pools described above is recommended.</p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_circuit_breaker"></a>Circuit Breaker</h4></div></div></div><p>Assemblers for managed and external DataSource takes an optional CircuitBreaker and set it as <a class="xref" href="glossary.html#def-metainfo">MetaInfo</a> of the DataSource.</p><pre class="programlisting brush: java">CircuitBreaker circuitBreaker = newDataSourceCircuitBreaker( 5 /* threshold */, 1000 * 60 * 5 /* 5min timeout */ ); new DataSourceAssembler(). @@ -156,11 +158,11 @@ new DataSourceAssembler(). </pre><p>Then, when you gets injected or lookup a DataSource it will be automatically wrapped by a CircuitBreaker proxy.</p><pre class="programlisting brush: java">@Service DataSource dataSource; // Wrapped with a CircuitBreaker proxy -</pre></div><div class="section" title="JMX"><div class="titlepage"><div><div><h4 class="title"><a id="_jmx"></a>JMX</h4></div></div></div><p>Thanks to the <a class="xref" href="library-jmx.html" title="JMX"> JMX Library</a> the Configuration of DataSources is exposed +</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_jmx"></a>JMX</h4></div></div></div><p>Thanks to the <a class="xref" href="library-jmx.html" title="JMX"> JMX Library</a> the Configuration of DataSources is exposed through JMX.</p><pre class="programlisting brush: java">new DataSourceJMXAssembler().visibleIn( Visibility.module ).assemble( module ); </pre><p>Every DataSource visible from the DataSourceConfigurationManager Service will get its Configuration available using a JMX client.</p><p>Note that the JMX support does not apply to existing DataSource imported as -described above.</p></div><div class="section" title="Schema migration"><div class="titlepage"><div><div><h4 class="title"><a id="_schema_migration"></a>Schema migration</h4></div></div></div><p>Database schema migration can be delegated to <a class="ulink" href="http://www.liquibase.org/" target="_top">Liquibase</a>.</p><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><div class="table"><a id="idm229753976992"></a><p class="title"><strong>Table 45. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><t d align="left" valign="top"><p>org.apache.polygene.library.sql-liquibase</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><p><span class="strong"><strong>Assembly</strong></span></p><pre class="programlisting brush: java">new LiquibaseAssembler() +described above.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_schema_migration"></a>Schema migration</h4></div></div></div><p>Database schema migration can be delegated to <a class="ulink" href="http://www.liquibase.org/" target="_top">Liquibase</a>.</p><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><div class="table"><a id="idm5632"></a><p class="title"><strong>Table 44. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" vali gn="top"><p>org.apache.polygene.library.sql-liquibase</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><p><span class="strong"><strong>Assembly</strong></span></p><pre class="programlisting brush: java">new LiquibaseAssembler() .withConfig( configModule, Visibility.layer ) .applyChangelogOnStartup() .assemble( module ); http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/library-uid.html ---------------------------------------------------------------------- diff --git a/content/java/develop/library-uid.html b/content/java/develop/library-uid.html index ffd1958..03ae656 100644 --- a/content/java/develop/library-uid.html +++ b/content/java/develop/library-uid.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!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=UTF-8" /><title>UID</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-sql.html" title="SQL" /><link rel="next" href="library-uowfile.html" title="UoWFile" /> +<!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=UTF-8" /><title>UID</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-sql.html" title="SQL" /><link rel="next" href="library-uowfile.html" title="UoWFile" /> <!-- favicon --> @@ -66,7 +66,7 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a href="library-locking.html">Locking</a></sp an></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-restlet.html">Restlet Support</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href="library-sprin g.html">Spring Integration</a></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><span xmlns="" href="library-uid.html">UID</span></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section" title="UID"><div class="titlepage"><div><div><h3 class="title"><a id="library-uid"></a>UID</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>This library provides Services to easily generate unique identifiers and sequences of numbers.</p><div class="table"><a id="idm229753954160"></a><p class="title"><strong>Table 46. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" v align="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.uid</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Unique Identifiers"><div class="titlepage"><div><div><h4 class="title"><a id="_unique_identifiers"></a>Unique Identifiers</h4></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new UuidServiceAssembler().visibleIn( layer ).assemble( moduleAssembly ); + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</ a></span></dt><dt><span class="section"><a href="glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt> <dt><span class="section"><a href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href="library-spring.html">Spring I ntegration</a></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><span xmlns="" href="library-uid.html">UID</span></span></dt><dt><span class="section"><a href="library-uowfile.html">UoWFile</a></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="library-uid"></a>UID</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>This library provides Services to easily generate unique identifiers and sequences of numbers.</p><div class="table"><a id="idm5669"></a><p class="title"><strong>Table 45. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</ th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.uid</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_unique_identifiers"></a>Unique Identifiers</h4></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new UuidServiceAssembler().visibleIn( layer ).assemble( moduleAssembly ); </pre><p>Usage is quite simple:</p><pre class="programlisting brush: java">@Service UuidService uuidService; public void doSomething() @@ -77,9 +77,9 @@ public void doSomething() String id2 = uuidService.generateUuid( 12 ); // eg. 84E06578EAE3 } -</pre></div><div class="section" title="Sequencing"><div class="titlepage"><div><div><h4 class="title"><a id="_sequencing"></a>Sequencing</h4></div></div></div><p>Sequencing is used to automatically generate a sequence of numbers.</p><p>The algorithm is that <code class="literal">currentSequenceValue</code> is the number that was last returned in a <code class="literal">newSequenceValue</code> call, and will +</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_sequencing"></a>Sequencing</h4></div></div></div><p>Sequencing is used to automatically generate a sequence of numbers.</p><p>The algorithm is that <code class="literal">currentSequenceValue</code> is the number that was last returned in a <code class="literal">newSequenceValue</code> call, and will initially be zero. Persisting Sequencing services defines "initially" as the first run ever, as subsequent starts may -retrieve the <code class="literal">currentSequenceValue</code> from an EntityStore.</p><div class="section" title="Transient Sequences"><div class="titlepage"><div><div><h5 class="title"><a id="_transient_sequences"></a>Transient Sequences</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new TransientSequencingAssembler().visibleIn( layer ).assemble( moduleAssembly ); +retrieve the <code class="literal">currentSequenceValue</code> from an EntityStore.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_transient_sequences"></a>Transient Sequences</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new TransientSequencingAssembler().visibleIn( layer ).assemble( moduleAssembly ); </pre><p>Usage is quite simple:</p><pre class="programlisting brush: java">@Service Sequencing sequencing; public void doSomething() @@ -89,7 +89,7 @@ public void doSomething() sequencing.newSequenceValue(); // return 1 sequencing.currentSequenceValue(); // return 1 } -</pre></div><div class="section" title="Persisted Sequences"><div class="titlepage"><div><div><h5 class="title"><a id="_persisted_sequences"></a>Persisted Sequences</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new PersistingSequencingAssembler().visibleIn( layer ).assemble( moduleAssembly ); +</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_persisted_sequences"></a>Persisted Sequences</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new PersistingSequencingAssembler().visibleIn( layer ).assemble( moduleAssembly ); </pre><p>Usage is quite simple:</p><pre class="programlisting brush: java">@Service Sequencing sequencing; public void doSomething() http://git-wip-us.apache.org/repos/asf/polygene-website/blob/538baaf6/content/java/develop/library-uowfile.html ---------------------------------------------------------------------- diff --git a/content/java/develop/library-uowfile.html b/content/java/develop/library-uowfile.html index 4d4734a..96e0170 100644 --- a/content/java/develop/library-uowfile.html +++ b/content/java/develop/library-uowfile.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!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=UTF-8" /><title>UoWFile</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-uid.html" title="UID" /><link rel="next" href="extensions.html" title="Extensions" /> +<!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=UTF-8" /><title>UoWFile</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="libraries.html" title="Libraries" /><link rel="prev" href="library-uid.html" title="UID" /><link rel="next" href="extensions.html" title="Extensions" /> <!-- favicon --> @@ -66,12 +66,12 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt><dt><span class="section"><a href="library-locking.html">Locking</a></sp an></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-restlet.html">Restlet Support</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href="library-sprin g.html">Spring Integration</a></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><span xmlns="" href="library-uowfile.html">UoWFile</span></span></dt></dl></div></div><div class="section" title="UoWFile"><div class="titlepage"><div><div><h3 class="title"><a id="library-uowfile"></a>UoWFile</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-complete">tests</p><p>The UoWFile Library provides an easy way to bind file operations to UnitOfWorks.</p><p>In other words, using this library you can easily attach files to your + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" style="width:80%;height:80%; padding-top:20px;" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><span xmlns="" href="libraries.html">Libraries</span></span></dt><dt><span class="section"><a href="extensions.html">Extensions</a></span></dt><dt><span class="section"><a href="tools.html">Tools</ a></span></dt><dt><span class="section"><a href="glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="libraries.html#_overview_5">Overview</a></span></dt><dt><span class="section"><a href="scripting.html">Scripting</a></span></dt><dt><span class="section"><a href="library-alarm.html">Alarms</a></span></dt><dt><span class="section"><a href="library-circuitbreaker.html">Circuit Breaker</a></span></dt><dt><span class="section"><a href="library-constraints.html">Constraints</a></span></dt><dt><span class="section"><a href="library-fileconfig.html">FileConfig</a></span></dt><dt><span class="section"><a href="library-http.html">HTTP</a></span></dt><dt><span class="section"><a href="library-invocation-cache.html">Invocation Cache</a></span></dt><dt><span class="section"><a href="library-jmx.html">JMX</a></span></dt> <dt><span class="section"><a href="library-locking.html">Locking</a></span></dt><dt><span class="section"><a href="library-logging.html">Logging</a></span></dt><dt><span class="section"><a href="library-osgi.html">OSGi</a></span></dt><dt><span class="section"><a href="library-rdf.html">RDF</a></span></dt><dt><span class="section"><a href="library-rest-client.html">ReST Client</a></span></dt><dt><span class="section"><a href="library-rest-client-primer.html">ReST - HATEOAS Primer</a></span></dt><dt><span class="section"><a href="library-rest-common.html">ReST Common</a></span></dt><dt><span class="section"><a href="library-rest-server.html">ReST Server</a></span></dt><dt><span class="section"><a href="library-servlet.html">Servlet</a></span></dt><dt><span class="section"><a href="library-shiro.html">Shiro Security</a></span></dt><dt><span class="section"><a href="library-shiro-web.html">Shiro Web Security</a></span></dt><dt><span class="section"><a href="library-spring.html">Spring I ntegration</a></span></dt><dt><span class="section"><a href="library-sql.html">SQL</a></span></dt><dt><span class="section"><a href="library-uid.html">UID</a></span></dt><dt><span class="section"><span xmlns="" href="library-uowfile.html">UoWFile</span></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="library-uowfile"></a>UoWFile</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-complete">tests</p><p>The UoWFile Library provides an easy way to bind file operations to UnitOfWorks.</p><p>In other words, using this library you can easily attach files to your Composites, mostly EntityComposites, so that if the UoW gets discarded, changes to files are discarded too. Concurrent modifications are properly handled.</p><p>Note that it has a performance impact relative to the files size as it duplicates the file to keep a backup for eventual rollback. However, the API provides a way to get non-managed handles on the attached files to keep your -read-only operations fast.</p><p>The location of files is left to the developer using a private mixin.</p><div class="table"><a id="idm229753918704"></a><p class="title"><strong>Table 47. Artifact</strong></p><div class="table-contents"><table summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.uowfile</p></td><td align="left" valign="top"><p>3.1.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section" title="Logging"><div class="titlepage"><div><div><h4 class="title"><a id="_logging_4"></a>Logging</h4></div></div></div><p>The SLF4J Logger used by this library is named "org.apache.polyg ene.library.uowfile".</p></div><div class="section" title="Add an attached file to an Entity"><div class="titlepage"><div><div><h4 class="title"><a id="_add_an_attached_file_to_an_entity"></a>Add an attached file to an Entity</h4></div></div></div><p>Letâs say you have the following Entity:</p><pre class="programlisting brush: java">public interface TestedEntity +read-only operations fast.</p><p>The location of files is left to the developer using a private mixin.</p><div class="table"><a id="idm5723"></a><p class="title"><strong>Table 46. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.libraries</p></td><td align="left" valign="top"><p>org.apache.polygene.library.uowfile</p></td><td align="left" valign="top"><p>0</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_logging_4"></a>Logging</h4></div></div></div><p>The SLF4J Logger used by this library is named "org.apache.polygene.library.uowfile".</ p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_add_an_attached_file_to_an_entity"></a>Add an attached file to an Entity</h4></div></div></div><p>Letâs say you have the following Entity:</p><pre class="programlisting brush: java">public interface TestedEntity [...snip...] { @@ -122,7 +122,7 @@ read-only operations fast.</p><p>The location of files is left to the developer } </pre><p>You can now use the following methods on your EntityComposite:</p><pre class="programlisting brush: java">File attachedFile = entity.attachedFile(); File managedFile = entity.managedFile(); -</pre></div><div class="section" title="Going plural"><div class="titlepage"><div><div><h4 class="title"><a id="_going_plural"></a>Going plural</h4></div></div></div><p>Now if you want to attach several files to one entity, this library provides a +</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_going_plural"></a>Going plural</h4></div></div></div><p>Now if you want to attach several files to one entity, this library provides a simple mechanism allowing you to use any enum as discriminator.</p><p>Letâs say you have the following Entity:</p><pre class="programlisting brush: java">public interface TestedEntity [...snip...]