Author: buildbot
Date: Tue Dec 11 13:48:10 2012
New Revision: 841694
Log:
Production update by buildbot for cxf
Modified:
websites/production/cxf/content/cache/docs.pageCache
websites/production/cxf/content/docs/jax-rs-advanced-features.html
websites/production/cxf/content/docs/jax-rs-xml-security.html
Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/cxf/content/docs/jax-rs-advanced-features.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs-advanced-features.html
(original)
+++ websites/production/cxf/content/docs/jax-rs-advanced-features.html Tue Dec
11 13:48:10 2012
@@ -124,7 +124,7 @@ Apache CXF -- JAX-RS Advanced Features
<div id="ConfluenceContent"><p><span
style="font-size:2em;font-weight:bold">JAX-RS : Advanced Features</span></p>
<div>
-<ul><li><a shape="rect" href="#JAX-RSAdvancedFeatures-JMSSupport">JMS
Support</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Endpoints">Endpoints</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Client">Client</a></li></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-FIQLsearchqueries">FIQL search
queries</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Introduction">Introduction</a></li><li><a
shape="rect" href="#JAX-RSAdvancedFeatures-WhentouseFIQL">When to use
FIQL</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-DependenciesandConfiguration">Dependencies and
Configuration</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-WorkingwithFIQLqueries">Working with FIQL
queries</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-CapturingFIQLqueries">Capturing FIQL
queries</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Mappingofquerypropertiestobeanproperties">Mapping
of query properties to bean prop
erties</a></li></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Mappingofquerypropertiestocolumn%2Ffieldnames">Mapping
of query properties to column/field names</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SearchBean">SearchBean</a></li><li><a
shape="rect" href="#JAX-RSAdvancedFeatures-ConvertingFIQLqueries">Converting
FIQL queries</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SQL">SQL</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-JPA2.0">JPA 2.0</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Lucene">Lucene</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-LDAP">LDAP</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Customvisitors">Custom
visitors</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Untypedconverters">Untyped
converters</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Typedconverters">Typed converters</a></li><li><a
shape="rect" href="#JAX-RSAdvancedFeatures-Custompar
sing">Custom parsing</a></li></ul></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-ConvertingFIQLquerieswithQueryContext">Converting
FIQL queries with QueryContext</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SearchExpressionsinURIPathsegments">Search
Expressions in URI Path segments</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Queriesinvolvingmultipleentities">Queries
involving multiple entities</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Basicqueries">Basic queries</a></li><li><a
shape="rect" href="#JAX-RSAdvancedFeatures-Complexqueries">Complex
queries</a></li></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-BuildingFIQLqueries">Building FIQL
queries</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Usingdatesinqueries">Using dates in
queries</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Alternativequerylanguages">Alternative query
languages</a></li></ul><li><a shape="rect" href="#JAX-RSAdvancedFe
atures-Onewayinvocations">Oneway invocations</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SupportforContinuations">Support for
Continuations</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Serversidecaching">Server-side
caching</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-RESTfulserviceswithoutannotations">RESTful
services without annotations</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Configuration">Configuration</a></li></ul></ul></div>
+<ul><li><a shape="rect" href="#JAX-RSAdvancedFeatures-JMSSupport">JMS
Support</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Endpoints">Endpoints</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Client">Client</a></li></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-FIQLsearchqueries">FIQL search
queries</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Introduction">Introduction</a></li><li><a
shape="rect" href="#JAX-RSAdvancedFeatures-WhentouseFIQL">When to use
FIQL</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-DependenciesandConfiguration">Dependencies and
Configuration</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-WorkingwithFIQLqueries">Working with FIQL
queries</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-CapturingFIQLqueries">Capturing FIQL
queries</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Mappingofquerypropertiestobeanproperties">Mapping
of query properties to bean prop
erties</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Parserproperties">Parser
properties</a></li></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Mappingofquerypropertiestocolumn%2Ffieldnames">Mapping
of query properties to column/field names</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SearchBean">SearchBean</a></li><li><a
shape="rect" href="#JAX-RSAdvancedFeatures-ConvertingFIQLqueries">Converting
FIQL queries</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SQL">SQL</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-JPA2.0">JPA 2.0</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Lucene">Lucene</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-LDAP">LDAP</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Customvisitors">Custom
visitors</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Untypedconverters">Untyped
converters</a></li><li><a shape="rect" href="#JAX-RSAdvancedFeatures-Typedco
nverters">Typed converters</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Customparsing">Custom
parsing</a></li></ul></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-ConvertingFIQLquerieswithQueryContext">Converting
FIQL queries with QueryContext</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SearchExpressionsinURIPathsegments">Search
Expressions in URI Path segments</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Queriesinvolvingmultipleentities">Queries
involving multiple entities</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Basicqueries">Basic queries</a></li><li><a
shape="rect" href="#JAX-RSAdvancedFeatures-Complexqueries">Complex
queries</a></li></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-BuildingFIQLqueries">Building FIQL
queries</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Usingdatesinqueries">Using dates in
queries</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Alternativequeryl
anguages">Alternative query languages</a></li></ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Onewayinvocations">Oneway
invocations</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-SupportforContinuations">Support for
Continuations</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Serversidecaching">Server-side
caching</a></li><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-RESTfulserviceswithoutannotations">RESTful
services without annotations</a></li><ul><li><a shape="rect"
href="#JAX-RSAdvancedFeatures-Configuration">Configuration</a></li></ul></ul></div>
<h1><a shape="rect" name="JAX-RSAdvancedFeatures-JMSSupport"></a>JMS
Support</h1>
@@ -304,7 +304,7 @@ expression or a more complex, composite
<ul class="alternate" type="square"><li>Capturing beans may evolve
independently of the actual queries; for example, a working query such as
"name==b" will break if a Book 'name' gets renamed to 'title' which will make
it difficult to have the queries bookmarked.</li><li>Direct match will simply
not work for cases where an actual bean property does not belong to the
capturing bean itself but to one of its child properties; for example, a JPA2
Book entity may have an OwnerInfo bean with Name bean property which does
contain a primitive 'name' property.</li></ul>
-<p>The preferred approach, when working with typed beans, is to register a
bean properties map, using a "search.bean.property.map" contextual property.
For example, given</p>
+<p>The preferred approach, when working with typed beans, is to register a
bean properties map, using a "search.bean.property.map" contextual property or
directly with SearchContext. For example, given</p>
<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
<pre class="code-java">
@@ -371,13 +371,38 @@ expression or a more complex, composite
</div></div>
<p>the mapping between "oname" and "ownerinfo.name" will work too.</p>
+<p>You can also have many to one mappings, for example</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-xml">
+<span class="code-tag"><map></span>
+ <span class="code-tag"><span class="code-comment"><!-- 'oname' and 'owner'
are aliases for the 'ownerinfo.name.name' bean property --></span></span>
+ <span class="code-tag"><entry key=<span class="code-quote">"oname"</span>
value=<span class="code-quote">"ownerinfo.name.name"</span>/></span>
+ <span class="code-tag"><entry key=<span class="code-quote">"owner"</span>
value=<span class="code-quote">"ownerinfo.name.name"</span>/></span>
+<span class="code-tag"></map></span>
+</pre>
+</div></div>
+
+
+
+<h3><a shape="rect" name="JAX-RSAdvancedFeatures-Parserproperties"></a>Parser
properties</h3>
+
+<p>The parser properties are the ones which tell the parser how to treat the
conversion of Date values and the unrecognized search property names. </p>
+
+<p>As explained above, "search.lax.property.match" can be used to tell the
parser that it should ignore the search property names which have no
corresponding bean properties.</p>
+
+<p>"search.date.format" and "search.timezone.support" tell the parser how to
convert the date values, see "Using dates in queries" section.</p>
+
+<p>More properties may be supported in the future.</p>
+
+<p>All of these properties can be set as endpoint contextual properties or
directly with SearchContext.</p>
+
<h2><a shape="rect"
name="JAX-RSAdvancedFeatures-Mappingofquerypropertiestocolumn%2Ffieldnames"></a>Mapping
of query properties to column/field names</h2>
<p>When converting FIQL queries to SQL or other untyped query language
expressions, as well as when using Lucene converter, it can be useful to be
able to map between an actual query parameter and the column or field name. All
FIQL converters shipped with CXF have constructors accepting a map for mapping
the queries to columns/fields. See the next "SearchBean" section for one
example.</p>
<p>Note this property is not the same as the one described in the "Mapping of
query properties to bean properties" section. The latter (the one described in
the previous section) is required for getting FIQL queries captured into typed,
domain specific beans like Book, and it can be sufficient for JPA2 which also
has annotations like @Column. </p>
-
<h2><a shape="rect"
name="JAX-RSAdvancedFeatures-SearchBean"></a>SearchBean</h2>
<p>org.apache.cxf.jaxrs.ext.search.SearchBean is a utility bean class which
can simplify analyzing the captured FIQL expressions and converting them to the
other language expressions, in cases where having to update the bean class such
as Book.class with all the properties that may need to be supported is not
practical or the properties need to be managed manually. For example:</p>
@@ -938,12 +963,7 @@ server = sf.create();
<span class="code-keyword">throws</span> BookNotFoundFault {
<span class="code-object">String</span> sqlExpression =
searchContext.getConvertedExpression(expression);
<span class="code-comment">// pass it to the SQL DB and <span
class="code-keyword">return</span> the list of Books
-</span>
- <span class="code-comment">// or instead of registering
SQLPrinterVisitor, register JPA2TypedQueryVisitor
-</span> <span class="code-comment">// (see section on JPA2) and <span
class="code-keyword">do</span>
-</span> TypedQuery<Book> query =
searchContext.getConvertedExpression(expression, Book.class, TypedQuery.class);
- <span class="code-keyword">return</span> query.getResultList();
- }
+</span> }
}
</pre>
</div></div>
@@ -1204,6 +1224,49 @@ assertEquals(<span class="code-quote">"f
</pre>
</div></div>
+<p>Note, starting from CXF 2.7.1 the following can be used to make connection
multiple primitive expressions simpler:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">
+<span class="code-comment">// AND condition, '.and(<span
class="code-quote">"bar"</span>)' is a shortcut <span
class="code-keyword">for</span> <span
class="code-quote">"and().is("</span>bar<span class="code-quote">")"</span>,
similar shortcut is supported <span class="code-keyword">for</span> 'or'
+</span><span class="code-object">String</span> ret = b.is(<span
class="code-quote">"foo"</span>).greaterThan(20).and(<span
class="code-quote">"bar"</span>).equalTo(<span
class="code-quote">"plonk"</span>).query();
+assertEquals(<span class="code-quote">"foo=gt=20;bar==plonk"</span>, ret);
+</pre>
+</div></div>
+
+<p>More updates to the builder API are available on the trunk:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">
+<span class="code-comment">// OR condition
+</span><span class="code-object">String</span> ret = b.is(<span
class="code-quote">"foo"</span>).equalTo(20).or().is(<span
class="code-quote">"foo"</span>).equalTo(10).query();
+assertEquals(<span class="code-quote">"foo==20,foo==10"</span>, ret);
+
+<span class="code-comment">// Same query, shorter expression
+</span><span class="code-object">String</span> ret = b.is(<span
class="code-quote">"foo"</span>).equalTo(20, 10).query();
+assertEquals(<span class="code-quote">"foo==20,foo==10"</span>, ret);
+</pre>
+</div></div>
+
+<p>and</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent
panelContent">
+<pre class="code-java">
+<span class="code-comment">// Connecting composite or() and and() expressions
will add <span class="code-quote">"()"</span> implicitly:
+</span><span class="code-object">String</span> ret = b.is(<span
class="code-quote">"foo"</span>).equalTo(20, 10).and(<span
class="code-quote">"bar"</span>).lessThan(10).query();
+assertEquals(<span class="code-quote">"(foo==20,foo==10);bar=lt=10"</span>,
ret);
+
+<span class="code-comment">// wrap() method can be used to wrap explicitly:
+</span>
+<span class="code-object">String</span> ret = b.is(<span
class="code-quote">"foo"</span>).equalTo(10).and(<span
class="code-quote">"bar"</span>).lessThan(10).wrap().or(<span
class="code-quote">"bar"</span>).greaterThan(25).query();
+assertEquals(<span class="code-quote">"(foo==20;bar=lt=10),bar=gt=25"</span>,
ret);
+
+
+</pre>
+</div></div>
+
+
+
<h2><a shape="rect"
name="JAX-RSAdvancedFeatures-Usingdatesinqueries"></a>Using dates in
queries</h2>
<p>By default, the date values have to have the following <a shape="rect"
class="external-link"
href="http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html"
rel="nofollow">format</a>: "yyyy-MM-dd", for example:</p>
Modified: websites/production/cxf/content/docs/jax-rs-xml-security.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs-xml-security.html (original)
+++ websites/production/cxf/content/docs/jax-rs-xml-security.html Tue Dec 11
13:48:10 2012
@@ -672,6 +672,8 @@ The following properties can be set on i
<p>Getting the same SignatureProperties and EncryptionProperties beans (with
"sigProps" and "encProps" ids) registered with the outbound<br clear="none">
handlers will ensure that the algorithms used by the current client have not
only been validated on the inbound side but also used on the outbound side for
encrypting and signing the data.</p>
+<p>Note that from CXF 2.7.1, 2.6.4 and 2.5.7, the XmlEncInHandler will require
that the RSA-OAEP algorithm be used as the key transport encryption algorithm
by default. As this algorithm is used by default by the XmlEncOutInterceptor,
no action is required unless you are specifying a different algorithm on the
outbound side. In this case, an EncryptionProperties object will need to be
configured on XmlEncInHandler with the desired key transport algorithm.</p>
+
<h1><a shape="rect"
name="JAX-RSXMLSecurity-Interoperability"></a>Interoperability</h1>
<p>The payloads containing the enveloping XML Signatures are structured
according to the XML Signature specification and as such can be consumed by any
XML Signature aware consumers capable of handling the enveloping signatures and
extracting the signed payload. </p>