| /** |
| * |
| * 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 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Christophe Loetz (Loetz GmbH&Co.KG) - initial implementation |
| */ |
| package org.eclipse.osbp.wizard.ui.model; |
| |
| import java.lang.reflect.InvocationTargetException; |
| import java.util.Arrays; |
| import java.util.LinkedHashSet; |
| import java.util.List; |
| import java.util.Set; |
| |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IBundleGroup; |
| import org.eclipse.core.runtime.IBundleGroupProvider; |
| import org.eclipse.core.runtime.IPath; |
| import org.eclipse.core.runtime.IProgressMonitor; |
| import org.eclipse.core.runtime.Platform; |
| import org.eclipse.m2e.core.internal.IMavenConstants; |
| import org.eclipse.osbp.preferences.ProductConfiguration; |
| import org.eclipse.osbp.wizard.ui.basic.BasicProjectCreator; |
| import org.eclipse.osbp.wizard.ui.basic.BasicProjectInfo; |
| import org.eclipse.xtext.ui.util.PluginProjectFactory; |
| import org.eclipse.xtext.ui.util.ProjectFactory; |
| import org.eclipse.xtext.ui.wizard.IProjectInfo; |
| |
| import com.google.common.collect.ImmutableList; |
| import com.google.common.collect.Lists; |
| |
| /** |
| * Creator for a new Model Project. |
| */ |
| public class ModelProjectCreator extends BasicProjectCreator { |
| |
| /** |
| * Execute one model project for each existing project post fixes. |
| * |
| * @param projectInfo |
| * the project info |
| * @param monitor |
| * the monitor |
| * @throws InvocationTargetException |
| * the invocation target exception |
| * @throws CoreException |
| * the core exception |
| * @throws InterruptedException |
| * the interrupted exception |
| */ |
| public static void execute(BasicProjectInfo projectInfo, IProgressMonitor monitor) throws InvocationTargetException, CoreException, InterruptedException { |
| // for each project postfix |
| Set<String> postfixes = projectInfo.getAllProjectPostFixes(); |
| for (String postfix : postfixes) { |
| // generate a new model project for that postfix |
| projectInfo.useForModelFactory(postfix); |
| ModelProjectCreator instance = new ModelProjectCreator(projectInfo); |
| instance.execute(monitor); |
| } |
| // return to the product project factory |
| projectInfo.useForProductFactory(); |
| } |
| |
| /** |
| * Instantiates a new model project creator. |
| * |
| * @param projectInfo |
| * the project info |
| */ |
| private ModelProjectCreator(BasicProjectInfo projectInfo) { |
| super(); |
| super.setProjectInfo(projectInfo); |
| } |
| |
| /** |
| * Do not use this method! |
| */ |
| @Deprecated |
| @Override |
| public void setProjectInfo(IProjectInfo projectInfo) { |
| System.err.println(); |
| } |
| |
| /** The Constant SRC_ROOT. */ |
| protected static final String SRC_ROOT = "src"; |
| |
| /** The Constant SRC_GEN_ROOT. */ |
| protected static final String SRC_GEN_ROOT = "src-gen"; |
| |
| // /** The Constant MODELS_ROOT. */ |
| // protected static final String MODELS_ROOT = "models"; |
| |
| /** The Constant I18N_ROOT. */ |
| protected static final String I18N_ROOT = "i18n"; |
| |
| /** The src folder list. */ |
| // protected final List<String> SRC_FOLDER_LIST = ImmutableList.of(SRC_ROOT, SRC_GEN_ROOT, MODELS_ROOT, I18N_ROOT); |
| protected final List<String> SRC_FOLDER_LIST = ImmutableList.of(SRC_ROOT, SRC_GEN_ROOT); |
| |
| @Override |
| protected BasicProjectInfo getProjectInfo() { |
| return (BasicProjectInfo) super.getProjectInfo(); |
| } |
| |
| @Override |
| protected String getModelFolderName() { |
| return SRC_ROOT; |
| } |
| |
| @Override |
| protected List<String> getAllFolders() { |
| return SRC_FOLDER_LIST; |
| } |
| |
| @Override |
| protected List<String> getRequiredBundles() { |
| // No need to use the super required bundles! |
| List<String> result = Lists.newArrayList(); // super.getRequiredBundles()); |
| return addFromMultiLine(result, ManifestAttribute.REQUIRED_BUNDLE, /* getFeatureBasedRequiredPlugins() + */"net.osbee.bpm;bundle-version=\"1.0.0\";resolution:=optional," |
| + "net.osbee.organization.permissions;bundle-version=\"1.0.0\";resolution:=optional," + "net.osbee.org.drools;bundle-version=\"5.5.1\";resolution:=optional," + "OpenCSV;bundle-version=\"2.3.0\";resolution:=optional," |
| + "animator.osgi;bundle-version=\"0.2.0\"," + "com.ibm.icu;bundle-version=\"52.1.0\"," + "com.vaadin.client;bundle-version=\"7.5.7\"," |
| + "com.vaadin.server;bundle-version=\"7.5.7\"," + "com.vaadin.shared;bundle-version=\"7.5.7\"," + "dCharts.osgi;bundle-version=\"1.7.0\"," |
| + "dom.osgi;bundle-version=\"0.1.0\"," + "easyuploads.osgi;bundle-version=\"7.4.2\"," + "filteringtable.osgi;bundle-version=\"0.9.13\"," |
| + "javax.inject;bundle-version=\"1.0.0\"," + "javax.persistence;bundle-version=\"2.1.0\"," + "javax.validation.api;bundle-version=\"1.1.0\"," |
| + "joda-time;bundle-version=\"2.3.0\"," + "mondrian.osgi;bundle-version=\"3.5.0\"," + "olap4j.osgi;bundle-version=\"[1.1.0#1.3.1)\"," |
| + "org.apache.commons.beanutils;bundle-version=\"1.8.0\"," + "org.apache.commons.collections;bundle-version=\"3.2.1\"," |
| + "org.apache.commons.dbcp;bundle-version=\"1.4.0\"," + "org.apache.commons.discovery;bundle-version=\"0.5.0\"," |
| + "org.apache.commons.lang3;bundle-version=\"3.1.0\"," + "org.apache.commons.lang;bundle-version=\"2.6.0\"," |
| + "org.apache.commons.logging;bundle-version=\"1.1.1\"," + "org.apache.commons.math3;bundle-version=\"3.1.1\"," |
| + "org.apache.commons.math;bundle-version=\"1.2.0\"," + "org.apache.commons.net;bundle-version=\"3.2.0\"," + "org.apache.commons.pool;bundle-version=\"1.6.0\"," |
| + "org.apache.commons.vfs;bundle-version=\"2.0.0\"," + "org.apache.log4j;bundle-version=\"1.2.15\"," |
| + "org.eclipse.birt.core;bundle-version=\"4.4.0\"," + "org.eclipse.birt.data.aggregation;bundle-version=\"4.4.0\"," |
| + "org.eclipse.birt.data;bundle-version=\"4.4.0\"," + "org.eclipse.birt.report.data.adapter;bundle-version=\"4.4.0\"," |
| + "org.eclipse.birt.report.engine.emitter.html;bundle-version=\"4.4.0\"," + "org.eclipse.birt.report.engine.emitter.pdf;bundle-version=\"4.4.0\"," |
| + "org.eclipse.birt.report.engine.fonts;bundle-version=\"4.3.2\"," + "org.eclipse.birt.report.engine.fonts;bundle-version=\"4.4.0\"," |
| + "org.eclipse.birt.report.engine.script.javascript;bundle-version=\"4.4.0\"," + "org.eclipse.birt.report.engine;bundle-version=\"4.4.0\"," |
| + "org.eclipse.birt.report.model;bundle-version=\"4.4.0\"," + "org.eclipse.core.commands;bundle-version=\"3.6.100\"," |
| + "org.eclipse.core.databinding.beans;bundle-version=\"1.2.200\"," + "org.eclipse.core.databinding.observable;bundle-version=\"1.4.1\"," |
| + "org.eclipse.core.databinding.property;bundle-version=\"1.4.200\"," + "org.eclipse.core.databinding;bundle-version=\"1.4.2\"," + "org.eclipse.core.runtime," |
| + "org.eclipse.e4.core.commands;bundle-version=\"0.10.2\"," + "org.eclipse.e4.core.contexts;bundle-version=\"1.5.1\"," + "org.eclipse.e4.core.di.extensions," |
| + "org.eclipse.e4.core.di;bundle-version=\"1.4.0\"," + "org.eclipse.e4.core.services;bundle-version=\"2.0.100\"," + "org.eclipse.e4.ui.di;bundle-version=\"1.0.0\"," |
| + "org.eclipse.e4.ui.model.workbench;bundle-version=\"1.1.0\"," + "org.eclipse.e4.ui.services;bundle-version=\"1.1.0\"," |
| + "org.eclipse.e4.ui.workbench;bundle-version=\"1.4.0\"," + "org.eclipse.emf.ecore;bundle-version=\"2.10.2\"," + "org.eclipse.emf.mwe.core," |
| + "org.eclipse.gemini.dbaccess.util;bundle-version=\"1.1.0\"," + "org.eclipse.jdt.core;bundle-version=\"3.10.0\"," |
| + "org.eclipse.osbp.authentication;bundle-version=\"0.9.0\"," + "org.eclipse.osbp.authentication.ui;bundle-version=\"0.9.0\"," |
| + "org.eclipse.osbp.bpm;bundle-version=\"0.9.0\"," + "org.eclipse.osbp.bpm.api;bundle-version=\"0.9.0\"," |
| + "org.eclipse.osbp.datainterchange.api;bundle-version=\"0.9.0\"," + "org.eclipse.osbp.dsl.common.xtext;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.dsl.datatype.lib;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.dsl.dto.lib;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.dsl.entity.xtext;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.ecview.core.common.editparts.emf;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.ecview.core.common.model;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.ecview.core.common;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.ecview.core.extension.model;bundle-version=\"0.8.1\"," + "org.eclipse.osbp.ecview.dsl.lib;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.ecview.dsl;bundle-version=\"0.9.1\";resolution:=optional," + "org.eclipse.osbp.ecview.extension.api;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osbp.ecview.extension.editparts.emf;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.ecview.extension.editparts;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osbp.ecview.extension.grid.editparts;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.ecview.extension.grid.model;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osbp.ecview.extension.model;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.ecview.extension.presentation.vaadin;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osbp.ecview.extension.strategy;bundle-version=\"1.0.0\"," + "org.eclipse.osbp.ecview.extension.widgetset;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osbp.ecview.xtext.builder.participant;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.eventbroker;bundle-version=\"0.9.0\"," |
| + "org.eclipse.osbp.gitinfo;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.infogrid.api;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.infogrid.vaaclipse;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.jpa.services;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.mobile.vaadin.ecview.api;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.mobile.vaadin.ecview.model;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.osgi.hybrid.api;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.runtime.common;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.runtime.jsr303.validation;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.runtime.web.ecview.presentation.vaadin;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.runtime.web.vaadin.common;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.runtime.web.vaadin.databinding;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.ui.api;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.ui.common," + "org.eclipse.osbp.user," |
| + "org.eclipse.osbp.blob;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.utils.functionnormalizer," |
| + "org.eclipse.osbp.utils.themes.ui;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.utils.ui;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osbp.utils;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.vaaclipse.addons.common.api;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osbp.vaaclipse.addons.softwarefactory;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.vaaclipse.api;bundle-version=\"0.9.0\"," |
| + "org.eclipse.osbp.vaaclipse.common.ecview.api;bundle-version=\"0.9.1\"," + "org.eclipse.osbp.vaaclipse.publicapi;bundle-version=\"2.7.3\"," |
| + "org.eclipse.osbp.vaaclipse.theme;bundle-version=\"2.7.3\"," + "org.eclipse.osbp.vaadin.widgetset," + "org.eclipse.osbp.vaadin;bundle-version=\"2.7.3\"," |
| + "org.eclipse.osbp.webserver.messagequeue;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.xtext.builder.metadata.services;bundle-version=\"0.9.1\"," |
| + "org.eclipse.osbp.xtext.cubedsl;bundle-version=\"0.9.0\";resolution:=optional," |
| + "org.eclipse.osbp.xtext.datamartdsl;bundle-version=\"0.9.0\";resolution:=optional," |
| + "org.eclipse.osbp.xtext.entitymock.common;bundle-version=\"0.9.0\"," + "org.eclipse.osbp.xtext.functionlibrary.common," |
| + "org.eclipse.osbp.xtext.menu;bundle-version=\"0.1.0\"," + "org.eclipse.osbp.xtext.table.common;bundle-version=\"0.1.0\"," |
| + "org.eclipse.osgi.services;bundle-version=\"3.4.0\"," + "org.eclipse.persistence.antlr;bundle-version=\"3.2.0\"," |
| + "org.eclipse.persistence.asm;bundle-version=\"3.3.1\"," + "org.eclipse.persistence.core;bundle-version=\"2.6.0\"," |
| + "org.eclipse.persistence.jpa;bundle-version=\"2.5.1\"," + "org.eclipse.uomo.core;bundle-version=\"0.6.0\"," + "org.eclipse.uomo.units;bundle-version=\"0.6.0\"," |
| + "org.eclipse.xtext.xbase.lib;bundle-version=\"[2.11.0#2.12.0)\"," + "org.eclipse.xtext.xbase;bundle-version=\"[2.11.0#2.12.0)\";resolution:=optional," |
| + "org.joda.money;bundle-version=\"0.10.0\"," + "org.jsoup;bundle-version=\"1.8.1\"," + "org.junit;bundle-version=\"4.11.0\"," |
| + "org.mozilla.javascript;bundle-version=\"1.7.5\"," + "org.mvel2;bundle-version=\"2.1.6\"," + "org.unitsofmeasurement.unit-api;bundle-version=\"0.6.1\"," |
| + "osgi.enterprise;bundle-version=\"4.2.0\"," + "overlays.osgi;bundle-version=\"1.0.0\"," + "popupbutton.osgi;bundle-version=\"2.5.0\"," |
| + "refresher.osgi;bundle-version=\"1.2.3\"," + "sizereporter.osgi;bundle-version=\"0.1.4\"," + ""); |
| } |
| |
| @Override |
| protected List<String> getImportedPackages() { |
| List<String> result = Lists.newArrayList(super.getImportedPackages()); |
| return addFromMultiLine(result, ManifestAttribute.IMPORTED_PACKAGE, |
| "org.apache.commons.io;version=\"2.1.0\"," + "org.apache.commons.lang," + "org.eclipse.bpmn2," |
| + "org.eclipse.e4.core.contexts," + "org.eclipse.e4.core.di," + "org.eclipse.e4.core.di.annotations," + "org.eclipse.e4.ui.di," |
| + "org.eclipse.e4.ui.model.application," + "org.eclipse.e4.ui.model.application.ui," + "org.eclipse.e4.ui.model.application.ui.basic," |
| + "org.eclipse.e4.ui.model.application.ui.menu," + "org.eclipse.osbp.dsl.common.datatypes," |
| + "org.eclipse.osbp.dsl.dto.lib.impl," + "org.eclipse.osbp.ecview.core.util.emf," + "org.eclipse.osbp.eventbroker," + "org.eclipse.osbp.osgi.hybrid.api," |
| + "org.eclipse.osbp.core.api.persistence," + "org.eclipse.osbp.preferences," |
| // + "org.eclipse.osbp.ui.api.contextfunction," + "org.eclipse.osbp.ui.api.metadata," + "org.eclipse.osbp.ui.api.useraccess," |
| + "org.eclipse.osbp.vaaclipse.presentation.engine," + "org.eclipse.osbp.vaaclipse.presentation.renderers," + "org.eclipse.osbp.xtext.blip," |
| + "org.eclipse.osbp.xtext.blip.common," + "org.eclipse.osbp.xtext.datainterchange.common," + "org.eclipse.osbp.xtext.datamart.common," |
| + "org.eclipse.osbp.xtext.datamart.common.olap," + "org.eclipse.osbp.xtext.datamart.common.sql," + "org.eclipse.osbp.xtext.datamartdsl," |
| + "org.eclipse.osbp.xtext.dialogdsl.common," + "org.eclipse.osbp.xtext.functionlibrary.common," + "org.eclipse.osbp.xtext.i18n," |
| + "org.eclipse.osbp.xtext.messagedsl.common," + "org.eclipse.osbp.xtext.reportdsl.common," + "org.eclipse.osbp.xtext.reportdsl.common.attribute," |
| + "org.eclipse.osbp.xtext.reportdsl.common.item," + "org.eclipse.osbp.xtext.reportdsl.jvmmodel," |
| + "org.eclipse.osbp.xtext.reportdsl.oda.datamart.impl," + "org.eclipse.persistence.annotations;version=\"2.5.1\"," + "org.osgi.service.component.annotations;version=\"1.2.0\"," |
| + "org.slf4j;version=\"1.7.2\";resolution:=optional," + "org.tepi.filtertable," + ""); |
| } |
| |
| @Override |
| protected List<String> getExportedPackages() { |
| List<String> result = Lists.newArrayList(super.getExportedPackages()); |
| return addFromMultiLine(result, ManifestAttribute.EXPORTED_PACKAGE, ""); |
| } |
| |
| /** |
| * Gets the factory models. |
| * |
| * @return the factory models |
| */ |
| protected List<String> getFactoryModels() { |
| List<String> result = Lists.newArrayList(); |
| return addFromMultiLine(result, ManifestAttribute.FACTORY_MODEL, ""); |
| } |
| |
| @Override |
| protected ProjectFactory configureProjectFactory(ProjectFactory factory) { |
| // ----------- !!!!DONĀ“T MOVE THIS!!!! -------------- |
| // This path manipulation is mandatory to put the product plugin project as subfolder of the aggregator. |
| // The setting of this new location path to projectInfo has to be before the call of super.configureProjectFactory(factory). |
| IPath path = Platform.getLocation().append(getProjectInfo().getBasicProjectName()).append(getProjectInfo().getProjectName()); |
| getProjectInfo().setLocationPath(path.makeAbsolute()); |
| // --------------------------------------------------- |
| ProjectFactory result = super.configureProjectFactory(factory); |
| ((ModelProjectFactory) result).setFactoryModels(getFactoryModels()); |
| ((ModelProjectFactory) result).configureFrom(getProjectInfo()); |
| ((ModelProjectFactory) result).setRule(getRule()); |
| return result; |
| } |
| |
| /** |
| * @return a specific model project factory |
| */ |
| @Override |
| protected PluginProjectFactory createProjectFactory() { |
| return new ModelProjectFactory(); // super.createProjectFactory(); |
| } |
| |
| @Override |
| protected String getActivatorClassName() { |
| return getProjectInfo().getModelProjectPackageName() + ".Activator"; // super.getActivatorClassName(); |
| } |
| |
| @Override |
| protected String getEncoding() throws CoreException { |
| return super.getEncoding(); |
| } |
| |
| /* |
| * please add any natures via template /org.eclipse.osbp.wizard.ui/wizardtemplates/MODEL/__basic__/PROJECT.__basic__/.project.TEMPLATE_NO_COMMENT |
| * /org.eclipse.osbp.wizard.ui/wizardtemplates/MODEL/__basic__/PROJECT.blip/.project.TEMPLATE_NO_COMMENT |
| * /org.eclipse.osbp.wizard.ui/wizardtemplates/MODEL/__basic__/PROJECT.core/.project.TEMPLATE_NO_COMMENT |
| * |
| * @Override protected String[] getProjectNatures() { Set<String> projectNatures = new LinkedHashSet<String>(); projectNatures.add("org.eclipse.pde.PluginNature"); |
| * projectNatures.add("org.eclipse.jdt.core.javanature"); projectNatures.add("org.eclipse.xtext.ui.shared.xtextNature"); |
| * projectNatures.add("org.eclipse.babel.editor.rbeNature"); projectNatures.add("org.eclipse.osbp.ide.core.ui.shared.OSBPNature"); |
| * projectNatures.add("org.eclipse.osbp.ide.core.ui.softwarefactory.OSBP2Nature"); return projectNatures.toArray(new String[0]); } |
| */ |
| |
| /* |
| * please add any builder via template /org.eclipse.osbp.wizard.ui/wizardtemplates/MODEL/__basic__/PROJECT.__basic__/.project.TEMPLATE_NO_COMMENT |
| * /org.eclipse.osbp.wizard.ui/wizardtemplates/MODEL/__basic__/PROJECT.blip/.project.TEMPLATE_NO_COMMENT |
| * /org.eclipse.osbp.wizard.ui/wizardtemplates/MODEL/__basic__/PROJECT.core/.project.TEMPLATE_NO_COMMENT |
| * |
| * @Override protected String[] getBuilders() { Set<String> builders = new LinkedHashSet<String>(); builders.add("org.eclipse.xtext.ui.shared.xtextBuilder"); |
| * builders.add("org.eclipse.osbp.ide.core.ui.shared.OSBPModelEnhancingBuilder"); builders.add("org.eclipse.osbp.ide.core.ui.shared.OSBPI18nBuilder"); |
| * builders.add("org.eclipse.osbp.ide.core.ui.softwarefactory.OSBP2Builder"); builders.add("org.eclipse.jdt.core.javabuilder"); builders.add("org.eclipse.pde.ManifestBuilder"); |
| * builders.add("org.eclipse.pde.SchemaBuilder"); builders.add("org.eclipse.wst.validation.validationbuilder"); builders.add("org.eclipse.babel.editor.rbeBuilder"); |
| * builders.add("org.eclipse.pde.ds.core.builder"); return builders.toArray(new String[0]); } |
| */ |
| |
| /** |
| * Enhance the model project and display the progress on the monitor. |
| * |
| * @param project |
| * @param monitor |
| */ |
| @Override |
| protected void enhanceProject(final IProject project, final IProgressMonitor monitor) throws CoreException { |
| enhanceProject(project, monitor, "model"); |
| } |
| |
| @SuppressWarnings("restriction") |
| @Override |
| protected String[] getProjectNatures() { |
| Set<String> projectNatures = new LinkedHashSet<>(); |
| if (ProductConfiguration.isMavenActivated()) { |
| projectNatures.add(IMavenConstants.NATURE_ID); |
| } |
| projectNatures.addAll(Arrays.asList(super.getProjectNatures())); |
| if (getProjectInfo().isProjectPostFix(".blip")) { |
| projectNatures.add("org.eclipse.bpmn2.modeler.core.bpmn2Nature"); |
| } |
| if (getProjectInfo().isLuPostfix()) { |
| projectNatures.add("org.eclipse.osbp.ide.core.ui.shared.OSBPNature"); |
| } |
| projectNatures.add("org.eclipse.osbp.ide.core.ui.softwarefactory.OSBP2Nature"); |
| return projectNatures.toArray(new String[0]); |
| } |
| |
| @SuppressWarnings("restriction") |
| @Override |
| protected String[] getBuilders() { |
| Set<String> projectBuilders = new LinkedHashSet<>(); |
| if (ProductConfiguration.isMavenActivated()) { |
| projectBuilders.add(IMavenConstants.BUILDER_ID); |
| } |
| projectBuilders.addAll(Arrays.asList(super.getBuilders())); |
| projectBuilders.add("org.eclipse.osbp.ide.core.ui.softwarefactory.OSBP2Builder"); |
| if (getProjectInfo().isLuPostfix()) { |
| projectBuilders.add("org.eclipse.osbp.ide.core.ui.shared.OSBPModelEnhancingBuilder"); |
| } |
| projectBuilders.add("org.eclipse.pde.ds.core.builder"); |
| projectBuilders.add("org.eclipse.wst.validation.validationbuilder"); |
| if (getProjectInfo().isProjectPostFix(".blip")) { |
| projectBuilders.add("org.eclipse.bpmn2.modeler.core.bpmn2Builder"); |
| } |
| return projectBuilders.toArray(new String[0]); |
| } |
| |
| private String getFeatureBasedRequiredPlugins() { |
| boolean netOsbee = false; |
| boolean orgOsbee = false; |
| for (IBundleGroupProvider provider : Platform.getBundleGroupProviders()) { |
| for (IBundleGroup feature : provider.getBundleGroups()) { |
| String featureId = feature.getIdentifier(); |
| if (featureId != null) { |
| if (featureId.startsWith("net.osbee")) { |
| netOsbee = true; |
| } else if (featureId.startsWith("org.osbee")) { |
| orgOsbee = true; |
| } |
| } |
| } |
| } |
| if (netOsbee) { |
| return getNetOsbeeRequiredPlugins(); |
| } else if (orgOsbee) { |
| return getOrgOsbeeRequiredPlugins(); |
| } |
| return ""; |
| } |
| |
| private String getNetOsbeeRequiredPlugins() { |
| return "net.osbee.bpm;bundle-version=\"1.0.0\"," + "net.osbee.organization.permissions;bundle-version=\"1.0.0\"," + getOrgOsbeeRequiredPlugins(); |
| } |
| |
| private String getOrgOsbeeRequiredPlugins() { |
| return "OpenCSV;bundle-version=\"2.3.0\","; |
| } |
| |
| } |