Repository: zest-qi4j Updated Branches: refs/heads/develop 1019aa520 -> 9128eee82
Added some Spring Library documentation. Project: http://git-wip-us.apache.org/repos/asf/zest-qi4j/repo Commit: http://git-wip-us.apache.org/repos/asf/zest-qi4j/commit/9128eee8 Tree: http://git-wip-us.apache.org/repos/asf/zest-qi4j/tree/9128eee8 Diff: http://git-wip-us.apache.org/repos/asf/zest-qi4j/diff/9128eee8 Branch: refs/heads/develop Commit: 9128eee829e8972513c613c30a139a931da7d177 Parents: 1019aa5 Author: Niclas Hedhman <[email protected]> Authored: Mon Jul 6 11:49:10 2015 +0300 Committer: Niclas Hedhman <[email protected]> Committed: Mon Jul 6 11:49:10 2015 +0300 ---------------------------------------------------------------------- .../layered/LayeredApplicationAssembler.java | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- libraries/spring/dev-status.xml | 2 +- libraries/spring/src/docs/spring.txt | 57 ++++++++++++++++++-- .../spring/importer/Qi4jImportServiceTest.java | 3 +- 5 files changed, 60 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9128eee8/core/bootstrap/src/main/java/org/qi4j/bootstrap/layered/LayeredApplicationAssembler.java ---------------------------------------------------------------------- diff --git a/core/bootstrap/src/main/java/org/qi4j/bootstrap/layered/LayeredApplicationAssembler.java b/core/bootstrap/src/main/java/org/qi4j/bootstrap/layered/LayeredApplicationAssembler.java index a8fb1f1..4682464 100644 --- a/core/bootstrap/src/main/java/org/qi4j/bootstrap/layered/LayeredApplicationAssembler.java +++ b/core/bootstrap/src/main/java/org/qi4j/bootstrap/layered/LayeredApplicationAssembler.java @@ -197,10 +197,10 @@ public abstract class LayeredApplicationAssembler * <p> * This method must be implemented, and is typically a list of LayerAssmebler instantitations, followed * by {@link LayerAssembly#uses(LayerAssembly...)} declarations. + * </p> * <pre><code> * * </code></pre> - * </p> */ protected abstract void assembleLayers( ApplicationAssembly assembly ) throws AssemblyException; http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9128eee8/gradle/wrapper/gradle-wrapper.properties ---------------------------------------------------------------------- diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9e62921..498c744 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Jun 12 14:19:20 CEST 2014 +#Mon Jul 06 10:43:59 EEST 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9128eee8/libraries/spring/dev-status.xml ---------------------------------------------------------------------- diff --git a/libraries/spring/dev-status.xml b/libraries/spring/dev-status.xml index 1a18f48..58fda09 100644 --- a/libraries/spring/dev-status.xml +++ b/libraries/spring/dev-status.xml @@ -24,7 +24,7 @@ <codebase>beta</codebase> <!-- none, brief, good, complete --> - <documentation>none</documentation> + <documentation>brief</documentation> <!-- none, some, good, complete --> <unittests>some</unittests> http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9128eee8/libraries/spring/src/docs/spring.txt ---------------------------------------------------------------------- diff --git a/libraries/spring/src/docs/spring.txt b/libraries/spring/src/docs/spring.txt index bd09908..cb28126 100644 --- a/libraries/spring/src/docs/spring.txt +++ b/libraries/spring/src/docs/spring.txt @@ -25,8 +25,59 @@ source=libraries/spring/dev-status.xml -------------- -Spring Integration Library +include::../../build/docs/buildinfo/artifact.txt[] -NOTE: This Library has no documentation yet. Learn how to contribute in <<community-docs>>. +== Using Spring Framework in Apache Zest == +Zest supports that Spring Application Context is imported into the Zest runtime, and the declared Spring +beans will be available as Zest services. The most important things to remember are; + + 1 Only Spring Singletons are currently supported. + 1 One ApplicationContext per Zest Module. + 1 The Zest service will be given the same name as the Spring Bean name. + 1 Zest Configuration is not reacbable from the Spring bean (kind of obvious). + +[snippet,java] +---- +source=libraries/spring/src/test/java/org/qi4j/library/spring/importer/Qi4jImportServiceTest.java +tag=importer +---- + +== Using Apache Zest in Spring Framework == +It is also possible to run a Zest Application as a Spring Bean and export its Services to Spring. + +Steps to export Qi4j service: + + 1 Create spring BeanFactory service of qi4j services to export. + 1 Create a class that extends Qi4jApplicationBootstrap. + 1 Sets the layer and module that register BeanFactory service. + 1 Assemble qi4j application by implementing #assemble method. + 1 Sets the identity of bean factory service. This identity is the spring bean name. + 1 Declare qi4j bootstrap in spring xml application context. + +To bootstrap the Zest runtime in Spring, you should have a bootstrap bean that extends the ++org.qi4j.library.spring.bootstrap.Qi4jApplicationBootstrap+ and implement the ++org.springframework.context.ApplicationContextAware+. + +A new bean will appear in the application context, called +"qi4jApplication"+ which is only +intended for internal use of this library. + +Example application context; + <?xml version="1.0" encoding="UTF-8"?> + + <beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:qi4j="http://www.qi4j.org/schema/qi4j/spring" + xsi:schemaLocation=" + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd + http://www.qi4j.org/schema/qi4j/spring http://www.qi4j.org/schema/qi4j/spring/spring-0.5.xsd"> + + <!-- class that implements Qi4jApplicationBootstrap --> + + <qi4j:bootstrap class="org.qi4j.library.spring.bootstrap.Qi4jTestBootstrap"/> + + <bean id="commentServiceHolder" class="org.qi4j.library.spring.bootstrap.CommentServiceHolder"> + + <constructor-arg ref="commentService"/> <!-- Reference qi4j comment service --> + + </bean> -include::../../build/docs/buildinfo/artifact.txt[] http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/9128eee8/libraries/spring/src/test/java/org/qi4j/library/spring/importer/Qi4jImportServiceTest.java ---------------------------------------------------------------------- diff --git a/libraries/spring/src/test/java/org/qi4j/library/spring/importer/Qi4jImportServiceTest.java b/libraries/spring/src/test/java/org/qi4j/library/spring/importer/Qi4jImportServiceTest.java index 4f48850..fc76bea 100644 --- a/libraries/spring/src/test/java/org/qi4j/library/spring/importer/Qi4jImportServiceTest.java +++ b/libraries/spring/src/test/java/org/qi4j/library/spring/importer/Qi4jImportServiceTest.java @@ -54,8 +54,9 @@ public final class Qi4jImportServiceTest public void assemble( ModuleAssembly module ) throws AssemblyException { module.objects( Qi4jImportServiceTest.class ); - + // START SNIPPET: import new SpringImporterAssembler( appContext ).assemble( module ); + // END SNIPPET: import } };
