catch up with branch development

Signed-off-by: Ralf Mollik <ramollik@compex-commerce.com>
diff --git a/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java
index 75ab089..22f5abe 100644
--- a/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java
+++ b/org.eclipse.osbp.runtime.web.ecview.presentation.vaadin/src/org/eclipse/osbp/runtime/web/ecview/presentation/vaadin/internal/TablePresentation.java
@@ -41,8 +41,7 @@
 import org.eclipse.osbp.ecview.core.common.model.core.YEmbeddableSelectionEndpoint;
 import org.eclipse.osbp.ecview.core.common.model.core.YFlatAlignment;
 import org.eclipse.osbp.ecview.core.common.model.datatypes.YDatadescription;
-import org.eclipse.osbp.ecview.core.common.notification.ILifecycleEvent;
-import org.eclipse.osbp.ecview.core.common.notification.ILifecycleService;
+import org.eclipse.osbp.ecview.core.common.notification.ILifecycleHandler;
 import org.eclipse.osbp.ecview.core.common.presentation.DelegatingConverterFactory;
 import org.eclipse.osbp.ecview.core.databinding.emf.model.ECViewModelBindable;
 import org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage;
@@ -74,6 +73,8 @@
 import org.eclipse.osbp.runtime.web.vaadin.common.data.INestedPropertyAble;
 import org.eclipse.osbp.runtime.web.vaadin.common.resource.IResourceProvider;
 import org.eclipse.osbp.ui.api.customfields.IBlobService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.vaadin.data.Container;
 import com.vaadin.data.Container.Filter;
