Skip to content

Commit

Permalink
Showing 38 changed files with 966 additions and 40 deletions.
Original file line number Diff line number Diff line change
@@ -34,3 +34,9 @@ pluginContent.LicensedE4Product.description=\
<p>This wizard creates a minimal Eclipse 4.x product with license management support.</p>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.core.runtime.products</li>

pluginContent.LicensedE4FullFeatherProduct.name = Licensed RCP 4.x (full feather)
pluginContent.LicensedE4FullFeatherProduct.description=\
<p>This wizard creates a full feather Eclipse 4.x product with license management support.</p>\
<p><b>Extensions Used</b></p>\
<li>org.eclipse.core.runtime.products</li>
14 changes: 14 additions & 0 deletions bundles/org.eclipse.passage.ldc.pde.ui.templates/plugin.xml
Original file line number Diff line number Diff line change
@@ -43,6 +43,20 @@
%pluginContent.LicensedE4Product.description
</description>
</wizard>
<wizard
class="org.eclipse.passage.ldc.internal.pde.ui.templates.LicensedE4FullFeatherProductContentWizard"
icon="platform:/plugin/org.eclipse.passage.lic.jface/$nl$/icons/obj16/passage.png"
id="org.eclipse.passage.ldc.pde.ui.fullFeatherPassageProduct.rcp4"
java="true"
name="%pluginContent.LicensedE4FullFeatherProduct.name"
pureOSGi="false"
rcp="true"
requiresActivator="false"
ui-content="true">
<description>
%pluginContent.LicensedE4Product.description
</description>
</wizard>
</extension>

</plugin>
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*******************************************************************************
* 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 org.eclipse.pde.ui.templates.ITemplateSection;
import org.eclipse.pde.ui.templates.NewPluginTemplateWizard;

