blob: 4c2b1c0ad189f9b60212ad8f3c50f0391349a4bd [file] [log] [blame]
/**
*
* 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;bundle-version=\"0.9.0\""
+ "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\",";
}
}