@@ -109,6 +110,8 @@
 		implements IFilterablePresentation, IRefreshRowsPresentation, ClientConnector.DetachListener,
 		ClientConnector.AttachListener, IEventDispatcher.Receiver {
 
+	private final static Logger log = LoggerFactory.getLogger("eventdispatcher");
+
 	/** The model access. */
 	private final ModelAccess modelAccess;
 
@@ -130,6 +133,8 @@
 
 	private IBlobService blobService;
 
+	private ILifecycleHandler handler;
+
 	/**
 	 * Constructor.
 	 * 
@@ -163,21 +168,30 @@
 					Class<?> bean = modelAccess.yField.getType();
 					if (bean != null) {
 						eventDispatcher = getViewContext().getService(IEventDispatcher.class.getName());
+						log.debug("tablepresentation eventdispatcher:{}", eventDispatcher);
 						blobService = getViewContext().getService(IBlobService.class.getName());
 						String topic = NamingConventionsUtil.toFqnEntityName(bean.getName()) + "."
 								+ DtoUtils.getIdField(bean).getName();
+						log.debug("tablepresentation eventdispatcher topic:{}", topic);
 						EventDispatcherEvent evnt = new EventDispatcherEvent(EventDispatcherCommand.SELECT, topic,
 								toString());
 						Object value = table.getValue();
+						log.debug("tablepresentation eventdispatcher value:{}", value);
 						if (value != null) {
 							if (table.getContainerDataSource() instanceof DeepResolvingBeanItemContainer) {
 								DeepResolvingBeanItemContainer container = (DeepResolvingBeanItemContainer) table
 										.getContainerDataSource();
+								log.debug("tablepresentation eventdispatcher DeepResolvingBeanItemContainer:{}", container);
 								DeepResolvingBeanItem<?> item = container.getItem(value);
 								if (item != null) {
+									log.debug("tablepresentation eventdispatcher DeepResolvingBeanItemContainer id is:{}", DtoUtils.getIdValue(item.getBean()));
 									evnt.addItem(EventDispatcherDataTag.ID, DtoUtils.getIdValue(item.getBean()));
 									eventDispatcher.sendEvent(evnt);
+								} else {
+									log.debug("tablepresentation eventdispatcher DeepResolvingBeanItemContainer item is null");
 								}
+							} else {
+								log.debug("tablepresentation eventdispatcher container is no DeepResolvingBeanItemContainer");
 							}
 						} else {
 							evnt.addItem(EventDispatcherDataTag.ID, null);
@@ -372,8 +386,9 @@
 									@Override
 									public Component generateCell(Table source, Object itemId, Object columnId) {
 										Item item = table.getItem(itemId);
-										BlobComponent blob = new BlobComponent(blobService, (String) item.getItemProperty(columnId).getValue(), Integer.parseInt(displayResolution));
-										return blob;
+										return new BlobComponent(blobService,
+												(String) item.getItemProperty(columnId).getValue(),
+												Integer.parseInt(displayResolution));
 									}
 								});
 							}
@@ -500,15 +515,11 @@
 				asc[i] = sortDirection.get(i);
 			}
 
-			ILifecycleService lfService = getViewContext().getService(ILifecycleService.class.getName());
-			if(!lfService.getState().equals(ILifecycleEvent.TYPE_RENDERING)) {
-				sortable.sort(sortCol.toArray(new String[sortCol.size()]), asc);
-				if (!sortCol.isEmpty()) {
-					table.setSortContainerPropertyId(sortCol.get(0));
-					table.setSortAscending(asc[0]);
-				}
+			sortable.sort(sortCol.toArray(new String[sortCol.size()]), asc);
+			if (!sortCol.isEmpty()) {
+				table.setSortContainerPropertyId(sortCol.get(0));
+				table.setSortAscending(asc[0]);
 			}
-	
 		}
 	}
 
diff --git a/org.eclipse.osbp.runtime.web.target/.project b/org.eclipse.osbp.runtime.web.target/.project
new file mode 100644
index 0000000..3060072
--- /dev/null
+++ b/org.eclipse.osbp.runtime.web.target/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.osbp.runtime.web.target</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.runtime.web.target/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.runtime.web.target/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.runtime.web.target/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.runtime.web.target/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.runtime.web.target/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.runtime.web.target/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.runtime.web.target/LICENSE.txt b/org.eclipse.osbp.runtime.web.target/LICENSE.txt
new file mode 100644
index 0000000..ff42ad4
--- /dev/null
+++ b/org.eclipse.osbp.runtime.web.target/LICENSE.txt
@@ -0,0 +1,161 @@
+Eclipse Public License -v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION
+OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor.
+A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone
+acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate
+modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not
+derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of
+its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute
+and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code
+form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the
+Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the
+combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such
+addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not
+apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no
+assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property
+rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity
+based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and
+licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property
+rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the
+Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to
+grant the copyright license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and
+fitness for a particular purpose;
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any
+other party; and
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it
+in a reasonable manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program.
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows
+subsequent Recipients to identify the originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and
+the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes
+the Program in a commercial product offering should do so in a manner which does not create potential liability for
+other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions
+brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual
+property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may
+ participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is
+then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone.
+Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to
+those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result,
+the Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for
+determining the appropriateness of using and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance
+with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or
+enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit)
+alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such
+Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or
+conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such
+noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution
+of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses
+ granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement
+is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish
+new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the
+right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the
+Agreement will be given a distinguishing version number. The Program (including Contributions) may always be
+distributed subject to the version of the Agreement under which it was received. In addition, after a new version of
+the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the
+new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
+the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States
+of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause
+of action arose. Each party waives its rights to a jury trial in any resulting litigation.
\ No newline at end of file
diff --git a/org.eclipse.osbp.runtime.web.target/org.eclipse.osbp.runtime.web.target.kepler.target b/org.eclipse.osbp.runtime.web.target/org.eclipse.osbp.runtime.web.target.kepler.target
new file mode 100644
index 0000000..1c8de48
--- /dev/null
+++ b/org.eclipse.osbp.runtime.web.target/org.eclipse.osbp.runtime.web.target.kepler.target
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target includeMode="feature" name="org.eclipse.osbp.runtime.web.target.kepler" sequenceNumber="36">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.apache.httpcomponents.httpcore.source" version="4.1.4.v201203221030"/>
+<unit id="org.apache.httpcomponents.httpcore" version="4.1.4.v201203221030"/>
+<unit id="org.apache.httpcomponents.httpcore.nio" version="4.1.0.v201101201700"/>
+<unit id="org.apache.httpcomponents.httpcore.nio.source" version="4.1.0.v201101201700"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.apache.httpcomponents.httpclient" version="4.1.2.v201203221030"/>
+<unit id="org.apache.httpcomponents.httpclient.source" version="4.1.2.v201203221030"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.eclipse.emf.ecp.ecview.feature.core.feature.group" version="0.0.1.201406272004"/>
+<repository location="http://lun.lunifera.org/downloads/p2/ecview/nightly/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.eclipse.equinox.sdk.feature.group" version="3.9.0.v20140221-1852"/>
+<unit id="org.eclipse.platform.sdk" version="4.3.2.M20140221-1700"/>
+<unit id="org.eclipse.emf.sdk.feature.group" version="2.9.2.v20140203-1126"/>
+<repository location="http://download.eclipse.org/releases/kepler"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.junit.source" version="4.10.0.v4_10_0_v20120426-0900"/>
+<unit id="org.junit" version="4.10.0.v4_10_0_v20120426-0900"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.eclipse.osbp.dependencies.feature.security.shiro.feature.group" version="1.2.2"/>
+<unit id="org.eclipse.osbp.runtime.feature.common.feature.group" version="0.0.1.201405120903"/>
+<unit id="org.eclipse.osbp.dependencies.feature.assert-utilities.feature.group" version="1.2.2"/>
+<unit id="org.eclipse.osbp.runtime.feature.common.source.feature.group" version="0.0.1.201405120903"/>
+<unit id="org.eclipse.osbp.dependencies.feature.vaadin.feature.group" version="7.1.9"/>
+<repository location="http://lun.lunifera.org/downloads/p2/lunifera/kepler/latest/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.apache.commons.math" version="2.1.0.v201105210652"/>
+<unit id="org.apache.commons.lang" version="2.6.0.v201205030909"/>
+<unit id="org.apache.commons.collections" version="3.2.0.v201005080500"/>
+<unit id="org.apache.commons.beanutils" version="1.8.0.v201205091237"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20120526062928/repository"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.eclipse.osbp.dsl.feature.entities.headless.feature.group" version="0.0.1.201406261127"/>
+<unit id="org.eclipse.osbp.dsl.feature.dto.headless.source.feature.group" version="0.0.1.201406261127"/>
+<unit id="org.eclipse.osbp.dsl.feature.entities.headless.source.feature.group" version="0.0.1.201406261127"/>
+<unit id="org.eclipse.osbp.dsl.feature.common.headless.feature.group" version="0.0.1.201406261127"/>
+<unit id="org.eclipse.osbp.dsl.feature.common.headless.source.feature.group" version="0.0.1.201406261127"/>
+<unit id="org.eclipse.osbp.dsl.feature.dto.headless.feature.group" version="0.0.1.201406261127"/>
+<repository location="http://lun.lunifera.org/downloads/p2/lunifera/kepler/latest/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="slicer" includeSource="false" type="InstallableUnit">
+<unit id="org.eclipse.xtext.redist.feature.group" version="2.6.1.v201406120726"/>
+<unit id="org.eclipse.xtext.ui.feature.group" version="2.6.1.v201406120726"/>
+<unit id="org.eclipse.xtext.runtime.feature.group" version="2.6.1.v201406120726"/>
+<unit id="org.eclipse.xtext.xbase.feature.group" version="2.6.1.v201406120726"/>
+<unit id="org.eclipse.xtext.examples.feature.group" version="2.6.1.v201406120726"/>
+<unit id="org.eclipse.xtext.sdk.feature.group" version="2.6.1.v201406120726"/>
+<unit id="org.eclipse.xtext.docs.feature.group" version="2.6.1.v201406120726"/>
+<repository location="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases"/>
+</location>
+</locations>
+</target>
diff --git a/org.eclipse.osbp.runtime.web.target/pom.xml b/org.eclipse.osbp.runtime.web.target/pom.xml
new file mode 100644
index 0000000..0acc17f
--- /dev/null
+++ b/org.eclipse.osbp.runtime.web.target/pom.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--#     Christophe Loetz (Loetz GmbH&Co.KG) - initial API and implementation -->
+<!--#======================================================================= -->
+
+<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/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.osbp.runtime.web</groupId>
+		<artifactId>org.eclipse.osbp.runtime.web.aggregator</artifactId>
+		<version>0.9.0-SNAPSHOT</version>
+		<relativePath>..</relativePath>
+	</parent>
+	<artifactId>org.eclipse.osbp.runtime.web.target</artifactId>
+	<packaging>pom</packaging>
+</project>
diff --git a/org.eclipse.osbp.runtime.web.vaadin.common/src/org/eclipse/osbp/runtime/web/vaadin/common/services/filter/LFilterConverter.xtend b/org.eclipse.osbp.runtime.web.vaadin.common/src/org/eclipse/osbp/runtime/web/vaadin/common/services/filter/LFilterConverter.xtend
index 97e2a01..6d039f8 100644
--- a/org.eclipse.osbp.runtime.web.vaadin.common/src/org/eclipse/osbp/runtime/web/vaadin/common/services/filter/LFilterConverter.xtend
+++ b/org.eclipse.osbp.runtime.web.vaadin.common/src/org/eclipse/osbp/runtime/web/vaadin/common/services/filter/LFilterConverter.xtend
@@ -4,7 +4,7 @@
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- *
+ * 
  * Contributors:
  *         Florian Pirchner - Initial implementation
  */
@@ -23,11 +23,13 @@
 import org.eclipse.osbp.jpa.services.filters.LBetween
 import org.eclipse.osbp.jpa.services.filters.LCompare
 import org.eclipse.osbp.jpa.services.filters.LIsNull
+import org.eclipse.osbp.jpa.services.filters.LJoinFilter
 import org.eclipse.osbp.jpa.services.filters.LLike
 import org.eclipse.osbp.jpa.services.filters.LNot
 import org.eclipse.osbp.jpa.services.filters.LOr
 import org.eclipse.osbp.jpa.services.filters.LSimpleStringFilter
 import org.eclipse.osbp.runtime.common.filter.ILFilter
+import org.eclipse.osbp.runtime.web.vaadin.common.data.filter.JoinFilter
 
 /**
  * This converter will convert from Vaadin-Filters to OSBP-Filters.
@@ -103,4 +105,12 @@
 			vFilter.onlyMatchPrefix)
 	}
 
+	def dispatch ILFilter convert(JoinFilter vJoinFilter) {
+		val children = newArrayList()
+		vJoinFilter.filters.forEach [
+			children += it.convert
+		]
+		return new LJoinFilter(vJoinFilter.joinProperty, children)
+	}
+
 }
diff --git a/setup/target-luna.target b/setup/target-luna.target
new file mode 100644
index 0000000..248464e
--- /dev/null
+++ b/setup/target-luna.target
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target includeMode="feature" name="org.eclipse.osbp.xtext.builder.target.luna" sequenceNumber="105">
+<locations>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.commons.lang3" version="3.1.0.v201403281430"/>
+<unit id="org.apache.commons.collections.source" version="3.2.0.v2013030210310"/>
+<unit id="org.apache.commons.beanutils.source" version="1.8.0.v201205091237"/>
+<unit id="org.apache.commons.beanutils" version="1.8.0.v201205091237"/>
+<unit id="org.apache.commons.lang3.source" version="3.1.0.v201403281430"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>
+</location>
+<location path="${eclipse_home}" type="Profile"/>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.osbp.dependencies.feature.atmosphere.feature.group" version="2.1.2.vaadin3"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.vaadin.databinding.feature.group" version="0.0.1.201408110750"/>
+<unit id="org.eclipse.osbp.xtext.builder.feature.service.xbase.source.feature.group" version="0.8.2.201408121142"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.vaadin.common.source.feature.group" version="0.0.1.201408110750"/>
+<unit id="org.eclipse.osbp.xtext.builder.feature.service.jvmtypes.source.feature.group" version="0.8.2.201408121142"/>
+<unit id="org.eclipse.osbp.dependencies.feature.vaadin.feature.group" version="7.2.5"/>
+<unit id="org.eclipse.osbp.xtext.builder.feature.types.feature.group" version="0.8.2.201408121142"/>
+<unit id="org.eclipse.osbp.dependencies.feature.jetty.websockets.feature.group" version="8.1.14"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.vaadin.components.source.feature.group" version="0.0.1.201408110750"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.vaadin.common.feature.group" version="0.0.1.201408110750"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.vaadin.components.feature.group" version="0.0.1.201408110750"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.ecview.presentation.vaadin.feature.group" version="0.0.1.201408110750"/>
+<unit id="org.eclipse.osbp.runtime.feature.common.source.feature.group" version="0.7.1.201407011710"/>
+<unit id="org.eclipse.osbp.xtext.builder.feature.service.jvmtypes.feature.group" version="0.8.2.201408121142"/>
+<unit id="org.eclipse.osbp.xtext.builder.feature.types.source.feature.group" version="0.8.2.201408121142"/>
+<unit id="org.eclipse.osbp.runtime.feature.common.feature.group" version="0.7.1.201407011710"/>
+<unit id="org.eclipse.osbp.xtext.builder.feature.service.xbase.feature.group" version="0.8.2.201408121142"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.ecview.presentation.vaadin.source.feature.group" version="0.0.1.201408110750"/>
+<unit id="org.eclipse.osbp.runtime.web.feature.vaadin.databinding.source.feature.group" version="0.0.1.201408110750"/>
+<repository location="http://lun.lunifera.org/downloads/p2/lunifera/luna/latest/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.apache.commons.collections.source" version="3.2.0.v2013030210310"/>
+<unit id="javax.xml.bind" version="2.2.0.v201105210648"/>
+<unit id="org.apache.commons.collections" version="3.2.0.v2013030210310"/>
+<unit id="javax.xml.stream" version="1.0.1.v201004272200"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="javax.activation.source" version="1.1.0.v201211130549"/>
+<unit id="javax.activation" version="1.1.0.v201211130549"/>
+<repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20140525021250/repository/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.emf.ecp.ecview.feature.core.feature.group" version="0.7.0"/>
+<unit id="org.eclipse.emf.ecp.ecview.feature.core.source.feature.group" version="0.7.0"/>
+<repository location="http://lun.lunifera.org/downloads/p2/ecview/nightly/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.osbp.dependencies.feature.security.shiro.feature.group" version="1.2.3"/>
+<repository location="http://lun.lunifera.org/downloads/p2/lunifera/luna/latest/"/>
+</location>
+</locations>
+</target>