[dna-commits] DNA SVN: r1574 - in trunk/docs: reference/src/main/docbook/en-US and 6 other directories.
dna-commits at lists.jboss.org
dna-commits at lists.jboss.org
Sat Jan 9 16:31:34 EST 2010
Author: rhauch
Date: 2010-01-09 16:31:34 -0500 (Sat, 09 Jan 2010)
New Revision: 1574
Added:
trunk/docs/reference/src/main/docbook/en-US/content/jcr/query_and_search.xml
trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors.png
Removed:
trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors-0.2.png
Modified:
trunk/docs/gettingstarted/src/main/docbook/en-US/content/sequencer_example.xml
trunk/docs/gettingstarted/src/main/docbook/en-US/content/using_dna.xml
trunk/docs/reference/src/main/docbook/en-US/content/core/connector.xml
trunk/docs/reference/src/main/docbook/en-US/content/core/sequencing.xml
trunk/docs/reference/src/main/docbook/en-US/content/developers/testing.xml
trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml
trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml
trunk/docs/reference/src/main/docbook/en-US/content/jcr/configuration.xml
trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/compact_node_types.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/ddl.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/image.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_class.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_source.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/microsoft_office.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/mp3.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/text.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/xml.xml
trunk/docs/reference/src/main/docbook/en-US/content/sequencers/zip.xml
trunk/docs/reference/src/main/docbook/en-US/custom.dtd
trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors-future.png
trunk/docs/reference/src/main/docbook/en-US/master.xml
Log:
DNA-621 More improvements to the Getting Started and Reference Guide. The query language section is incomplete, but that will be finished very soon.
Modified: trunk/docs/gettingstarted/src/main/docbook/en-US/content/sequencer_example.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/sequencer_example.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/gettingstarted/src/main/docbook/en-US/content/sequencer_example.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -191,8 +191,7 @@
<para>The <code>main(String[] argv)</code> method is of course the method that is executed when the application is run. This code
creates the JBoss DNA configuration using the programmatic style.
</para>
- <programlisting role="JAVA"><![CDATA[
-// Create the configuration.
+ <programlisting role="JAVA"><![CDATA[// Create the configuration.
String repositoryId = "content";
String workspaceName = "default";
JcrConfiguration config = new JcrConfiguration();
Modified: trunk/docs/gettingstarted/src/main/docbook/en-US/content/using_dna.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/using_dna.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/gettingstarted/src/main/docbook/en-US/content/using_dna.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -440,8 +440,123 @@
JAAS also needs to be configured, and this can be done using the application server's configuration or in your
web application if you're using a simple servlet container. For more details, see the &ReferenceGuide;.
</para>
+ <note>
+ <para>
+ The JBoss DNA community has solicited input on how we can make it easier to consume and use JBoss DNA in applications
+ that do not use Maven. Check out the <ulink url="http://community.jboss.org/thread/146589">discussion thread</ulink>,
+ and please add any suggestions or opinions!
+ </para>
+ </note>
+ <para>
+ Then, your web application needs to reference the <code>Resource</code> and state its requirements in its
+ <code>web.xml</code>:
+ </para>
+<programlisting role="XML"><![CDATA[<resource-env-ref>
+ <description>Repository</description>
+ <resource-env-ref-name>jcr/local</resource-env-ref-name>
+ <resource-env-ref-type>javax.jcr.Repository</resource-env-ref-type>
+</resource-env-ref>]]></programlisting>
+ <para>
+ Note that the value of <code>resource-env-ref-name</code> matches the value of the name attribute on the
+ <code><Resource></code> tag in the <code>context.xml</code> described above. This is a must.
+ </para>
+ <para>
+ At this point, your web application can perform the lookup of the &Repository; object, create and use a &Session;,
+ and then close the &Session;. Here's an example of a JSP page that does this:
+ </para>
+<programlisting role="JAVA"><![CDATA[
+<%@ page import="
+ javax.naming.*,
+ javax.jcr.*,
+ org.jboss.security.config.IDTrustConfiguration
+ " %>
+<%!
+
+static {
+ // Initialize IDTrust
+ String configFile = "security/jaas.conf.xml";
+ IDTrustConfiguration idtrustConfig = new IDTrustConfiguration();
+ try {
+ idtrustConfig.config(configFile);
+ } catch (Exception ex) {
+ throw new IllegalStateException(ex);
+ }
+}
+%>
+<%
+Session sess = null;
+try {
+ InitialContext initCtx = new InitialContext();
+ Context envCtx = (Context) initCtx.lookup("java:comp/env");
+ Repository repo = (Repository) envCtx.lookup("jcr/local");
+ sess = repo.login(new SimpleCredentials("readwrite", "readwrite".toCharArray()));
+
+ // Do something interesting with the Session ...
+ out.println(sess.getRootNode().getPrimaryNodeType().getName());
+} catch (Exception ex) {
+ ex.printStackTrace();
+} finally {
+ if (sess != null) sess.logout();
+}
+%>
+]]></programlisting>
+ <para>
+ Since this uses a servlet container, there is no JAAS implementation configured, so note the
+ loading of IDTrust to create the JAAS realm. (To make this work in Tomcat, the security
+ folder that contains the <code>jaas.conf.xml</code>, <code>users.properties</code>, and
+ <code>roles.properties</code> needs to be moved into the <code>%CATALINA_HOME%</code> directory.
+ Moving the security folder into the <code>conf</code> directory did not allow those files
+ to be visible by the JSP page.)
+ </para>
+ <note>
+ <para>
+ If you use an application server such as <ulink url="http://www.jboss.com/products/platforms/application/">JBoss EAP</ulink>,
+ you could just configure the JAAS realm as part of the server configuration and be done with it.
+ </para>
+ </note>
</sect2>
</sect1>
+ <sect1 id="using_dna_via_maven">
+ <title>Using JBoss DNA via Maven</title>
+ <para>
+ JBoss DNA is a Maven-based project. If your application is using Maven, it is very easy to add a dependency on
+ JBoss DNA's JCR library (plus any extensions), and Maven will ensure your application has access to all
+ of the JBoss DNA artifacts and all 3rd-party libraries upon which DNA depends.
+ Simply add a dependency in your application's POM:
+ </para>
+<programlisting role="XML"><![CDATA[<dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-jcr</artifactId>
+ <version>0.7</version>
+</dependency>
+]]></programlisting>
+ <para>
+ plus dependencies for each optional extension (sequencers, connectors, MIME type detectors, etc.):
+ </para>
+<programlisting role="XML"><![CDATA[<dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-store-jpa</artifactId>
+ <version>0.7</version>
+</dependency>
+...
+<dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-sequencer-java</artifactId>
+ <version>0.7</version>
+</dependency>
+]]></programlisting>
+ <para>
+ Then, continue by defining a &JcrConfiguration; and building the engine, as discussed <link linkend="jcr-engine">earlier</link>.
+ This is very straightforward, and this is exactly what the <link linkend="downloading_and_running">JBoss DNA examples</link> do.
+ </para>
+ <note>
+ <para>
+ The JBoss DNA community has solicited input on how we can make it easier to consume and use JBoss DNA in applications
+ that do not use Maven. Check out the <ulink url="http://community.jboss.org/thread/146589">discussion thread</ulink>,
+ and please add any suggestions or opinions!
+ </para>
+ </note>
+ </sect1>
<sect1 id="using_dna_whats_next">
<title>What's next</title>
<para>
Modified: trunk/docs/reference/src/main/docbook/en-US/content/core/connector.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/core/connector.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/core/connector.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -64,22 +64,47 @@
<title>JBoss DNA's JCR implementation delegates to a connector</title>
<graphic align="center" scale="100" fileref="dnajcr-and-connector.png"/>
</figure>
- That single connector could use an in-memory repository, a JBoss Cache instance (including those that are clustered and replicated),
- or a federated repository where content from multiple sources is unified.
- <figure id="dna-connectors-0.2">
- <title>JBoss DNA can put JCR on top of multiple kinds of systems</title>
- <graphic align="center" scale="100" fileref="dna-connectors-0.2.png"/>
- </figure>
+ That single repository connector could access:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>a transient, in-memory repository</para>
+ </listitem>
+ <listitem>
+ <para>an Infinispan data grid that acts as an extremely scalable, highly-available store for repository content</para>
+ </listitem>
+ <listitem>
+ <para>a JBoss Cache instance that acts as a clustered and replicated store for repository content</para>
+ </listitem>
+ <listitem>
+ <para>a JDBC database used as a store for repository content</para>
+ </listitem>
+ <listitem>
+ <para>a repository that accesses existing JDBC databases to project the schema structure as read-only repository content</para>
+ </listitem>
+ <listitem>
+ <para>a repository that accesses a file systems to present the files and directory structure as (updatable) repository content</para>
+ </listitem>
+ <listitem>
+ <para>a repository that accesses an SVN repository to present the files and directory structure as (updatable) repository content</para>
+ </listitem>
+ <listitem>
+ <para>a federated repository that presents a unified, updatable view of the content in multiple other systems (which are accessed via connectors)</para>
+ </listitem>
+ </itemizedlist>
+ <figure id="dna-connectors">
+ <title>JBoss DNA can put JCR on top of multiple kinds of systems</title>
+ <graphic align="center" scale="100" fileref="dna-connectors.png"/>
+ </figure>
+ <para>
Really, the federated connector gives us all kinds of possibilities, since we can use that connector on top of lots of connectors
to other individual sources. This simple connector architecture is fundamentally what makes JBoss DNA so powerful and flexible.
Along with a good library of connectors, which is what we're planning to create.
</para>
<para>
- For instance, we want to build a connector to <ulink url="&JIRA-39;">other JCR repositories</ulink>, and another that accesses
- the <ulink url="&JIRA-34;">local file system</ulink>. We've already started on a <ulink url="&JIRA-36;">Subversion connector</ulink>,
- which will allow JCR to access the files in a SVN repository (and perhaps push changes into SVN through a commit).
- And of course we want to create a connector that accesses <ulink url="&JIRA-199;">data</ulink>
- and <ulink url="&JIRA-37;">metadata</ulink> from relational databases. For more information, check out our
+ For instance, we want to build a connector to <ulink url="&JIRA;-39">other JCR repositories</ulink>, and
+ another to access <ulink url="&JIRA;-199">existing databases</ulink> so that some or all of the existing data (in whatever structure)
+ can be accessed through JCR. For more information, check out our
<ulink url="&JIRA;?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap</ulink>.
Of course, if we don't have a connector to suit your needs, you can <link linkend="custom-connectors">write your own</link>.
<figure id="dna-connectors-future">
@@ -248,7 +273,7 @@
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-graph</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
</dependency>
]]></programlisting>
<para>
@@ -264,14 +289,14 @@
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-graph</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-common</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
Modified: trunk/docs/reference/src/main/docbook/en-US/content/core/sequencing.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/core/sequencing.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/core/sequencing.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -314,7 +314,7 @@
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-graph</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
</dependency>
]]></programlisting>
<para>These are minimum dependencies required for compiling a sequencer. Of course, you'll have to add
@@ -325,14 +325,14 @@
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-graph</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-common</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
@@ -370,7 +370,7 @@
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-jcr</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
<scope>test</scope>
</dependency>
<!-- Java Content Repository API -->
Modified: trunk/docs/reference/src/main/docbook/en-US/content/developers/testing.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/developers/testing.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/developers/testing.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -138,15 +138,18 @@
behavior.
</para>
<para>
- JBoss DNA has not yet passed enough of the TCK tests to publish the results. We still have to implement
- queries, which is a required feature of Level 1 repositories. However, suffice to say that JBoss DNA has passed
- many of the individual tests that make up the Level 1 and Level 2 tests, and it is a major objective of the next
- release to pass the remaining Level 1 and Level 2 tests (along with some other optional features).
- </para>
+ JBoss DNA has implemented all of the JCR Level 1 and Level 2 features, along with the optional locking and observation
+ features. The only optional feature not implemented is versioning, and that will be coming soon.
+ </para>
<para>
- JBoss DNA also frequently runs the JCR unit tests from the Apache Jackrabbit project. (Those these tests are not
+ The JBoss DNA project also frequently runs the JCR TCK unit tests from the reference implementation. (Those these tests are not
the official TCK, they apparently are used within the official TCK.) These unit tests are set up in the
<code>dna-jcr-tck</code> project.
</para>
+ <para>
+ The 0.7 release passes 96% of the JCR TCK tests, and all of the failures are because of a handful of known issues.
+ Fortunately, most of these are either less-frequently-used features of JCR or issues that can be worked around.
+ The JBoss DNA project plans to focus on resolving all the remaining JCR TCK failures, and will publish the results.
+ </para>
</sect1>
</chapter>
Modified: trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -38,8 +38,65 @@
and compile preferences to ensure no warnings or errors.
</para>
<para>
- The rest of this chapter talks in more detail about these different tools and how to set them up.
+ The rest of this chapter talks in more detail about these different tools and how to set them up. But first, we briefly describe
+ our approach to development.
</para>
+ <sect1 id="methodology">
+ <title>Development methodology</title>
+ <para>
+ Rather than use a single formal development methodology, the JBoss DNA project incorporates those techniques, activities, and
+ processes that are practical and work for the project. In fact, the committers are given a lot of freedom for how they develop
+ the components and features they work on.
+ </para>
+ <para>
+ Nevertheless, we do encourage familiarity with several major techniques, including:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="strong"><ulink url="&Wikipedia;Agile_software_development">Agile software development</ulink></emphasis>
+ includes those software methodologies (e.g., Scrum) that promote development iterations and open collaboration. While the
+ JBoss DNA project doesn't follow these closely, we do emphasize the importance of always having running software
+ and using running software as a measure of progress. The JBoss DNA project also wants to move to more frequent
+ releases (on the order of 4-6 weeks)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong"><ulink url="&Wikipedia;Test-driven_development">Test-driven development (TDD)</ulink></emphasis>
+ techniques encourage first writing test cases for new features and functionality, then changing the code to add the
+ new features and functionality, and finally the code is refactored to clean-up and address any duplication or inconsistencies.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong"><ulink url="http://behaviour-driven.org/">Behavior-driven development (BDD)</ulink></emphasis>
+ is an evolution of TDD, where developers specify the desired behaviors first (rather than writing "tests").
+ In reality, this BDD adopts the language of the user so that tests are written using words that are meaningful
+ to users. With recent test frameworks (like JUnit 4.4), we're able to write our unit tests to express
+ the desired behavior. For example, a test class for sequencer implementation might have a test method
+ <code>shouldNotThrowAnErrorWhenStreamIsNull()</code>, which is very easy to understand the intent.
+ The result appears to be a larger number of finer-grained test methods, but which are more easily understood
+ and easier to write. In fact, many advocates of BDD argue that one of the biggest challenges of TDD is knowing what
+ tests to write in the beginning, whereas with BDD the shift in focus and terminology make it easier for more
+ developers to enumerate the tests they need.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong"><ulink url="&Wikipedia;Lean_software_development">Lean software development</ulink></emphasis>
+ is an adaptation of <ulink url="&Wikipedia;Lean_manufacturing">lean manufacturing techniques</ulink>,
+ where emphasis is placed on eliminating waste (e.g., defects, unnecessary complexity, unnecessary code/functionality/features),
+ delivering as fast as possible, deferring irrevocable decisions as much as possible,
+ continuous learning (continuously adapting and improving the process), empowering the team (or community, in our case),
+ and several other guidelines. Lean software development can be thought of as an evolution of agile techniques
+ in the same way that behavior-driven development is an evolution of test-driven development. Lean techniques
+ help the developer to recognize and understand how and why features, bugs, and even their processes impact the development
+ of software.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </sect1>
<sect1 id="jdk">
<title>JDK</title>
<para>
Modified: trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -221,62 +221,6 @@
the issues appropriately.
</para>
</sect1>
- <sect1 id="methodology">
- <title>Development methodology</title>
- <para>
- Rather than use a single formal development methodology, the JBoss DNA project incorporates those techniques, activities, and
- processes that are practical and work for the project. In fact, the committers are given a lot of freedom for how they develop
- the components and features they work on.
- </para>
- <para>
- Nevertheless, we do encourage familiarity with several major techniques, including:
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="strong"><ulink url="&Wikipedia;Agile_software_development">Agile software development</ulink></emphasis>
- includes those software methodologies (e.g., Scrum) that promote development iterations and open collaboration. While the
- JBoss DNA project doesn't follow these closely, we do emphasize the importance of always having running software
- and using running software as a measure of progress. The JBoss DNA project also wants to move to more frequent
- releases (on the order of 4-6 weeks)
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="strong"><ulink url="&Wikipedia;Test-driven_development">Test-driven development (TDD)</ulink></emphasis>
- techniques encourage first writing test cases for new features and functionality, then changing the code to add the
- new features and functionality, and finally the code is refactored to clean-up and address any duplication or inconsistencies.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="strong"><ulink url="http://behaviour-driven.org/">Behavior-driven development (BDD)</ulink></emphasis>
- is an evolution of TDD, where developers specify the desired behaviors first (rather than writing "tests").
- In reality, this BDD adopts the language of the user so that tests are written using words that are meaningful
- to users. With recent test frameworks (like JUnit 4.4), we're able to write our unit tests to express
- the desired behavior. For example, a test class for sequencer implementation might have a test method
- <code>shouldNotThrowAnErrorWhenStreamIsNull()</code>, which is very easy to understand the intent.
- The result appears to be a larger number of finer-grained test methods, but which are more easily understood
- and easier to write. In fact, many advocates of BDD argue that one of the biggest challenges of TDD is knowing what
- tests to write in the beginning, whereas with BDD the shift in focus and terminology make it easier for more
- developers to enumerate the tests they need.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="strong"><ulink url="&Wikipedia;Lean_software_development">Lean software development</ulink></emphasis>
- is an adaptation of <ulink url="&Wikipedia;Lean_manufacturing">lean manufacturing techniques</ulink>,
- where emphasis is placed on eliminating waste (e.g., defects, unnecessary complexity, unnecessary code/functionality/features),
- delivering as fast as possible, deferring irrevocable decisions as much as possible,
- continuous learning (continuously adapting and improving the process), empowering the team (or community, in our case),
- and several other guidelines. Lean software development can be thought of as an evolution of agile techniques
- in the same way that behavior-driven development is an evolution of test-driven development. Lean techniques
- help the developer to recognize and understand how and why features, bugs, and even their processes impact the development
- of software.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- </sect1>
<sect1 id="modules">
<title>JBoss DNA modules</title>
<para>
@@ -288,11 +232,9 @@
contains JBoss DNA's implementation of the JCR API. If you're using JBoss DNA as a JCR repository, this is the
top-level dependency that you'll want to use. The module defines all required dependencies, except for
the repository connector(s) and any sequencer implementations needed by your configuration.
- As we'll see later on, using JBoss DNA as a JCR repository is easy: simply create a configuration, start the JCR engine,
- get the JCR &Repository; object for your repository, and then use the JCR API.
- This module also contains the Jackrabbit JCR API unit tests that verify the behavior of the JBoss DNA implementation.
- As DNA does not fully implement the JCR 1.0.1 specification, there are a series of tests that are currently commented
- out in this module. The <code>dna-jcr-tck</code> module contains all of these tests.
+ As we'll see later on, using JBoss DNA as a JCR repository is easy: simply create a <link linkend="configuration">configuration</link>,
+ start JBoss DNA's <link linkend="jcr_engine">JCR engine</link>, get the JCR &Repository; object for your repository, and then use the JCR API.
+ This module also uses the JCR unit tests from the reference implementation to verify the behavior of the JBoss DNA implementation.
</para>
</listitem>
<listitem>
@@ -304,21 +246,21 @@
</listitem>
<listitem>
<para>
+ <emphasis role="strong">dna-cnd</emphasis>
+ provides a self-contained utility for parsing CND (Compact Node Definition) files and transforming
+ the node definitions into a graph notation compatible with JBoss DNA's JCR implementation.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
<emphasis role="strong">dna-graph</emphasis>
defines the Application Programming Interface (API) for JBoss DNA's low-level graph model,
- including a DSL-like API for working with graph content. This module also defines the
+ including a fluent-style API for working with graph content. This module also defines the
APIs necessary to implement custom connectors, sequencers, and MIME type detectors.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-cnd</emphasis>
- provides a self-contained utility for parsing CND (Compact Node Definition) files and transforming
- the node definitions into a graph notation compatible with JBoss DNA's JCR implementation.
- </para>
- </listitem>
- <listitem>
- <para>
<emphasis role="strong">dna-common</emphasis>
is a small low-level library of common utilities and frameworks, including logging, progress monitoring,
internationalization/localization, text translators, component management, and class loader factories.
@@ -329,14 +271,6 @@
<itemizedlist>
<listitem>
<para>
- <emphasis role="strong">dna-jcr-tck</emphasis>
- provides a separate testing project that executes all Jackrabbit JCR TCK tests on a nightly basis to track implementation
- progress against the JCR 1.0 specification. This module will likely be retired when the <code>dna-jcr</code> implementation
- is complete.
- </para>
- </listitem>
- <listitem>
- <para>
<emphasis role="strong">dna-integration-tests</emphasis>
provides a home for all of the integration tests that involve more components that just unit tests. Integration
tests are often more complicated, take longer, and involve testing the integration and functionality of multiple
@@ -345,87 +279,87 @@
</para>
</listitem>
</itemizedlist>
- The following modules are optional extensions that may be used selectively and as needed (and are located in the source
- under the
- <code>extensions/</code>
- directory):
+ The following modules are optional extensions that may be used selectively and as needed
+ (and are located in the source under the <code>extensions/</code> directory):
<itemizedlist>
<listitem>
<para>
- <emphasis role="strong">dna-classloader-maven</emphasis>
- is a small library that provides a
- <code>ClassLoaderFactory</code>
- implementation that can create
- <code>java.lang.ClassLoader</code>
- instances capable of loading classes given a Maven Repository and a list of Maven coordinates. The Maven Repository
- can be managed within a JCR repository.
+ <emphasis role="strong">dna-connector-infinispan</emphasis>
+ is the preferred DNA repository connector for persistently storing content.
+ <ulink url="http://infinispan.org">Infinispan</ulink> is an extremely scalable, highly available data grid platform
+ that distributes the data across the nodes in the grid.
+ This connector makes it possible for repository content to be stored in a very efficient, fast,
+ highly-concurrent (essentially lock- and synchronization-free), and reliable manner,
+ even when the content size grows to massive sizes. This connector is capable of storing any kind of content, and
+ dictates how the content is stored on the data grid. Therefore, this connector cannot be used to access the content
+ of existing data grids created by/for other applications.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-common-jdbc</emphasis>
- contains several helpful utility classes for interacting with JDBC connections.
+ <emphasis role="strong">dna-connector-jbosscache</emphasis>
+ is a DNA repository connector that stores content within a
+ <ulink url="http://www.jboss.org/jbosscache/">JBoss Cache</ulink>
+ instance. JBoss Cache is a powerful cache implementation that can serve as a distributed cache and that can persist
+ information. The cache instance can be found via JNDI or created and managed by the connector.
+ This connector is capable of storing any kind of content, and dictates how the content is stored in the cache.
+ Therefore, this connector cannot be used to access the content
+ of existing cache instances created by/for other applications.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-connector-federation</emphasis>
- is a DNA repository connector that federates, integrates and caches information from multiple sources (via other
- repository connectors).
+ <emphasis role="strong">dna-connector-jdbc-metadata</emphasis>
+ is a DNA repository connector that provides read-only access to metadata and schema information from relational databases
+ through a JDBC connection. This connector provides an optional and configurable caching facility to prevent frequent
+ requests to the database.
</para>
- </listitem>
+ </listitem>
<listitem>
<para>
- <emphasis role="strong">dna-connector-filesystem</emphasis>
- is a DNA repository connector that provides read-only access to file systems, allowing their structure and data to be
- viewed as repository content.
+ <emphasis role="strong">dna-connector-store-jpa</emphasis>
+ is a DNA repository connector that stores content in a JDBC database, using the Java Persistence API (JPA) and the
+ very highly-regarded and widely-used <ulink url="http://www.hibernate.org">Hibernate</ulink> implementation.
+ This connector is capable of storing any kind of content, and dictates the schema in which it stores the content.
+ Therefore, this connector cannot be used to access the data in existing created by/for other applications.
</para>
</listitem>
- <!--listitem>
- <para>
- <emphasis role="strong">dna-connector-jdbc-metadata</emphasis>
- is a prototype DNA repository connector that provides read-only access to metadata from relational databases through a JDBC
- connection.
- <emphasis>This is still under development.</emphasis>
- </para>
- </listitem-->
<listitem>
<para>
- <emphasis role="strong">dna-connector-jbosscache</emphasis>
- is a DNA repository connector that manages content within a
- <ulink url="http://www.jboss.org/jbosscache/">JBoss Cache</ulink>
- instance. JBoss Cache is a powerful cache implementation that can serve as a distributed cache and that can persist
- information. The cache instance can be found via JNDI or created and managed by the connector.
+ <emphasis role="strong">dna-connector-filesystem</emphasis>
+ is a DNA repository connector that accesses the files and folders on (a part of) the local file system, providing that
+ content in the form of <code>nt:file</code> and <code>nt:folder</code> nodes. This connector <emphasis>does</emphasis>
+ support updating the file system when changes are made to the <code>nt:file</code> and <code>nt:folder</code> nodes.
+ However, this connector does not support storing other kinds of nodes.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-connector-infinispan</emphasis>
- is a DNA repository connector that stores content in a deployed instance of <ulink url="http://infinispan.org">Infinispan</ulink>.
- Infinispan is an extremely scalable, highly available data grid platform that distributes the data across the nodes
- in the grid. This connector makes it possible for repository content to be stored in a very efficient, fast,
- higly-concurrent (essentially lock- and synchronization-free) and reliable manner,
- even when the content size grows to massive sizes.
+ <emphasis role="strong">dna-connector-svn</emphasis>
+ is a DNA repository connector that accesses the content of an existing Subversion repository, providing that content in
+ the form of <code>nt:file</code> and <code>nt:folder</code> nodes. This connector <emphasis>does</emphasis>
+ support updating the SVN repository when changes are made to the <code>nt:file</code> and <code>nt:folder</code> nodes.
+ However, this connector does not support storing other kinds of nodes.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-connector-store-jpa</emphasis>
- is a DNA sequencer that provides for persistent storage and access of DNA content in a relational database. This connector
- is based on JPA technology.
+ <emphasis role="strong">dna-sequencer-cnd</emphasis>
+ is a DNA sequencer that extracts JCR node definitions from JCR Compact Node Definition (CND) files.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-connector-svn</emphasis>
- is a prototype DNA sequencer that obtains content from a Subversion repository, providing that content in
- the form of <code>nt:file</code> and <code>nt:folder</code> nodes.
+ <emphasis role="strong">dna-sequencer-ddl</emphasis>
+ is a DNA sequencer that extracts the structure and content from DDL files.
+ <emphasis>This is still under development and includes support for the basic DDL statements in
+ in the Oracle, PostgreSQL, Derby, and standard DDL dialects.</emphasis>
</para>
</listitem>
<listitem>
<para>
<emphasis role="strong">dna-sequencer-zip</emphasis>
- is a DNA sequencer that extracts from ZIP archives the files (with content) and folders.
+ is a DNA sequencer that extracts the files (with content) and directories from ZIP archives.
</para>
</listitem>
<listitem>
@@ -436,22 +370,23 @@
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-sequencer-images</emphasis>
- is a DNA sequencer that extracts the image metadata (e.g., size, date, etc.) from PNG, JPEG, GIF, BMP, PCS, IFF,
- RAS, PBM, PGM, and PPM image files.
+ <emphasis role="strong">dna-sequencer-classfile</emphasis>
+ is a DNA sequencer that extracts the package, class/type, member, documentation, annotations, and other information
+ from Java class files.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-sequencer-mp3</emphasis>
- is a DNA sequencer that extracts metadata (e.g., author, album name, etc.) from MP3 audio files.
+ <emphasis role="strong">dna-sequencer-java</emphasis>
+ is a DNA sequencer that extracts the package, class/type, member, documentation, annotations, and other information
+ from Java source files.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-sequencer-java</emphasis>
- is a DNA sequencer that extracts the package, class/type, member, documentation, annotations, and other information
- from Java source files.
+ <emphasis role="strong">dna-sequencer-jbpm-jpdl</emphasis>
+ is a prototype DNA sequencer that extracts process definition metadata from jBPM process definition language (jPDL) files.
+ <emphasis>This is still under development.</emphasis>
</para>
</listitem>
<listitem>
@@ -465,38 +400,47 @@
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-sequencer-cnd</emphasis>
- is a DNA sequencer that extracts JCR node definitions from JCR Compact Node Definition (CND) files.
+ <emphasis role="strong">dna-sequencer-images</emphasis>
+ is a DNA sequencer that extracts the image metadata (e.g., size, date, etc.) from PNG, JPEG, GIF, BMP, PCS, IFF,
+ RAS, PBM, PGM, and PPM image files.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-sequencer-jbpm-jpdl</emphasis>
- is a prototype DNA sequencer that extracts process definition metadata from jBPM process definition language (jPDL) files.
- <emphasis>This is still under development.</emphasis>
+ <emphasis role="strong">dna-sequencer-mp3</emphasis>
+ is a DNA sequencer that extracts metadata (e.g., author, album name, etc.) from MP3 audio files.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-sequencer-java</emphasis>
- is a DNA sequencer that extracts the structure (methods, fields) from Java source files.
+ <emphasis role="strong">dna-sequencer-text</emphasis>
+ is a DNA sequencer that extracts data from text streams. There are separate sequencers for character-delimited sequencing
+ and fixed width sequencing, but both treat the incoming text stream as a series of rows separated by line-terminators
+ with each row consisting of one or more columns.
</para>
</listitem>
<listitem>
<para>
- <emphasis role="strong">dna-sequencer-ddl</emphasis>
- is a DNA sequencer that extracts the structure and content from DDL files.
- <emphasis>This is still under development and only includes a limited number of dialects and basic DDL statements.</emphasis>
+ <emphasis role="strong">dna-search-lucene</emphasis> is an implementation of the &SearchEngine; interface that
+ uses the <ulink url="http://lucene.apache.org/java/">Lucene</ulink> library. This module is one of the few
+ extensions that is used directly by the <code>dna-jcr</code> module.
</para>
- </listitem>
+ </listitem>
<listitem>
<para>
<emphasis role="strong">dna-mimetype-detector-aperture</emphasis>
- is a DNA MIME type detector that uses the
+ is a &MimeTypeDetector; implementation that uses the
<ulink url="http://aperture.sourceforge.net/">Aperture</ulink>
- library to determine the best MIME type from the filename and file contents.
+ library to determine the best MIME type given the name and contents of a file.
</para>
</listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong">dna-classloader-maven</emphasis> is a small library that provides a
+ &ClassLoaderFactory; implementation that can create &ClassLoader; instances capable of loading classes given
+ a Maven Repository and a list of Maven coordinates. The Maven Repository can be managed within a JCR repository.
+ </para>
+ </listitem>
</itemizedlist>
The following modules make up the various web application projects (and are located in the source
under the
@@ -522,7 +466,7 @@
<listitem>
<para>
<emphasis role="strong">dna-web-jcr-rest-client</emphasis>
- is an API that uses POJOs to access the REST web service. This API eliminates the need for applications to know how
+ is a library that uses POJOs to access the REST web service. This module eliminates the need for applications to know how
to create HTTP request URLs and payloads, and how to parse the JSON responses. It can be used to publish (upload)
and unpublish (delete) files from DNA repositories.
</para>
@@ -555,21 +499,80 @@
</para>
</listitem>
</itemizedlist>
- Finally, there is a module that represents the whole JBoss DNA project:
+ Another module provides some utility functionality:
<itemizedlist>
<listitem>
<para>
- <emphasis role="strong">dna</emphasis>
- is the parent project that aggregates all of the other projects and that contains some asset files to create the
- necessary Maven artifacts during a build.
+ <emphasis role="strong">dna-jpa-ddl-gen</emphasis> provides a standalone utility that can generate the DDL
+ for the database schema used by the JPA connector. Because it uses Hibernate, it can generate DDL for any
+ of the databases that the connector can use.
</para>
</listitem>
</itemizedlist>
+ There is another module that runs the full suite of JCR TCK tests, and which at the moment still contains some failures.
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="strong">dna-jcr-tck</emphasis> provides a separate testing project that executes all reference implementation's
+ JCR TCK tests on a nightly basis to track implementation progress against the JCR 1.0 specification.
+ This module will likely be retired when the JBoss DNA JCR implementation is complete, since <code>dna-jcr</code> and
+ <code>dna-integration-tests</code> will be running the full suite of JCR TCK unit tests.
+ </para>
+ </listitem>
+ </itemizedlist>
+ Finally, there is a Maven parent <code>pom.xml</code> file that aggregates all of the other projects, provides common
+ defaults for Maven plugins and dependency versions used throughout the modules, and definition of various asset files
+ to help build the necessary Maven artifacts during a build.
+ </para>
+ <para>
Each of these modules is a Maven project with a group ID of
<code>org.jboss.dna</code>
. All of these projects correspond to artifacts in the
<ulink url="&JBossMaven;">JBoss Maven 2 Repository</ulink>
.
</para>
+ </sect1>
+ <sect1 id="whats_new">
+ <title>What's new?</title>
+ <para>
+ With version 0.7, JBoss DNA introduces support for JCR <link linkend="jcr-query-and-search">query and search</link>
+ with a number of query languages, including the <link linkend="jcr-xpath-query-language">JCR XPath language</link>
+ (required by the 1.0 specification), the <link linkend="jcr-sql2-query-language">JCR-SQL2 dialect</link>
+ defined by the JCR 2.0 specification, and a <link linkend="fulltext-search-query-language">full-text search language</link>.
+ This release also adds support for JCR locking and observation.
+ </para>
+ <para>This means that <emphasis role="strong">JBoss DNA now implements all of the JCR Level 1 and Level 2 features,
+ along with the optional locking and observation features</emphasis>.
+ The only optional feature not implemented is versioning, and that will be coming soon.
+ This version passes more than 95% of the JCR TCK tests, and all of the failures are because of a handful of known issues.
+ Fortunately, most of these are either less-frequently-used features of JCR or issues that can be worked around.
+ </para>
+ <para>
+ This release also introduces a number of new and improved connectors. Both the <link linkend="file-system-connector">file system connector</link>
+ and <link linkend="subversion-connector">SVN connector</link> were reworked to support reads and updates, and they
+ both offer a preview of an optional caching system. The <link linkend="jdbc-storage-connector">JPA storage connector</link>
+ was dramatically improved and is significantly faster, more capable, and more efficient.
+ The new <link linkend="jdbc-metadata-connector">JDBC metadata connector</link> is a technology preview of a connector
+ that provides read-only access to the schema information of relational databases through JDBC.
+ </para>
+ <para>
+ JBoss DNA 0.7 includes a number of new and improved sequencers. The new <link linkend="text-sequencer">text sequencer</link>
+ is able to extract structured data from comma-separated or fixed-width text files. The new <link linkend="ddl-file-sequencer">DDL sequencer</link>
+ is capable of parsing a number of DDL dialects to extract the more important DDL statements. The <link linkend="cnd-sequencer">CND sequencer</link>
+ was rewritten and dramatically simplified to perform better, fix a number of known issues, and eliminate a dependency on a third-party library.
+ There is also a new <link linkend="java-class-sequencer">Java class file sequencer</link> that operates on Java class
+ files and produces output that is very similar to the <link linkend="java-source-sequencer">Java source file sequencer</link>,
+ and that can be used in conjunction with the <link linkend="zip-file-sequencer">ZIP file sequencer</link> to extract the Java metadata
+ from JARs, WARs, and EAR files.
+ </para>
+ <para>
+ This release also brings numerous bug fixes and improvements, and upgrades all third-party dependencies to the latest
+ versions available at the time of release. The build system now supports
+ <ulink url="http://jbossdna.blogspot.com/2009/09/running-tests-against-different-dbmses.html">running all of the tests against a variety
+ of databases</ulink>, making it very easy to test against DBMSes that JBoss DNA doesn't directly test against.
+ A new DDL generation utility was also introduced that produces the DDL for the database used by the JPA connector.
+ And JCR repositories now support the use of <link linkend="jcr-guess-access">anonymous users</link>, and this is
+ enabled by default but can easily be changed for production purposes.
+ </para>
</sect1>
</chapter>
Modified: trunk/docs/reference/src/main/docbook/en-US/content/jcr/configuration.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/jcr/configuration.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/jcr/configuration.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -167,7 +167,7 @@
Here is the configuration file that is used in the repository example, though it has been simplified a bit and most comments
have been removed for clarity):
</para>
- <programlisting role="JAVA"><![CDATA[
+ <programlisting role="XML"><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://www.jboss.org/dna/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0">
<!--
@@ -365,6 +365,208 @@
</sect3>
</sect2>
</sect1>
+ <sect1 id="dna_and_jndi">
+ <title>Deploying JBoss DNA via JNDI</title>
+ <para>
+ Sometimes your applications can simply define a &JcrConfiguration; and instantiate the &JcrEngine; instance directly.
+ This is very straightforward, and this is what the <link linkend="downloading_and_running">JBoss DNA examples</link> do.
+ </para>
+ <para>
+ Web applications are a different story. Often, you may not want your web application to contain the code that initializes
+ a JBoss DNA engine. Or, you may want the same &JcrEngine; instance to be reused in multiple web applications deployed
+ to the same web/application server. In these cases, it is possible to configure the web/app server's JNDI instance to
+ instantiate the &JcrEngine;, meaning the web applications need only use the standard JNDI and JCR APIs.
+ </para>
+ <sect2 id="dna_and_jndi_application">
+ <title>Example application using JCR and JNDI</title>
+ <para>
+ Here's an example of how such a web application would obtain a JCR &Repository; instance, use it to create a &JcrSession;,
+ and then close the session when completed.
+ </para>
+ <programlisting role="JAVA"><![CDATA[Session session = null;
+
+try {
+ // Look up the JCR Repository object ...
+ InitialContext initCtx = new InitialContext();
+ Context envCtx = (Context) initCtx.lookup("java:comp/env");
+ Repository repo = (Repository) envCtx.lookup("jcr/local"); // name in JNDI is defined by configuration
+
+ // Obtain a JCR Session using simple authentication
+ // (or use anonymous authentication if desired)
+ session = repo.login(new SimpleCredentials("username", "password".toCharArray()));
+
+ // Use the JCR Session to do something interesting
+
+} catch (Exception ex) {
+ ex.printStackTrace();
+} finally {
+ if (session != null) session.logout();
+}]]></programlisting>
+ <para>
+ Note that the location of the &Repository; instance in JNDI depends upon the configuration. In this example, we used
+ "<code>jcr/local</code>", but the only requirement is that it match the location where it was placed in JNDI.
+ </para>
+ <para>
+ We showed how web applications can use an existing &Repository; instance. In the next section, we describe how to configure
+ the web server so that the &Repository; instance is available in JNDI.
+ </para>
+ </sect2>
+ <sect2 id="dna_and_jndi_configuring">
+ <title>Configuring JCR and JNDI</title>
+ <para>
+ Each kind of web server or application server is different, but all servlet containers do provide a way of configuring
+ objects and placing them into JNDI. JBoss DNA provides a &JndiRepositoryFactory; class that implements &ObjectFactory;
+ and that can be used in the server's configuration. The &JndiRepositoryFactory; requires two properties:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis role="strong"><code>configFile</code></emphasis> is the path to the
+ <link linkend="loading_from_file">configuration file</link> resource, which must be available on the classpath
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis role="strong"><code>repositoryName</code></emphasis> is the name of a JCR repository that exists
+ in the &JcrConfiguration; and that will be made available by this JNDI entry
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Here's an example of a fragment of the <code>conf/context.xml</code> for Tomcat:
+ </para>
+<programlisting role="XML"><![CDATA[<Resource name="jcr/local"
+ auth="Container"
+ type="javax.jcr.Repository"
+ factory="org.jboss.dna.jcr.JndiRepositoryFactory"
+ configFile="/resource/path/to/configuration.xml"
+ repositoryName="Test Repository Source" />]]></programlisting>
+ <para>
+ Note that it is possible to have multiple <code>Resource</code> entries. The &JndiRepositoryFactory; ensures
+ that only one &JcrEngine; is instantiated, but that a &Repository; instance is registered for each entry.
+ </para>
+ <para>
+ Before the server can start, however, all of the JBoss DNA jars need to be placed on the classpath for the server.
+ JAAS also needs to be configured, and this can be done using the application server's configuration or in your
+ web application if you're using a simple servlet container. For more details, see the &ReferenceGuide;.
+ </para>
+ <note>
+ <para>
+ The JBoss DNA community has solicited input on how we can make it easier to consume and use JBoss DNA in applications
+ that do not use Maven. Check out the <ulink url="http://community.jboss.org/thread/146589">discussion thread</ulink>,
+ and please add any suggestions or opinions!
+ </para>
+ </note>
+ <para>
+ Then, your web application needs to reference the <code>Resource</code> and state its requirements in its
+ <code>web.xml</code>:
+ </para>
+<programlisting role="XML"><![CDATA[<resource-env-ref>
+ <description>Repository</description>
+ <resource-env-ref-name>jcr/local</resource-env-ref-name>
+ <resource-env-ref-type>javax.jcr.Repository</resource-env-ref-type>
+</resource-env-ref>]]></programlisting>
+ <para>
+ Note that the value of <code>resource-env-ref-name</code> matches the value of the name attribute on the
+ <code><Resource></code> tag in the <code>context.xml</code> described above. This is a must.
+ </para>
+ <para>
+ At this point, your web application can perform the lookup of the &Repository; object, create and use a &Session;,
+ and then close the &Session;. Here's an example of a JSP page that does this:
+ </para>
+<programlisting role="JAVA"><![CDATA[
+<%@ page import="
+ javax.naming.*,
+ javax.jcr.*,
+ org.jboss.security.config.IDTrustConfiguration
+ " %>
+<%!
+
+static {
+ // Initialize IDTrust
+ String configFile = "security/jaas.conf.xml";
+ IDTrustConfiguration idtrustConfig = new IDTrustConfiguration();
+ try {
+ idtrustConfig.config(configFile);
+ } catch (Exception ex) {
+ throw new IllegalStateException(ex);
+ }
+}
+%>
+<%
+Session sess = null;
+try {
+ InitialContext initCtx = new InitialContext();
+ Context envCtx = (Context) initCtx.lookup("java:comp/env");
+ Repository repo = (Repository) envCtx.lookup("jcr/local");
+ sess = repo.login(new SimpleCredentials("readwrite", "readwrite".toCharArray()));
+
+ // Do something interesting with the Session ...
+ out.println(sess.getRootNode().getPrimaryNodeType().getName());
+} catch (Exception ex) {
+ ex.printStackTrace();
+} finally {
+ if (sess != null) sess.logout();
+}
+%>
+]]></programlisting>
+ <para>
+ Since this uses a servlet container, there is no JAAS implementation configured, so note the
+ loading of IDTrust to create the JAAS realm. (To make this work in Tomcat, the security
+ folder that contains the <code>jaas.conf.xml</code>, <code>users.properties</code>, and
+ <code>roles.properties</code> needs to be moved into the <code>%CATALINA_HOME%</code> directory.
+ Moving the security folder into the <code>conf</code> directory did not allow those files
+ to be visible by the JSP page.)
+ </para>
+ <note>
+ <para>
+ If you use an application server such as <ulink url="http://www.jboss.com/products/platforms/application/">JBoss EAP</ulink>,
+ you could just configure the JAAS realm as part of the server configuration and be done with it.
+ </para>
+ </note>
+ </sect2>
+ </sect1>
+ <sect1 id="using_dna_via_maven">
+ <title>Using JBoss DNA via Maven</title>
+ <para>
+ JBoss DNA is a Maven-based project. If your application is using Maven, it is very easy to add a dependency on
+ JBoss DNA's JCR library (plus any extensions), and Maven will ensure your application has access to all
+ of the JBoss DNA artifacts and all 3rd-party libraries upon which DNA depends.
+ Simply add a dependency in your application's POM:
+ </para>
+<programlisting role="XML"><![CDATA[<dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-jcr</artifactId>
+ <version>0.7</version>
+</dependency>
+]]></programlisting>
+ <para>
+ plus dependencies for each optional extension (sequencers, connectors, MIME type detectors, etc.):
+ </para>
+<programlisting role="XML"><![CDATA[<dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-store-jpa</artifactId>
+ <version>0.7</version>
+</dependency>
+...
+<dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-sequencer-java</artifactId>
+ <version>0.7</version>
+</dependency>
+]]></programlisting>
+ <para>
+ Then, continue by defining a &JcrConfiguration; and building the engine, as discussed <link linkend="jcr-engine">earlier</link>.
+ This is very straightforward, and this is exactly what the <link linkend="downloading_and_running">JBoss DNA examples</link> do.
+ </para>
+ <note>
+ <para>
+ The JBoss DNA community has solicited input on how we can make it easier to consume and use JBoss DNA in applications
+ that do not use Maven. Check out the <ulink url="http://community.jboss.org/thread/146589">discussion thread</ulink>,
+ and please add any suggestions or opinions!
+ </para>
+ </note>
+ </sect1>
<sect1 id="using_dna_whats_next">
<title>What's next</title>
<para>
Added: trunk/docs/reference/src/main/docbook/en-US/content/jcr/query_and_search.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/jcr/query_and_search.xml (rev 0)
+++ trunk/docs/reference/src/main/docbook/en-US/content/jcr/query_and_search.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ JBoss DNA (http://www.jboss.org/dna)
+ ~
+ ~ See the COPYRIGHT.txt file distributed with this work for information
+ ~ regarding copyright ownership. Some portions may be licensed
+ ~ to Red Hat, Inc. under one or more contributor license agreements.
+ ~ See the AUTHORS.txt file in the distribution for a full listing of
+ ~ individual contributors.
+ ~
+ ~ JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ ~ is licensed to you under the terms of the GNU Lesser General Public License as
+ ~ published by the Free Software Foundation; either version 2.1 of
+ ~ the License, or (at your option) any later version.
+ ~
+ ~ JBoss DNA is distributed in the hope that it will be useful,
+ ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ ~ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
+ ~ for more details.
+ ~
+ ~ You should have received a copy of the GNU Lesser General Public License
+ ~ along with this distribution; if not, write to:
+ ~ Free Software Foundation, Inc.
+ ~ 51 Franklin Street, Fifth Floor
+ ~ Boston, MA 02110-1301 USA
+ -->
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % CustomDTD SYSTEM "../../custom.dtd">
+%CustomDTD;
+]>
+<chapter id="jcr-query-and-search">
+ <title>Querying and Searching using JCR</title>
+ <para>
+ </para>
+ <sect1 id="jcr-query-api">
+ <title>JCR Query API</title>
+ <para>
+ </para>
+ </sect1>
+ <sect1 id="jcr-xpath-query-language">
+ <title>JCR XPath Query Language</title>
+ <para>
+ </para>
+ </sect1>
+ <sect1 id="jcr-sql2-query-language">
+ <title>JCR-SQL2 Query Language</title>
+ <para>
+ The JCR-SQL2 query language is defined by the <ulink url="&JSR283;">JCR 2.0 specification</ulink> as a way to express
+ queries using strings that are similar to SQL. JBoss DNA includes full support for this query language, and even
+ adds several extensions to make it even more powerful.
+ </para>
+ </sect1>
+ <sect1 id="fulltext-search-query-language">
+ <title>Full-Text Search Language</title>
+ <para>
+ There are times when a formal structured query language is overkill, and the easiest way to find the right content
+ is to perform a search, like you would with a search engine such as Google or Yahoo!
+ This is where JBoss DNA's <emphasis role="strong">full-text search language</emphasis> comes in, because it allows
+ you to use the JCR query API but with a far simpler, Google-style search grammar.
+ </para>
+ <para>
+ This query language is actually defined by the <ulink url="&JSR283;">JCR 2.0 specification</ulink> as the full-text
+ search expression grammar used in the second parameter of the <code>CONTAINS(...)</code> function of the JCR-SQL2 language.
+ We just pulled it out and made it available as a first-class query language.
+ </para>
+ <para>
+ This language allows a JCR client to construct a query to find nodes with property values that match
+ the supplied terms. Nodes that "best" match the terms are returned before nodes that have a lesser match.
+ Of course, JBoss DNA uses a complex system to analyze the node content and the query terms, and may perform
+ a number of optimizations, such as (but not limited to) eliminating stop words (e.g., "the", "a", "and", etc.), treating terms
+ independent of case, and converting words to base forms using a process called <emphasis>stemming</emphasis> (e.g., "running"
+ into "run", "customers" into "customer").
+ </para>
+ <para>
+ Search terms can also include phrases by simply wrapping the phrase with double-quotes. For example,
+ the search term '<code>table "customer invoice"</code>' would rank higher those nodes with properties containing
+ the phrase "customer invoice" than nodes with properties containing just "customer" or "invoice".
+ </para>
+ <para>
+ Term in the query are implicitly AND-ed together, meaning that the matches occur when a node has property values
+ that match <emphasis>all</emphasis> of the terms. However, it is also possible to put an "OR" in between two terms
+ where either of those terms may occur.
+ </para>
+ <para>
+ It is also possible to specify that terms should <emphasis>not</emphasis> appear in the results. This is called
+ a <emphasis>negative term</emphasis>, and it reduces the rank of any node whose property values contain the
+ the value. To specify a negative term, simply prefix the term with a hyphen ('-').
+ </para>
+ <sect2 id='fulltext-grammar'>
+ <title>Grammar</title>
+ <para>
+ The grammar for this full-text search language is specified in Section 6.7.19 of the
+ <ulink url="&JSR283;">JCR 2.0 specification</ulink>, but it is also included here as a convenience:
+ </para>
+<programlisting><![CDATA[
+
+FulltextSearch ::= Disjunct {Space 'OR' Space Disjunct}
+
+Disjunct ::= Term {Space Term}
+
+Term ::= ['-'] SimpleTerm
+
+SimpleTerm ::= Word | '"' Word {Space Word} '"'
+
+Word ::= NonSpaceChar {NonSpaceChar}
+
+Space ::= SpaceChar {SpaceChar}
+
+NonSpaceChar ::= Char - SpaceChar /* Any Char except SpaceChar */
+
+SpaceChar ::= ' '
+
+Char ::= /* Any character */
+
+]]></programlisting>
+ <para>
+ As you can see, this is a pretty simple and straightforward query language. But this language makes it extremely
+ easy to find all the nodes in the repository that match a set of terms.
+ </para>
+ <para>
+ When using this query language, the &QueryResult; always contains the "jcr:path" and "jcr:score" columns.
+ </para>
+ </sect2>
+ </sect1>
+</chapter>
Property changes on: trunk/docs/reference/src/main/docbook/en-US/content/jcr/query_and_search.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/jcr/rest_service.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -271,7 +271,7 @@
The DNA REST server is deployed as a WAR and configured mostly through its web configuration file (web.xml).
Here is an example web configuration that is used for integration testing of the DNA REST server along with
an explanation of its parts.
-<programlisting role="xml"><![CDATA[
+<programlisting role="XML"><![CDATA[
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
@@ -283,7 +283,7 @@
</para>
<para>
The next stanza configures the <link linkend="jcr_rest_spi">repository provider</link>.
-<programlisting role="xml"><![CDATA[
+<programlisting role="XML"><![CDATA[
<!--
This parameter provides the fully-qualified name of a class that implements
the o.j.d.web.jcr.rest.spi.RepositoryProvider interface. It is required
@@ -301,7 +301,7 @@
<para>
Next we configure the DNA &JcrEngine; itself.
-<programlisting role="xml"><![CDATA[
+<programlisting role="XML"><![CDATA[
<!--
This parameter, specific to the DnaJcrRepositoryProvider implementation, specifies
the name of the configuration file to initialize the repository or repositories.
@@ -320,7 +320,7 @@
<para>
This is followed by a bit of RESTEasy and JAX-RS boilerplate.
-<programlisting role="xml"><![CDATA[
+<programlisting role="XML"><![CDATA[
<!--
This parameter defines the JAX-RS application class, which is really just a metadata class
that lets the JAX-RS engine (RESTEasy in this case) know which classes implement pieces
@@ -361,7 +361,7 @@
<para>
Finally, security must be configured for the REST server.
-<programlisting role="xml"><![CDATA[
+<programlisting role="XML"><![CDATA[
<!--
The JBoss DNA REST implementation leverages the HTTP credentials to for authentication and authorization
within the JCR repository. It makes no sense to try to log into the JCR repository without credentials,
@@ -418,7 +418,7 @@
<para>
If you are using Maven to build your projects, the WAR can be built from a POM. Here is a portion of the
POM used to build the JBoss DNA REST Server integration subproject.
-<programlisting role='xml'> <![CDATA[
+<programlisting role='XML'><![CDATA[
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
@@ -426,7 +426,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-web-jcr-rest-war</artifactId>
@@ -438,7 +438,7 @@
<dependency>
<groupId>org.jboss.dna</groupId>
<artifactId>dna-web-jcr-rest</artifactId>
- <version>0.6</version>
+ <version>0.7</version>
</dependency>
<dependency>
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/compact_node_types.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/compact_node_types.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/compact_node_types.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -38,7 +38,7 @@
<para>
This sequencer can be added to the repository configuration like so:
-<programlisting>
+<programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("CND Sequencer")
@@ -47,7 +47,6 @@
.setDescription("Sequences CND files to extract the node type definitions")
.sequencingFrom("//(*.cnd[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/nodeTypes/$1");
-
-</programlisting>
+]]></programlisting>
</para>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/ddl.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/ddl.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/ddl.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -31,24 +31,33 @@
<chapter id="ddl-file-sequencer">
<title>DDL File Sequencer</title>
<para>
- The DDL file sequencer is included in JBoss DNA and is capable of parsing the more important DDL statements from several
- different dialects, and constructing a graph structure that is largely the same for all dialects (though some dialects will
- result in dialect-specific properties and maybe nodes). The sequencer attempts to detect the dialect by running multiple
- parsers and finding the one with the "best fit".</para>
+ The DDL file sequencer included in JBoss DNA is capable of parsing the more important DDL statements from SQL-92,
+ Oracle, Derby, and PostgreSQL, and constructing a graph structure containing a structured representation of these statements.
+ The resulting graph structure is largely the same for all dialects, though some dialects have non-standard additions
+ to their grammar, and thus require dialect-specific additions to the graph structure.
+ </para>
+ <para>
+ The sequencer is designed to behave as smart as possible with as little configuration. Thus, the sequencer
+ automatically determines the dialect used by a given DDL stream. This can be tricky, of course, since most dialects
+ are very similar and the distinguishing features of a dialect may only be apparent in some of the statements.
+ </para>
+ <para>
+ To get around this, the sequencer uses a "best fit" algorithm: run the DDL stream through the parser for each of
+ the dialects, and determine which parser was able to successfully read the greatest number of statements and tokens.
+ </para>
<para>
One very interesting capability of this sequencer is that, although only a subset of the (more common) DDL statements
are supported, the sequencer is still extremely functional since it does still add all statements into the output graph,
just without much detail other than just the statement text and the position in the DDL file. Thus, if a DDL file
- contains statements the sequencer understands and statements that the sequencer does not understand, the graph will
- still contain all statements and those statements understood by the sequencer will have their full detail.
+ contains statements the sequencer understands and statements the sequencer does not understand, the graph will
+ still contain all statements, where those statements understood by the sequencer will have full detail.
Since the underlying parsers are able to operate upon a single statement, it is possible to go back later
(after the parsers have been enhanced to support additional DDL statements) and re-parse only those incomplete statements
in the graph.
</para>
<para>
- Initially the following ddl dialects are included with this sequencer: Oracle, Derby, Postgres and MySql.</para>
- <para>
- Each specific dialect extends a basic parser framework implementing the SQL 92 spec and includes
+ At this time, the sequencer supports SQL-92 standard DDL as well as dialects from Oracle, Derby, and PostgreSQL.
+ It supports:
<itemizedlist>
<listitem>
<para>Detailed parsing of CREATE SCHEMA, CREATE TABLE and ALTER TABLE.</para>
@@ -59,36 +68,68 @@
<listitem>
<para>General parsing of remaining schema definition statements (i.e. CREATE VIEW, CREATE DOMAIN, etc.</para>
</listitem>
- <listitem>
- <para>Does NOT perform detailed parsing of SQL (i.e. SELECT, INSERT, UPDATE, etc....) statements.</para>
- </listitem>
</itemizedlist>
+ Note that the sequencer does <emphasis>not</emphasis> perform detailed parsing of SQL (i.e. SELECT, INSERT, UPDATE, etc....) statements.
</para>
+ <caution>
+ <para>
+ The DDL sequencer is being included as a Technology Preview. It is fully functional for the dialects listed above, and may indeed
+ work on certain DDL files that use other dialects. But we would like to have feedback from users, test against more DDL examples,
+ support additional dialects, and support more kinds of DDL statements. As such, the output format and node types
+ associated with the &DefaultClassFileRecorder; may change in future versions.
+ </para>
+ </caution>
<sect1>
<title>Example</title>
<para>Sequencing results in graph nodes basically representing the BNF structure of each DDL statement. Below is an example DDL
schema definition statement containing table and view definition statements.
</para>
- <programlisting>
+ <programlisting><![CDATA[
CREATE SCHEMA hollywood
CREATE TABLE films (title varchar(255), release date, producerName varchar(255))
CREATE VIEW winners AS SELECT title, release FROM films WHERE producerName IS NOT NULL;
- </programlisting>
- <para>The resulting graph structure, shown below contains the raw statement expression, pertinent table, column and key
- reference information as well as critical integer position values (line number, column number and character index) to
- tie the statement back to the original DDL file.
+]]></programlisting>
+ <para>
+ The resulting graph structure contains the raw statement expression, pertinent table, column and key
+ reference information and position of the statement in the text stream (e.g., line number, column number and character index)
+ so the statement can be tied back to the original DDL:
</para>
- <programlisting>
- <![CDATA[
-<name = "statements" primaryType = "nt:unstructured" uuid = "ee3db6e6-fa59-46db-bd3f-c555b4fa4a50" parserId = "POSTGRES">
- <name = "hollywood" startLineNumber = "1" primaryType = "nt:unstructured" uuid = "3e084a7d-7da8-4068-9b03-b1aed9ac9c7a" startColumnNumber = "1" mixinTypes = "ns001:createSchemaStatement" expression = "CREATE SCHEMA hollywood" startCharIndex = "0">
- <name = "films" startLineNumber = "2" primaryType = "nt:unstructured" uuid = "b622cdcb-69fa-4aa2-8510-f35c0a8ddcbe" startColumnNumber = "5" mixinTypes = "ns001:createTableStatement" expression = "CREATE TABLE films (title varchar(255), release date, producerName varchar(255))" startCharIndex = "28">
- <name = "title" datatypeName = "VARCHAR" datatypeLength = "255" primaryType = "nt:unstructured" uuid = "d7e962bb-cd37-4df4-ab53-ab78fd72c153" mixinTypes = "ns001:columnDefinition">
- <name = "release" datatypeName = "DATE" primaryType = "nt:unstructured" uuid = "83aa7c21-82f7-416e-8c23-5c308a1c4257" mixinTypes = "ns001:columnDefinition">
- <name = "producerName" datatypeName = "VARCHAR" datatypeLength = "255" primaryType = "nt:unstructured" uuid = "a51ed903-4d2c-4cd9-83e2-a76884b923aa" mixinTypes = "ns001:columnDefinition">
- <name = "winners" startLineNumber = "3" primaryType = "nt:unstructured" uuid = "9eeef501-ad7e-4e25-9891-b86485e48dc1" startColumnNumber = "5" mixinTypes = "ns001:createViewStatement" expression = "CREATE VIEW winners AS SELECT title, release FROM films WHERE producerName IS NOT NULL;" queryExpression = " SELECT title, release FROM films WHERE producerName IS NOT NULL" startCharIndex = "113">
- ]]>
- </programlisting>
+ <programlisting role="XML"><![CDATA[<nt:unstructured jcr:name="statements" ddl:parserId="POSTGRES">
+ <nt:unstructured jcr:name="hollywood" jcr:mixinTypes="ddl:createSchemaStatement"
+ ddl:startLineNumber="1"
+ ddl:startColumnNumber="1"
+ ddl:expression="CREATE SCHEMA hollywood"
+ ddl:startCharIndex="0">
+ <nt:unstructured jcr:name="films" jcr:mixinTypes="ddl:createTableStatement"
+ ddl:startLineNumber="2"
+ ddl:startColumnNumber="5"
+ ddl:expression="CREATE TABLE films (title varchar(255), release date, producerName varchar(255))"
+ ddl:startCharIndex="28"/>
+ <nt:unstructured jcr:name="title" jcr:mixinTypes="ddl:columnDefinition"
+ ddl:datatypeName="VARCHAR"
+ ddl:datatypeLength="255"/>
+ <nt:unstructured jcr:name="release" jcr:mixinTypes="ddl:columnDefinition"
+ ddl:datatypeName="DATE"/>
+ <nt:unstructured jcr:name="producerName" jcr:mixinTypes="ddl:columnDefinition"
+ ddl:datatypeName="VARCHAR"
+ ddl:datatypeLength="255"/>
+ <nt:unstructured jcr:name="winners" jcr:mixinTypes="ddl:createViewStatement"
+ ddl:startLineNumber="3"
+ ddl:startColumnNumber="5"
+ ddl:expression="CREATE VIEW winners AS SELECT title, release FROM films WHERE producerName IS NOT NULL;"
+ ddl:queryExpression="SELECT title, release FROM films WHERE producerName IS NOT NULL"
+ ddl:startCharIndex="113"/>
+</nt:unstructured>
+]]></programlisting>
+ <para>
+ Note that all nodes are of type <code>nt:unstructured</code> while the type of statement is identified using
+ mixins. Also, each of the nodes representing a statement contain: a <code>ddl:expression</code> property with
+ the exact statement as it appeared in the original DDL stream; a <code>ddl:startLineNumber</code> and
+ <code>ddl:startColumnNumber</code> property defining the position in the original DDL stream of the first character
+ in the expression; and a <code>ddl:startCharIndex</code> property that defines the integral index of the first
+ character in the expression as found in the DDL stream. All of these properties make sure the statement can
+ be traced back to its location in the original DDL.
+ </para>
</sect1>
<para>
</para>
@@ -96,7 +137,7 @@
To use this sequencer, simply include the <code>dna-sequencer-ddl</code> JAR
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("DDL Sequencer")
@@ -105,5 +146,5 @@
.setDescription("Sequences DDL files to extract individual statements and accompanying statement properties and values")
.sequencingFrom("//(*.(ddl)[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/ddls/$1");
- </programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/image.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/image.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/image.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -95,7 +95,7 @@
To use this sequencer, simply include the <code>dna-sequencer-images</code> JAR
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("Image Sequencer")
.usingClass("org.jboss.dna.sequencer.image.ImageMetadataSequencer")
@@ -103,6 +103,5 @@
.setDescription("Sequences image files to extract the characteristics of the image")
.sequencingFrom("//(*.(jpg|jpeg|gif|bmp|pcx|png|iff|ras|pbm|pgm|ppm|psd)[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/images/$1");
-
-</programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_class.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_class.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_class.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -80,28 +80,44 @@
</tgroup>
</table>
<para>
- The default class file recorder creates a subgraph rooted at the output location that takes the following form (with primary types in parentheses):
+ The default class file recorder creates a subgraph rooted at the output location that takes the following form:
</para>
- <programlisting>
-<graph root>
- + <package name 1> (nt:unstructured)
- .
- .
- .
- + <package name N>(nt:unstructured)
- + <class name> (class:class)
- + class:annotations (class:annotations)
- | + <annotation name> - one per annotation (class:annotation)
- + class:constructors (class:constructors)
- | + <constructor parameters> - one per constructor (class:constructor)
- | + <annotation name> - one per annotation (class:annotation)
- + class:methods (class:methods)
- | + <method name (parameters)> - one per method (class:method)
- | + <annotation name> - one per annotation (class:annotation)
- + class:fields (class:fields)
- + <field name> - one per field (class:field)
- + <annotation name> - one per annotation (class:annotation)
- </programlisting>
+ <programlisting role="XML"><![CDATA[
+<nt:unstructured jcr:name="packageName1">
+ ...
+ <nt:unstructured jcr:name="packageNameN">
+ <class:class jcr:name="ClassName">
+ <class:annotations jcr:name="class:annotations">
+ <class:annotation jcr:name="AnnotationName1"/>
+ ...
+ <class:annotation jcr:name="AnnotationNameN"/>
+ </class:annotations>
+ <class:constructors jcr:name="class:constructors">
+ <class:constructor jcr:name="constructor parameters">
+ <class:annotation jcr:name="AnnotationName1"/>
+ ...
+ <class:annotation jcr:name="AnnotationNameN"/>
+ </class:constructor>
+ </class:constructors>
+ <class:methods jcr:name="class:methods">
+ <class:method jcr:name="methodName(parameters)">
+ <class:annotation jcr:name="AnnotationName1"/>
+ ...
+ <class:annotation jcr:name="AnnotationNameN"/>
+ </class:method>
+ </class:methods>
+ <class:fields jcr:name="class:field">
+ <class:field jcr:name="fieldName">
+ <class:annotation jcr:name="AnnotationName1"/>
+ ...
+ <class:annotation jcr:name="AnnotationNameN"/>
+ </class:field>
+ </class:fields>
+ </class:class>
+ </nt:unstructured>
+ ...
+</nt:unstructured>
+]]></programlisting>
<para>
The compact node definitions for the class:* types is provided below. <emphasis>Please note that these definitions may change in a future release.</emphasis>
</para>
@@ -177,7 +193,7 @@
To use this sequencer, simply include the <code>dna-sequencer-classfile</code> JAR
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("Java Class Sequencer")
@@ -185,6 +201,6 @@
.setDescription("Sequences Java class files to extract the structure of the classes")
.sequencingFrom("//*.class[*]/jcr:content[@jcr:data]")
.andOutputtingTo("/classes");
- </programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_source.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_source.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/java_source.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -44,7 +44,7 @@
To use this sequencer, simply include the <code>dna-sequencer-java</code> JAR (plus all of the JARs that it is dependent upon)
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("Java Sequencer")
@@ -53,5 +53,5 @@
.setDescription("Sequences java files to extract the characteristics of the Java source")
.sequencingFrom("//(*.(java)[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/java/$1");
-</programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/microsoft_office.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/microsoft_office.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/microsoft_office.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -42,7 +42,7 @@
<ulink url="http://poi.apache.org/">POI</ulink> JARs
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("Microsoft Office Document Sequencer")
@@ -51,5 +51,5 @@
.setDescription("Sequences MS Office documents, including spreadsheets and presentations")
.sequencingFrom("//(*.(*.(doc|docx|ppt|pps|xls)[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/msoffice/$1");
-</programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/mp3.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/mp3.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/mp3.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -41,7 +41,7 @@
To use this sequencer, simply include the <code>dna-sequencer-mp3</code> JAR and the <ulink url="http://www.jthink.net/jaudiotagger/">JAudioTagger</ulink>
library in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("MP3 Sequencer")
@@ -50,5 +50,5 @@
.setDescription("Sequences MP3 files to extract the ID3 tags of the audio file")
.sequencingFrom("//(*.mp3[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/mp3s/$1");
- </programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/text.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/text.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/text.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -131,7 +131,7 @@
To use this sequencer, simply include the <code>dna-sequencer-text</code> JAR
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("Delimited Text Sequencer")
@@ -141,7 +141,7 @@
.sequencingFrom("//(*.(txt)[*])/jcr:content[@jcr:data]")
.setProperty("splitPattern", "|")
.andOutputtingTo("/txt/$1");
- </programlisting>
+]]></programlisting>
</sect1>
<sect1>
<title>Fixed Width Text Sequencer</title>
@@ -177,7 +177,7 @@
To use this sequencer, simply include the <code>dna-sequencer-text</code> JAR
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("Fixed Width Text Sequencer")
@@ -187,6 +187,6 @@
.sequencingFrom("//(*.(txt)[*])/jcr:content[@jcr:data]")
.setProperty("columnStartPositions", "3,6,15")
.andOutputtingTo("/txt/$1");
- </programlisting>
+]]></programlisting>
</sect1>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/xml.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/xml.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/xml.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -34,7 +34,7 @@
This sequencer stores the structure and data of an XML file into the repository. DTD, entity, comments,
and other content are maintained by the sequencer in the output structure.
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("XML Sequencer")
@@ -43,5 +43,5 @@
.setDescription("Sequences XML documents and maps their data into the repository")
.sequencingFrom("//(*.xml[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/xml/$1");
-</programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/content/sequencers/zip.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencers/zip.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/content/sequencers/zip.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -39,7 +39,7 @@
To use this sequencer, simply include the <code>dna-sequencer-zip</code> JAR
in your application and configure the &JcrConfiguration; to use this sequencer using something similar to:
</para>
- <programlisting>
+ <programlisting role="JAVA"><![CDATA[
JcrConfiguration config = ...
config.sequencer("ZIP Sequencer")
@@ -48,5 +48,5 @@
.setDescription("Sequences compressed files to extract the internal file and folder structure")
.sequencingFrom("//(*.(zip|gz|jar|war|ear)[*])/jcr:content[@jcr:data]")
.andOutputtingTo("/zips/$1");
- </programlisting>
+]]></programlisting>
</chapter>
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/custom.dtd
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/custom.dtd 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/custom.dtd 2010-01-09 21:31:34 UTC (rev 1574)
@@ -1,5 +1,5 @@
-<!ENTITY versionNumber "0.6">
-<!ENTITY copyrightYears "2008-2009">
+<!ENTITY versionNumber "0.7">
+<!ENTITY copyrightYears "2008-2010">
<!ENTITY copyrightHolder "Red Hat, Inc.">
<!-- Frequently used URLs -->
@@ -7,14 +7,14 @@
<!ENTITY Home "http://www.jboss.org/dna/">
<!ENTITY Downloads "&Home;downloads.html">
<!ENTITY Community "&Home;community.html">
-<!ENTITY DocHome "http://www.jboss.org/file-access/default/members/dna/freezone/">
-<!ENTITY API "&DocHome;docs/&versionNumber;/apidocs/org/jboss/dna/">
+<!ENTITY DocHome "http://docs.jboss.org/jbossdna">
+<!ENTITY API "&DocHome;/&versionNumber;/api/org/jboss/dna/">
<!ENTITY JIRA "http://jira.jboss.org/jira/browse/DNA">
<!ENTITY Roadmap "&JIRA;?report=com.atlassian.jira.plugin.system.project:roadmap-panel">
<!ENTITY Subversion "http://anonsvn.jboss.org/repos/dna/">
<!ENTITY Fisheye "http://fisheye.jboss.org/browse/DNA/">
<!ENTITY SecureSubversion "https://svn.jboss.org/repos/dna/">
-<!ENTITY Forums "http://www.jboss.com/index.html?module=bb&op=viewforum&f=272">
+<!ENTITY Forums "http://community.jboss.org/en/dna">
<!ENTITY JSR170 "http://www.jcp.org/en/jsr/detail?id=170">
<!ENTITY JSR283 "http://www.jcp.org/en/jsr/detail?id=283">
<!ENTITY JSR203 "http://www.jcp.org/en/jsr/detail?id=203">
@@ -24,10 +24,10 @@
<!ENTITY Git "http://git-scm.com/">
<!ENTITY Java "http://java.sun.com/j2se/1.5.0/docs/api/">
-<!ENTITY JavaEE "http://java.sun.com/javaee/5/docs/api/">
+<!ENTITY JavaEE "http://java.sun.com/javaee/5/docs/api/">
-<!ENTITY GettingStarted "<ulink url='&DocHome;docs/&versionNumber;/manuals/gettingstarted/html/index.html'>Getting Started</ulink>">
-<!ENTITY ReferenceGuide "<ulink url='&DocHome;docs/&versionNumber;/manuals/reference/html/index.html'>Getting Started</ulink>">
+<!ENTITY GettingStarted "<ulink url='&DocHome;/&versionNumber;/manuals/gettingstarted/html/index.html'>Getting Started</ulink>">
+<!ENTITY ReferenceGuide "<ulink url='&DocHome;/&versionNumber;/manuals/reference/html/index.html'>Reference Guide</ulink>">
<!ENTITY CND "<ulink url='http://jackrabbit.apache.org/node-type-notation.html'>Compact Node Definition</ulink>">
@@ -35,7 +35,7 @@
<!ENTITY String "<ulink url='&Java;java/lang/String.html'><interface>String</interface></ulink>">
<!ENTITY File "<ulink url='&Java;java/io/File.html'><classname>File</classname></ulink>">
-<!ENTITY BufferedReader "<ulink url='&Java;java/io/BufferedReader.html'><classname>BufferedReader</classname></ulink>">
+<!ENTITY BufferedReader "<ulink url='&Java;java/io/BufferedReader.html'><classname>BufferedReader</classname></ulink>">
<!ENTITY URL "<ulink url='&Java;java/net/URL.html'><classname>URL</classname></ulink>">
<!ENTITY URI "<ulink url='&Java;java/net/URL.html'><classname>URI</classname></ulink>">
<!ENTITY InputStream "<ulink url='&Java;java/io/InputStream.html'><interface>InputStream</interface></ulink>">
@@ -51,18 +51,18 @@
<!ENTITY TimeUnit "<ulink url='&Java;java/util/concurrent/TimeUnit.html'><interface>TimeUnit</interface></ulink>">
<!ENTITY UUID "<ulink url='&Java;java/util/UUID.html'><classname>UUID</classname></ulink>">
<!ENTITY DataSource "<ulink url='&Java;javax/sql/DataSource.html'><classname>DataSource</classname></ulink>">
-<!ENTITY DatabaseMetaData "<ulink url='&Java;java/sql/DatabaseMetaData.html'><classname>DatabaseMetaData</classname></ulink>">
+<!ENTITY DatabaseMetaData "<ulink url='&Java;java/sql/DatabaseMetaData.html'><classname>DatabaseMetaData</classname></ulink>">
<!ENTITY HttpServletRequest "<ulink url='&JavaEE;javax/servlet/http/HttpServletRequest.html'><classname>HttpServletRequest</classname></ulink>">
<!ENTITY Serializable "<ulink url='&Java;java/io/Serializable.html'><interface>Serializable</interface></ulink>">
<!ENTITY Iterator "<ulink url='&Java;java/util/Iterator.html'><interface>Iterator</interface></ulink>">
-<!ENTITY Iterable "<ulink url='&Java;java/util/Iterable.html'><interface>Iterable</interface></ulink>">
+<!ENTITY Iterable "<ulink url='&Java;java/util/Iterable.html'><interface>Iterable</interface></ulink>">
<!ENTITY Set "<ulink url='&Java;java/util/Set.html'><interface>Set</interface></ulink>">
<!ENTITY Map "<ulink url='&Java;java/util/Map.html'><interface>Map</interface></ulink>">
<!ENTITY List "<ulink url='&Java;java/util/List.html'><interface>List</interface></ulink>">
<!ENTITY BigDecimal "<ulink url='&Java;java/math/BigDecimal.html'><classname>BigDecimal</classname></ulink>">
<!ENTITY Calendar "<ulink url='&Java;java/util/Calendar.html'><classname>Calendar</classname></ulink>">
<!ENTITY Date "<ulink url='&Java;java/util/Date.html'><classname>Date</classname></ulink>">
-<!ENTITY EntityManagerFactory "<ulink url='&Java;javax/persistence/EntityManagerFactory.html'><classname>EntityManagerFactory</classname></ulink>">
+<!ENTITY EntityManagerFactory "<ulink url='&Java;javax/persistence/EntityManagerFactory.html'><classname>EntityManagerFactory</classname></ulink>">
<!-- Types in JCR API -->
@@ -73,6 +73,11 @@
<!ENTITY SimpleCredentials "<interface>SimpleCredentials</interface>">
<!ENTITY LoginException "<interface>LoginException</interface>">
<!ENTITY AccessDeniedException "<interface>AccessDeniedException</interface>">
+<!ENTITY QueryManager "<interface>QueryManager</interface>">
+<!ENTITY Query "<interface>Query</interface>">
+<!ENTITY QueryResult "<interface>QueryResult</interface>">
+<!ENTITY NodeIterator "<interface>NodeIterator</interface>">
+<!ENTITY RowIterator "<interface>RowIterator</interface>">
<!-- Types in dna-common -->
@@ -102,6 +107,7 @@
<!ENTITY SecurityContext "<ulink url='&API;graph/SecurityContext.html'><interface>SecurityContext</interface></ulink>">
<!ENTITY JaasSecurityContext "<ulink url='&API;graph/JaasSecurityContext.html'><classname>JaasSecurityContext</classname></ulink>">
<!ENTITY ServletSecurityContext "<ulink url='&API;graph/ServletSecurityContext.html'><interface>ServletSecurityContext</interface></ulink>">
+<!ENTITY MimeTypeDetector "<ulink url='&API;graph/mimetype/MimeTypeDetector.html'><interface>MimeTypeDetector</interface></ulink>">
<!ENTITY Readable "<ulink url='&API;graph/property/Readable.html'><interface>Readable</interface></ulink>">
<!ENTITY Name "<ulink url='&API;graph/property/Name.html'><interface>Name</interface></ulink>">
<!ENTITY Path "<ulink url='&API;graph/property/Path.html'><interface>Path</interface></ulink>">
@@ -109,7 +115,7 @@
<!ENTITY Property "<ulink url='&API;graph/property/Property.html'><interface>Property</interface></ulink>">
<!ENTITY DateTime "<ulink url='&API;graph/property/DateTime.html'><interface>DateTime</interface></ulink>">
<!ENTITY Binary "<ulink url='&API;graph/property/Binary.html'><interface>Binary</interface></ulink>">
-<!ENTITY Reference "<ulink url='&API;graph/property/Reference'><interface>Reference</interface></ulink>">
+<!ENTITY Reference "<ulink url='&API;graph/property/Reference'><interface>Reference</interface></ulink>">
<!ENTITY ValueFactory "<ulink url='&API;graph/property/ValueFactory.html'><interface>ValueFactory</interface></ulink>">
<!ENTITY ValueFactories "<ulink url='&API;graph/property/ValueFactories.html'><interface>ValueFactories</interface></ulink>">
<!ENTITY ValueFormatException "<ulink url='&API;graph/property/ValueFormatException.html'><classname>ValueFormatException</classname></ulink>">
@@ -151,8 +157,8 @@
<!ENTITY UnsupportedRequestException "<ulink url='&API;graph/request/UnsupportedRequestException.html'><classname>UnsupportedRequestException</classname></ulink>">
<!ENTITY RequestProcessor "<ulink url='&API;graph/request/processor/RequestProcessor.html'><classname>RequestProcessor</classname></ulink>">
<!ENTITY StreamSequencer "<ulink url='&API;graph/sequencer/StreamSequencer.html'><interface>StreamSequencer</interface></ulink>">
-<!ENTITY StreamSequencerContext "<ulink url='&API;graph/sequencer/StreamSequencerContext.html'><interface>StreamSequencerContext</interface></ulink>">
-<!ENTITY Sequencer "<ulink url='&API;repository/sequencer/Sequencer.html'><interface>Sequencer</interface></ulink>">
+<!ENTITY StreamSequencerContext "<ulink url='&API;graph/sequencer/StreamSequencerContext.html'><interface>StreamSequencerContext</interface></ulink>">
+<!ENTITY Sequencer "<ulink url='&API;repository/sequencer/Sequencer.html'><interface>Sequencer</interface></ulink>">
<!ENTITY SequencerOutput "<ulink url='&API;graph/sequencer/SequencerOutput.html'><interface>SequencerOutput</interface></ulink>">
<!ENTITY SequencerContext "<ulink url='&API;graph/sequencer/SequencerContext.html'><interface>SequencerContext</interface></ulink>">
<!ENTITY MimeTypeDetector "<ulink url='&API;graph/mimetype/MimeTypeDetector.html'><interface>MimeTypeDetector</interface></ulink>">
@@ -164,6 +170,7 @@
<!ENTITY NetChangeObserver "<ulink url='&API;graph/observer/NetChangeObserver.html'><classname>NetChangeObserver</classname></ulink>">
<!ENTITY ChangeObservers "<ulink url='&API;graph/observer/ChangeObservers.html'><classname>ChangeObservers</classname></ulink>">
<!ENTITY Changes "<ulink url='&API;graph/observer/Changes.html'><classname>Changes</classname></ulink>">
+<!ENTITY SearchEngine "<ulink url='&API;graph/search/SearchEngine.html'><interface>SearchEngine</interface></ulink>">
<!-- Types in dna-repository -->
@@ -188,6 +195,7 @@
<!ENTITY JcrConfiguration "<ulink url='&API;jcr/JcrConfiguration.html'><classname>JcrConfiguration</classname></ulink>">
<!ENTITY JcrRepository "<ulink url='&API;jcr/JcrRepository.html'><classname>JcrRepository</classname></ulink>">
<!ENTITY JcrSession "<ulink url='&API;jcr/JcrSession.html'><classname>JcrSession</classname></ulink>">
+<!ENTITY JndiRepositoryFactory "<ulink url='&API;jcr/JcrRepository.html'><classname>JndiRepositoryFactory</classname></ulink>">
<!ENTITY SecurityContextCredentials "<ulink url='&API;jcr/SecurityContextCredentials.html'><classname>SecurityContextCredentials</classname></ulink>">
<!ENTITY JcrNodeTypeManager "<ulink url='&API;jcr/JcrNodeTypeManager.html'><classname>JcrNodeTypeManager</classname></ulink>">
<!ENTITY NodeTypeTemplate "<ulink url='&API;jcr/nodetype/NodeTypeTemplate.html'><interface>NodeTypeTemplate</interface></ulink>">
@@ -199,11 +207,11 @@
<!-- Types in extensions/ -->
-<!ENTITY FileSystemSource "<ulink url='&API;connector/filesystem/FileSystemSource.html'><classname>FileSystemSource</classname></ulink>">
+<!ENTITY FileSystemSource "<ulink url='&API;connector/filesystem/FileSystemSource.html'><classname>FileSystemSource</classname></ulink>">
<!ENTITY CustomPropertiesFactory "<ulink url='&API;connector/filesystem/CustomPropertiesFactory'><classname>CustomPropertiesFactory</classname></ulink>">
<!ENTITY JpaSource "<ulink url='&API;connector/store/jpa/JpaSource.html'><classname>JpaSource</classname></ulink>">
-<!ENTITY JdbcMetadataSource "<ulink url='&API;connector/meta/jdbc/JdbcMetadataSource.html'><classname>JdbcMetadataSource</classname></ulink>">
-<!ENTITY MetadataCollector "<ulink url='&API;connector/meta/jdbc/MetadataCollector'><classname>MetadataCollector</classname></ulink>">
+<!ENTITY JdbcMetadataSource "<ulink url='&API;connector/meta/jdbc/JdbcMetadataSource.html'><classname>JdbcMetadataSource</classname></ulink>">
+<!ENTITY MetadataCollector "<ulink url='&API;connector/meta/jdbc/MetadataCollector'><classname>MetadataCollector</classname></ulink>">
<!ENTITY SVNRepositorySource "<ulink url='&API;connector/svn/SVNRepositorySource.html'><classname>SVNRepositorySource</classname></ulink>">
<!ENTITY JBossCacheRepository "<ulink url='&API;connector/jbosscache/JBossCacheRepository.html'><classname>JBossCacheRepository</classname></ulink>">
<!ENTITY JBossCacheSource "<ulink url='&API;connector/jbosscache/JBossCacheSource.html'><classname>JBossCacheSource</classname></ulink>">
@@ -216,12 +224,12 @@
<!ENTITY RepositoryProvider "<ulink url='&API;web/jcr/rest/spi/RepositoryProvider.html'><classname>RepositoryProvider</classname></ulink>">
<!ENTITY JavaMetadataSequencer "<ulink url='&API;sequencer/java/JavaMetadataSequencer.html'><classname>JavaMetadataSequencer</classname></ulink>">
-<!ENTITY ClassFileSequencer "<ulink url='&API;sequencer/classfile/ClassFileSequencer.html'><classname>ClassFileSequencer</classname></ulink>">
-<!ENTITY ClassFileRecorder "<ulink url='&API;sequencer/classfile/ClassFileRecorder.html'><classname>ClassFileRecorder</classname></ulink>">
+<!ENTITY ClassFileSequencer "<ulink url='&API;sequencer/classfile/ClassFileSequencer.html'><classname>ClassFileSequencer</classname></ulink>">
+<!ENTITY ClassFileRecorder "<ulink url='&API;sequencer/classfile/ClassFileRecorder.html'><classname>ClassFileRecorder</classname></ulink>">
<!ENTITY DefaultClassFileRecorder "<ulink url='&API;sequencer/classfile/DefaultClassFileRecorder.html'><classname>DefaultClassFileRecorder</classname></ulink>">
<!ENTITY AbstractTextSequencer "<ulink url='&API;sequencer/text/AbstractTextSequencer.html'><classname>AbstractTextSequencer</classname></ulink>">
<!ENTITY DelimitedTextSequencer "<ulink url='&API;sequencer/text/DelimitedTextSequencer'><classname>DelimitedTextSequencer</classname></ulink>">
-<!ENTITY FixedWidthTextSequencer "<ulink url='&API;sequencer/text/FixedWidthTextSequencer'><classname>FixedWidthTextSequencer</classname></ulink>">
-<!ENTITY RowFactory "<ulink url='&API;sequencer/text/RowFactory'><classname>RowFactory</classname></ulink>">
+<!ENTITY FixedWidthTextSequencer "<ulink url='&API;sequencer/text/FixedWidthTextSequencer'><classname>FixedWidthTextSequencer</classname></ulink>">
+<!ENTITY RowFactory "<ulink url='&API;sequencer/text/RowFactory'><classname>RowFactory</classname></ulink>">
Deleted: trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors-0.2.png
===================================================================
(Binary files differ)
Modified: trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors-future.png
===================================================================
(Binary files differ)
Added: trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors.png
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors.png (rev 0)
+++ trunk/docs/reference/src/main/docbook/en-US/images/dna-connectors.png 2010-01-09 21:31:34 UTC (rev 1574)
@@ -0,0 +1,597 @@
+PNG
+
+
+ÛÿLä6
+¿ÌA
+@)(Õà2¨M ´NÐ0¦Á3ð¼Àð ,DH;D!IHRt cȲ\ OÈ
+
¢¡D(
+Êr¡¨º5@PÔ@Ð3è5´m"Z3!A¨"ô{ÂG¤!#ZÄuÄ]Ä
+*êú",$ì &Ü,¼ B19'2*U¥ö®Ií;.vG츸£øñ6ñw¼vo%Év%oJ~rʺ+µ&-.í!'Ý/ýCFQ&Pæ¬Ì,¬¾l¬lì9.9;¹£rrëòròþòåòO
+f
+)
+
++>eãJD%3¥CJíJ_åÏ+Ï«pª8ªRy Q5PMVmSý¢&¯ªV£¶¤.¨î©~F}ZMÃA#Wã¡&¦¥æQÍ>-VV6¤§}Pû®öOd;:?uuuêvè=}½Cz=úh}SýLýÁ.QCVCgÃÓsFüF£KFï婯Æ[&z&&¦ô¦ö¦%¦sfffõf_Ì5ÍSÍû,è--N[,XJXî·lµVfV§¬&ù¬¬7wìÊÞ5nC¶ñ·i´ùnkl{Òvj·Ðî°Ýmv(;»R»öòööýÌW6Msç¤úö0ïñÞÓ°ç§³s©ók5Ã.ã®B®T×î½L{}ö6¹!ÝìÝι¹¹¸/y¨zõÞ'µ/yß§'Õ³ÏÃ+Äë®7ÉâÝæCðñô¹æóuóm¤ )®z?_½?ÊßÕ¿!
+bERŻʽª4ªjÎqË:·YT=sÞê|ûå.º¸vriò²ÅåöÙªZÚÌÚïW¯,^uºú N·®¹^¬þLcÃÆýËMîM£ÍæÍw¯©\»z]èúé¤G[ øÖÀÖçm®moZÞì¹¥s«¥]®½æ¶Ðí³w8îäÝ¥¿{´Õq°c³3¦s¥+´ëu·_÷BϾÙ{.÷&zí{õíêì·è¿ßô~ïñ@ÏÃ]CúCÃÃ]
+vô>2}ÔÿØâñàè®Ñ1û±qçñ
''¯'C'W¦¢§6§Î g2gégór<=;'4W3/?ßòLçÙ½çVÏG\W_$¼D¼<¶Ä´T¶,¼\ÿJíU×k«×o<ß¼yývû]Ö{Ö÷¤>´~4ú8òÉíÓëèUÄêÉÏÜkÖT×î}±ÿòükø×ß²×¹Ök6Ô7îoºl¾ú·
Û*ù!þãæO˳Ûac¿±ÀßXào,ð7øüþÆóóóóóóóÿó^^¿b$|Døù°z
+ªû¡ü´¡ìa£#©õGç³
+G¨<9å
+åYçGTöϼ.ýxzãþ,[9
X¥TÊ9Ãj«óö]ô»x9°&¼6îÊÁ«quñõR¯Q¯Gßk h¥´yÜt¼eÕn|[ëÂ]ÑÎNº.D×f÷jÏ{c½}}wúëï
+27<ìúÐ|DùÇ£oçF;Ç*Ç3'OJMÑONÍ´Ì=sW}ÆölóùÌÂÍÅ8_嶤³L~
zµøzøMãÛüw ï½>X}TùD^!¬|]]ü<¶Öý¥íkí·òõÌÍߣ·"~þôÙ6ÛÞþ5ÿ8º0ßÀK-òª¡U ¢
+B"¬Ì#´#zeÆ6ã\ð(|#
+
+f¬·Øâؾ²Ç°opä\\
Üdîs<<mdòï^Þ·|Iü$þË:#!´P
°ðH(£h£Ø±-ñÓÆ«§¥¤¾H_qE˶ËQå¥å*áÙ&+½P®R QUQÔÔ5|4å´ðZÚ7uòtõÌõ¥Ðo
+Gî_1)3Í04§Z¤[æXUZ·í´±ýhGc/á`ãétbÏuçYWÄ^7O÷"QO´ºw¤Oá§îð878 ¤3)< â~$wÔê|aì¥xºØ¯SRo¤¥æ:ræ(wVq6çñÚª§:rózö~->VÊzüLR¹@ÅêCÕbç_^,ºl[óóJw]BzãvóÐõÿ6
[Pû;Mù]zl{õû¥Ø¾?Üz´=ÀN¦Yg%çty,$¼È[j5ñý^þcèJÉçé¯ìë»7«·&Í¿hÐÐ^¨Cx!ÚLÈä
+ºÉ
+÷ä:ImJLÚ%-)m+UpRTVbWÚV~a_W;«~X#TÓQËL[CGRS¯Òÿ`ðÊpÞhÙxÆdÞôÙùEËV»06¬¶Ü»ììýÒ«ÚöÌ»@®B{ÝÝ<Þx²{Yx§ú<¤üüL tÿ»¾H¨êTvlE<*!äÀlIòÙÔÊ4ô¤#ëYÇÞ?8u8^ÀTx¾X¡äÖiã²á³å?+ÎÉT\ð¸¸}ùròÙºC
+ô-Íû®ý¸q¢U¥íá-ïöÍ;Ç;:¯w[õ<ìuëûr?v`}0~hã¡ûÈÇ£]ãéO^LNWͬ=Õ;8ßý»`ºH}QùrxiãÛké7ÊoµÞ¾7ÿ`ýÑðâ
+ãÊÕÏQü²Gu¦õÎ
+÷õÍÜï¬ß·8·r¶6~xý¸ÿSþçmÊÎüÿ®ÁÚy
+óÞeóÖñ4±1ܲ ì`vûEPmþ''î1çS¢ÿØ©ò²kÐ
+Z¥uW¬bù¹µôÕÊ϶´åWmiµ¥nEPT\YDDö}²ïû: ÿsÞ;IÞÌL&!ËÜ|&o»÷¾{¿ïÜsÏ=÷Üs]®Q38p"àDÀ'N8衸öÐr9åDÀ'N8p"àD at BÀÍVu:hëëÀYñã<dEmoRÖºÀÃ×®®®pqq1ûq}Ä=>ï oÖ¡©¾×ZZ¤×µ½W_¸j4FM±4=ï\ W¢×>«áêv]quÒiç©ÛtS]-Zôz·óÞÇGÝ<½àæá)¼8vE[綬§>Hô=2ì}¸¹º¹ÃÃÛGÂq2ÅovvÌkk$ìLéN`H(Jåé
+ÿܽ¼¡q÷0ÃÉCÆïz]ctMM½NCW
+<IVί³¬dÀzW}ÂçÐXS%¼Oü#ð½B9|âoàxq0á3Á»¹ÉÂh®sá¥TdØÂ·±ºÒÑÙ_¿ü;¯ D)Ó?¨[q-ɸôý»z
+Uk²za\Ã%#~ò4
+Ö-¸]¾@tºèô,áYqýèÊÑo6¡ÓøÉ7!4apáYWQK{¾Fî¨.* Þѵ¹nù¹ð8Ñc&!vüi°ª¡+æ¡Ì?íå¡Úz\úîä<ʼ«°zÝ*êà³À¨Ñã©=ßÂûÆÎôh/v\\¦5Æ/ïì Ôî®ÊuÉÎ#a#fÜD§7bÆ
é,ÝÙZ!|fþYÇ¢äÊE476ÚEïB4é
#Ç"ñÆðÚ´i;gíZ®TUõ8ðî$¨µ&¯^'jìd$ßq¼|}%¦áîî.}
+VPj¸c@ä cì.;)ºzßTy!)È:]3Z\\¡qâS*³Fó$¤û&3«`ùlÓ²ëÿ¦1~k3ÑTùÕø
+J,¥aΫ3¸²]å·ÿzWÙFXÑOpÕTðWâ£`Ñ\©óÜõÏPM8cè'xJtJI¿Äá¦Ó}ôï¿5Bèq1õvdâ¬Í)AN}3BàÓMK`uÕyøà\
+
+u>ͤq eá¼Ì¼bàêáe¬¿)MsãCÖ¬²°Úún\ßÊ+
+éǸ6Ï£3Ö&Øë¥½ßÐÖFØpm,-BæþoëF¬ÈÉ2'í~g1âÌC{;
ge~Rwn1ÇD༳Ø^¤Gx¿ÄCÃiÝÍþ=û°ä³K4øï¦@m¶I^ܶÞÉ£¸ÏØù¥ÄC¹½×ÓÒF²ëm],úi[cV°yè?¸q½svoCqa¡DUUUýóHK|²ðbªÄcÍðë!m¼îº®ïÖý\ùö+éÎ/+/~ð°fÜ,ô#¬¹ÞÅǾGþtVYVâþܾ;Ó§ajrÑ:1Üdqq÷(SmëéôÖQI¸9DèS!Ég;_(Äü!CàE¹¨8çàäØ`øRÒò
+è½½PKSÃ5Àà¸X¯Ö#+'çËá ñ¡R îçáRY=ÜÂ0eP¸t?$"7Ã)â
+°
+
!Ö[Ô3ÊOÛÀxÒâʬ\0 ¡ñHM˱;þßLüB»Òõ\Ϻ"Á¦¯ GǺê2\môDr¼ºP Tqæ(Üb!((HºÕY\¹<¿c³È¾õØ \õMµÈªüZjfj<
+Wöráë¶eÙíx:¾ýÛgÅÙcpb7Ûö
êtìÁøa²Lÿü±fÅxaá¦\è!ÀÐÕWàXV<¼=
+QJì?l at 4aã
+K¸°<z9ÅdÁÂRêøU <Ìõzo'(½Ò¤6 &:ÜÐñ#F}-òÏCXòX47Ë
+²ÿ7Õªõ?ç¶}&gbúߪ¶Û}t§o×w+óBsü¬§»ú¬Ë(¼(Yó'úKtg
+5ç¼`º$ãbû¨½k{û?ý
+3¼2 @¢U·¶¯ã;¯y`
+Ó·ãùU¨"Yè`Z²TóÑÕbÅg[°xãnü0¬ÜºûJ
+vQ
+Åxaónd¶$qí®Õ× (3eeeµ¶¶Ö8Òe&"ǵ&ðÈWGµÐq]_ËÇvã
cÜùqÐbÿ;ñRN|iú¿©Å´¿-®<*³×ÒÌË=,Ø+1î|,ÿxÝD4×\U[¶â/§Ø<F^ËÓñôÆ]HoÒ£²ð ^xo7.])Ó«4çñôÇ»qI¯A½ÿcÖÓ»[éÕ&\i at TLÂAgqe
+6ïÀâ÷¶`Õ"\>ne[§+.§¢´´TÒÀÔÔÔHZVÖ²"@IËMÞ
++7}·.R/f[!jª³ðÒg'A
+v)]=¶æBÛ®&:¸ââbISÈZÖºº:©ÿaÜx®Ôÿ°«´"¤ÔzÛí^º+1ë»Õy¡9~¶Ñ]ºSÂN
+3µûéõ6¬íîw¨®ÚlI}ÓªVíéÓÕ0çûBÍ)ÅaR©?¬ûøì eí@%rÊä¨K¦GÉ`.V.ÆâÀ$Íbl,þüö*?Å?ÜO
+: Ñø«Nåaâø¬º
+hÀúg1köX85ÐC絯+Æ[I¦ôj®u´JõZ`ݸv
+ÚgWµÛð´NkJT§nÀ
ýÛñB¬aÍ)£?
Óç"VÓo÷Î_4°£1â;¢XÈtÑ&³FzcÿVeZZªLdX*½Ó+ ¿çÏFáéqþøhÍ^E\;Åt°À´sðÄð`jë¾Øde[×VKkS¹¶Î«¹½jYþ*ó²¥²µýg/nëÆºJe¿óö;q,i=G@#õ1§ËâP¢Ûÿ¥4c7`ñÄÔghpãHl!34%Ü&DÑÒoq|àD¼5g48)Ô·ÃÜÄQf¸A_ ØeZpÅùSYÒ·Vâ×êj$AµTÌEßc©ÿ©ÈËQõ`²xu¸én
+MÞcÝDZÓ£b>"ñ<)ØÐÖÙN5ñPæ¢óâ+¥¶Îvþ}¸q´`.é,®¡1Hà
Tº¥X_½&N½S¦j[\ýG÷ãÙ¼)xcRéhóRX×°}C¤¬1ƸÁÃ6eáO¬ÇpYX7Æ5¸BM('V;??? Gî{Úö?ÝYðók¹ËÐýt'únï @øÙ@wlc-Ý×X{dìõä@-ôN¬¹%Ø×ï0õd2éj"+±Íµ=²¦â¾bàE#ÍÄZbñÒ·óò4«5zz²ÅÛº%zWÚº8¾ë2r}CvïÉÃÑað÷ñ§¬ÎâÛYoZMt'ÑWwÞû
+u¥Ñê-¤]e¦£rÊ(µ|üFR®5%vCNÂJ.
ÌyÀöü+ÚYËÆ?Æ
~+1hÈDÚæ0>ÌÀ¬XõðcL
Mw`lë¸ZCyWâ*rNà
+$á´¢àd®MÂn ÷Óï}BW?OÄìÑÑÔi&Ϭ@ÜZ¨ýiÈhàòiq"6. Ã
+#&Î@1B¾JAüh¬Û³±wÝÒ&7Ä<8Qk4h0@ö¶w&PDL¥1à`Ì,¸1ðÏÚÀ^»¦Þ@ú
+®^!Ѹ'ô6
Æ ÃtºFãÉÌWz®)Óÿ|öþ#U HF*ég`Âzr´ú \åÐdü9Ô(Lòmé5ønüpî\¦øO6ØÑS±íYùÝmèÕZ\[HÔ\%:e[=`/Úg·kñ´N[,tf<xoXõÜ`ê´Ù»v'¾LB¡ñúpüKmi2K<"ThÞ#xÓa at L°o?|ªÁj4©¯l1My¿µ2Mµå¡B`mËC
ð*U´Í?»q#»QíÅÂcr¦³¦Ï&ÛTèTêë
AdpË×~(' ÿ?¿k2õd4ÁLq[sï8,ñ¿%=£ËLÂhU;Ü@Bð
+Ó¢±}?p0S0¤2?´â&úæøñt«ièLß=©[éΤï¶Ä»îL1´æÜξ#>Ù#±îD¿ÃuÖjup1ÄÀJЪ#Ì0ø=ÆYY0#9°öMäÌî@~R+®ÁÛÓ^3jZH@»<Ï'ÑÔFÙ@ñIÐëP#Ã\wrâÞ:EÂ÷+há
+ßömPMI§:jÀ®dûÈOÕòi¦Vâ~?ÿb:-thû´õúbªüÃèèhÄÇÇ#""!!!*ïl3®GÈgÛUòíhw踲×úÕ_Â÷®»ðu5h Ì/LÂ2&&qqqÒyhh¨+OYëO7 cï×vÃJôÚÐ+K/aÑW¬¹w0´
+Zx°q.µ4£¢*GBD§<Ù¦d¦ôJ9¡º:!w{w>æÉ¬Ã5&!}íÃUÐéÑï"ëÀnó×Ûrå@<»ªý[K§ô)Km¤SxåÐËûW¿bjmâ^CuY¹º#ÀS¦hR¬ IîTZ\È~\¢qÇÒ$9¾ÀY· ©}3ÅvÃÓl÷ÆôWYR¿_Ò[.ÛãÆþüö9Ì_x!¬<_wS¦¯^ß:2k òs}MdQûë¾æ
+?jû
+ÊUcE.ÿ+ê¦cí¢yGd¡è[7'rÿøñq&×uÜÿ0nO2Ý¥Ücëß6¾Çööøu%Ýu%/,%%ôEweºÌ,Ú
+üÖàÅtÊú-ÈnÓþÐw°f6¸Áv·cZ}zxx¸$+±)¶Zµ3îGdÐÑÈAijxÔx &¡9F¸±zÒ¨z°jòÀpªq÷D°Bçûaô³ÜIXA-ñ§w9U'óhuæÂ*§i!m3ñc^bRi¬Ö|-1®üשУq%!¯ò*^Ùxl=GãuÂ*cÀ();k§P%³öôÊ?Êx
+Ð
èµ=ý©Ò«Ñ¾%Áì³Mèm|IlÁõZ'鵫ڿ½x:¾ýwv²¥Ó×gºkKiR¬ IîHL¸¨Ci$/gö.Ú:óÑvâv.(àF¼úi¯S/
¶¬ÄU2ÇãøÐWã£4Iýáâ`®ü82v,0ñO)t¾n¦».å
¶ÐîI|²³¤Ú°f¨ZhÛ´ U>Ú#+Y]zdÖ»:D°j÷F
+Æßsy)¯l½KoèAX5
+£iSkcÂÀKØÐyÛ£µytV^mÿ+ b}Ët,¨êuÁ´£`¾m1åkkÏʸÖä'â¸ûGã¿ïrµh."âvõ±;qßÁÑuêoxZK¿¶àÜ×0äºÁKà%¶àÒa\²Ï\~Çl·Jä&é².5rFM3zéè]my¤ÀLMÓw~}î§Î`%§µ®2ý>÷f¬y`jJ«|.pÇêoÍs3Õ¶Çq¡ipZ²ÒÒ´Ô@+"´¢JËDkeF]'áJz
+ï LÒºòÙb
+m½gâJuñ º,Ö ÛÚ«¡T=
+×^g¢Ó^!Ѥ Ƕ<³íu4*ÕL;ö@;à%µ¹(?Óݽ°·ÒÀL¯v¦ï´æ¼·b-ê&°nKm¯E|{v¬×u%
+v\ý°ÏÉESGáÑ´`äºrYB;
+¹Ý£Ôâct]¸v
+¶N\«Ïñ´Bë_WYÏ<Ⱦ>ÇÐ"Ð(³-:;|OEбkCÁ¦Õq/8ÚsOÆ
+äA§¼âx¬Ã°§Ji4ªíãu¤õëÉm|Uô`ºkuGwú'Öu´Ú~ÊÏM(G0¿{
+gïÀ$¬ÆO?Ý3h°f˼s¥Õ¥¿yn¼j©Ä×~ó({KÑæjý;¸Z-1¸ÚVÇqxvQÇ1ª/á{±Ý{þû9X6w®îß§¿J7õMßqF]CÝï|¯¤³÷GðÑF^BÞÉ0óíÚYëû{xÛ¥=îZ1´ö¬ÿaíXZUÇÙ¨a5¾Ð M_Ç*ñ༻ð£(y1JBX(þäVFBlx|©ëóeðÀøPÉp½®²%®´R¬¦+D»¥à
ZdÔ 0È9y(ÔºÓ®!qõ½èê+p,«
+ÞHÞBwÚ«9H«hDHè
+ýäÖ]Æ÷x`TÜ@èJq
ɪ°
+1/ejÚÖþëj®æ¢®¸E[ècj®¨ôK$¨_<µË¾¹A8±÷ÖxàÖᡨQÀmÂ0lÚjÚ¤@ç
ÁúlüZáF»VÿøZêïgy`ÆøhªÌs¦k]eZÔÿÜÄnWÌ#¹ÿq5øEgº+ϽsÇÎm¨¯ã¶ën¡;·ö}wK(¦£fiGwuúk(qQ¦;áJ£¾»
+Ò%Ó)¯ÏØ÷
+%'ïícu Öúÿkµ*m¼{°f²É¥¢+mÍÊíi¢O·VVjdû;F
+kûGíïh<È÷T¨'±¶ACv;dRU´åsÌE
+»¶>
+ÔÑÞäLÚÝI¯rYÞï#zWQÇt
+f¹vÏÔþ¯'5´mg4ÂiS¶Á}®¶ÔbëÖ³5û,ä$0q^Ä÷Îã$fV
+49!\*ó×xÚôKv5÷øHÉ{ÇÍÑ>xzËeÜ5x¾Ùi3çâáÄ_[bá¹fJïÂÏCSÑ|óDk
+X¿ÑRYº&;ÛÚ)´½)!×¾Í*¸M&Árm.³øá$7ÆÆ?×8TÜ2ZÆá3£ñüÙ(<=ÎÙ«ø
+EY¦ÍC¸[穦-ØsÝQÛí.º»#<L¡ï.ÑgO¤»µj¿C¦(WÏ)¶ñ¾µM«¶wÉU´úÅR"Ýy?ÚñÆÜ{
+uÓ-î&4ؾ¹²$óê ¬rM¸2
+Ázp¢µAFZ§Í"@ôÇâbwÓ«T±Úãsì=©ý_O<½|ië+ ýPdb2~,Úp vÉÔð~J&¦í]¤Õ 1¨Ð¤¾´ÂY¼üI¼¿}Y%]G v¦á÷L5,¥~üAºÓÞCÇ[pëå8ªeéFìndÈ£Øf©j¸é¤
+@Uë7J[#ú?¦I«m5J[sÐ[ÂM%·yî¾ÐQÛ»Ö-tW£e÷
+}7Ñ7Fwö|¡®ÂZI»©ÔÆû"Ö6 ¬ábýÇp©~¬A5|ÍÚFpž0¬¼ÇîèH
+ËfTS'ïN}¿"M_gÈsgÏÁí<±`W_Rg}É4¹
+W&% B»u|ÝI¯Y:w¥êÞc§ðä¢öö=ñôð$q±»sª1gD¨-À÷cÑ=·JwdÑG~¨áòzù/ç±D
+øê[¨K_O&9vlnD>mÍjÜç^ÂßCöþWÉ£=íä'ã³EDfe¡u¾¿S¸ª¤ÒféRî´ßw'P/©w½²øø¹â4ggGà6°Êß°²;úÐQÛ]µ0Vz¥rGw´ÞE±ï~ÚÀöº³ãCt)Ö
+4¬ÖÆû"ÖÔaÅñ
+£½â)ÞÊu'q±ºH²Í̹öcÂÌ8ûøÓÓ³ø6GöPMt'ÑìE¿L
+ÉíÆÇa:ìþl7¶Tè!¶S±WzO3ÎÞUÛË$¡
+ìëH}áncY×m·¸v
+ÔÆÕb)û½:Ï~Ùþ5AøÉ´hìßµ_åT$²ç®-ÁúõûI{:cÃüA˰=-_ò o(Á&⯳Fò?ÛãHÓÎY$"{ ÒÏùG±rk±4û5+XV ½§¢8/Ò÷å´µ(²ZèÝ}V)ÓÎüëfܼü%ÍjfÁ¾ð¨/Ä{iápf%¨áÆýµóÚn°¿µ%ºSí»
+åìqtg(-îÄË¥ÖÆû"Ö6iXió9Üù³9Àw;°âÆo8wæ-¸ì 44mÿÙÉx~ëIPå÷̽Éd¯ÅÓ)~&os#CØWyJÜÆãFL6s×îÄÓ¤ÁÂÐx}8k%ðë¹£ñ¬ñ=X|_í÷ÜxbÍ+×åo¶X9Ãòßk×| ûqìéIp0Òµd×ôªX³u×
ýxö¤ö½ñL5Ï5$Áq;>nèxüeú0ÉÎôsgàòú½x°~&vôT,b{Ör¬H²u
+%ã¾ÃuÞçF\ÉÓoÁéu»ðÄYùѬ³1¶Nu{¶#6ønØTQ.:Ú¾R¥ÍªãÏp<sÇx,ÙB[©ê3wö\'õ¸¹ %&Ø·K>Õà
+µoh¡,]\x['µ)*»'-Ëq
+9ªÝrA·X`G£ñ gæ÷@pça!tª,À
mÏŵxÒ±5uÀö\ ÉvX2vãVÌï8Ö¡J6Õý^;«ÀSqó'N<[iØáfÈôÚ¹Æø*Ô À§sS˪ÃûîDÿÊkÒ5ð5ú¶nÍÆÕÖ`Y¸}ÒÀï¿G:·²óéNÜHG°a=p+|¦»JjEÎ~Üø
+>kqϤôOà*®--µ]®WwÐrßͦVô:[c!ð¸>³UÛg"}Ûûj×ýkóv.ðxk5¬½oXMÐâ1ÈLèÌàâØppt]påw8±íÒN\;_ÛÔvãi0Úæ×/¯IÖruy(óRÖ2®Î¶Þ150^ütØq
+kïçÔÛc̸ïvÒ]×M²Æ_ø·í6n&°ò|G#(`$mÜBî9èG«®Ñ¯¥¥uw"Ù ëA¸o`,<²kàV#«LôâCp¹lù×gÈ
+Ý72NâÇ2|l<"tÇÈ6´(Ü-³ÉècÔ°k¥¥kÎ?xz2¼j¤v-ÉIl
+Âýù5Vé#YÜ·ÍRþ½éSá¹h"s"ObiUª0VJ´joÍVÎäÖèAf8´ý8J»hö¾¯W¥ó*ѽßÄÖÅ|Óó*vðd\y¾HCv½~)ãäY¡{Ý5 Wf L;/[pe<¸J³ZO¶¿úÎáêÄSþ{U·Ûñ$9¬Å|LÑÑX'LáÆ|ûÓIñPòÏÍ<T´kÓ¶ÎXð}бÅ\(TÜºÑ ÿúc`<ÄA¦¶Cq4Ã1;éNF¤ìµÝɦÝ)âg¦åf=yIÒÓÚ
+<îÇ^L«ý^]ȾÛÓ+ãÍÂ*ãË>V'ÿI¢ý,KK®qÓÐ i1ؼWóOËìá!k
+Û½éÌKÓw®4ä$ÓÃC³W'æ´ ã)·[ðtâØ#cÁóPÆP«|¿¶Ë[+n|Æx±
+Ó(/ª0`ze¬Q`åL
¶«¯jo}4®´ÚÿĨA0Yk±râÚ}ÆÕ¶ù¸rAØN\Ûãeíföâê¤Óö(»ÚA§ü
+¬¥áöoì{w\È~y§¼Ð%j*°búss
+ÆlE>EØñqÄÍD<ë'®íØÙ«OÇàÉ4ì(æÜ¾D½ïË¡L¦<ñ1ýqýõ¾v]
D`ÇGA[â(Þ.Ó¸r5º3ÅÑV¤N%ìû¾ ºÕÐð5¬b |±ýÕZh4¸à <Ã8NGû7Ë?ÆFüø!®5Aà*¹5 úAÆTøýd%ß
Q¯DV`àĵ=HÍäÓÓ^\x*ái;2¶7´c߻丽ët: ¦OÑæMqô×÷°¿FMä;ñØ13q¹Ët'®GîG,Ñ][ü¬EéTJë1}2ÞãÃ*ùÇtÉ?>wD0Ó°JZ'9âÝ=>½¾MM2á3ãࡵa8Ø5K¸Ê« v§££W'¬F¨dz[qmÅÓ ¨
+¡
UqO:éä?£ÀjÌÇ1°1»Þ|ÂBGÛfñÏùC0ÁÚGðV_
+ä`Ö£Óàz_\¨¢-OhÜ8ff
+ã
ô=*°æfy ÀÄ.ðG
+ëxXmz}OÌkY
p ðG«Êê °UïêáØ¥ÃèÔu5mï>WNáÓÃeð¤½ë¤¼¹½¢ö)µwûñæËôT<§-4#ñÃ[#ĸÁO2Ä;¯ì´;k\
+~ýèLÜ2*Ä¥³`~É»0 *ø'Ó$ÿøº[¶Û7D ½qóäÏl
+NÄýöß3Çöã FàîÃ_eKàv̸ñQà$6µi[^ÚA\mQ:6nOh
+MÚz©×.`/aöà8
+¶¿4)aíE®+ì2Rî]ùþþ7Ó§þmYlDÛ&¤U£I
+ìx`evfÚÞ+2OcóÖ\øF!&Û{ µ÷7±ä ݪÁq7lÝ&zH<!&ÂÖ~«N¡Aª`NlZ%$¬&.z¯¾ü,îþi^?\. èôiJêÐTh_ ÑɱÓ/µAK¾çéâëwòãîç
+?ZOe¬®ÛN}þi¬½Zo)§.&Un×èøù\`fV®"<èëËðñÖL°óeìèçççÒèQKÛCCWïöÒkòÄ$n:¦(öòBKÅTÄÞR>þ1rÓjWªÂë3üoïáGÖVñà"G Z²á DÒÏkШNDLÙ¼_.ûãxUÙ8x*:
+(jFCö1<òÌ;H«oF¥tRë zßõdE)v=WGÔ¸ûòpâê8¬©õÛG§Ý éµlÕ¥CS°(ØyV
+W4 ¡®UÕå8øÝ `Ò$söe1·UßàÛaã»S*1M
+ºç||T¼»»>ô¢ÊèÉT¡ø%ÿ´¤¶à<wÎ ¥iAêæux¹õUøê¥ÕÿÇà ã«.3~)n¦ç¦
`zíÝr-õìi
+ùÞÄS{Í@&ëæ¯ÄÒW® ²ä
+=÷w¼²§È<N] 8{qnzìÔk» êN±LÛ¾N´o~î¨ au\æ*äõÊqC.¶ÉßLåÕ¬ØÇÝmöü©ho«)ǧ/íÆgãé)l5 üÿÛ³ðx²GÂ
+¸ÿiÇ|µZ]Q¾Oó@fùÛw!w`[=Øv
ìÁG§8¢Ú«³õÔè¨Ðþù©%<-=3ɹNÉo4)¯üÝ
+*UaùÓ1×ýÑÍÚq¯A;kÅ
+Þò×ô¦ýç9SºTÂIéý/VOIþô*6D¿âyü8qèñ¹¾4
+K×gbéë¿Ãa¤ß¹3ÿóÈj|=wÆ9ò[ã!:}a KÏs·÷.£³
+=²Ó$H¬|÷I¸¹'h¥åǹGöàcÛ8të¶ÑxäOGðÐô;e
+´In8e>&0á£éygóyu6¾^`-pîJ|Ö¾cÙÕv4jØrm6Ön
+?ÓÒS_}K÷a»cIO@Ó5RpE(-ÀÀ·eþÑDÆûxìCԥ੧bF¤Ù¡(ß7dà<8p"Ш¶wõÓÌ«!$âå5c8 ¬-»tÿé]ìôִƱ¥#M§f5"1),ØõÅÀ6¼÷ý÷bÜä-iVA{øRmóÚ×V[#Û±¾üôI£,:Lh2Õmóþ¸Þ³°ú©ð'Sêh 'û?¢±,ȬÂn¼ø\ªü<»®QMæ])°*Åy« `ÀÚ÷¢yòtL`íȲg¶íÅÊPüøþ±7Q:OÖbê¼iC1ú
+òÄt
+ÉζLôÂo×<}C%ÒÏ^¿®Fî/ÁÏ*ßÿÅX'÷¶`%í6Ò
+âu_b+i ßåO÷êñ3Z1¬FíÚÂxo¿¼ª¸¯vîúÒ%ÔÞ¿(ÀÏnEÚ¶ý8]I.ãG¿`ÜxÓ8$Ó@U+ܵUØûå.üý#ÚFß:?»w
+÷%^b©½KÕ6ÿGÞ8,x(îËÒ§hIk5* sH;VOÂVdR°v.TLÄøàÖl²¾ÿK×Ä`íÆ¾+°²èGd3¡\^Ö
|&¦KW.A)`õ=JrËái´Ðl \{!fÚ¬áyz
+&Ýÿ~l8×·¦ähpûb°äEáî VzàÑwÎbò£3£Öùعlй½»¢·÷YJª:(Z·~®ÔØ2²lA>RnþüsÏf
+ u8¸~v|³yõ×o%¡(Mo:2<p&V· çr6]yÂSúÄMÏ"³¨
+y¥È¥VëV.iM`Ù¶}ñí%ÔR
+}u6Ö¯ÉÄ9q(ܼü;ÞQ|ëxÌ£çÕÔ¡eªÜ§Ç½0XG»ÚâËxãàÁ9ñðÖk¥Ã©4bUq/¥[\]Ík%ºÍ?º¨G$n&iéü6,]üg|&ký:\á®-Âë¼Jª¿yñxuÅO1ºj'{b
+ÎTwkµºüeÛ{vò©½çÖ*ãòE¼þÄûÔÞgc&
+fåPܼrñ¯6Ï¥I#ùt¾üíH-ª£
QÍÈ¥AÅbâS+»VÃ{zãÁbË6VÈ;"JÒ¬fWH2§¨¸¥/½b
+]§1·þw M'kjoD
ù"çÐXþÒÕ>%/
+VWZß=ߤJÞ¬Nc!bîîõxàÑ÷j轺ϲMABy±¾®óñ4âäÙ<èü£0cJâ[Jaë<ÌM¤ih
+úÒ«X˲YP^YKºxVä!P¡F` ¶è½Æô 1
+X32NÃéì:FÇc
+ÝçU®rY]1À§
+ÇÓ!£c(i'CKc+æÍÔã.<0ù±ÛðÆïßǽÉ
OS[ 4
+ËP8ç2:aúl¬úÍT²rÅÏÿ~óIåpû=ø5Ù³zþ)¦ÐýØ$?UcB0P復þïvkpî/$-5i¤c
++F¦ýuæ2ò/E
+Cô$,ݱú÷Ë*^¸Ú</J§z"õYH';t0ÊA9
+Åú%O¤(ÄÐØ¨ÐЬáÉSlèSC1¼\=aЫºÌd|'ÊØ]Gc»´å
Úâ,]¶DbÎíØ±u¶Þ¿«îiOɺúHÌ{x6¯?Ü$">hΩ34}=SÎ7¼V^ÉÆíóî̶àå·aÝï¦ ôÌ.<·
+¦¶©ûеÁÁ«ðÞdSy
+ó~[§#¥jÞøW$½¾?:ìzí/ø'=çܾIò
+.©¦ñ+6ödQU£üð§§Û÷'¿ZGÛ3Øy"Iãó}Ö$éPfêX¾ã»3ØÇÝ¥Ñi$¿õ¤dÿôãÁä×îÔÀêMî.¤Éê<Hû¡«)Bä;qÞÆ+s3TCkÒ0ÿûoX-ÄÍ#6êü7>;ò2Z¡9Á pÞXŧñ_¹$¬ÂXÌÿ}t5ög7ø#®Z#]qÄ}/VÈ#u
+.0aÌÆÄhû`èÎeö.êXBèg{`Ô¿}22r V0Q»ß>ÞsG
vµ÷LÁ¯ÿߨóÑʼDè3©NdÿçªÆºsH|ú¦0`~2/Ü-M×àÏACZÑ«¤¹½à&Ü}[ðÁøtW
äúÇÉ÷Mð#lûûÃAh º<=s|òûñ·%>¹x}æZxô²¾úÏ×|TР6`U_áNÊ$D¶j $ëìêDü^s´»½[WCo__ÅÙ1ëR÷XÒ7è'uíjz
tA¾=/KV±*yQxo|ÑÄÿJ3@³²<õì-Ä'7U°Ú*O-ºu(î}æé?µø^%Íæ;å~iæãQÐ]TìO<"ã·O&ᩯà¹{@-o$¤ÏKí@fj-©|çßÌùfvJj4cý¸h [>ò xùÝä²ùbúH,>P;"ÈMçŧ[Z©§þ+ad CMÄÈXaíj
+È
ÛåW¸d³)¯ïd[¥ÙH«<49Ë. äÑ8¤~rìµ~)¹Û0Åyèó¨Ñ.Mʰ³Râ*xwwÚoþÕ
+Xó¯·1o¼
+¤¥ëhZjI«)«Ú
+÷g¥\ÊvÑ©-* ó¡ 4áÞé|æDÀ"ÀLOÁk¾">vÍXÌä4;Å|?.Õø:ÃòGxyî¡ « 3å4µwÆI`¤
+åðTïOiA6¹wNÑ¢å{d&EùNN{=ÿÛ)°R
+,¾oüàõÅ(ÝÐ 4¬ô\§wGÂø©ÀâcØâA½ÑÓÈõR"È9(ÄÔ§s"Òíâ8}£$hÈ]U*©|Ít[ê0ISfHê7h8fâ5ìú>
+(Îñ¤5sþ
"íHÐ\¸(=à{ÍNN×§£(§
+@î÷Û°ìM;ø%~Âíkðº<Â_bñ}rü7¤x0XµîAÉÆÚÍÕ¦´ó±Ð®Æ3>)8yY4
+J¶Á²ÀJVÅî×0T5gä 4#þ:lY¼~ç9V3pNt#
+^$¥0ïÇq÷0^û¦rÞÙWFe3ÌLs)ÛôCJiü$qâúûη]° 3©õíòèÞæ½Þ¨Hþ¶jEÙ`ä`28µgbÁÌ8z^@ήÄtâQÆnl;U.Õ äÔ1É)ôHinѼV0Ì}8þµ
ì½Ävµµ-È8¼ÿóÀrÌãßsb×9¹Þq¬?+8¾·?½õoêÃ1õxmÑJ¬OkBÜ>wUV>}HoøÞWéÒ`ª<í¤4ûàfZä
qH¦
VÞu
øf=ë-ÌzÞ¡Ü&ÓWGM½
+'¿#¦|CëgQP*¯^Oý~/ÿ×qí
ÁF˵îÞxß=äY`^ú %´Ë°<ðÁ'R_vcd¯ÁùÔëkváH¡73Ýz}¸æK|iàgêj¡]¬´&
+ïŧµyv
ÃûÂ÷¢ ¯.Âk>ùâoâímDæÐZ]a÷+«ô%Ïâ?ú?~í§l¦-ûè²@¨^PÜ0Ø|´à@û5bû²w±)O J·_Kí½w¤u´z¶/²Ü°ÔD6Ä©lZ]÷34¬lNjìRYæ4
+m¯
+Ïä4?n\×úb|<õJt»4i8aa%fÅðçL}ÒÁÏLÇS/2î^2ÿ·à
+r/JjwóÄC¦h×}·nªÍ£ôЫشZÚ|Þ¢°p°/ÎÄËZ
4ã.V¶½lY6``[ºÞÛjÚ3où Ñ«dÃjqU1
+5Ðßf0£ïÿ)
+㥳µzu³èdKíæIHXóæ?°
RÐÂĤ ký;øtÄBËïë-ÀûFÓêàDÚ¸b%þ)9/ÿj µÀÙ¶nÂã[Ee"qN`¦,lj:\á>ÿ÷&üã÷á1²C¾ü\¯Z½]WN®ýÒpÑo&?${Páºä¦÷7g0:f"îk¨ÒA_ç~_¯{ÒDÐWh~¯¾(kuaÉ/$»ÂyjÍH|²qb/Y$S
+ÞÄÇfaùðªÎÃú¿}½~7ÑDo
òU3v<Jþ®_~&GPÊQûÈÝÚÌcx~ÎYp?V>²´cxù¥7ûÛ%øÅ}oÛI}Êvò\/7Üøó_`Þ·ñÈ>Ó~ÖÍ#
jVIÙbù
]ñ
+µ4d´jÖODPéOF?;F§
+POÿ¸kÉtdô¢ÇiFO{×64Órê$þùÒ Ìþí5ÝøK4¶_N~O^©Bp|¼Ò¾Ä[ºbÕ<Ê]¯µMJ|ùÚ*¬9e/ßBü Ê.Ø:¬"**±÷p1ÂÂÂÀm<..N¢M¾æ¶îççZ,ÇÝPEy |ûVÇ*ÄÐæOæ VnxÃ
+t¦Í<{À_Þx
+YW°rÛóídÒlø)ä2ñ5<öÌn¤e¦cŲWq×#ÇÚC8³ã#<õâþ^Ã/=½y:è¾8v}HWÉ÷,ÇgKSàZxË}yEÁ±=g*9·ÇïhAºTïGØeå3¯b1õ=©6a ùj}`ñÛ8kÊFc¤$£´V9cÉB;a¨§á§Æ`¡?Ñý¶Â*§ëXf2æÞ#NLÔ==¢<]\7Ä¥#f`ÜXYsÑÅ/thön$Ð NIäF~ÞøU¤Íòkn!sòá6¬{~ù¡9²gãÈ·í³S$¯)~ob}z%F»7Û°Û°±d¡EÐ¥?ãøåJܤ)ûÅ]úúïÈÑ8kîL&máj|=wÆõJñÀ¡ßªÌÈi%íÄ4À²Þª¬ú Ôö²JÜð ÙÔ¿ü¹ÚKB>ªÉiâí7`dÔIì8*®mö5aó/çâø¾íX¸¶pÔÔá¢bÛ£¯Âa2´h>¤
+ä¹&E~Qø¨+¨¸ÌéQ_ÍÂ~;ýëçXò¡dä»û7ÍÄ¡1Xv+Ú¹3ç]"«,½od¦3sø iÖ#jÂ<·º_Ý£[°]Rp´wG´q««ØÅ£HÐ"xçÎþÈK0ïé(lF
+
bab¦ÿ¿)Ø¿¿ò.ÖbðFßESÍ£'˹Õ8rµÜRjpú2W!÷L!
´¹4ÃÏsMè2ª"O©ô#Ö¸¬ü%¹tö6¬_Þìg«+bFSø^ú©jjKÞX
Ô¬F$&E"åÆ(|ñï7±»åÀ¶0Z¤ÈÄè9s.¼ï!LO2¶±Û°Ö}ÃÝÉ \Yr5fÈØyè7êÔÖQåÏ@½Ø¦~ñü4
+'hkÔù/ßßCröZË®m8R3/,Ðø*·}¶dáôÆQ|1ìvÚÞÒ~DÊüò4q
ãmÁeMù3aVmÚêåÓnß|¿/û;Ü__w!aÞxj:ðòâT²#_0?úA7Kk5tìSQ[êZ¨nEKB")8ð¸ÔßÇ0:
+0¸&ôþñÐÝqÿ(¯¨FnF6¾²
+¯j°ñwãqÑÌòc%øq,ðF6y7Nv~Êø}%¦KKý5.+Y©ëX%8ÿ~&°öîoDÂçÚ-¸P1QÚ°AÔ&ëûϱtMÖ¾UCóá¾_-Äêÿ
+Þ5ô4cRâh¡iÇx1'É;vÔ
+´
+}/R+Hh+ÂûϽWÉ@!°·³®Æ²uÞr"àD Ü¡³Dl^»ÌÆ!îåK®m¤ñg=êjµhPkûîÒ&*o|s µoCÞe|MV,[©¦d¶i]áXvCÑz@9Ç-Øø}¨üzF3Ça*[(¹;üxdÑGÈÓ yÂXüèG¤ û}YÄ¢¦«´PÒþ
+õVSÙn¹!ü{^ù\¬Ñ Z¿ +§ªÉ i£½¨?ydký÷5Ç1ïÁ$Éë*~&téìGzÒwîýeqjX{Õ7Ä}kþ½K¦©üóÈ%ÐÏfFÒÔMÚeKµB¶p£q¯ï* Á3ð[×bék<é6¬¾1M»¨ó2ÌbñwyÝicÁÕó¿'CBOI at JO-Z0¥ ×6úR² ä-l?ÀÊwïViû3ð·çO¿ù±HijãÞqÃUÒàoSRZ]áü?u9w³6¸¸¼ú«2,ù×j|ü¯ÖÍæIÌ0ìrØÎaâXÒÞç.7&xjÅdËïÁÓ°æÍ7ý<îVqGìèI[ygë^ræñ÷/ÁSµ°âeåÏ]P?}A
+ªé#e7WÞjø¹7Ðå£xñÅÛðØ^ÃÇçÑ7Lë"²èÚ´ï1<6¸m8ÅsLW=ËUû=Í)<ì.wÕg?3^-dÃÕ@?ûZ-Y°Ò
+AYÎéôdmå§°JÑ4ã9i*:ãjÌÉI_ukeRÅërÚÝZ] ôÒ®vke[1Õ\Û6ýäöm¡í³Ëê&ZLÌÕӹ±à2ÇR=ºË±¿bý4¹:#¦+£ÕܲÍkaèM«·ýL°Ñ+ ^]-¨áo|³COºÛ(¼ä<,hØíR ArsUþ>[4ÜÌí2~¦tI» eV:ö\·VJ¥íÝ÷ºÓsÓKi
Ý)ë6dFm¬ù3e;Φ@oi6%vFv"àDÀ1È®mÚçåJª¸k¡í³Ë`cDêiZ
5&¹ÌiMÏ.ØzdPäWìÎðS¼üyäÛ6¡MÑýXPU¨ «A
+ÿÖ}áLêWÚvÚR¬{4¤çÉuÕ`3aë¬)]R$ÅïÒsÖ¡;0mÝù^ç»8p"àDÀ@7 лÝv@_AÞNÆÌ¹cÄ"Å`^a9ó©®AÀ)°v
+®Î\8p"àD G лÝ^wÙeÚá9áºÆY~ÓK@?þøÎª;p"àDÀ'Nz
+«Ko(w·Ñ
p¡¦?~qÛkk
+Ãy9@ÀSÆ]¸Â ¬Õ6´j®N4Læ4i
+"I.ýûÔ!ÀظºÊ]
+¼.¦G>×ÛôÜ<þ{%0á£%º³!¯éúj|î3Ó×µíµ#êï4 °"¹+ÔHÏ@¾
dÎG ãJ«oMpÄÝARçc¸º0½:qµ
+&wâ5;d
+¬ÄPë,7¥j
+£5o©Ú@ûàÀ>çP-«CN-ÿ¯6WüÁlR`¸¥ãZ¢Íà¡}ûö¶À1cc
+µ 5H¯q¼zÂÑÎâ5N§ÅYÿ¯>ýü0s0x+ÏðTúºõ÷Úè<ãÁýÀC¯ÐE Ö>ùÇÆ¿
+* eÍ4P{6,´¾MòícØàcÌB
ZH*deQe^ýÆÆ+»±i0AcàÕpjLgKIýâxõ°d8ÛY¼F>£©ÿ×NÁ#ýÛú2Ïð
+Óp11mÉisâÊíÄ£?ø"h|x à^-_C_GÒpÀ?h|N¼w'è®9ñæ¸FBwä©ò=
+>-8¤_páç¡ùÁpE?«Oäå¾)Çæä´<
+;Óÿ¡iëï0sëë65j|Ôxiu<Ôo´hB>TßÒñFýý9ÄW;âj¢;?í¶1!Öè®®¸ý.àvgèô;îßüæ7µº B`Å\ ~Ù¨õà»é¦ä°Ãßþö·Î¼®í
+ÞO§Ö¿¹îÌxî=þ°V"y©U )Ü_1îYGÀ®õáüÆt¿õ-³>ùâxÖjÏÓRð§ÓªßÚú½]«ÆVÿDzcÞÖÏíZ}®E4úG/þ]oPÑ]k£8ÝUbÈpf×Ê¿£L~;K§ìîÿáä
^p¬jK«=öØ#¬l4xð`Y¹r¥«_?8PN:é$ùÇ?þ!·Þz«?ªÁî
+Çvm°}
X}ñuî,þ¼;{oBÝÎùí£Úµ)ëÇkã`»%âÕèÓ®¹ð¥¶$|þì¾Å
+ë84|Ùµá1¾ÄXǵÊðfWoìkKÁ_¤x2üÚ5Ò|½ õ|üñÇi\mùrrrÀ¿qH
+`_úòË/ËÿøÇ:·)
++
rDkMv¬¤áøÖóÏ?_î½÷^c¢ÆK
+:æd*ïٰaÃÜ/f°EÅNeÕªUÁáÛf_,ôéÓ'¿6m8øñÊÙÒÙÙÙ¿F°8Ò~Xÿç~È!2räHnãP_|ñEwT$Éü8&O;í´rïÚQsçÎu'_æyÏ=÷ÈG&iwE(,,
îÇ':îµ×^Á¸]í¦¬¬Ì-¿÷èÑCyæA³Ø¾}û:£ ÍlmCjk®¹F8l+f±
+N`~fv°8ìÄ´üÖÚk\ü>2W²bkr;âO¿¯,A+.0Fj¿î¾ûî;$;wî¼Cx< áL£ ?LãP;è§¡cã÷®>ÙDóì1Ûá8Ö|°NBâ-[Ä
+VAýuðl3ð}V'Là6EáÄ?RÔÀÊ£Ï×¶ñÊÒþþ÷¿wÁü¦DmרXCöqØ9`cä·Ïþç+}×Í0зoß*ÈÊʪò¨XBD3`Ê_Á8Ô
+~mª¸JdøöLK|F3* ?Æ]}²IßóoFC Ç;ÀäÉ«÷~Vwß+3NݪçêêÛXáQ%°ÒHc¶hãûì0pjįIh¸·ìz%Ù26øDmÂÖ®i14Àe\`¨?>ýÚ.dÙÚ1Àò(0
+ÜE2±JòñÇÇmüëù½»ÙqËM\Á±Ë~ãÆUÜlÖ%ÜvÛmrÌ1Ç8Í%®"Ìø Ewl¸p»ÆïW^qî¨j*|°dÉÌÖªË÷ÛßþÖ½Íp¨©[uy:<*Vg]S#¥¥¾YÚ«84,ĵ1
+S6³Å'U;O´]ø{OúëGÌ'0ÕeCLÝÞвSg©
+?øõFH={¶,Gª¬©]¬³fͪ)Yµqxè×,ßã¦6@ËÍÆ«H
OêKÙwÞy§<ùäµß,ñôÃÔÍX³T3þÒÂ
+
++ĸoX·nsÁÂÎë#FÔÙWYS!-þYÊj®¼±ö%üB8Û¶mþòÕVksßÂñ
ºàæ÷öíÎ6¥¹ôô6ºÆ/C¤*E(£5Ôµ¾àÁüqÏ&p·5CâØÃ6mÚ*^ÝÀié®Ãºâ<¾åa`Í5ÂN~h»yúHñ¦5²6¯Äõ«ôéÙ§§à Ò Öú±{Êà~É5Êò×JnIGéÖÞbICßµ´Ü[0ö
+»6mÒÝd}Ô~à±¹
+¥ÎÐ!BB$íãǯö ·×^{ÍM®ÈsFÓ
+h÷¸ã«v§1³^4#ÀY^î9ûwxâî'£ÿ`ÄàvÁôæÏ/ë7lTðqÿ#n¯îÕLHJÐå±p at YååÊôUð*,,rZõë7Ê_~%Ó§¤$2t£À
+ùL*þ )ýÌÌΪHé#YY}-#×h.ô{#ØóC g²¹téY¹rµÒÏf)*.Õ6{{Rb²öc]î>ÁùJåî~»â7Á hÿ²²vwý¼7µðoZª®óøfUÝö«Î½P&à{"ËNÿPò¥\¾úüßë9=æ¹ú¼2éæGdYz+Yº¡¯Üòàod`ÑwòÀÍ÷ÊWyrÌwÊ/G%Ëî¼K^údµìwÙ-rùiU±Zúó5rwÞjÙçåµ;ïÓômåðKosÊ=-ó+úËÐÔ~ÉÏ¥OÑòØ¿VÈ>ÃÉÏÏ>;XWèññþY °â)
+úrÉZÕ|ÃC9d´³d²dy»½
+Y>ôb3Ò_ÍÑþ*ÒW5ï}ÔlI9fDý¾i6\`HÁLVZ£&UëõeéªÖ¸àƧlWhYLb¦Oî&/SV¯E/Ü ¸Z~="S
+×*¿¼*Wþ~W©~Ú'òÛ«ÇH«m¥2øýåå»Ê__<GZ~!wü»@º¿ò¼yë)Ù'H»ü6I?î0)Õq¢9
+xN¦8Ü ?ûÙ)ªéØÀ_®áSRpÐ7ߢÚb]¾í-G!muÒZ Ñú¼Û·³ÑÍ+eìÝTØéÕ»§äo+æÏÓåÓÉj²§ôYj¶~ïåîÿôÓùóPÞý¦Ö[d?]ÝÄ&?QÇ!&ðAã
umá¾jýÌL øFÍ}ôºà gåçÉu}_méá·}XËJtu3$*on×µ§tX0_:.§{|óç»dsÒÙ6ãßòIÎQÒñdEæ=rôyòæ´ù7WîU´ÅùÐݼÓ~V=\Åjøg¸ô_¹·gøðßÿþw7X1¬2Þ@o½õT~øá®n&ÜõÂ/ûî»Ïn*_Â¥oì°fXù
+ÀatèØYN8þxyïý©º"ðªÃ¡õ¦ªK¤ï¡ÎüXj~ÿýt¸Å <:vråkÖÏ"-/ÒtÞ{=6UMF¨p¼Gÿ=äó«à:I=ö7éD+Í@;Àã¥}ö*{ì¯ü<ÙÑ^Nx¯ °Ð¦dØ¡3QZ¹rM£Nx7`cµ¯ÛèßËø.=3©äºGó¥´Ó(yâê©2éÑç¤Çø+äg}u%LúÈòÿοGNï/é
È×>5Ijb¢Â)¦q(kLPelôÿl3W`'
+`ñþzγÛþ«S,1)øs½ç{ä׿þµS@9"w`ÁÈ*áÕÂö7Þèee°¹¡ÙzG/2à£A]ªZ,:?o~.p¸AãØm8fcÌ` T:¿J°eϫȫtÝ!̳ÑÕ'øúÓ[9Ì×÷Ê
+ÈçÏknJ¶lÞâÞC^èÞV6mö4²ÊİÜ4mÚtgÖ%³é
U?®¶+ÓNMK<Píï¾W»Ì
+þ訽gðfç2K½zöÒ¾å¹Éi
+W(Rä`µÏþáe¥n¸V1Á9s®ðü¤æ #¥Úù¢1D³Ú
+]®Lô¥f¯åóçÅ&X´xÓùóRl\âb è·
ÎÖ²\MH°±ëЩûÆ+V®hîêDô~£
.]:Kºÿñ÷©
+hàDí;¶×}^7{}ªk&úâ¼y?¨Ýí~¦+ìêop~bsø¾jÕj'@&¬9êÉ;0Oú¡óÑS'K
M%?¤Jä-99U
þñNX±|UC]§rl¬³LUÛ§^;_RcG§b
+Çx?W´R°Dºù)ùRme¿øìMùÍØ³äýÕÅn<
+7óÆMâÂÅÛx ʼ¤ |Ü|Õd)Ùoõäù¦n
+ÊÆº!T3®ñl½ÙU0ÖÝ|óÍNËZSº¦k6Æa£RqcÅ.yH8`ö.î¡
ýÐq_eeeUi¿¡í
+ð¼¥Ãiª#rÒX9¤ñ?ÏÅ©ÇÒX¼]A7÷_ ¦úSzXÿ¡AÇY~J£
+¨óرc]µ°«õ¹ëÀÈ$oCýÃÙí0bw?À2nØÐâÁ´8)KBáÎbÆf³ 40~\ ÕÝ8b!ôÎ,¸ª«÷ª¨þG{RSÓT³©¦Q °¬¤$XÛª&ܳjjålÒT;ìõ»æüxJlŹêª)\ïª{ú·¾[îº,Ú<ª!¡5£]tÒ¾¾jÕʨ°[]¹Â¯Ø±ß»O/j îø2;&JýUm²{Æ7ÿWõ9ÉÙT~jÊ
+VãRUXÔ'ûså§ÈÙüVîøu¿VMW|&Ð
+W
+ì¶FK7r¥¸x%@Ú.µөû58ÜXhýÏgÏ¡Wâ
'äù´!rÝEºbñR¹p¬È;ÿ~Gþërèà.2ëWåé{~W~,½Ö¯ä÷%_ÎR£ü¾ÒXM$z¥É
däÞ²6g£ÐO¶.ÿIg#¥äL%E+rd«L/0¡Û%¿pæ_m@;1eãHsöq`Ïü;ï¼³¶¬
+ߤ+Â(ö4#GtNòýðÞ¬
+}ü
+óHÃбßðÃ5ôgÃÕÓâüWîÃ=x{,Ø
I'æ1ßl*¨Äh¿
+THâ,}³ôÏÒ)ÚUl±ÙdÕpvÚ1çãpv1îIY?ÞiézØ
+BQgÃØébMÃöhºÚ®VvÓÓËO6Ø"m°ôþöX~W±ã
+K"_ãE°¨tè~ªQEÐB³V:\µrµäæKb«FZÃÖ³¡é³ü0ÉT³hvåëA>¥:Y¦þë"c8«{Ðø¯¼¾¤WÆdp&)OÙ;ÁfÍÕzÄm
+Í©Þ`ãïrcbÆP¹ïÁ9rÒÈ3uA{²p_üìé¸ GÆ}7plôORͳﰫ{Ð6¾Ú³]¿Ñ·HÓa¿ä Ý _V uHzdèô¡?{¬ó%ìÝ\[ýüϼð_C Î~ÈnO>ù¤;¦º°|æÑÚØ×ïU43zý§!\¢!Y/âp©À2ÒXì(Ø
++f06©L4É ³þ´h*Ù¥MÀÀÂÇØÌöÅðaWÚÈ=Wÿ=í8â-=ÏÁ´n¯dµ®ii¹Ú;`Ä»iW#J+ÛÇoñ\ym¤<a~0AüìFãÄ_tÐßdÚ´iÎérm§¬Ñ6&W¸¤_àêÃ?tyisM
+®ÊÅÅÞqÍ&XV¦&U¦ø-ÛÞK>¾bm"PA¿QdâÑá
+ãJécIInЧÍ<"´1!ðʫʥjVÀµ¸X5¶* 3
+òTÀÔþwå
äß¡|^e£?{{viôpÕäZÃa1`=öjU)+ôN¨¿{c>?ýã°+÷ð\Þg`u°úÐH eàÎÎ|<ò;r=4¼)WO\`ÅÍÂ*)®ð'É`L6=hQm999nQø¦d6#7o3ð2e°3ÙÆÅI§<#Ø"´r*Æ9çã:+<ÿ
+ÞÓ¼Ðòqvµ{IÿÞ¼Bô¿×?-Ú].Þo`åAÌÜóüiìÞâíÙ¿~ÂM(ç¨h:¹ºr|,'Ô\±2°Tíyegg»¸ÐàØñXg%/aÐ9B(^/ÌÏ]h^xã7ÜêqäECÈä>q¼úÔc (A)wý:í·kg}¡cú¯G[Ð@»=à
+}õ4kõ 4b,¬¶ã<VҨˡù*Ër!yç«Æú Õ
+tÆæú VU!¦£IõüSÃ+¯í;âu®n*VºD2êbTqF>@ðè~SpȪX4xa"
+Yà '!ä§¥&«Í³î°vG¡MËéÑii¹
+³ZÆ;º#3
+ݧ²Òb-[
60»Ýã4¬AZ§PRµ·DÛþFÿ'úûB«¸07ARü¥àDÒÂâüh°Y-ÀW®§©_JSðJ&ή$)âLã2ê¿*ã6ð¶ºöö
Ô6Ò>½o¸(ÚJo ôdã]uÕ*Û¸DfÍÉÌ=äý¤µ¶ÕcÚhã5«®È3Í\;ykVªÌ·©.Ò·§gÓkï·+e
+:oÀ
+ÜvU{hª ¡û¼ÎO³*Z®9iZ#XÒº²a
+öìÏ0/wµ4\ÉG:â ·<[¦mdâMp°Jý̦Á ZS\¯a«N+«5UÌ]0>fi``sM^6 ¿¯áÐ6¦2äá½L\ÈÆ¦
öÄOôå
Û7Swú}FF['tÖTóJñhÇOB¬U@¦C+&Ha!}dw@Û:ø~£>nóò¶(î-Ã%4[
+£vè¦X¶ûW
+çØSÊÈè»yÊX]UòpGõèYL'üO÷pä¥óðÁÑÈøE
6Á_
àEÄlÖ¹h²h7mÚ¨·Æ(¡Dae
+°¶»ZXh:d*dR"¾}AúÅò¿-©³ïáÏ(³ÿ:Q2ï²2meܺwïЬæË;×þL~Ëh%?}ñ¬:øùËi&>aßÀ¥â,g4¼¯lÝ\[2J¶¼ÿ¤}ì°J°qÛK]ùrÐã¥ãäÉB+köþùé®AVlQÑöéÓÇ-å3#à¶Çt´Ohè Ì&,-<´¬¸¢l4uö+gÀÝç¬
+±
+VåçÙïé?Â,Îòµrë
!(õÔ?me%À£]ú³%nkweÂæ»£Ó²zè¡ÁÙ!&öÓÔBëÉá~`PÄ´ÓKú01O+~FÑÞBï¹@
+LL^±×tê
+ ´?Zνðtæô¤=äôæHÁi%çÕGäÿ^Ïì1§ÈÕç
+I7?"ËÒ[ÉÒ
+}å#¾n¾W¾ÊËc®¸S~¹W®<tû¿äÓÕùrªú
=®µ®0T,¯¹[æ-é'ÛIþvË}¾~érÎÐByò¡§e~EZ Ã/ù¹ô)úQû×
+¹ðòË´ÇÜ ð\?|ïpÊ`[à¦AVfh9£5Bp!á
+¦åW:ÕIWvv¶.Mà¦-
+qv©>Nµrß«ÎÛ*èÔ æ ×ï("ø @$ÀÒ5Ú@pø
+ûuoºß~Ãt0U¿U$¥DCorwÀûëgÓ´®X±Jq8ع£9
+_]¤i¡ÚZQ 8LTbC»B'U?êdáùCFëÊØ´¨Ç!})]ͯ\¹JÍjKVÖîÊ_w4©ýÊ.ìx36«T .Mh&è¥ãeËVéæ+V_ÚjhÐ!6ô
+ò91éWÍ=KûÍPåkx¯A£\3åTÆ6·ARkÊj+ã¼7'g¬]³Z^]jÍSß{î¹§[á2_ßràÕØTâ«Dò·µ¾)6n'Êþ'#
ó£¹C~xöZyî«aÒnÊó2à®iÒjÕ·W\ $·y[¼MÇ
Öä»W^ã.é+§ÈY¯gɬg~#_ݾ¯<÷õS2ãµ¹}ÑãÒköò³§¾k×Þ/ýnú·ÜØ
\×ãùô¯òæ Ëëj'ï|´FJ»,}ä/ñ§Ï8G²®yB®Ì^.·øü4ódùøT¹iÆÏdë3¿éN7Nµ}NY=dõà¾ûîs|ñeLcûoÐÞd)3S ìgªwT> ó§e`GxeI Ìдf|¤ÅÎ
+´&¹ÌQúÏ: BTBg@§ý&ü¹û
+à_8ð¿×Þ
+-§»Óq¼MXáòEsÚ*VR<p¤ôêÕÓmd{ãÅ*g)#ë§BWG'¤_?-kKeº{¾°è÷bM$ý>_Z,l?ÓÕ¨gç
+h³vc#~J¯ØSâs4))Ñ j»)>|tâð
+¬Ø$qt©ã%ÄXWú1N1X±b¹ÓÜ£}Å-Pr2îñð9Ú&CúZ~þ6µMô{» ~qÒgj¥Ñ
+!íܲë Á¥ò^Ñe_
+Mé3íÏÒ1ö¶iß·AV
+F
ÐY
+ÅÉ?0
%T¼àÂ}TVZ´4tæYµh¶0§ø
ª1cÆ8Í¿qÑzo3¨'máG»<à
Ù½¥±g®Wò;Â'þ¶kÁpçêÿ¹A^ÃìJ~»'÷ö³ºØ;¬ÿ³ÿ|µÛâó
+® Ü¡áÙ©[×n*$8·TÐ0Ëö,tLbÓÖÇ,©açNNøÅ§+'Ú¯fu-e௼${H©rmÅa¢: R@&
+=ö+¿:Îá%Ü*ôv¬üv?Oª"ªì¡Ñ¥:1Ø¥¿NR¥$vÑc»¹þö9R.ÐÄ~)y«[ÏK%MË'yBz9ñâkädÍÌ7Ù¾}79ñkåýn(i¦O_æúóýP6ÒÍà3
+ÔãÞE§À0xôþhyu4\ùéÌÃg×ÌÁäôD}ѦªÐÔÖiõ4&µGMS,~²:{¿²BP® Qu¼\óù¢V
÷~ÇèÅaÕïëçÙlLeEªW¯Þð®ÊJÜè½·úQ G"$jÛÓT0en@«÷Áþ 'G:awÐd
æs¨J,á|°º`.}PGêh*û§G..0ö[^W@Á²¢=»¤mÉS¯
+Oßir¿S²ê*ü¨ò=½ø¶«ÿG>§EsµU+¦/°6óìÉUeêâµ_qEÁ`a<Û:`bÄ~3»Ã§¹½¯ÁV*Aá,_!D>ñÄ157K:~4W¿Ì
+wÞy.íÿû_g>Àkèòkuå4w¸ A|ÿ·0ÿÕÃ
+ºª`®-¯}TgFàó ii¸òsÄ+ؽ¥q¾3øä}&¯\Wv *´aHµ;XHÜ`FB§Eð\°`£]fv¤Ì8«:24ÍÒ#æ/v-LbØ0`"\~f´'pBÐß+Ë(
+¼m5õpåEC´oÙ+;_ûæþº9:Q
+k§
+v%=íçZDòftæHéÞÏ÷2v(ç)¯X©Geb@ióªU+T8èá&âôP at P2çáÕ;LÀÒRy±¯DkC/ø/+à
+mà°W¯>Vt^+Ð i~wi³á|°<¤f``ñcÃ+e°<VÊÓIß
+×px´0v+#i÷ô++ÀpbW\Á!CÓl]}`E+Ú136ãÑéÇ~
+|uì Ï×;ÊPüª©ËÚµëÜæ5{_4^Ù§
+~UÀph×*ú Âb\¾QLìÏ@xV*êá?L6;wîâ6¥y4S×Vº&üApØýVi¹=Ø5´@}¶ÒLÝWÀ29}:¡.JÚY+t^\ù"¹å¤§å¬wQÝZËÒ·nËÜK^ýõPY·àKY¸0j°´.Ø*yoËÒ%5TtIM«Ô×xÉY¶M=/ñü{SÌμq§HVOU7Yû«ì"Û¾"þö
+1ù4IÙ¤íUHß½Õ_mkÝ·>O6¬]!¹ìÕ;C¿K,õ
ä¶é+#÷î©d¬ÿ,ÚÚNö1 at z8^Ò:ëäûûeé3öi'9ÚÆµi}dø^jS°E6«½rî
+ÞÍ|¤UñfY³%Iºvò\{±©²{N:é$ߺqMجg1;3ckÁÌÝlaéÔc^¥(M´
+! {¥7ÎUlªÂÍÌè F´à/¸Ä8^}·Y*iìG¸åµ«+-Æñø!$ÞF~³{Koï.|Äٹá6ÉM`g]éugN{g}ÝhÂuAräGÈØ±È«¯¾&o¾9E7lä9SÃQ¤uÄð"JsOR»ppøí7_ëaïêFþÊàNÔ¥]Ìn¢{Ðó7>GqãÆ:Ûê7ÞøÚsaÖ mT¾Q×Á+@P
+£Û©S§:)Æ<üÚUKÌϬüHÛ³gOçe Z¡ùؽ°K
+iÈùùSFB[ú\¸2gB¶ ͬ}\KGZî ÷¹Bôï,ν[¶*Ïg½\¦VÁáî"ØÐ
+KF»ön'v<f
+õÔ£ÂrëOEξ.K«w´~(÷àO(-\`¥à_~ÙÙñ2´j,}³\?iÒ$çÖª6[SìØÉFa¹AÍVêì³ÜpèÀo¼á>(êyl©ù/¼ '|rTÚ!Ps;ÍM`
h3?3NæÞ Ã'+@¸µ]]ï_PShJ@ß÷¦$çæh_ÝûyÖA{«û[KG¥³+é)Ks88Ï´7Zï}ÂîªXDÀÆîSûFäeáÃT×fð
+-3©oìPfÒÅ-ÊUÀ#¸ciú¦]ï¼C®pö}úôrK=¸b"Î+Þ+íèÄlîn\
+!«'àÊÙÜé¤vºÏ`tÈÁ£¥½n&`ãËñ$¨ú¿78Dh
wÒâþ79_¹ezx*~?»wßMùk{kpVÌN=æ«OUpè4§Äp
'ómr×u\ëÓ§·xÂñÒE'ÐyyÛd]î:oâæ±
+Ü}fÐacØJ
`-'_éÒ²åËÔh~+NyëåVÆè±ÒéÐML{fÏþB&O¬ÀnC4Uà
+úb² T¿
+U¤ê$¨º8±RÕhtë¯N29æXçlöqú:¼qWÖ}Èæß¿Ø[ú$ËOï#>+·*r±ïßV$[%SZ'¤È}õOû[IMv4\XR¤ôêѺÇ'T!æÆå§Û³/ø¹JÖ° }å®)ëd{ÈÐýPY«úf½GºïÞZþ3=ÏåÉ[¿E:ti/Å[b-£½º"AiRÐW}ñaÉXù²ìwÐKòÊ-Z ýtåÔIº%Tå\¦oÆ|OüoW·p]]C ¹â
+ý) ü
+évðA
+0FêMMèãêgNؼÎléì4~°p[´ôÆp¸ºv®ÏÅ[¸¼²-]´Ê
+ep06æ¹:Ú°UqæÇsú²ÎTz.r
+PøÛÕÀÆ_ã%c¨Ü÷à9iärì±íeÊÂ}eò³Êóäȸ³¯ó.Mãïs~ïR+%9#]É×·½±9YÒ<¼zaêL5úk×U>-Ýþü)úÅÝòç¹ÝdƦÑòÂé2ïïgÈïÏùO´¿.<P×>/§]pÎûB¿ï%é\<Iñ¬\±ÿ69õÖK¥õöY±PÆÞò£¼4!Gνø&Ù3o¹íÒZ:Ø®üHì=RXx]?R'¬3ºØJyI|
+¬hQ.]êQ(ëüúbO¨a¶h³ÐB
ü±28eëA&ð<,WÀ¬qqÅ
+øÓô§e¦V´°ì&À©5Ú%tà!(B3!"ì8pãûp`ù-ÎíjåqõqÏ:Ù4ήFÕÒ¹ç
+Ô7r,
+¬,à-h§ÖAA`ãX:÷òÏâôÈP
+~\x°K-Q²ÔÜxt½jõ`¿¶|îªäF@µ¸"ÈmÙ²É`ôîÝǵ÷ÐÚäÕ«Ö8ïÔTogph
+{¶êä>ר-¯wp
+t
+ÀïÏË3~üMTyÎR©?Ý3ܹ\w~æ«Úñ;ee®ÓÈIBLñV0ç+˸~Lâ9Ï-Ü6}´Pb¿/Beݶþæ(Úb8±Êyð¼=vl2ß^3é¼xRú_Õ÷DwÏ"èàAØxqÖSç#â«òÅÐTÌ»Cf&DKã«é0%\xº?·/¹
+Å]¹+Å=÷Ýî\¯¬<y³cæycíÓAÝÙs2GT '<Ãþð;Þv`9*Þ6WUNï-f§t*&¾HfãÔùqXÞfe×U~aÙ÷é#«çb*&NøÇi¥NÜñ¨4P.r¯4åÊïð|¯vJìÇa4ðÊ{õïùÇaÔáÔ~JxuzJx^}ó6%eLõ7ÇecÇ®ÒFE?§ÎÇvÜX¶4cS×G3c¡ÄåÝþEr, Ëñ:H¦Ód§/RÜþèÇßy>É¡½ôÒËØbnr8£'å¥êû|ÃVR<á)íK ÑÝûO55I~ºàu§?¼çÿ®»îDEÅ«´U:¸7SÝY¶½ûË!s½CAÌr»¯ @f9pàuͺu_¼èïÐ}.½ú£i>øLpÏiÊ"<RÜïøÇü^«sû"0¿q
+iü¢
)WC:4¥ Ö¡þüIJÚ@h¥E1·?._v<^qÿýèCØíèLzw.½²Øä7áø1ÝqÄÿxLe;õ_j]5En{ðBðËÈ ÇkÀñ|À1ÌE}Vïó8þ?V¾[HV>õFù<Mø·ã¹¿¥XðúËÆ}
Ã)4BøªßñOqp~95bPЧ§ß«=¼rãçíÐöáL<2£PáÃÑ¿c9À÷¿q$¯Èvr<ù3Á:çÅÄÆ¡C /ÞòWTXqX&by[e»7ZWÓÿ;îÀ={À¼±ÉcÅ6xü¡xS>¢<(?<?óÇçÎáz¨Ã
+'¸ ¦¨ºò=Ôý¼ø^ù)åá°_ð
+¡ÓbùN
ÓÍÏýÅ)Z&¸]
+
+µvÜvøÇ.v¼ÝÏ¢\7Åq6åÊ[³âò{vÌ!å¶§Ë}ã>ix\þÊv¯R>%Ïþ~å:²(ÅiZhnß¾?(E1ÑzÉ'º¢
+"
+·óà!ÿøpËò
+ɨ<0J}ß}ï]aO^P>4
UNd*_ÕâÏÕSû«««
+¨ß+÷|Uß+e`?õ} µ5Eûâ÷ÑGm
+îê¬ûÍ=ËÔò,sìy± ´I
`=ñþ QÖ´´4At«Î[6¼mÏíI)2¬'Oà¬8<+¬¬
+ ===Ð69.oA*í9ïÉ)«²bÑòò?g}³
¡Ï?'IÞ
+º¬¢Ò»D/¹oðâ·½¾cCÃßãNZ²áþÎÝR×MÁífóåµ×*Å w¡æÝª¢à8óÞc¹?«3rÏú0c(xïÝxû+¦âv^x(L(Q¯º7·fVÜyçb±òƯN5û¼`ê1VêЫ|µwÔ{
+Ïø±õ¯o yØû\$ä÷£Æé'/?>üÙÒrüãÒp¯X¤+ýµ§ý0¤:´3@ôØ1ÖÜWy¡t°¦ñ46?Høñ8µA¤Þ®33ï"¹óïÀÁ¿Á}M£¿{)oÑîÂÙwßÄÆçÊáåþ¾ÔTª\°þñ5è~²ÿzïüÿ¿4ÁyÊ÷=ã|ÃOîGaa)Îoÿl5¦_÷6ùÙsxÏ=¼°ÏzNAg\#ÖãÕd.ÌGÞ7aWÉüí·bMþýí\ùKËô
ª_÷4¹H¹T?&R½ýÑGÁãéùcí
+Ü·º¿þÕJý6Vp®'Ì1TjßýEJ¼tÕù7¤"FbjgõVM'I|¨ÄF*ÅÅB6Û ¯?;.óË_,Ú׫¯VúÍÊ&Ã|JñkOêªáns¾<îr?®?^/Æ)S¦bÙ²ïEòm»IF{Ý
+L°òxÌ}rJ»ü`obïø²ÆÊç4®£½øï5»°è7¿Âô>üxÍQd'¾WVà¿~1ÿµ²÷<2¿}ÆÝpë_óñÊ
+ópâG+qóó;°ü6fþ°_±ÿâ~ô;¬x,Ì^|Ïp+FLéo?/>
Íÿºÿ(}®¯ÜóSvüÿÑ12 K®à9é"ÞìU«s#ÀÜ"Þe ËrxRÓëõ0e¢U&
+eðS®áu毧ú9äN²cbTñW_Õ÷, Ïß9<~óßì÷Üæ²è¬RJíüÆ7¾!N¼«ý{æHð·bn*/µcnÏ}÷Ý'µ¿rÏ6àÅ´¨ºÜCî@w¬çòG&\´ÛrDÔv$%±.ÇqbÄærÇÓEú.iâg§LP~ÊêXä
ÅbX
+¢O!/¢¸ý"(fÏÉÉ¡þü6Eßä¬)S&y#&ÐvÊ^øÒ¹ÊÆpǸr[eLù½Uv{3ì'íâd<^à]%e!¿¿?óääÉ_ÚJ~ÿû]ÔOo¢C:j©N;ã§à¦\Õõâ
Rq¶)7ÈÀ+eÄs6ÿX$J̬ùh>`µ<ïqqæßkîÊ! ´ÿätÔ;!º´.óõfì´G=¦ã´Î¾@cLm>¿'YHÏplî¹ó8-0ÈßwîF2õ£3 _Ôqg0§_ÙÚðÿwÿ=sNÌØXõøgð¼w±qtöÔ
+Ⱦwà+Ó¡æ#7t?ýÒn,Æ£ncW`eyÒfEþãËÀ¿8> Å¿ê¨gLÀ°8r| Õ&,²1P¾¼b®*cÎ
+/¬ íJ'>VKÅzy{f¼zå
ëtíj+9»/²Ú¼¨c,/²¸¼#0k`.5ÿÝØØ$|©2k94ÕßÄáy½àÀ²~G^U'nó?iâóñp¸]SHsàõq±â Õ´i_[¼CÁßc°:9ó.ñIv±3À\Ds¥Y×v¬N1ä¶÷Â0aú9©jbó«H-ìcB"æúëhñ0úÜn*þÝ£`«qûÛ Aä³¾eöçñ95<>qe!
+s²y¼î:ROyxÙÎ&Öpþü§p}Ü
+'é={ÖIįDývÝ Bk0`¨,6çÍ'°cë}UUû[=FQãdzá
QÔgÃAì
#Üb9ÕÊbÔ3´»Äc&u7ß¼¼"==}P}ATúïÝ:=¿/Oyw:gYùóþÒO±·ñ^|õô>´.û:¶W¢vø»¶qÏ?¿
+sìÆßx×C_};Þº¿ÇÚqwF<þ{ÏaèsnÄ®g?ÅCûbQþ|Óÿ©ÑB
+û£æúÌñà¹p¼íï)üYu®jNC '°øoõ0qÊ[íD29/
+'K6'Ä7"üáÃ:öëZ¬¨'ù0¼³!ã÷©P»tá0üDp at xra1Ê/ÂøÇ¦ÊE½ïÆc©ÝnÇ$ÊóaäÄÔõ±¤ø~«cå÷LìËêE{ô«Nü®]`ì°A
+ùpIE²ª¯Ë/ÈL`ú#ذrâ®
+']JËæd"Ô´ªô-Çð«ÿ½«¶¹¡ ¿dòó#MظêL|²§fÕZõ?ÛÌ5EÈlÞ
gv;±üÙu®éhÆnBê0?CéÔÁèÚ@$.Ã;én¥÷Ö¢°°ñt~SÒGOïø©·³®¡aÛýdmcÚ{§4W=Ö.ߪPså¬^»«W¯öÿÖb{eMI}ñÊkQÑøI×`x°eùd./Ç©æJ¬^_Ñe[áÔê¢
+tj×y^#oÏxV½Käï¿\
+¯Cú)2%8°
+³'%bcÍ)÷ôÛ(Ü´Þô)ÈÌÌÄôx¯2 åÛÛááíǰ<>Uʪjaµ@æ)ÌHÉÆþÁ(ã²a+Ùô&³Û§ßþ6mªÅÑÂñ¦øãÈ] CÖZ¹Ív!ë³EÄj¦ÑL6ãkaZzrçNÂòò¦Áb;õq'×òXé¿®å1scZTý¹±b#6V4^.ªfÍ(LÖaÕ,Xj¨6?£« íþ-hKÂ÷7aÉ5!sMSÕn= É dºÓ[õ³òàxê=Ý6ÁÖ¦,I/ª@Zàk²<pYÎW_Bö7[²V[%³Q2$;¿ð¹$«¥L*))ÊÌÕÝí¡]õµµÑ.ÙªL±Ä(kT|®FÉ\j¤8äoý}fÉjkäØäuX¥2£Q2¥z§\«^ª®µR©±D2ª%7§ênJlß!Ò³òÈ7n+c¯j©6£îuRqi©TJ¸äÐ3¤¼²ú\Å^*»GÚDXüâ°«Ëô¼6OÍIÍÅ$åää¶%·^ãò^ó"`3ê%è§[2ê!é¶àK=,:j¯ùR#ùºmFº7H6¥£×ßÖÔÖkK(-êÇ6ѱdR}ãÐtwã*ã¢Ïà¸+IÎZn¿J¬®n1ôQûæ°ÅÕÎp¬%ü¥®{JHõà¶Jª7ùRqq±TTT$ÿUR«ª?[§IøÅáU·+TZo})µ TÛ©?µE¥Þ$k 1Ê}ùQ"[©<
´7¯UÒûÛê*¶ì Dà8¬ÔðÎK«}àñMüÎsÿ6;)ɰ$÷/pÓª<7 Yþmím°¬´Û§ääÞ<dMJîÿÑðÖ¯`]MÄ.ìhÂ&a]U3ÚÛÂÕtb;²t/¸uÛ
âºf4üÁ©ÉÙ¨hn÷ä^Ì1)òp¸á-¬X23×× Ýù¶ñnvâ·¯ÖWzJ¹â5v¨(u¬øë&Úu5~²l-[5Ïì9¨ý{[ f-ÇöcËÆØ¼eµùÌ-
+5ؾy³ß?ÈæHp ÝLâÈxGkj4àTÓlß²[Êkd®ç^?ôÕ(IhlòXýý;i˵u5Gpª¥»¶ÈµÊÅLø:
ùº_üźÊ]ØLørMÅ=RæSÇPÎyíªÄ© ìho!
i@ÅvJsóTRäWÑóHpw[ÖÆaþÅtÝ#¼] ÜI8ð´¶ ¥¥ {vl£9ñ»¸9Áw¶®øIL%üáÇ£Èëù{SýÏׯEâìÇP¢¶í;á¯|4ú},JQÜYcB¾òÙ_ eç6äå`x ¾M#%Ï>5kÖ`ݺuòvV«ûóÐQÆph:R-ÔOË+ëä¾ís-\âÇQ5mذa;êáiï@Üô|VdS×bèaÆ«où·7ZhÞ=@?vÏÚ1ÀTlÀS³ASp¹àëqOÕÐ.éÆÊPÚE'h é¢h®ãC,§0rvپ̮¦9¾ WË;°Ñ¢vò'Úkãòõb×¶Ó»~àqÙk§:ÄÆ"<sJdkvuz>]*ç~¬[³_ >m7Þ§6;¶
+F¸öïÀó;^å·±ÒX÷t!Ö¬ÛGU)¦\O<vùE,ÈÍqSptË3xþeÌy6~w¥0:XG±åù¨/Ëümx3bw)uF¼¸n¾È Æê>B³ÇÖÖV´4ÕàUfL`ÌSë¬âÐvp)tÉ´ÍJÀsl§ÎÆá¶¯ØQw
+r7 ÈôÒ|h;ûqØ;ÚP¶µ\õ$x_¹"£;¯`çdÝì¯Ëè¿=ÏÄ\3M:ÂñÔø.¸¡s»5/¶¶³çz79ÀI<=ÉÞO>J³FÅÔ:dþýt°qÒº#øx_»Æ³?6ív·ÅAÎs%ßÌC!&%rÎ8
f0Z5=· y¦FlYÌ*@æèX^xogZè9k×!ú}ûf|êòÀnìÊ Èb`ݨ4󩬦æ1µ4ëV¢t·;AW¾f:êÞ¥zÅ!Æ¿
+lyt
+ðìÈLú¹èÐÄÖHÄsyw1¸K
+°fe6ðØ}Øø&1(Xìxf>µßÍ'1¯Ú
+7¢s
+L8òÌbÑïF-òÞE~®Ñ2'¥§#÷c¤àßÿ"µ¯sܤô¨v¾;èqÚIsçbÛ"YÎÕqx¹Ö¦:@:²3°jÓSe@|â6nÜ~ÖÿÑÓwÜøê¬i è¥ãzÎM£Ñ2èj]X}¼¸WÈ}~ÛÑü2f?u
+mH!NÝçVÀ~øÈú!±pÌß¿c2_ëê`,
+ñ
+Ãxn V`AÊjÔ4µ Tþ5ê1 J¿
÷Òm`
+J«ñâ2ѹÈÜ¥Yü^³öoËjbû1.ãQØ«ÀRøDÚúÚÉÔ-:QrÎÍ%à/ÀV¸
+¨ËèÆé
+Ño(äÙçõJ=È:$NzpT˪k¨IIü+²°" VsT¢¼ÓåK6³×nÕ¹øãéòËêpè
+º hþý Å#ýz©ðê~?]I@]UYùå{V½Dj¯MàfTt( u,²*1mi$VkUobÕ.ò7᫾ÈBmܯBGåg¬Åv
+ZCøãè¤|¿²âC£æ×óúönSrPVº~ïÌ+ú¿ÃáT©ÕëÝúEj^äpØ%Gôð²Éß¶Åãóe¥ÖÏ#ûûd ?««î϶M÷HÓâ½*tÌÍ7ÙT±®¡[ÑÔ©¿u?}_CÀôNUÅüÃêüÔô»V¨ÿ*kôª:nas?S¾æM4¿þ?
+/ÏOê{+«4¥FCj´Û%;©µXj¥
ºÀ) PÔ§ß;ÕêÕTè$¿æ<ÑO
+Öá#ð}nyB¤(dæ?à
+QjbW¶åBxVÄ0
p{Èkåaüü"Ñ2`v"{Íé®$z 6:0¬[0I¥5αë8ÿÌÿôÙ`F?1y= `¹tÚ_
+
+^E©>³³1F[ö*´Zb:ÔÖ|¥Rc2¾_ûv2ÄâêAÒ!ZÿdòNU`áN|öÿeT.>Û^¡¬½¥À @ ½Æí§°lÅâöjÖ¬ç+ÿúñóøòÿÚù_êÔöÕNË[CàEtúm)zÍ
+N"t´±kÚ ]ßA?èrê¹Z+µù¯AÃ@ªPéÀÛ9¬Îaûþ¦K®@SÅz¬¯¸ôøq?ØÞTÕk+:¤-Âûзõb:4¥-4N=ùÚ°{Ã&xoLÇô)ôKBù
+Òâ£NÖqµ(
+ÛîGbâ¶n0o#K:d0j*àÅe`f&Í-ÌèJ(*>xj>èl,4Ø zêh9ÍËÉãâL¬ÞLzz»Ä(zå°bs»|:>û¤*mMLÄs6!yù k)\sD_ C¡2ÿÕÚp'cÇ!¶ù-z÷nÊþ&*¼Bâá7eþúê>¸ßÝs_ÁoCªþAÌæ?ÑlØEÄ÷4¡|׫øf9Ý<Ù1N%QÊ÷à³Ãvóm!s&(Î~2õ2mÞ¬"cØÊõYX at VòfüßÛÇâ}¿Å¹p8`v5ätûÐÖPNÂÖ`ÝÂn¾
+/TÚvo¤Ä"ò¡oàh¬7«sþ;k£Ò-LÕÞ·Ú¤3þöØUÙBÒ¾Új]ª²Ø¤ëtÚºHmI¨cÑKEÅERú¶Î(9Í1ÀÀzjÕò³¡@*.ò÷Û²z¡KΩÊý¸ À¯?8_CL´8¾F,>JºNKÖIoæíª©\ô.¿¨@è4¾D
+íAªJôÕm·JÝ̪h åKyò8kinsäúèE4EÆÚMm·Ô cüãu5Fù>¬ÉàP#ücjÐqë²²èò
+¤|®N2Û#ù}
_X>Þz.NªUéåó
+:éÍ¥*Ò9é¼óJ¶ê*Éæô
+ÕAæR#}FIûÜUrJLR£¢ÇÚaÊFÉXfê);î¯Õµõ¤Ó²Z*¥wæZ»äó:¨ßSzFT¦=0¬È}ÿ¨OYUT'Eîn©û¬èOER¿í
+]ÔnL«
+¬Jå6¢+z<£µk1
ÿÅa©QÑU3H¦úSQÓqï&çïr×r»%ç´çRe}Ü_¡çúÉzÔ<ÕöR»ªçñFÑ¿{`/¡Çùúö\+pB9ÍhJhå&ä;'X¤ø±¾:Ã<qHRcOJ4ñÃ%Ó;Væ^/Ç¢À$BfÃ(\ÔèéY|1QêÊaáø¤KÆQVêPvÎÓ_¹ñ»%#uJ½ãâD]Ä)XlR*ìæA4ÚäE¯h¢'ôÝò¥¢|ú~t_B&ùëóhR'Byñm0æ:Ðî|*]p¡j7Üÿ/8CÂU-䩲 c
ÏÜ_Ô¨¼m/]-,õ«ÿHý( ZU @§T_ Uù©BW5÷G½ÐíW_JmWÑZÍ'|Ï®têɰB úpËã@ )ôFã³Ë9áì¨*dT#à/
+fÜIËp±u¿ÌðE°ÞC)°Õ]ÌÁäÊðÀÈÏn+q¬(ü#_Øä°$
+-<
+TKþ\C5N;ÆÝ»n·¶Z:¹ºGpÄF&ßd¥q1¬@}m,[
+6Èä*ÞLY¸G%µ;¬Õf¤Ôbé7w`Ö÷ ½M$)jjÖï¡t!nJ½´ÈÁIñÔï3ñÜ»Ã1/;jà¦
+²·Ûq&+tÈ̤q03Êàc¥[¯úUÆ{Ôa2cû±Mvÿ|ªØÖ7<ÉU þ¥¶#ÚTíÐ'O¶¾®ÛN0
+¾SæÜHé(!ã¡Ff-Dȿ۵ÏS^+¢×¸
(Ým¤²ñ"pìyP§´ëÙÚaÆÎÜpüoäîÔ¸ÙØòüxëË(Z'Qâ4
+[0-ÎOF ʹëÖ¬Ãæ
+hÎÛbw)íë¨ëæÃ%½®Êp5À¿t5¬´¼ÔdÐ/õ",1 -8
$d¤E= É,XðFXÑãÛª8ÒÂÄT+^ÞKâ Á« {
+®ÍP»üÎ÷</¤/®ìãAPI&ú%ÏeFÓû8Óz®¡gK.¢Å9K]ÒM±nϺþ²Îdaæ ;N¢¥×UDä¾þÓ6¬CÛB
ýkäðôb;Y+÷ËÛua©Q0$£_^L°úi[ZÞTð¶¹@¤úK¼}haáǧp!.o[ñájÿV¿8TT¬/Èå«-ay#C¯ /Õú
+>Ú¥"O¾TÝè|>¯TO3R·¨t²ì É£
+xKêI»²&Ûf.Ýâ!2À'(ÞÁr_â«
+ÏÊþõ¯ºíð@;ÌR£Ã!5Úít¯V²Ð!AYü¢@hõôÏDÃdÑ!v~Ùî²jv»$Úí"åójñ¬héuU9¾ýÛsÖ>(×å$aa>c|iÎåtH³ÛøÕE4èæ©û<ç#¹Þ"1q'üÒj£OD4ãHeþÓbB2S×]->"f³`E¶ôòÐXaäð mqz]ü·²@P-idZ¶`ùÒOr9KÑRá¥S|N¶ûoéÁ-9)\0[Õ/ÃÒPªßEìvÉÏ+ýW"`xlp2{ßOyLtÒD#;ÿp%?)¨KN*¬9¤×í¢4ü{=Ïí$í£>JÇ!9]Jy´úÃÕ'YËBmçTÎDZîYOåEN(aX%¬Â7ý`ö:õ
+øf¹]ØéÜv¸ÛÒ\MSé¸þ´£·`æ^êÿÊÜ-`hùN^H³Aøù¬&X÷3Rh&·Ðùq°ÌaDzåþ^kd9VY5Zpµ+&ú<E´ô]áj ߯Ö+·^*`®
+dÊiâ+çÊÀ-&2AÈ'úDÄA8ëb&NY £{ÃD³ÓdL{/NsY;#;±zíá)ZÙüIi
+
+®ãq¡t@øhDO´E°b¡ÿë]r)ïÃÌUÖØqÕ©Ñ*ÿz>9H¼ØQFÙa¦ºÚTÙ£ÉO°
+¦Hv¥"kéh»]¼«q»Ë2ôýÇè¹iVBkÀ;2N°ÿå7/ß9Ó¥â¾VZúuµ
+ÌßU
fZ]X6}d?+©V
+kÊ×>%Ì´¡bÅþåÓ¯
J_F;Ð\wçF}ÓS#È^Fʵ
+û_ûMÀ7æO¾øtúöÖíAÒê£PüÉ?(U-×Gy'´¶hmi%YôÉÆAÚÉâGöq;ÚÛÑ0-=Å?RBóº²O×Áze±ÔR× ÐBÖàþòÆ;ø;z¿ã¡GÉÂÐÕøEÓn4®1®¢çû°Zu¯14õûàZu5444444½¦Ö*zÅ;àiõâÍEF G¶¯%=ËQ'Ô[DuI¾l+Øs"¯ázIm&j$
+ϨÐ\dÓ{óòÕ¨l*aºÅÐòÔÐÐè+®<ÁÚaÃ̤°iãjäoÚ~¹¤6Øô}ÜÜË»Æ
+ÛîGbâ6çÈE¾®½ûY5<{ÏËMÍÛ·ní\P·òå&©Å×ÐÐèÏ\÷4¹Þ*`Gk^Ùm«8;_¾ ¨Û[sÙÛýõé1ñ_hG]åNìØ³ïAêÉ
+ÐÑÚ7mmýä¼´×)Ó&Àyl?^Úý'©ÿ_H¸ 7%)Öi<ÆðçÇñÏÃÐöÁG¸nÌXJäOÕ«
+:q
+ÃÇ¥bô°p1åÞªmï¤Ó|¸ù¥â»+Á-_¡6¡|ûN¼²ÿ<ñã0é&¡$Yßö9þñ?/ãÍÄ-©²¿\
+Æã%öXðÎ?þ[Rïi®?AåßnÄ×fÑ· ðä×9m[ó¤ÎãϦý6åÜHÆêöþ¦× éÌgHÊkc5dãá
+öÆ
+üô
¿aæÝ_Æ?=´ã}Y-»òìÊÞ¯^¯)&ð5
+eôº©¸H¶{¿ç
+©8G6 3Iõ¤XZ)TTR,+ן²maYõòʤ÷̲Më¢b©À¯?Ô"¸I¨F~À¾®NpYeåѺ¼²c.1³~ë¼UÔÊò¥â<¡~L¬ÒÛJvÙóÊêCjDÜ~¶â"ü2©ì³âj1âo6âð´{h{5/Ú-²CE5§ªOXo¡üó
+xèK®¢bñ0\»hw®!M)Êg`zÕ;R?æÑKéw9ÅRPË'Õ{Æù~ÛäùR=«rf\Õ×
+yyñu;æ±®`êÏBɾS6Bj.h,÷CacN¯V\KLC at Cà"à%+9ù&ÉCz^YeYµ?êRî^ÓÃê³Ä§è7uTJF¡ðÖFYV Ô[/cdE¨²Ê +¸
+êG'+%å²1\Láä4tbqÉ-,°EÙr+;O23a[ÔtÉuñ!|A|å ²¤¨øvÓ¬¥VòK4@}¿DIlª¾ô×é¨@Ô´[åo Æ¥4VùÍØ¸ªHeë:ÂÂKY]"«ÄÂâYàÛ+V°Òlú®~g¡åí£'®]µ;
+×~
+Ïu©Á¢ôc">ÙÂT ßcoU±³À,[gÜLdÊêËaPX0mrzÎÈåñ6ß§±Ñ|©Qè+uIÅôN±´ØÍ/0ùHR-)2¦Z7-,YYíÕR*ªåþëuX¥2£Q2¥z§ÌdóÑ[kk©¤¤D2UÕt{sZN[d,.JeÍGø×WK¥^ö[òy%«YUÂJaNIjtÉï"§ã¬ÕV2äÔ(Jˤª}U,7*ÎÕX+UÕ²A¾u½ÆI½F²×¸dR< ÊÄsïǼìTÚ£e¬|dãÖwm×à.EjÂ-X at l@Y¼mëcnlì=íîEH®}ÒB¿4l¥·üÆçã4~
+»u
+1<ØK-ldÐb%^ýòX~wîECéÙZ×d+çkIHû¨{b<v,(D©[gP'9â¼ð:ÞδÐs>Ö®£´±³oßO]¤~(vùÓ°¸FÝ\Øù"Or`õÔÈéø6$ÈÐÎ+v,T¬]ÿ)oc½3}÷N²O]¯qX=Çääp8
+1ZããTiãè"Ò4»¦Òa
+nú);¯cn_âÍî÷àÔáÝôvÃ;o÷ÿv½'àH$@¢â~ÆZôÕ+¬%9ßzËSÃ(rª²mݲh+;«QöaõyR8DE²À^UHCgàÃ>$çÉI~å»éçr\½WÏ^NIÈ{ÊØùQq L©CT-käÈ"ÛRÇTϬ¨ÞFY®:ÆdS#¥íµ ¹6c@Þ4ºíaÉIøê²É4òͲú0þù&[/uÉ
à½Ýi¸öW
+ÏuéÁ¢õc£ZÈ)ãZ^iäï·!ß']ð°8¡c®|eXÝt@ þqTGò¬ò!Z~§9
+
+ËCÀªË©OæKuØ%»Ý.Õ×VIZ;ëa:'HI3=pÊ*66eJå3*¥ÓåNäh´JfcèÃù»ä±m¢ûMtèÊ-Ð^Ì!"2W['òù"¥¶|(TWP*-saöÚ¡+¥R.§@wH® ôÊ'y½²/ó¹ôqÓôS⫯^>S¢ì|ÛMºYØ,ÿ;-ô!d-J8'ÁéRâɾé/cèp8zRvÆ»#xؼ
+z©giû(Sr)ßNÙ{½©ÖT&U7*¸:¥"jì!:
+Ûΰ'
ï£0=mwêâh¸ªÑ½×ðÅ£7¢µ7Z~>y1}ÇOM^!CqOé£%.Á!ÀrࣧÉhá44B!X©wÑCÄ&sÛÓM_Z8n¬uðÉ"4ñÐt§TLD§FòÒGZ=hF"©5Êü?H+üà V>Äéë")Áªg¢¹ú*]{`e̯¨#-¯H Ï´`N¾¸ZL¯(è¸O²äË\£/ÔëäKÆìϰf áÚ»_VówñÔRÓÐèM:íêEÙò¼Ë9S½Ì0òÚ-HUv]tùex
+÷®@ÌÑ`ÆVVAIÚÙTKÙ(éHa»1rýRï°æ]Ú"¸@ÂiPáëhmƾª7qúÜY\z?ESjÝ'_Ðcûòr;ÉÁ¤añ÷b¼¬Ô¡Or¼h¸öî·Õðì]<µÔ44®,hiqÒyæ)éñÔmFbîP¸þ
+ü?ûúÓ³{%.
\ No newline at end of file
Modified: trunk/docs/reference/src/main/docbook/en-US/master.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/master.xml 2010-01-09 21:30:51 UTC (rev 1573)
+++ trunk/docs/reference/src/main/docbook/en-US/master.xml 2010-01-09 21:31:34 UTC (rev 1574)
@@ -97,6 +97,7 @@
</partintro>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/jcr/configuration.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/jcr/jcr.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/jcr/query_and_search.xml"/>
<!-- xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/jcr/deploying_dna_jcr.xml"/ -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/jcr/rest_service.xml"/>
</part>
More information about the dna-commits
mailing list