--- /dev/null
+Development Environment
+
+ First, you need to create a development environment.
\ No newline at end of file
--- /dev/null
+Upload of attachments to a test result
+
+ This allows to attach ANY Spring resource (for example the one created above but not only, since it can also be classpath: or osgibundle: Resources or ANY file on the file system where the agent is running (e.g. Mx *.mxres files on a server...))
+
+ In order to use it:
+
+ [[1]] First reference an attachment uploader service via OSGi (it is provided by the standard agent):
+
++-------------------------------+
+<reference id="attachmentUploader" interface="org.argeo.slc.core.attachment.AttachmentUploader" />
++-------------------------------+
+
+ [[1]] Then use an UploadAttachment task:
+
++-------------------------------+
+<bean parent="task.uploadAttachments">
+ <property name="attachmentUploader" ref="attachmentUploader" />
+ <property name="attachment">
+ <bean parent="taskArg.attachment">
+ <property name="name" value="myAttachment.txt" />
+ </bean>
+ </property>
+ <property name="resource" ref="basic.writeTo" />
+ <property name="attachTo">
+ <list>
+ <ref bean="basic.testResult" />
+ </list>
+ </property>
+</bean>
++-------------------------------+
+
+ You have to specify an Attachment object with at least a 'name', you can also specify a 'contentType', but the server will recognize common extension of the name.
+ You have to specify a (Spring) Resource, for example the one that you created before (the name of the attachment doesn't have to be the name of the file).
+ Just doing this will already upload a file to the server, but if you want to access it you need to bind it to some object, typically a TreeTestResult. You can provide a list of AttachmentEnabled objects (only TreeTestResult implements it so far).
+
+ You could use directly Spring Resource URL, e.g.:
+
++-------------------------------+
+<property name="resource" value="osgibundle:/conf/main.xml" />
++-------------------------------+
+
+ You can also upload and attach many attachments in one shot. In that case provide a Map with the keys being Attachment objects and the values Resource objects. E.g.:
+
++-------------------------------+
+<bean parent="task.uploadAttachments">
+ <property name="attachmentUploader" ref="attachmentUploader" />
+ <property name="attachments">
+ <map>
+ <entry>
+ <key>
+ <bean parent="taskArg.attachment">
+ <property name="name" value="Reached.csv" />
+ </bean>
+ </key>
+ <bean factory-bean="fileDiff.testData" factory-method="getReached"
+ scope="execution">
+ <aop:scoped-proxy />
+ </bean>
+ </entry>
+ <entry>
+ <key>
+ <bean parent="taskArg.attachment">
+ <property name="name" value="Expected.csv" />
+ </bean>
+ </key>
+ <bean factory-bean="fileDiff.testData" factory-method="getExpected"
+ scope="execution">
+ <aop:scoped-proxy />
+ </bean>
+ </entry>
+ </map>
+ </property>
+ <property name="attachTo">
+ <list>
+ <ref bean="fileDiff.testResult" />
+ </list>
+ </property>
+</bean>
++-------------------------------+
+
+ Retrieving the resources from this bean:
+
++-------------------------------+
+<bean id="fileDiff.testData" parent="testData.reachedExpected"
+ scope="execution">
+ <aop:scoped-proxy />
+ <property name="expected" value="osgibundle:/inputs/csvdiff/@{fileName}.csv" />
+ <property name="reached"
+ value="osgibundle:/inputs/csvdiff/@{fileName}_mod.csv" />
+</bean>
++-------------------------------+
+
+ [[1]] You can access the attachments from the Web UI by selecting a result in the list in the results perspective.
+ You will see that a new button 'Attachment' in the toolbar get activated (if there are any attachments).
--- /dev/null
+Management of writable files within tests
+
+ This provides an abstraction for files generated by the test.
+
+ The files are stored in the standard osgi instance area (argument -data <my data area> to an OSGi launch, default is a ./data directory in the execution directory) under a ${osgi.instance.area}/executionResources directory.
+
+ A subdirectory is created for each execution, thus avoiding that the files override each other.
+
+ The format of this directory is yyyyMMdd_HHmmss_<execution context uuid>
+
+ In order to use it:
+
+ [[1]] First declare a ResourcesManager in your application context. It has to reference the SLC Execution Context (always available):
+
++-------------------------------+
+<bean id="basic.resourcesManager" parent="slcTemplate.fileResources">
+ <property name="executionContext" ref="executionContext" />
+</bean>
++-------------------------------+
+
+ [[1]] Then you can retrieve Spring Resources via a call to this manager. For example (it could also be an inner bean):
+
++-------------------------------+
+<bean id="basic.writeTo" factory-bean="basic.resourcesManager"
+ factory-method="getWritableResource" scope="execution">
+ <constructor-arg value="subdir/writeTo" />
+ <aop:scoped-proxy />
+</bean>
++-------------------------------+
+
+ The "constructor argument" (just a Spring notation in this case) is a relative path that you want to give to this file.
+ Within a given execution, repeated calls on the manager with the same relative path will always point to the same file.
+
+ [[1]] Then simply use this standard Spring Resource where required:
+
++-------------------------------+
+<bean parent="task.echo">
+ <property name="message" value="DATA" />
+ <property name="writeTo" ref="basic.writeTo" />
+</bean>
++-------------------------------+
+
+ Underlying calls to the getFile() method of this resource won't fail (since they are writable).
+
+Factory bean for execution resources
+
+ Here is an enhancement to declare execution resources:
+
++-------------------------------+
+<bean id="executionResources.placeholderPass" parent="slcTemplate.simpleFlow">
+ <constructor-arg ref="executionResources.spec" />
+ <property name="executables">
+ <list>
+ <bean parent="task.echo">
+ <property name="message" value="DATA" />
+ <property name="writeTo">
+ <bean parent="slcTemplate.resourcesFactoryBean" scope="execution">
+ <property name="executionResources" ref="executionResources" />
+ <property name="relativePath" value="subdir/@{var}" />
+ <aop:scoped-proxy />
+ </bean>
+ </property>
+ </bean>
+ </list>
+ </property>
+</bean>
++-------------------------------+
+
+ This allows to pass @{} execution parameters.
+
+ The other form WON'T WORK if you try to passe @{} in the constructor-arg tag (but still works if the relative path does not contain a @{}):
+
++-------------------------------+
+<bean id="executionResources.placeholderFail" parent="slcTemplate.simpleFlow">
+ <constructor-arg ref="executionResources.spec" />
+ <property name="executables">
+ <list>
+ <bean parent="task.echo">
+ <property name="message" value="DATA" />
+ <property name="writeTo">
+ <bean factory-bean="executionResources" factory-method="getWritableResource"
+ scope="execution">
+ <constructor-arg value="subdir/@{var}" />
+ <aop:scoped-proxy />
+ </bean>
+ </property>
+ </bean>
+ </list>
+ </property>
+</bean>
++-------------------------------+
+
--- /dev/null
+New naming for Argeo Maven Plugins
+
+ Update your maven plugin shortcut in ~/.m2/settings.xml
+
++-------------------------------+
+<settings 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/xsd/settings-1.0.0.xsd">
+ <pluginGroups>
+ <pluginGroup>org.argeo.maven.plugins</pluginGroup>
+ </pluginGroups>
+
+</settings>
++-------------------------------+
+
+Execution Modules Setup
+
+ The following modules needs to be renamed in the Required-Bundle header of the MANIFEST.MF :
+*-----------------------------------+-------------------------------+
+|0.11.3 |0.11.4 |
+*-----------------------------------+-------------------------------+
+|org.argeo.slc.support.simple |org.argeo.slc.core |
+*-----------------------------------+-------------------------------+
+|org.argeoslc.support.equinox |org.argeo.slc.support.osgi |
+*-----------------------------------+-------------------------------+
--- /dev/null
+Systems Life Cycle (SLC)
+
+ SLC provides systems management and QA tools.
+
+Links
+
+ Argeo RIA API: {{server/org.argeo.slc.ria/argeo-ria-api/index.html}}
\ No newline at end of file
--- /dev/null
+<faqs id="slcFaq">
+ <part id="general">
+ <title>General</title>
+
+ <faq id="slcName">
+ <question>What is SLC for?</question>
+ <answer>
+ <p>
+ It provides QA tools.
+ </p>
+ </answer>
+ </faq>
+ </part>
+
+ <part id="techBasic">
+ <title>Technical</title>
+ <faq id="startDemo">
+ <question>How do I start the demo?</question>
+ <answer>
+ <p>
+ From the demo directory (
+ <code>cd demo</code>
+ ) of the source distribution (or workingcopy) run:
+ <br />
+ <code>mvn argeo-osgi:equinox -Pserver</code>
+ <br />
+ then, in another console, also in the demo directory:
+ <br />
+ <code>mvn argeo-osgi:equinox -Pagent</code>
+ <br />
+ Then open
+ <a href="http://localhost:7070/org.argeo.slc.ria">http://localhost:7070/org.argeo.slc.ria
+ </a>
+ </p>
+ </answer>
+ </faq>
+ </part>
+</faqs>
\ No newline at end of file
--- /dev/null
+<!--
+
+ Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+
+<project xmlns="http://maven.apache.org/DECORATION/1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">
+ <version />
+ <publishDate format="yyyy-MM-dd HH:mm" />
+ <body>
+ <menu name="Overview">
+ <item name="Home" href="${project.url}/index.html" />
+ <item name="Getting Started" href="${project.url}/gettingStarted.html" />
+ <item name="FAQ" href="${project.url}/faq.html" />
+ <item name="Runtime" href="${project.url}/runtime/index.html">
+ <item name="API (Javadoc)" href="${project.url}/apidocs/index.html" />
+ <item name="Code" href="${project.url}/xref/index.html" />
+ <item name="Unit Tests Results" href="${project.url}/surefire-report.html" />
+ </item>
+ <item name="How-To">
+ <item name="Execution Resources"
+ href="${project.url}/howtos/howto-executionResources.html" />
+ <item name="Attachments" href="${project.url}/howtos/howto-attachments.html" />
+ </item>
+ </menu>
+ <menu ref="parent" />
+ <menu ref="modules" />
+ <menu ref="reports" />
+ </body>
+ <poweredBy>
+ <logo name="Maven" href="http://maven.apache.org/"
+ img="http://maven.apache.org/images/logos/maven-feather.png" />
+ </poweredBy>
+ <skin>
+ <groupId>org.apache.maven.skins</groupId>
+ <artifactId>maven-default-skin</artifactId>
+ <version>1.0</version>
+ </skin>
+</project>
+
+++ /dev/null
-Development Environment
-
- First, you need to create a development environment.
\ No newline at end of file
+++ /dev/null
-Upload of attachments to a test result
-
- This allows to attach ANY Spring resource (for example the one created above but not only, since it can also be classpath: or osgibundle: Resources or ANY file on the file system where the agent is running (e.g. Mx *.mxres files on a server...))
-
- In order to use it:
-
- [[1]] First reference an attachment uploader service via OSGi (it is provided by the standard agent):
-
-+-------------------------------+
-<reference id="attachmentUploader" interface="org.argeo.slc.core.attachment.AttachmentUploader" />
-+-------------------------------+
-
- [[1]] Then use an UploadAttachment task:
-
-+-------------------------------+
-<bean parent="task.uploadAttachments">
- <property name="attachmentUploader" ref="attachmentUploader" />
- <property name="attachment">
- <bean parent="taskArg.attachment">
- <property name="name" value="myAttachment.txt" />
- </bean>
- </property>
- <property name="resource" ref="basic.writeTo" />
- <property name="attachTo">
- <list>
- <ref bean="basic.testResult" />
- </list>
- </property>
-</bean>
-+-------------------------------+
-
- You have to specify an Attachment object with at least a 'name', you can also specify a 'contentType', but the server will recognize common extension of the name.
- You have to specify a (Spring) Resource, for example the one that you created before (the name of the attachment doesn't have to be the name of the file).
- Just doing this will already upload a file to the server, but if you want to access it you need to bind it to some object, typically a TreeTestResult. You can provide a list of AttachmentEnabled objects (only TreeTestResult implements it so far).
-
- You could use directly Spring Resource URL, e.g.:
-
-+-------------------------------+
-<property name="resource" value="osgibundle:/conf/main.xml" />
-+-------------------------------+
-
- You can also upload and attach many attachments in one shot. In that case provide a Map with the keys being Attachment objects and the values Resource objects. E.g.:
-
-+-------------------------------+
-<bean parent="task.uploadAttachments">
- <property name="attachmentUploader" ref="attachmentUploader" />
- <property name="attachments">
- <map>
- <entry>
- <key>
- <bean parent="taskArg.attachment">
- <property name="name" value="Reached.csv" />
- </bean>
- </key>
- <bean factory-bean="fileDiff.testData" factory-method="getReached"
- scope="execution">
- <aop:scoped-proxy />
- </bean>
- </entry>
- <entry>
- <key>
- <bean parent="taskArg.attachment">
- <property name="name" value="Expected.csv" />
- </bean>
- </key>
- <bean factory-bean="fileDiff.testData" factory-method="getExpected"
- scope="execution">
- <aop:scoped-proxy />
- </bean>
- </entry>
- </map>
- </property>
- <property name="attachTo">
- <list>
- <ref bean="fileDiff.testResult" />
- </list>
- </property>
-</bean>
-+-------------------------------+
-
- Retrieving the resources from this bean:
-
-+-------------------------------+
-<bean id="fileDiff.testData" parent="testData.reachedExpected"
- scope="execution">
- <aop:scoped-proxy />
- <property name="expected" value="osgibundle:/inputs/csvdiff/@{fileName}.csv" />
- <property name="reached"
- value="osgibundle:/inputs/csvdiff/@{fileName}_mod.csv" />
-</bean>
-+-------------------------------+
-
- [[1]] You can access the attachments from the Web UI by selecting a result in the list in the results perspective.
- You will see that a new button 'Attachment' in the toolbar get activated (if there are any attachments).
+++ /dev/null
-Management of writable files within tests
-
- This provides an abstraction for files generated by the test.
-
- The files are stored in the standard osgi instance area (argument -data <my data area> to an OSGi launch, default is a ./data directory in the execution directory) under a ${osgi.instance.area}/executionResources directory.
-
- A subdirectory is created for each execution, thus avoiding that the files override each other.
-
- The format of this directory is yyyyMMdd_HHmmss_<execution context uuid>
-
- In order to use it:
-
- [[1]] First declare a ResourcesManager in your application context. It has to reference the SLC Execution Context (always available):
-
-+-------------------------------+
-<bean id="basic.resourcesManager" parent="slcTemplate.fileResources">
- <property name="executionContext" ref="executionContext" />
-</bean>
-+-------------------------------+
-
- [[1]] Then you can retrieve Spring Resources via a call to this manager. For example (it could also be an inner bean):
-
-+-------------------------------+
-<bean id="basic.writeTo" factory-bean="basic.resourcesManager"
- factory-method="getWritableResource" scope="execution">
- <constructor-arg value="subdir/writeTo" />
- <aop:scoped-proxy />
-</bean>
-+-------------------------------+
-
- The "constructor argument" (just a Spring notation in this case) is a relative path that you want to give to this file.
- Within a given execution, repeated calls on the manager with the same relative path will always point to the same file.
-
- [[1]] Then simply use this standard Spring Resource where required:
-
-+-------------------------------+
-<bean parent="task.echo">
- <property name="message" value="DATA" />
- <property name="writeTo" ref="basic.writeTo" />
-</bean>
-+-------------------------------+
-
- Underlying calls to the getFile() method of this resource won't fail (since they are writable).
-
-Factory bean for execution resources
-
- Here is an enhancement to declare execution resources:
-
-+-------------------------------+
-<bean id="executionResources.placeholderPass" parent="slcTemplate.simpleFlow">
- <constructor-arg ref="executionResources.spec" />
- <property name="executables">
- <list>
- <bean parent="task.echo">
- <property name="message" value="DATA" />
- <property name="writeTo">
- <bean parent="slcTemplate.resourcesFactoryBean" scope="execution">
- <property name="executionResources" ref="executionResources" />
- <property name="relativePath" value="subdir/@{var}" />
- <aop:scoped-proxy />
- </bean>
- </property>
- </bean>
- </list>
- </property>
-</bean>
-+-------------------------------+
-
- This allows to pass @{} execution parameters.
-
- The other form WON'T WORK if you try to passe @{} in the constructor-arg tag (but still works if the relative path does not contain a @{}):
-
-+-------------------------------+
-<bean id="executionResources.placeholderFail" parent="slcTemplate.simpleFlow">
- <constructor-arg ref="executionResources.spec" />
- <property name="executables">
- <list>
- <bean parent="task.echo">
- <property name="message" value="DATA" />
- <property name="writeTo">
- <bean factory-bean="executionResources" factory-method="getWritableResource"
- scope="execution">
- <constructor-arg value="subdir/@{var}" />
- <aop:scoped-proxy />
- </bean>
- </property>
- </bean>
- </list>
- </property>
-</bean>
-+-------------------------------+
-
+++ /dev/null
-New naming for Argeo Maven Plugins
-
- Update your maven plugin shortcut in ~/.m2/settings.xml
-
-+-------------------------------+
-<settings 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/xsd/settings-1.0.0.xsd">
- <pluginGroups>
- <pluginGroup>org.argeo.maven.plugins</pluginGroup>
- </pluginGroups>
-
-</settings>
-+-------------------------------+
-
-Execution Modules Setup
-
- The following modules needs to be renamed in the Required-Bundle header of the MANIFEST.MF :
-*-----------------------------------+-------------------------------+
-|0.11.3 |0.11.4 |
-*-----------------------------------+-------------------------------+
-|org.argeo.slc.support.simple |org.argeo.slc.core |
-*-----------------------------------+-------------------------------+
-|org.argeoslc.support.equinox |org.argeo.slc.support.osgi |
-*-----------------------------------+-------------------------------+
+++ /dev/null
-Systems Life Cycle (SLC)
-
- SLC provides systems management and QA tools.
-
-Links
-
- Argeo RIA API: {{server/org.argeo.slc.ria/argeo-ria-api/index.html}}
\ No newline at end of file
+++ /dev/null
-<faqs id="slcFaq">
- <part id="general">
- <title>General</title>
-
- <faq id="slcName">
- <question>What is SLC for?</question>
- <answer>
- <p>
- It provides QA tools.
- </p>
- </answer>
- </faq>
- </part>
-
- <part id="techBasic">
- <title>Technical</title>
- <faq id="startDemo">
- <question>How do I start the demo?</question>
- <answer>
- <p>
- From the demo directory (
- <code>cd demo</code>
- ) of the source distribution (or workingcopy) run:
- <br />
- <code>mvn argeo-osgi:equinox -Pserver</code>
- <br />
- then, in another console, also in the demo directory:
- <br />
- <code>mvn argeo-osgi:equinox -Pagent</code>
- <br />
- Then open
- <a href="http://localhost:7070/org.argeo.slc.ria">http://localhost:7070/org.argeo.slc.ria
- </a>
- </p>
- </answer>
- </faq>
- </part>
-</faqs>
\ No newline at end of file
+++ /dev/null
-<!--
-
- Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-
-<project xmlns="http://maven.apache.org/DECORATION/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/DECORATION/1.0.0 http://maven.apache.org/xsd/decoration-1.0.0.xsd">
- <version />
- <publishDate format="yyyy-MM-dd HH:mm" />
- <body>
- <menu name="Overview">
- <item name="Home" href="${project.url}/index.html" />
- <item name="Getting Started" href="${project.url}/gettingStarted.html" />
- <item name="FAQ" href="${project.url}/faq.html" />
- <item name="Runtime" href="${project.url}/runtime/index.html">
- <item name="API (Javadoc)" href="${project.url}/apidocs/index.html" />
- <item name="Code" href="${project.url}/xref/index.html" />
- <item name="Unit Tests Results" href="${project.url}/surefire-report.html" />
- </item>
- <item name="How-To">
- <item name="Execution Resources"
- href="${project.url}/howtos/howto-executionResources.html" />
- <item name="Attachments" href="${project.url}/howtos/howto-attachments.html" />
- </item>
- </menu>
- <menu ref="parent" />
- <menu ref="modules" />
- <menu ref="reports" />
- </body>
- <poweredBy>
- <logo name="Maven" href="http://maven.apache.org/"
- img="http://maven.apache.org/images/logos/maven-feather.png" />
- </poweredBy>
- <skin>
- <groupId>org.apache.maven.skins</groupId>
- <artifactId>maven-default-skin</artifactId>
- <version>1.0</version>
- </skin>
-</project>
-