diff --git a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/BaseLicensedTemplateSection.java b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/BaseLicensedTemplateSection.java index 3d5d682ac..19f949182 100644 --- a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/BaseLicensedTemplateSection.java +++ b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/BaseLicensedTemplateSection.java @@ -22,9 +22,6 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.Platform; import org.eclipse.passage.lic.internal.api.requirements.Requirement; -import org.eclipse.passage.lic.internal.api.restrictions.RestrictionLevel; -import org.eclipse.passage.lic.internal.base.requirements.BaseFeature; -import org.eclipse.passage.lic.internal.base.requirements.BaseRequirement; import org.eclipse.passage.lic.internal.equinox.requirements.RequirementsToBundle; import org.eclipse.pde.core.plugin.IMatchRules; import org.eclipse.pde.core.plugin.IPluginBase; @@ -123,19 +120,10 @@ protected void createLicensingCapability(String identifier) { ((IBundlePluginModelBase) shared).getBundleModel().getBundle()// .setHeader(Constants.PROVIDE_CAPABILITY, // new RequirementsToBundle()// - .printed(Arrays.asList(defaultRequirement(identifier)))); + .printed(requirements(identifier))); } - private Requirement defaultRequirement(String identifier) { - return new BaseRequirement(// - new BaseFeature(// - identifier, // - "1.0.0", //$NON-NLS-1$ - identifier, // - "Eclipse Passage Template"), //$NON-NLS-1$ - new RestrictionLevel.Warning(), // - this); - } + protected abstract List requirements(String product); protected void createApplicationExtension(String identifier, String classValue) throws CoreException { IPluginBase plugin = model.getPluginBase(); diff --git a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/DefaultProductRequirement.java b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/DefaultProductRequirement.java new file mode 100644 index 000000000..19f43a3bd --- /dev/null +++ b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/DefaultProductRequirement.java @@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.ldc.internal.pde.ui.templates; + +import java.util.function.Supplier; + +import org.eclipse.passage.lic.internal.api.requirements.Requirement; +import org.eclipse.passage.lic.internal.api.restrictions.RestrictionLevel; +import org.eclipse.passage.lic.internal.base.requirements.BaseFeature; +import org.eclipse.passage.lic.internal.base.requirements.BaseRequirement; + +@SuppressWarnings("restriction") +final class DefaultProductRequirement implements Supplier { + private final String product; + + DefaultProductRequirement(String product) { + this.product = product; + } + + @Override + public Requirement get() { + return new BaseRequirement(// + new BaseFeature(// + product, // + "1.0.0", //$NON-NLS-1$ + product, // + "Eclipse Passage Template"), //$NON-NLS-1$ + new RestrictionLevel.Warning(), // + this); + } + +} diff --git a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE3ProductTemplateSection.java b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE3ProductTemplateSection.java index 8ee324571..73c091c6e 100644 --- a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE3ProductTemplateSection.java +++ b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE3ProductTemplateSection.java @@ -12,11 +12,15 @@ *******************************************************************************/ package org.eclipse.passage.ldc.internal.pde.ui.templates; +import java.util.Arrays; +import java.util.List; + import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.passage.ldc.internal.pde.ui.templates.i18n.PdeUiTemplatesMessages; +import org.eclipse.passage.lic.internal.api.requirements.Requirement; import org.eclipse.pde.core.plugin.IPluginBase; import org.eclipse.pde.core.plugin.IPluginElement; import org.eclipse.pde.core.plugin.IPluginExtension; @@ -24,6 +28,7 @@ import org.eclipse.pde.core.plugin.IPluginReference; import org.eclipse.pde.ui.IFieldData; +@SuppressWarnings("restriction") public class LicensedE3ProductTemplateSection extends BaseLicensedTemplateSection { private static final String LICENSED_E3_PRODUCT = "LicensedE3Product"; //$NON-NLS-1$ @@ -83,6 +88,11 @@ protected void updateModel(IProgressMonitor monitor) throws CoreException { createProcessorExtension(VALUE_PROCESSOR_LICENSING_ID, VALUE_PROCESSOR_LICENSING_CLASS); } + @Override + protected List requirements(String product) { + return Arrays.asList(new DefaultProductRequirement(product).get()); + } + private void createPerspectiveExtension() throws CoreException { IPluginBase plugin = model.getPluginBase(); diff --git a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4FullFeatherProductTemplateSection.java b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4FullFeatherProductTemplateSection.java index dc33d25f9..3628213d2 100644 --- a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4FullFeatherProductTemplateSection.java +++ b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4FullFeatherProductTemplateSection.java @@ -12,11 +12,16 @@ *******************************************************************************/ package org.eclipse.passage.ldc.internal.pde.ui.templates; +import java.util.Arrays; +import java.util.List; + import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardPage; +import org.eclipse.passage.ldc.internal.pde.ui.templates.fullfeather.AntimagicShieldFeatureLicRequirement; import org.eclipse.passage.ldc.internal.pde.ui.templates.i18n.PdeUiTemplatesMessages; +import org.eclipse.passage.lic.internal.api.requirements.Requirement; import org.eclipse.pde.core.plugin.IPluginBase; import org.eclipse.pde.core.plugin.IPluginElement; import org.eclipse.pde.core.plugin.IPluginExtension; @@ -24,6 +29,7 @@ import org.eclipse.pde.core.plugin.IPluginReference; import org.eclipse.pde.ui.IFieldData; +@SuppressWarnings("restriction") public final class LicensedE4FullFeatherProductTemplateSection extends BaseLicensedTemplateSection { public LicensedE4FullFeatherProductTemplateSection() { @@ -68,6 +74,13 @@ protected void updateModel(IProgressMonitor monitor) throws CoreException { createProductExtension(); } + @Override + protected List requirements(String product) { + return Arrays.asList(// + new DefaultProductRequirement(product).get(), // + new AntimagicShieldFeatureLicRequirement().get()); + } + @Override public IPluginReference[] getDependencies(String schemaVersion) { return getDependencies(getRCP4Dependencies()); diff --git a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4ProductTemplateSection.java b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4ProductTemplateSection.java index 226b0c0ac..a38478b65 100644 --- a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4ProductTemplateSection.java +++ b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/LicensedE4ProductTemplateSection.java @@ -12,11 +12,15 @@ *******************************************************************************/ package org.eclipse.passage.ldc.internal.pde.ui.templates; +import java.util.Arrays; +import java.util.List; + import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jface.wizard.Wizard; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.passage.ldc.internal.pde.ui.templates.i18n.PdeUiTemplatesMessages; +import org.eclipse.passage.lic.internal.api.requirements.Requirement; import org.eclipse.pde.core.plugin.IPluginBase; import org.eclipse.pde.core.plugin.IPluginElement; import org.eclipse.pde.core.plugin.IPluginExtension; @@ -24,6 +28,7 @@ import org.eclipse.pde.core.plugin.IPluginReference; import org.eclipse.pde.ui.IFieldData; +@SuppressWarnings("restriction") @Deprecated public class LicensedE4ProductTemplateSection extends BaseLicensedTemplateSection { @@ -78,6 +83,11 @@ protected void updateModel(IProgressMonitor monitor) throws CoreException { createProductExtension(); } + @Override + protected List requirements(String product) { + return Arrays.asList(new DefaultProductRequirement(product).get()); + } + private void createProductExtension() throws CoreException { IPluginBase plugin = model.getPluginBase(); IPluginExtension extension = createExtension("org.eclipse.core.runtime.products", true); //$NON-NLS-1$ diff --git a/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/fullfeather/AntimagicShieldFeatureLicRequirement.java b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/fullfeather/AntimagicShieldFeatureLicRequirement.java new file mode 100644 index 000000000..f6ddb6699 --- /dev/null +++ b/bundles/org.eclipse.passage.ldc.pde.ui.templates/src/org/eclipse/passage/ldc/internal/pde/ui/templates/fullfeather/AntimagicShieldFeatureLicRequirement.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2020 ArSysOp + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * https://www.eclipse.org/legal/epl-2.0/. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + *******************************************************************************/ +package org.eclipse.passage.ldc.internal.pde.ui.templates.fullfeather; + +import java.util.function.Supplier; + +import org.eclipse.passage.lic.internal.api.requirements.Requirement; +import org.eclipse.passage.lic.internal.api.restrictions.RestrictionLevel; +import org.eclipse.passage.lic.internal.base.requirements.BaseFeature; +import org.eclipse.passage.lic.internal.base.requirements.BaseRequirement; + +@SuppressWarnings("restriction") +public final class AntimagicShieldFeatureLicRequirement implements Supplier { + + @Override + public Requirement get() { + return new BaseRequirement(// + new BaseFeature(// + "antimagic-shield", //$NON-NLS-1$ + "2.72", //$NON-NLS-1$ + "Antimagic protection", //$NON-NLS-1$ + "Passage E4FF Template"), //$NON-NLS-1$ + new RestrictionLevel.Warning(), // + this // + ); + } + +}