public final class LicensedE4FullFeatherProductContentWizard extends NewPluginTemplateWizard {

@Override
public ITemplateSection[] createTemplateSections() {
return new ITemplateSection[] { new LicensedE4FullFeatherProductTemplateSection() };
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
/*******************************************************************************
* 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 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.pde.core.plugin.IPluginBase;
import org.eclipse.pde.core.plugin.IPluginElement;
import org.eclipse.pde.core.plugin.IPluginExtension;
import org.eclipse.pde.core.plugin.IPluginModelBase;
import org.eclipse.pde.core.plugin.IPluginReference;
import org.eclipse.pde.ui.IFieldData;

public final class LicensedE4FullFeatherProductTemplateSection extends BaseLicensedTemplateSection {

private static final String LICENSED_E4_PRODUCT = "LicensedE4FullFeatherProduct"; //$NON-NLS-1$
private static final String E4_SWT_APPLICATION_ID = "org.eclipse.e4.ui.workbench.swt.E4Application"; //$NON-NLS-1$

public LicensedE4FullFeatherProductTemplateSection() {
setPageCount(1);
createOptions();
}

@Override
public void addPages(Wizard wizard) {
WizardPage page = createPage(0, HelpContexts.TEMPLATE_E4_PRODUCT);
page.setTitle(PdeUiTemplatesMessages.LicensedE4ProductTemplateSection_page_title);
page.setDescription(PdeUiTemplatesMessages.LicensedE4ProductTemplateSection_page_description);
wizard.addPage(page);
markPagesAdded();
}

private void createOptions() {
addOption(KEY_WINDOW_TITLE, PdeUiTemplatesMessages.LicensedE4ProductTemplateSection_key_window_title_label,
"Licensed E4 RCP", 0); //$NON-NLS-1$
addOption(KEY_PACKAGE_NAME, PdeUiTemplatesMessages.LicensedE4ProductTemplateSection_key_package_name_label,
(String) null, 0);
}

@Override
protected void initializeFields(IFieldData data) {
// In a new project wizard, we don't know this yet - the
// model has not been created
String packageName = getFormattedPackageName(data.getId());
initializeOption(KEY_PACKAGE_NAME, packageName);
}

@Override
public void initializeFields(IPluginModelBase modelBase) {
String packageName = getFormattedPackageName(modelBase.getPluginBase().getId());
initializeOption(KEY_PACKAGE_NAME, packageName);
}

@Override
public String getSectionId() {
return LICENSED_E4_PRODUCT;
}

@Override
protected void updateModel(IProgressMonitor monitor) throws CoreException {
setManifestHeader("Bundle-ActivationPolicy", "lazy"); //$NON-NLS-1$ //$NON-NLS-2$
String productFqn = model.getPluginBase().getId() + '.' + VALUE_PRODUCT_ID;
createLicensingCapability(productFqn);
createProductExtension();
}

private void createProductExtension() throws CoreException {
IPluginBase plugin = model.getPluginBase();
IPluginExtension extension = createExtension("org.eclipse.core.runtime.products", true); //$NON-NLS-1$
extension.setId(VALUE_PRODUCT_ID);

IPluginElement element = model.getFactory().createElement(extension);
element.setName("product"); //$NON-NLS-1$
element.setAttribute("application", E4_SWT_APPLICATION_ID); //$NON-NLS-1$
element.setAttribute("name", getStringOption(KEY_PACKAGE_NAME)); //$NON-NLS-1$

IPluginElement property;

property = model.getFactory().createElement(element);
property.setName("property"); //$NON-NLS-1$
property.setAttribute("name", "applicationCSS");//$NON-NLS-1$ //$NON-NLS-2$
property.setAttribute("value", "platform:/plugin/" + getValue(KEY_PLUGIN_ID) + "/css/default.css"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
element.add(property);

extension.add(element);

if (!extension.isInTheModel())
plugin.add(extension);
}

@Override
public IPluginReference[] getDependencies(String schemaVersion) {
return getDependencies(getRCP4Dependencies());
}

@Override
public String[] getNewFiles() {
return new String[] { "css/default.css", "Application.e4xmi" }; //$NON-NLS-1$ //$NON-NLS-2$
}

}
Original file line number Diff line number Diff line change
@@ -15,6 +15,7 @@
import org.eclipse.pde.ui.templates.ITemplateSection;
import org.eclipse.pde.ui.templates.NewPluginTemplateWizard;

@Deprecated
public class LicensedE4ProductContentWizard extends NewPluginTemplateWizard {

@Override
Original file line number Diff line number Diff line change
@@ -24,6 +24,7 @@
import org.eclipse.pde.core.plugin.IPluginReference;
import org.eclipse.pde.ui.IFieldData;

@Deprecated
public class LicensedE4ProductTemplateSection extends BaseLicensedTemplateSection {

private static final String LICENSED_E4_PRODUCT = "LicensedE4Product"; //$NON-NLS-1$
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>

<product name="$pluginId$" id="$pluginId$.product" application="org.eclipse.e4.ui.workbench.swt.E4Application" version="1.0.0.qualifier" useFeatures="false" includeLaunchers="true">

<configIni use="default">
</configIni>

<launcherArgs>
<programArgs>-clearPersistedState
</programArgs>
<vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
</vmArgsMac>
</launcherArgs>

<windowImages/>

<plugins>
<plugin id="$pluginId$"/>
<plugin id="com.ibm.icu"/>
<plugin id="javax.annotation"/>
<plugin id="javax.inject"/>
<plugin id="org.apache.batik.constants"/>
<plugin id="org.apache.batik.css"/>
<plugin id="org.apache.batik.i18n"/>
<plugin id="org.apache.batik.util"/>
<plugin id="org.apache.commons.io"/>
<plugin id="org.apache.commons.jxpath"/>
<plugin id="org.apache.commons.logging"/>
<plugin id="org.apache.felix.scr"/>
<plugin id="org.apache.xmlgraphics"/>
<plugin id="org.eclipse.core.commands"/>
<plugin id="org.eclipse.core.contenttype"/>
<plugin id="org.eclipse.core.databinding"/>
<plugin id="org.eclipse.core.databinding.beans"/>
<plugin id="org.eclipse.core.databinding.observable"/>
<plugin id="org.eclipse.core.databinding.property"/>
<plugin id="org.eclipse.core.expressions"/>
<plugin id="org.eclipse.core.jobs"/>
<plugin id="org.eclipse.core.runtime"/>
<plugin id="org.eclipse.e4.core.commands"/>
<plugin id="org.eclipse.e4.core.contexts"/>
<plugin id="org.eclipse.e4.core.di"/>
<plugin id="org.eclipse.e4.core.di.annotations"/>
<plugin id="org.eclipse.e4.core.di.extensions"/>
<plugin id="org.eclipse.e4.core.di.extensions.supplier"/>
<plugin id="org.eclipse.e4.core.services"/>
<plugin id="org.eclipse.e4.emf.xpath"/>
<plugin id="org.eclipse.e4.ui.bindings"/>
<plugin id="org.eclipse.e4.ui.css.core"/>
<plugin id="org.eclipse.e4.ui.css.swt"/>
<plugin id="org.eclipse.e4.ui.css.swt.theme"/>
<plugin id="org.eclipse.e4.ui.di"/>
<plugin id="org.eclipse.e4.ui.dialogs"/>
<plugin id="org.eclipse.e4.ui.model.workbench"/>
<plugin id="org.eclipse.e4.ui.services"/>
<plugin id="org.eclipse.e4.ui.swt.gtk" fragment="true"/>
<plugin id="org.eclipse.e4.ui.widgets"/>
<plugin id="org.eclipse.e4.ui.workbench"/>
<plugin id="org.eclipse.e4.ui.workbench.addons.swt"/>
<plugin id="org.eclipse.e4.ui.workbench.renderers.swt"/>
<plugin id="org.eclipse.e4.ui.workbench.renderers.swt.cocoa" fragment="true"/>
<plugin id="org.eclipse.e4.ui.workbench.swt"/>
<plugin id="org.eclipse.e4.ui.workbench3"/>
<plugin id="org.eclipse.emf.common"/>
<plugin id="org.eclipse.emf.databinding"/>
<plugin id="org.eclipse.emf.ecore"/>
<plugin id="org.eclipse.emf.ecore.change"/>
<plugin id="org.eclipse.emf.ecore.xmi"/>
<plugin id="org.eclipse.equinox.app"/>
<plugin id="org.eclipse.equinox.common"/>
<plugin id="org.eclipse.equinox.concurrent"/>
<plugin id="org.eclipse.equinox.event"/>
<plugin id="org.eclipse.equinox.preferences"/>
<plugin id="org.eclipse.equinox.registry"/>
<plugin id="org.eclipse.jface"/>
<plugin id="org.eclipse.jface.databinding"/>
<plugin id="org.eclipse.osgi"/>
<plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
<plugin id="org.eclipse.osgi.services"/>
<plugin id="org.eclipse.osgi.util"/>
<plugin id="org.eclipse.swt"/>
<plugin id="org.eclipse.swt.cocoa.macosx.x86_64" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.ppc64" fragment="true"/>
<plugin id="org.eclipse.swt.gtk.linux.x86_64" fragment="true"/>
<plugin id="org.eclipse.swt.win32.win32.x86_64" fragment="true"/>
<plugin id="org.w3c.css.sac"/>
<plugin id="org.w3c.dom.events"/>
<plugin id="org.w3c.dom.smil"/>
<plugin id="org.w3c.dom.svg"/>
<plugin id="org.eclipse.passage.lic.api"/>
<plugin id="org.eclipse.passage.lic.base"/>
<plugin id="org.eclipse.passage.lic.equinox"/>
<plugin id="org.eclipse.passage.lic.jface"/>
<plugin id="org.eclipse.passage.lic.e4.ui"/>
</plugins>

<configurations>
<plugin id="org.apache.felix.scr" autoStart="true" startLevel="1" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="0" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
<plugin id="org.eclipse.passage.lic.equinox" autoStart="true" startLevel="4" />
</configurations>


</product>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<application:Application xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:application="http://www.eclipse.org/ui/2010/UIModel/application" xmlns:basic="http://www.eclipse.org/ui/2010/UIModel/application/ui/basic" xmi:id="_c3AF0MjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.application" bindingContexts="_c3AF2cjYEeSyMNYR5xypkQ">
<children xsi:type="basic:TrimmedWindow" xmi:id="_c3AF0cjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.window.main" label="Empty E4 Application" width="500" height="400"/>
<rootContext xmi:id="_c3AF2cjYEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialogAndWindow" name="In Dialog and Windows">
<children xmi:id="_c3AF2sjYEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.window" name="In Windows"/>
<children xmi:id="_c3AF28jYEeSyMNYR5xypkQ" elementId="org.eclipse.ui.contexts.dialog" name="In Dialogs"/>
</rootContext>
<addons xmi:id="_c3AF0sjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.core.commands.service" contributionURI="bundleclass://org.eclipse.e4.core.commands/org.eclipse.e4.core.commands.CommandServiceAddon"/>
<addons xmi:id="_c3AF08jYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.contexts.service" contributionURI="bundleclass://org.eclipse.e4.ui.services/org.eclipse.e4.ui.services.ContextServiceAddon"/>
<addons xmi:id="_c3AF1MjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.bindings.service" contributionURI="bundleclass://org.eclipse.e4.ui.bindings/org.eclipse.e4.ui.bindings.BindingServiceAddon"/>
<addons xmi:id="_c3AF1cjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.commands.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.CommandProcessingAddon"/>
<addons xmi:id="_c3AF1sjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.handler.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.HandlerProcessingAddon"/>
<addons xmi:id="_c3AF18jYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.contexts.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench/org.eclipse.e4.ui.internal.workbench.addons.ContextProcessingAddon"/>
<addons xmi:id="_c3AF2MjYEeSyMNYR5xypkQ" elementId="org.eclipse.e4.ui.workbench.bindings.model" contributionURI="bundleclass://org.eclipse.e4.ui.workbench.swt/org.eclipse.e4.ui.workbench.swt.util.BindingProcessingAddon"/>
<addons xmi:id="_HHRYIGDYEemg7cSpH3T_tg" elementId="org.eclipse.passage.lic.intenal.e4.ui.licensing" contributionURI="bundleclass://org.eclipse.passage.lic.e4.ui/org.eclipse.passage.lic.internal.e4.ui.addons.E4LicensingAddon"/>
</application:Application>
5 changes: 3 additions & 2 deletions bundles/org.eclipse.passage.lic.api/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -11,7 +11,8 @@ Export-Package: org.eclipse.passage.lic.api,
org.eclipse.passage.lic.api.access,
org.eclipse.passage.lic.api.conditions,
org.eclipse.passage.lic.api.inspector,
org.eclipse.passage.lic.api.internal.registry;x-internal:=true,
org.eclipse.passage.lic.api.io,
org.eclipse.passage.lic.api.requirements,
org.eclipse.passage.lic.api.restrictions
org.eclipse.passage.lic.api.restrictions,
org.eclipse.passage.lic.internal.api;x-internal:=true,
org.eclipse.passage.lic.internal.api.registry;x-internal:=true
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*******************************************************************************
* 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.lic.internal.api;

/**
* <p>
* All the framework-relying constructions are to originate from this point this
* way or another. Major part of Passage code base should stay completely
* framework-agnostic, gaining all the data and services directly through
* constructors.
* </p>
* <p>
* Currently we use
* </p>
* <ul>
* <li>service implementation discovery</li>
* <li>IOC-wiring functionality</li>
* <li>event bus</li>
* </ul>
* <p>
* <p>
* Two implementation is currently planned: Equinox-based and Spring based.
* </p>
*/
public interface Framework {

}
Loading

0 comments on commit cb111e7

Please sign in to comment.