diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectNewWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectNewWizardPage.java
index be051d5..861ca9e 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectNewWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectNewWizardPage.java
@@ -115,6 +115,7 @@
         switch (node.getType()) {

           case TYPE_BUNDLE_CLIENT:

             m_createClient = checkState;

+            ((ScoutProjectTemplateWizardPage) getWizard().getPage(ScoutProjectTemplateWizardPage.class.getName())).refreshList();

             break;

           case TYPE_BUNDLE_SHARED:

             m_createShared = checkState;

diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectTemplateWizardPage.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectTemplateWizardPage.java
index 714876b..4b1e008 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectTemplateWizardPage.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/internal/wizard/newproject/ScoutProjectTemplateWizardPage.java
@@ -47,6 +47,7 @@
   private FilteredTable m_table;

   private IScoutProjectTemplateOperation m_selectedTemplate;

   private Label m_descriptionLabel;

+  private P_ContentProvider m_provider;

 

   /**

    * @param pageName

@@ -60,6 +61,7 @@
   protected void createContent(Composite parent) {

     m_table = new FilteredTable(parent, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL);

     m_table.getViewer().addSelectionChangedListener(new ISelectionChangedListener() {

+      @Override

       public void selectionChanged(SelectionChangedEvent event) {

         IScoutProjectTemplateOperation selectedItem = null;

         if (!event.getSelection().isEmpty()) {

@@ -68,29 +70,32 @@
         }

         handleSelection(selectedItem);

       }

-

     });

 

-    ArrayList<IScoutProjectTemplateOperation> elements = new ArrayList<IScoutProjectTemplateOperation>();

-    elements.add(new EmptyTemplateOperation());

-    OutlineTemplateOperation outlineTemplate = new OutlineTemplateOperation();

-    elements.add(outlineTemplate);

-    SingleFormTemplateOperation singleFormTemplate = new SingleFormTemplateOperation();

-    elements.add(singleFormTemplate);

-    P_ContentProvider provider = new P_ContentProvider(elements.toArray(new IScoutProjectTemplateOperation[elements.size()]));

-    m_table.getViewer().setLabelProvider(provider);

-    m_table.getViewer().setContentProvider(provider);

-    m_table.getViewer().setInput(provider);

-    m_table.getViewer().setSelection(new StructuredSelection(singleFormTemplate));

+    m_provider = new P_ContentProvider();

+    m_table.getViewer().setLabelProvider(m_provider);

+    m_table.getViewer().setContentProvider(m_provider);

+    m_table.getViewer().setInput(m_provider);

+

     m_descriptionLabel = new Label(parent, SWT.SHADOW_ETCHED_IN | SWT.WRAP);

-    m_descriptionLabel.setText(outlineTemplate.getDescription());

+

+    refreshDefaultSelection();

 

     // layout

     parent.setLayout(new GridLayout(1, true));

 

     m_table.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL));

     m_descriptionLabel.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL));

+  }

 

+  public void refreshList() {

+    m_table.refresh(true);

+    refreshDefaultSelection();

+  }

+

+  private void refreshDefaultSelection() {

+    m_table.getViewer().setSelection(new StructuredSelection(m_provider.getDefaultOperation()));

+    m_descriptionLabel.setText(m_provider.getDefaultOperation().getDescription());

   }

 

   private void handleSelection(IScoutProjectTemplateOperation selectedItem) {

@@ -126,13 +131,32 @@
   private class P_ContentProvider implements IStructuredContentProvider, ITableLabelProvider {

 

     private IScoutProjectTemplateOperation[] m_templates;

+    private IScoutProjectTemplateOperation m_defaultOperation;

 

-    public P_ContentProvider(IScoutProjectTemplateOperation[] templates) {

-      m_templates = templates;

+    public P_ContentProvider() {

+      refresh();

+    }

+

+    private void refresh() {

+      ArrayList<IScoutProjectTemplateOperation> elements = new ArrayList<IScoutProjectTemplateOperation>();

+      IScoutProjectTemplateOperation emptyTemplate = new EmptyTemplateOperation();

+      elements.add(emptyTemplate);

+      m_defaultOperation = emptyTemplate;

+

+      ScoutProjectNewWizardPage previousPage = (ScoutProjectNewWizardPage) getWizard().getPage(ScoutProjectNewWizardPage.class.getName());

+      if (previousPage.isCreateClient()) {

+        OutlineTemplateOperation outlineTemplate = new OutlineTemplateOperation();

+        elements.add(outlineTemplate);

+        SingleFormTemplateOperation singleFormTemplate = new SingleFormTemplateOperation();

+        elements.add(singleFormTemplate);

+        m_defaultOperation = singleFormTemplate;

+      }

+      m_templates = elements.toArray(new IScoutProjectTemplateOperation[elements.size()]);

     }

 

     @Override

     public Object[] getElements(Object inputElement) {

+      refresh();

       return m_templates;

     }

 

@@ -177,8 +201,10 @@
     @Override

     public void removeListener(ILabelProviderListener listener) {

       // TODO Auto-generated method stub

-

     }

 

+    public IScoutProjectTemplateOperation getDefaultOperation() {

+      return m_defaultOperation;

+    }

   }

 }

diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java
index 04ecc86..f491fd7 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/wizard/services/LookupServiceNewWizard.java
@@ -23,7 +23,7 @@
 import org.eclipse.scout.sdk.RuntimeClasses;

 import org.eclipse.scout.sdk.ScoutIdeProperties;

 import org.eclipse.scout.sdk.ScoutSdk;

-import org.eclipse.scout.sdk.operation.service.ServiceNewOperation;

+import org.eclipse.scout.sdk.operation.service.LookupServiceNewOperation;

 import org.eclipse.scout.sdk.typecache.IScoutWorkingCopyManager;

 import org.eclipse.scout.sdk.ui.ScoutSdkUi;

 import org.eclipse.scout.sdk.ui.fields.bundletree.DndEvent;

@@ -51,7 +51,7 @@
   private ServiceNewWizardPage m_serviceNewWizardPage;

   private BundleTreeWizardPage m_locationWizardPage;

   private ITreeNode m_locationWizardPageRoot;

-  private ServiceNewOperation m_operation = new ServiceNewOperation();

+  private LookupServiceNewOperation m_operation = new LookupServiceNewOperation();

 

   public LookupServiceNewWizard(IScoutBundle serverBundle) {

     setWindowTitle("New Lookup Service");

@@ -113,7 +113,6 @@
     IScoutBundle implementationBundle = m_locationWizardPage.getLocationBundle(TYPE_SERVICE_IMPLEMENTATION, true, true);

     if (implementationBundle != null) {

       m_operation.setImplementationBundle(implementationBundle);

-      m_operation.setServicePackageName(implementationBundle.getPackageName(IScoutBundle.SERVER_PACKAGE_APPENDIX_SERVICES_LOOKUP));

       m_operation.setServiceName(m_locationWizardPage.getTextOfNode(TYPE_SERVICE_IMPLEMENTATION, true, true));

     }

     IScoutBundle[] regProxyLocations = m_locationWizardPage.getLocationBundles(TYPE_SERVICE_REG_CLIENT, true, true);

@@ -127,7 +126,6 @@
     IScoutBundle interfaceBundle = m_locationWizardPage.getLocationBundle(TYPE_SERVICE_INTERFACE, true, true);

     if (interfaceBundle != null) {

       m_operation.setInterfaceBundle(interfaceBundle);

-      m_operation.setServiceInterfacePackageName(interfaceBundle.getPackageName(IScoutBundle.SHARED_PACKAGE_APPENDIX_SERVICES_LOOKUP));

     }

     m_operation.setServiceInterfaceName(m_locationWizardPage.getTextOfNode(TYPE_SERVICE_INTERFACE, true, true));

     m_operation.setServiceInterfaceSuperTypeSignature(Signature.createTypeSignature(RuntimeClasses.ILookupService, true));

diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/formdata/FormDataUpdateOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/formdata/FormDataUpdateOperation.java
index 7723840..fa977c1 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/formdata/FormDataUpdateOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/form/formdata/FormDataUpdateOperation.java
@@ -14,6 +14,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;

 import org.eclipse.jdt.core.Flags;

 import org.eclipse.jdt.core.ICompilationUnit;

+import org.eclipse.jdt.core.IPackageFragment;

 import org.eclipse.jdt.core.IType;

 import org.eclipse.jdt.core.JavaModelException;

 import org.eclipse.jdt.core.Signature;

@@ -22,6 +23,7 @@
 import org.eclipse.scout.sdk.ScoutSdk;

 import org.eclipse.scout.sdk.jobs.OperationJob;

 import org.eclipse.scout.sdk.operation.IOperation;

+import org.eclipse.scout.sdk.operation.ManifestExportPackageOperation;

 import org.eclipse.scout.sdk.operation.util.ScoutTypeNewOperation;

 import org.eclipse.scout.sdk.typecache.IScoutWorkingCopyManager;

 import org.eclipse.scout.sdk.util.ScoutUtility;

@@ -143,6 +145,9 @@
             @Override

             public void run(IProgressMonitor localMonitor, IScoutWorkingCopyManager workingCopyManager) throws CoreException {

               super.run(localMonitor, workingCopyManager);

+              // ensure the package of the form data is exported in the shared plugin

+              ManifestExportPackageOperation manifestOp = new ManifestExportPackageOperation(ManifestExportPackageOperation.TYPE_ADD_WHEN_NOT_EMTPY, new IPackageFragment[]{getCreatedType().getPackageFragment()}, true);

+              manifestOp.run(localMonitor, workingCopyManager);

               workingCopyManager.register(getType().getCompilationUnit(), localMonitor);

               getType().getCompilationUnit().createImport(getCreatedType().getFullyQualifiedName(), null, localMonitor);

             }

diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java
index d79fb2c..3bc631c 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/lookupcall/LookupCallNewOperation.java
@@ -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:

  *     BSI Business Systems Integration AG - initial API and implementation

  ******************************************************************************/

@@ -59,17 +59,14 @@
     if (lookupServiceInterface == null) {

       if (!StringUtility.isNullOrEmpty(getServiceSuperTypeSignature())) {

         LookupServiceNewOperation serviceOp = new LookupServiceNewOperation();

-        serviceOp.setClientRegistrationBundle(getInterfaceRegistrationBundle());

-        serviceOp.setCreateImplementation(true);

-        serviceOp.setCreateInterface(true);

+        serviceOp.addProxyRegistrationBundle(getInterfaceRegistrationBundle());

         serviceOp.setImplementationBundle(getServiceImplementationBundle());

-        serviceOp.setImplementationPackageName(getServiceImplementationBundle().getPackageName(IScoutBundle.SERVER_PACKAGE_APPENDIX_SERVICES_LOOKUP));

-        serviceOp.setInterfaceBundle(getServiceInterfaceBundle());

-        serviceOp.setInterfacePackageName(getServiceInterfaceBundle().getPackageName(IScoutBundle.SHARED_PACKAGE_APPENDIX_SERVICES_LOOKUP));

-        serviceOp.setServiceInterfaceSuperTypeSignature(Signature.createTypeSignature(RuntimeClasses.ILookupService, true));

         serviceOp.setServiceName(namePrefix + ScoutIdeProperties.SUFFIX_LOOKUP_SERVICE);

+        serviceOp.setInterfaceBundle(getServiceInterfaceBundle());

+        serviceOp.setServiceInterfaceName("I" + namePrefix + ScoutIdeProperties.SUFFIX_LOOKUP_SERVICE);

+        serviceOp.setServiceInterfaceSuperTypeSignature(Signature.createTypeSignature(RuntimeClasses.ILookupService, true));

         serviceOp.setServiceSuperTypeSignature(getServiceSuperTypeSignature());

-        serviceOp.setServerRegistrationBundle(getImplementationRegistrationBundle());

+        serviceOp.addServiceRegistrationBundle(getImplementationRegistrationBundle());

         serviceOp.validate();

         serviceOp.run(monitor, workingCopyManager);

         lookupServiceInterface = serviceOp.getCreatedServiceInterface();

diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/project/template/SingleFormTemplateOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/project/template/SingleFormTemplateOperation.java
index dfe07fc..ebc2cb8 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/project/template/SingleFormTemplateOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/project/template/SingleFormTemplateOperation.java
@@ -129,28 +129,30 @@
     final IType serviceInterface = serviceOp.getCreatedServiceInterface();

 

     // process service load method

-    workingCopyManager.reconcile(serviceInterface.getCompilationUnit(), monitor);

-    MethodCreateOperation loadInterfaceOp = new MethodCreateOperation(serviceInterface, "load");

-    loadInterfaceOp.setExceptionSignatures(new String[]{Signature.createTypeSignature(RuntimeClasses.ProcessingException, true)});

-    loadInterfaceOp.setMethodFlags(Flags.AccInterface);

-    loadInterfaceOp.setReturnTypeSignature(Signature.createTypeSignature(formData.getFullyQualifiedName(), true));

-    loadInterfaceOp.setParameterNames(new String[]{"formData"});

-    loadInterfaceOp.setParameterSignatures(new String[]{Signature.createTypeSignature(formData.getFullyQualifiedName(), true)});

-    loadInterfaceOp.setFormatSource(true);

-    loadInterfaceOp.validate();

-    loadInterfaceOp.run(monitor, workingCopyManager);

+    if (TypeUtility.exists(serviceInterface)) { /* service interface can be null on a client only project */

+      workingCopyManager.reconcile(serviceInterface.getCompilationUnit(), monitor);

+      MethodCreateOperation loadInterfaceOp = new MethodCreateOperation(serviceInterface, "load");

+      loadInterfaceOp.setExceptionSignatures(new String[]{Signature.createTypeSignature(RuntimeClasses.ProcessingException, true)});

+      loadInterfaceOp.setMethodFlags(Flags.AccInterface);

+      loadInterfaceOp.setReturnTypeSignature(Signature.createTypeSignature(formData.getFullyQualifiedName(), true));

+      loadInterfaceOp.setParameterNames(new String[]{"formData"});

+      loadInterfaceOp.setParameterSignatures(new String[]{Signature.createTypeSignature(formData.getFullyQualifiedName(), true)});

+      loadInterfaceOp.setFormatSource(true);

+      loadInterfaceOp.validate();

+      loadInterfaceOp.run(monitor, workingCopyManager);

 

-    workingCopyManager.reconcile(serviceOp.getCreatedServiceImplementation().getCompilationUnit(), monitor);

-    MethodCreateOperation loadMethodOp = new MethodCreateOperation(serviceOp.getCreatedServiceImplementation(), "load");

-    loadMethodOp.setMethodFlags(Flags.AccPublic);

-    loadMethodOp.setReturnTypeSignature(Signature.createTypeSignature(formData.getFullyQualifiedName(), true));

-    loadMethodOp.setParameterNames(new String[]{"formData"});

-    loadMethodOp.setParameterSignatures(new String[]{Signature.createTypeSignature(formData.getFullyQualifiedName(), true)});

-    loadMethodOp.setExceptionSignatures(new String[]{Signature.createTypeSignature(RuntimeClasses.ProcessingException, true)});

-    loadMethodOp.setSimpleBody(ScoutUtility.getCommentAutoGeneratedMethodStub() + "\nreturn formData;\n");

-    loadMethodOp.setFormatSource(true);

-    loadMethodOp.validate();

-    loadMethodOp.run(monitor, workingCopyManager);

+      workingCopyManager.reconcile(serviceOp.getCreatedServiceImplementation().getCompilationUnit(), monitor);

+      MethodCreateOperation loadMethodOp = new MethodCreateOperation(serviceOp.getCreatedServiceImplementation(), "load");

+      loadMethodOp.setMethodFlags(Flags.AccPublic);

+      loadMethodOp.setReturnTypeSignature(Signature.createTypeSignature(formData.getFullyQualifiedName(), true));

+      loadMethodOp.setParameterNames(new String[]{"formData"});

+      loadMethodOp.setParameterSignatures(new String[]{Signature.createTypeSignature(formData.getFullyQualifiedName(), true)});

+      loadMethodOp.setExceptionSignatures(new String[]{Signature.createTypeSignature(RuntimeClasses.ProcessingException, true)});

+      loadMethodOp.setSimpleBody(ScoutUtility.getCommentAutoGeneratedMethodStub() + "\nreturn formData;\n");

+      loadMethodOp.setFormatSource(true);

+      loadMethodOp.validate();

+      loadMethodOp.run(monitor, workingCopyManager);

+    }

 

     // form handler

     FormHandlerNewOperation handlerOp = new FormHandlerNewOperation(form);

@@ -162,18 +164,21 @@
     IType handler = handlerOp.getCreatedHandler();

 

     workingCopyManager.reconcile(handler.getCompilationUnit(), monitor);

+

     MethodOverrideOperation execLoadOp = new MethodOverrideOperation(handler, "execLoad", true) {

       @Override

       protected String createMethodBody(IImportValidator validator) throws JavaModelException {

         StringBuilder builder = new StringBuilder();

-        String servicesRef = validator.getSimpleTypeRef(Signature.createTypeSignature(RuntimeClasses.SERVICES, true));

-        String serviceRef = validator.getSimpleTypeRef(Signature.createTypeSignature(serviceInterface.getFullyQualifiedName(), true));

-        String formDataRef = validator.getSimpleTypeRef(Signature.createTypeSignature(formData.getFullyQualifiedName(), true));

-        builder.append(serviceRef + " service = " + servicesRef + ".getService(" + serviceRef + ".class);\n");

-        builder.append(formDataRef + " formData = new " + formDataRef + "();\n");

-        builder.append("exportFormData(formData);\n");

-        builder.append("formData = service.load(formData);\n");

-        builder.append("importFormData(formData);\n");

+        if (TypeUtility.exists(serviceInterface)) { /* service interface can be null on a client only project */

+          String servicesRef = validator.getSimpleTypeRef(Signature.createTypeSignature(RuntimeClasses.SERVICES, true));

+          String serviceRef = validator.getSimpleTypeRef(Signature.createTypeSignature(serviceInterface.getFullyQualifiedName(), true));

+          String formDataRef = validator.getSimpleTypeRef(Signature.createTypeSignature(formData.getFullyQualifiedName(), true));

+          builder.append(serviceRef + " service = " + servicesRef + ".getService(" + serviceRef + ".class);\n");

+          builder.append(formDataRef + " formData = new " + formDataRef + "();\n");

+          builder.append("exportFormData(formData);\n");

+          builder.append("formData = service.load(formData);\n");

+          builder.append("importFormData(formData);\n");

+        }

         return builder.toString();

       }

     };

@@ -194,10 +199,10 @@
           sourceBuilder.append("// dektop form\n");

           String treeFormRef = validator.getSimpleTypeRef(Signature.createTypeSignature(form.getFullyQualifiedName(), true));

           sourceBuilder.append(treeFormRef + " desktopForm = new " + treeFormRef + "();\n");

-          ScoutIconDesc icon = getScoutProject().getIconProvider().getIcon("eclipse_scout");

-          if (icon != null) {

-            String iconsRef = validator.getSimpleTypeRef(Signature.createTypeSignature(icon.getConstantField().getDeclaringType().getFullyQualifiedName(), true));

-            sourceBuilder.append("desktopForm.setIconId(" + iconsRef + "." + icon.getConstantField().getElementName() + ");\n");

+          ScoutIconDesc icn = getScoutProject().getIconProvider().getIcon("eclipse_scout");

+          if (icn != null) {

+            String iconsRef = validator.getSimpleTypeRef(Signature.createTypeSignature(icn.getConstantField().getDeclaringType().getFullyQualifiedName(), true));

+            sourceBuilder.append("desktopForm.setIconId(" + iconsRef + "." + icn.getConstantField().getElementName() + ");\n");

           }

           sourceBuilder.append("desktopForm.startView();");

           return sourceBuilder.toString();

@@ -221,6 +226,7 @@
    * @param scoutProject

    *          the scoutProject to set

    */

+  @Override

   public void setScoutProject(IScoutProject scoutProject) {

     m_scoutProject = scoutProject;

   }

diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/LookupServiceNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/LookupServiceNewOperation.java
index 7515266..62afa66 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/LookupServiceNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/LookupServiceNewOperation.java
@@ -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:

  *     BSI Business Systems Integration AG - initial API and implementation

  ******************************************************************************/

@@ -15,18 +15,16 @@
 import org.eclipse.jdt.core.IType;

 import org.eclipse.jdt.core.ITypeHierarchy;

 import org.eclipse.jdt.core.Signature;

-import org.eclipse.scout.sdk.NamingUtility;

 import org.eclipse.scout.sdk.RuntimeClasses;

 import org.eclipse.scout.sdk.ScoutIdeProperties;

 import org.eclipse.scout.sdk.ScoutSdk;

 import org.eclipse.scout.sdk.jdt.signature.CompilationUnitImportValidator;

 import org.eclipse.scout.sdk.jdt.signature.IImportValidator;

-import org.eclipse.scout.sdk.operation.util.ScoutTypeNewOperation;

 import org.eclipse.scout.sdk.typecache.IScoutWorkingCopyManager;

 import org.eclipse.scout.sdk.util.ScoutUtility;

 import org.eclipse.scout.sdk.workspace.IScoutBundle;

 

-public class LookupServiceNewOperation extends RemoteServiceNewOperation {

+public class LookupServiceNewOperation extends ServiceNewOperation {

 

   final IType iService = ScoutSdk.getType(RuntimeClasses.IService);

   final IType abstractSqlLookupService = ScoutSdk.getType(RuntimeClasses.AbstractSqlLookupService);

@@ -39,7 +37,6 @@
   @Override

   public void run(IProgressMonitor monitor, IScoutWorkingCopyManager workingCopyManager) throws CoreException {

     super.run(monitor, workingCopyManager);

-    IType serviceInterface = getCreatedServiceInterface();

     IType serviceImplementation = getCreatedServiceImplementation();

     ITypeHierarchy superTypeHierarchy = serviceImplementation.newSupertypeHierarchy(monitor);

 

@@ -92,30 +89,28 @@
         serviceImplementation.getCompilationUnit().createImport(imp, null, monitor);

       }

     }

+  }

 

-    if (getInterfaceBundle().getType() == IScoutBundle.BUNDLE_SHARED) {

-      // create LookupCall

-      ScoutTypeNewOperation lookupCallOp = new ScoutTypeNewOperation(NamingUtility.removeSuffixes(getServiceName(), "Lookup", "Service") + "LookupCall", getInterfaceBundle().getPackageName(IScoutBundle.SHARED_PACKAGE_APPENDIX_SERVICES_LOOKUP), getInterfaceBundle());

-      lookupCallOp.setSuperTypeSignature(Signature.createTypeSignature(RuntimeClasses.LookupCall, true));

-      lookupCallOp.run(monitor, workingCopyManager);

-      IType lookupCallType = lookupCallOp.getCreatedType();

-      workingCopyManager.register(lookupCallType.getCompilationUnit(), monitor);

-      IImportValidator lookupCallImportValidator = new CompilationUnitImportValidator(lookupCallType.getCompilationUnit());

-

-      lookupCallType.createField("private static final long serialVersionUID=1L;", null, true, monitor);

-      StringBuilder methodBody = new StringBuilder();

-      methodBody.append("@Override\npublic Class<? extends " + lookupCallImportValidator.getSimpleTypeRef(Signature.createTypeSignature(RuntimeClasses.ILookupService, true)) + "> getConfiguredService(){\n");

-      methodBody.append("return " + lookupCallImportValidator.getSimpleTypeRef(Signature.createTypeSignature(serviceInterface.getFullyQualifiedName(), true)) + ".class;\n");

-      methodBody.append("}");

-

-      lookupCallType.createMethod(methodBody.toString(), null, true, monitor);

-      for (String imp : lookupCallImportValidator.getImportsToCreate()) {

-        lookupCallType.getCompilationUnit().createImport(imp, null, monitor);

-      }

+  @Override

+  public void setImplementationBundle(IScoutBundle implementationBundle) {

+    super.setImplementationBundle(implementationBundle);

+    if (implementationBundle != null) {

+      setServicePackageName(implementationBundle.getPackageName(IScoutBundle.SERVER_PACKAGE_APPENDIX_SERVICES_LOOKUP));

     }

+    else {

+      setServicePackageName(null);

+    }

+  }

 

-    //

-    // registerServiceClass(lookupCallType.getBsiCaseProject().getProject(), "org.eclipse.scout.rt.client.serviceProxies", "serviceProxy", lookupCallType.getFullyQualifiedName(),null,monitor);

+  @Override

+  public void setInterfaceBundle(IScoutBundle interfaceBundle) {

+    super.setInterfaceBundle(interfaceBundle);

+    if (interfaceBundle != null) {

+      setServiceInterfacePackageName(interfaceBundle.getPackageName(IScoutBundle.SHARED_PACKAGE_APPENDIX_SERVICES_LOOKUP));

+    }

+    else {

+      setServiceInterfacePackageName(null);

+    }

   }

 

 }

diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/RemoteServiceNewOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/RemoteServiceNewOperation.java
index c3cc253..0bbdd40 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/RemoteServiceNewOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/service/RemoteServiceNewOperation.java
@@ -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:

  *     BSI Business Systems Integration AG - initial API and implementation

  ******************************************************************************/

@@ -33,7 +33,10 @@
  * implementation in the serviceImplementationBundle.

  * The service implementation is registered in the serviceRegistrationBundle and its interface in the

  * serviceProxyRegistrationBundle.

+ * 

+ * @deprecated use {@link ServiceNewOperation} instead.

  */

+@Deprecated

 public class RemoteServiceNewOperation implements IOperation {

 

   final IType iServerSession = ScoutSdk.getType(RuntimeClasses.IServerSession);