diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d8ff0c1d2c0..ac0e61f1cc4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,6 +25,7 @@ on: - none - regular - all + - cli.gen - tos.bd - tos.di - tos.dq @@ -55,6 +56,7 @@ jobs: inputs.builtProducts == 'none' && 'no-tos-products' || inputs.builtProducts == 'regular' && 'default' || inputs.builtProducts == 'all' && 'all-tos-products' || + inputs.builtProducts == 'cli.gen' && 'cli.generator.product' || inputs.builtProducts == 'tos.bd' && 'tos.bd.product' || inputs.builtProducts == 'tos.di' && 'tos.di.product' || inputs.builtProducts == 'tos.dq' && 'tos.dq.product' || diff --git a/studio-se-master/build/pom.xml b/studio-se-master/build/pom.xml index e5d468d5c9e..acfa2472f90 100644 --- a/studio-se-master/build/pom.xml +++ b/studio-se-master/build/pom.xml @@ -41,6 +41,7 @@ true + talaxie.cli.generator.product talend.studio.tos.bd.product talend.studio.tos.di.product talend.studio.tos.dq.product @@ -56,6 +57,7 @@ + talaxie.cli.generator.product talend.studio.tos.bd.product talend.studio.tos.di.product talend.studio.tos.dq.product @@ -95,6 +97,18 @@ + + cli.generator.product + + + cli.gen + true + + + + talaxie.cli.generator.product + + tos.bd.product diff --git a/studio-se-master/build/talaxie.cli.generator.product/config.ini b/studio-se-master/build/talaxie.cli.generator.product/config.ini new file mode 100644 index 00000000000..0e9d65bc1aa --- /dev/null +++ b/studio-se-master/build/talaxie.cli.generator.product/config.ini @@ -0,0 +1,16 @@ +#Product Runtime Configuration File + +osgi.splashPath=platform:/base/plugins/${product.branding.platform}/ +talend.studio.version=${version.full} +eclipse.product=${product.branding.id} +#The following osgi.framework key is required for the p2 update feature not to override the osgi.bundles values. +osgi.framework=file\:plugins/org.eclipse.osgi_3.18.400.v20230509-2241.jar +osgi.bundles=org.eclipse.equinox.simpleconfigurator@1\:start,org.eclipse.compare.win32@4,org.eclipse.core.filesystem.linux.x86_64@4,org.eclipse.core.filesystem.macosx@4,org.eclipse.core.filesystem.win32.x86_64@4,org.eclipse.core.net.linux.x86_64@4,org.eclipse.core.net.win32.x86_64@4,org.eclipse.core.resources.win32.x86_64@4,org.eclipse.e4.ui.swt.gtk@4,org.eclipse.e4.ui.workbench.renderers.swt.cocoa@4,org.eclipse.equinox.launcher.cocoa.macosx.x86_64@4,org.eclipse.equinox.launcher.gtk.linux.x86_64@4,org.eclipse.equinox.launcher.win32.win32.x86_64@4,org.eclipse.equinox.security.linux.x86_64@4,org.eclipse.equinox.security.macosx@4,org.eclipse.equinox.security.win32.x86_64@4,org.eclipse.jdt.launching.macosx@4,org.eclipse.jdt.launching.ui.macosx@4,org.eclipse.swt.cocoa.macosx.x86_64@4,org.eclipse.swt.gtk.linux.x86_64@4,org.eclipse.swt.win32.win32.x86_64@4,org.eclipse.ui.cocoa@4,org.eclipse.ui.win32@4,org.eclipse.swt.gtk.linux.aarch64@4,org.eclipse.core.filesystem.linux.aarch64@4,org.eclipse.equinox.launcher.cocoa.macosx.aarch64@4,org.eclipse.equinox.launcher.gtk.linux.aarch64@4,org.eclipse.swt.cocoa.macosx.aarch64@4 +org.eclipse.equinox.simpleconfigurator.configUrl=file\:org.eclipse.equinox.simpleconfigurator/bundles.info +osgi.bundles.defaultStartLevel=4 +osgi.bundlefile.limit=200 +osgi.framework.extensions=org.talend.osgi.lib.loader,org.eclipse.osgi.compatibility.state +file.encoding=UTF-8 +eclipse.p2.data.area=@config.dir/../p2/ +eclipse.p2.profile=profile +default.update.site.url=https://update.talend.com/Studio/tos/ \ No newline at end of file diff --git a/studio-se-master/build/talaxie.cli.generator.product/pom.xml b/studio-se-master/build/talaxie.cli.generator.product/pom.xml new file mode 100644 index 00000000000..c58eee5b9a5 --- /dev/null +++ b/studio-se-master/build/talaxie.cli.generator.product/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + + org.talend.studio + tos-products-parent-pom + 8.9.0-SNAPSHOT + ../talend.studio.tos.product.parent.pom + + + org.talaxie.cli.generator.product + eclipse-repository + + ../../../tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/target/classes/product.properties + + + diff --git a/studio-se-master/build/talaxie.cli.generator.product/talaxie.product b/studio-se-master/build/talaxie.cli.generator.product/talaxie.product new file mode 100644 index 00000000000..5d39ac19b04 --- /dev/null +++ b/studio-se-master/build/talaxie.cli.generator.product/talaxie.product @@ -0,0 +1,89 @@ + + + + + + + + + + -console -consoleLog + + -Xms512m +-Xmx1536m +-Dfile.encoding=UTF-8 +-Dorg.eclipse.swt.graphics.Resource.reportNonDisposed=false +-Dswt.autoScale.updateOnRuntime=false +-Dosgihelper.version=8.8.8-SNAPSHOT +-Dosgi.requiredJavaVersion=21 +-XX:+UseG1GC +-XX:+UseStringDeduplication +-XX:MaxMetaspaceSize=512m +--add-opens=java.base/java.lang=ALL-UNNAMED +--add-opens=java.base/java.util=ALL-UNNAMED +--add-opens=java.base/java.io=ALL-UNNAMED +--add-opens=java.base/java.util.stream=ALL-UNNAMED +--add-opens=java.base/java.util.regex=ALL-UNNAMED +--add-opens=java.base/java.lang.invoke=ALL-UNNAMED +--add-opens=java.base/java.lang.reflect=ALL-UNNAMED +--add-opens=java.base/java.net=ALL-UNNAMED +--add-opens=java.base/java.nio=ALL-UNNAMED +--add-opens=java.base/java.util.concurrent=ALL-UNNAMED +--add-opens=java.base/sun.nio.ch=ALL-UNNAMED +--add-opens=java.base/sun.nio.cs=ALL-UNNAMED +--add-opens=java.base/sun.security.action=ALL-UNNAMED +--add-opens=java.base/sun.security.pkcs=ALL-UNNAMED +--add-opens=java.base/sun.security.x509=ALL-UNNAMED +--add-opens=java.base/sun.util.calendar=ALL-UNNAMED +--add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED +--add-modules=ALL-SYSTEM + + -Xdock:icon=../Resources/talend.icns +-XstartOnFirstThread +-Dorg.eclipse.swt.internal.carbon.smallFonts +-Dosgi.instance.area.default=../../../workspace + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/studio-se-master/build/target-platform/target-platform.target b/studio-se-master/build/target-platform/target-platform.target index 6bd1da95903..a93ee73bf8b 100644 --- a/studio-se-master/build/target-platform/target-platform.target +++ b/studio-se-master/build/target-platform/target-platform.target @@ -1,7 +1,7 @@ - + @@ -87,6 +87,7 @@ + diff --git a/studio-se-master/build/target-platform/target-platform.tpd b/studio-se-master/build/target-platform/target-platform.tpd index e298ee83fd0..687cc06ef86 100644 --- a/studio-se-master/build/target-platform/target-platform.tpd +++ b/studio-se-master/build/target-platform/target-platform.tpd @@ -97,6 +97,7 @@ location "https://download.eclipse.org/nattable/releases/2.2.0/repository/" { // Orbit repository for 2025-12 location "https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/2025-12/" { org.apache.commons.commons-logging + org.apache.commons.logging // org.apache.commons.commons-beanutils // org.apache.commons.collections // org.apache.xalan diff --git a/tcommon-studio-se/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/AggregatorPomsHelper.java b/tcommon-studio-se/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/AggregatorPomsHelper.java index d118a1230fc..309c905ebef 100644 --- a/tcommon-studio-se/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/AggregatorPomsHelper.java +++ b/tcommon-studio-se/main/plugins/org.talend.designer.maven/src/main/java/org/talend/designer/maven/tools/AggregatorPomsHelper.java @@ -654,7 +654,20 @@ public void syncAllPomsWithoutProgress(IProgressMonitor monitor) throws Exceptio public void syncAllPomsWithoutProgress(IProgressMonitor monitor, String pomFilter, boolean withDependencies) throws Exception { - LOGGER.info("syncAllPomsWithoutProgress, pomFilter: " + pomFilter); + syncAllPomsWithoutProgress(monitor, pomFilter, withDependencies, true); + } + + /** + * Write all poms (root + code + job) without forking Maven (no installRootPom, no code-project + * build); the downstream Maven reactor compiles instead. + */ + public void syncAllPomsNoBuild(IProgressMonitor monitor) throws Exception { + syncAllPomsWithoutProgress(monitor, PomIdsHelper.getPomFilter(), false, false); + } + + public void syncAllPomsWithoutProgress(IProgressMonitor monitor, String pomFilter, boolean withDependencies, + boolean fork) throws Exception { + LOGGER.info("syncAllPomsWithoutProgress, pomFilter: " + pomFilter + ", fork: " + fork); IRunProcessService runProcessService = IRunProcessService.get(); if (runProcessService == null) { return; @@ -719,7 +732,9 @@ public void syncAllPomsWithoutProgress(IProgressMonitor monitor, String pomFilte } createRootPom(model, true, monitor); - installRootPom(true); + if (fork) { + installRootPom(true); + } monitor.worked(1); if (monitor.isCanceled()) { return; @@ -729,8 +744,10 @@ public void syncAllPomsWithoutProgress(IProgressMonitor monitor, String pomFilte monitor.subTask("Synchronize code poms"); //$NON-NLS-1$ System.setProperty("ignore.ci.mode", isCIMode.toString()); - updateCodeProjects(monitor, true); - CodesJarM2CacheManager.updateCodesJarProject(monitor, true, true, true); + if (fork) { + updateCodeProjects(monitor, true); + CodesJarM2CacheManager.updateCodesJarProject(monitor, true, true, true); + } System.setProperty("ignore.ci.mode", Boolean.FALSE.toString()); monitor.worked(1); @@ -763,7 +780,9 @@ public void syncAllPomsWithoutProgress(IProgressMonitor monitor, String pomFilte collectCodeModules(modules); model.getModules().addAll(modules); createRootPom(model, true, monitor); - installRootPom(true); + if (fork) { + installRootPom(true); + } } monitor.worked(1); if (monitor.isCanceled()) { diff --git a/tdi-studio-se/main/features/org.talend.designer.feature/feature.xml b/tdi-studio-se/main/features/org.talend.designer.feature/feature.xml index 3d1e591d490..881fc44082b 100644 --- a/tdi-studio-se/main/features/org.talend.designer.feature/feature.xml +++ b/tdi-studio-se/main/features/org.talend.designer.feature/feature.xml @@ -1,36 +1,86 @@ + + + + Complete description about this feature at http://www.talend.com/online/featuresdescription.html#designer-feature + + + + Copyright Talaxie 2006, 2007 + + + + The licence are describe in branding feature + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - Complete description about this feature at http://www.talend.com/online/featuresdescription.html#designer-feature - Copyright Talaxie 2006, 2007 - The licence are describe in branding feature - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tdi-studio-se/main/features/org.talend.generator.feature/.checkstyle b/tdi-studio-se/main/features/org.talend.generator.feature/.checkstyle new file mode 100644 index 00000000000..ad7bc1dc010 --- /dev/null +++ b/tdi-studio-se/main/features/org.talend.generator.feature/.checkstyle @@ -0,0 +1,6 @@ + + + + + + diff --git a/tdi-studio-se/main/features/org.talend.generator.feature/.project b/tdi-studio-se/main/features/org.talend.generator.feature/.project new file mode 100644 index 00000000000..46dedd40675 --- /dev/null +++ b/tdi-studio-se/main/features/org.talend.generator.feature/.project @@ -0,0 +1,23 @@ + + + org.talend.generator.feature + + + + + + org.eclipse.pde.FeatureBuilder + + + + + com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder + + + + + + org.eclipse.pde.FeatureNature + com.atlassw.tools.eclipse.checkstyle.CheckstyleNature + + diff --git a/tdi-studio-se/main/features/org.talend.generator.feature/build.properties b/tdi-studio-se/main/features/org.talend.generator.feature/build.properties new file mode 100644 index 00000000000..64f93a9f0b7 --- /dev/null +++ b/tdi-studio-se/main/features/org.talend.generator.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/tdi-studio-se/main/features/org.talend.generator.feature/feature.xml b/tdi-studio-se/main/features/org.talend.generator.feature/feature.xml new file mode 100644 index 00000000000..e5b1c3c124e --- /dev/null +++ b/tdi-studio-se/main/features/org.talend.generator.feature/feature.xml @@ -0,0 +1,100 @@ + + + + + Complete description about this feature at http://www.talend.com/online/featuresdescription.html#designer-feature + + + + Copyright Talaxie 2006, 2007 + + + + The licence are describe in branding feature + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tdi-studio-se/main/features/org.talend.generator.feature/pom.xml b/tdi-studio-se/main/features/org.talend.generator.feature/pom.xml new file mode 100644 index 00000000000..f3f19254250 --- /dev/null +++ b/tdi-studio-se/main/features/org.talend.generator.feature/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + org.talend.studio + tdi-studio-se + 8.9.0-SNAPSHOT + ../../../ + + org.talend.generator.feature + eclipse-feature + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/.classpath b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/.classpath new file mode 100644 index 00000000000..e19a4455c71 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/.classpath @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/.project b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/.project new file mode 100644 index 00000000000..914954236af --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/.project @@ -0,0 +1,28 @@ + + + org.talaxie.cli.branding.generator + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/META-INF/MANIFEST.MF b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..1c0292d7c90 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/META-INF/MANIFEST.MF @@ -0,0 +1,18 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: CLI Generator branding plug-in +Bundle-SymbolicName: org.talaxie.cli.branding.generator;singleton:=true +Bundle-Version: 8.9.0.qualifier +Bundle-Activator: org.talaxie.cli.branding.generator.Activator +Bundle-Vendor: .Talaxie. +Bundle-Localization: plugin +Require-Bundle: org.eclipse.core.runtime, + org.talend.core.runtime, + org.talend.commons.runtime, + org.talend.designer.core, + org.talend.designer.core.generator, + org.talend.core;bundle-version="[8.9.0,9.0.0)", + org.eclipse.jface +Eclipse-LazyStart: true +Eclipse-BundleShape: dir +Automatic-Module-Name: org.talend.rcp.branding.tos diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/META-INF/eclipse.inf b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/META-INF/eclipse.inf new file mode 100644 index 00000000000..32d8ee1f6ed --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/META-INF/eclipse.inf @@ -0,0 +1 @@ +jarprocessor.exclude.children=true diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/about.ini b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/about.ini new file mode 100644 index 00000000000..e6757ee1d9c --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/about.ini @@ -0,0 +1,27 @@ +# about.ini +# contains information about a feature +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# "%key" are externalized strings defined in about.properties +# This file does not need to be translated. + +# Property "aboutText" contains blurb for "About" dialog (translated) +aboutText=%blurb + +# Property "windowImage" contains path to window icon (16x16) +# needed for primary features only + +# Property "featureImage" contains path to feature image (32x32) +featureImage=icons/appli_32x32.gif + +# Property "aboutImage" contains path to product image (500x330 or 115x164) +# needed for primary features only + +# Property "appName" contains name of the application (not translated) +# needed for primary features only + +# Property "welcomePerspective" contains the id of the perspective in which the +# welcome page is to be opened. +# optional + +# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page +# optional diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/about.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/about.properties new file mode 100644 index 00000000000..6916b9c7537 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/about.properties @@ -0,0 +1,12 @@ +# about.properties +# contains externalized strings for about.ini +# java.io.Properties file (ISO 8859-1 with "\" escapes) +# fill-ins are supplied by about.mappings +# This file should be translated. + +blurb=Talaxie Open Studio\n\ +\n\ +Version: {featureVersion}\n\ +Build id: {0}\n\ +\n\Visit http://www.talend.com + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/build.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/build.properties new file mode 100644 index 00000000000..d59b4036fd2 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/build.properties @@ -0,0 +1,14 @@ +source.. = src/main/java/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + splash.bmp,\ + plugin_customization.ini,\ + plugin.xml,\ + plugin.properties,\ + introContent.xml,\ + content/,\ + about.properties,\ + about.ini,\ + resources/,\ + icons/ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/.eclipseproduct b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/.eclipseproduct new file mode 100644 index 00000000000..a8be0025d7e --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/.eclipseproduct @@ -0,0 +1,3 @@ +name=${product.name} +id=${product.branding.id} +version=${version.full} \ No newline at end of file diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/about.mappings b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/about.mappings new file mode 100644 index 00000000000..12839c73851 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/about.mappings @@ -0,0 +1,4 @@ +0=${buildQualifier} +1=${unqualifiedVersion} +2=${product.name} +3=${product.website} diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/product.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/product.properties new file mode 100644 index 00000000000..9b96053cc63 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/filtered-resources/product.properties @@ -0,0 +1,8 @@ +launcher.prefix=${launcher.prefix} +storage.prefix=${storage.prefix} +product.name=${product.name} +product.branding.platform=${product.branding.platform} +product.branding.id=${product.branding.id} +mac.launcher.info=${mac.launcher.info} +product.website=${product.website} +storage.dir=${storage.dir} diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_16x16.gif b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_16x16.gif new file mode 100644 index 00000000000..748acba3565 Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_16x16.gif differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_16x16.png b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_16x16.png new file mode 100644 index 00000000000..7ed85b0a836 Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_16x16.png differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_24x24.png b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_24x24.png new file mode 100644 index 00000000000..49e66bd63b3 Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_24x24.png differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_32x32.gif b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_32x32.gif new file mode 100644 index 00000000000..83915cf5ee9 Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_32x32.gif differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_32x32.png b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_32x32.png new file mode 100644 index 00000000000..e8ce7ee2f0d Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_32x32.png differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.gif b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.gif new file mode 100644 index 00000000000..cdc125aa2ee Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.gif differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.icns b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.icns new file mode 100644 index 00000000000..0c0593f94d7 Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.icns differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.png b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.png new file mode 100644 index 00000000000..7fdaca277ae Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.png differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.xpm b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.xpm new file mode 100644 index 00000000000..ff68ae0ff6c --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/appli_48x48.xpm @@ -0,0 +1,248 @@ +/* XPM */ +static char *_8a2ba20d6174335f5bf1b00bb8f489eLR5cGIhHh4Yb4Loh[] = { +/* columns rows colors chars-per-pixel */ +"48 48 194 2 ", +" c None", +". c #1D1917", +"X c #211D1E", +"o c #2B1F24", +"O c #1E2A2D", +"+ c #1A2E31", +"@ c #1E2F32", +"# c #212321", +"$ c #262321", +"% c #242223", +"& c #272523", +"* c #232527", +"= c #262424", +"- c #272424", +"; c #272524", +": c #262525", +"> c #262627", +", c #272627", +"< c #282725", +"1 c #272827", +"2 c #22272A", +"3 c #272728", +"4 c #21272D", +"5 c #282529", +"6 c #23282A", +"7 c #252829", +"8 c #262828", +"9 c #272829", +"0 c #25292B", +"q c #26282A", +"w c #26292A", +"e c #27292B", +"r c #23292D", +"t c #232A2D", +"y c #232B2D", +"u c #23292E", +"i c #232A2E", +"p c #25292C", +"a c #26282C", +"s c #252B2C", +"d c #242A2D", +"f c #272B2C", +"g c #262A2D", +"h c #262B2D", +"j c #242A2E", +"k c #252A2E", +"l c #252B2E", +"z c #252A2F", +"x c #242B2F", +"c c #252B2F", +"v c #262A2E", +"b c #272A2E", +"n c #262B2E", +"m c #272B2E", +"M c #262B2F", +"N c #272B2F", +"B c #212C2F", +"V c #222D2E", +"C c #232C2F", +"Z c #252C2F", +"A c #262C2F", +"S c #272C2F", +"D c #282929", +"F c #2B2A29", +"G c #282A2A", +"H c #2A2C2F", +"J c #262B30", +"K c #252C30", +"L c #242D31", +"P c #252D31", +"I c #262C30", +"U c #272C30", +"Y c #262D30", +"T c #272D30", +"R c #262C31", +"E c #272C31", +"W c #262D31", +"Q c #272D31", +"! c #272E31", +"~ c #252C32", +"^ c #272D32", +"/ c #242E32", +"( c #252F32", +") c #252F33", +"_ c #262E32", +"` c #272E32", +"' c #282C30", +"] c #282D30", +"[ c #292D30", +"{ c #282D31", +"} c #282D33", +"| c #282E32", +" . c #263133", +".. c #243034", +"X. c #243136", +"o. c #2A3033", +"O. c #179DF4", +"+. c #179EF5", +"@. c #169EF6", +"#. c #1B9CF3", +"$. c #199EF3", +"%. c #199FF3", +"&. c #1A9EF3", +"*. c #1A9FF3", +"=. c #1A9DF4", +"-. c #199EF5", +";. c #1A9EF4", +":. c #1A9FF4", +">. c #1A9CF6", +",. c #16A1F6", +"<. c #17A1F6", +"1. c #17A0F7", +"2. c #16A2F6", +"3. c #17A6F4", +"4. c #17A7F5", +"5. c #17A4F6", +"6. c #17A6F6", +"7. c #19A0F3", +"8. c #19A1F3", +"9. c #1AA0F3", +"0. c #1AA1F3", +"q. c #1BA1F3", +"w. c #19A2F3", +"e. c #18A0F4", +"r. c #19A0F4", +"t. c #18A1F4", +"y. c #19A1F4", +"u. c #19A1F5", +"i. c #1AA0F4", +"p. c #1AA1F4", +"a. c #1BA1F4", +"s. c #1AA0F5", +"d. c #1AA1F5", +"f. c #18A2F4", +"g. c #19A2F4", +"h. c #18A3F4", +"j. c #19A3F4", +"k. c #19A2F5", +"l. c #18A3F5", +"z. c #1AA2F4", +"x. c #1AA3F5", +"c. c #1BA3F5", +"v. c #19A0F6", +"b. c #18A1F7", +"n. c #1BA1F6", +"m. c #18A2F6", +"M. c #19A2F6", +"N. c #18A3F6", +"B. c #19A3F6", +"V. c #19A3F7", +"C. c #1AA2F6", +"Z. c #1BA2F6", +"A. c #18A4F4", +"S. c #18A5F4", +"D. c #18A4F5", +"F. c #19A4F5", +"G. c #18A6F5", +"H. c #19A4F6", +"J. c #19A6F6", +"K. c #17AAF6", +"L. c #13ADF7", +"P. c #15ACF6", +"I. c #16ADF6", +"U. c #17A3F9", +"Y. c #13A5F8", +"T. c #17A4F9", +"R. c #17A6FA", +"E. c #19A2F8", +"W. c #18A3F8", +"Q. c #19A3F8", +"!. c #19A3F9", +"~. c #19A3FA", +"^. c #19A4F8", +"/. c #1AA7F9", +"(. c #18A4FA", +"). c #19A4FA", +"_. c #19A5FA", +"`. c #18A4FC", +"'. c #18A6FD", +"]. c #18A5FF", +"[. c #18A6FE", +"{. c #19A7FE", +"}. c #18A6FF", +"|. c #17ADFA", +" X c #17AFFB", +".X c #17A9FF", +"XX c #16ADFF", +"oX c #18A8FA", +"OX c #18A8FF", +"+X c #18A9FF", +"@X c #18AAFF", +"#X c #16B0F7", +"$X c #15B7FB", +"%X c #12C4FF", +/* pixels */ +" ; 8 m ", +" & 8 R m ", +" u.u.u.u.u.u.u.u.u.OXOX # m R m ", +" u.u.u.u.u.u.u.u.u.u.u.u.u.u._..X ; R R m ", +" u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.!.XX m R R ", +" G.u.u.u.u.u.u.u.u.u.u.u.8.u.u.u.u.u.u.u.u.u.}. m R R ", +" u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.!. ] R R R ", +" u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u. m R R R ", +" u.u.u.u.u.u.u.u.u.u.u. u.u.u.u.u.u.u.u.u.u.u.u. m R R m ", +" 8.u.u.u.u.u.u.u. u.u.u.u.u.u.u.u.u.!. . R R ] + ", +" $.u.u.u.u.u.u. u.u.u.u.u.u.u.-.|. H R R m ", +" K.u.u.u.u.u.G. u.u.u.u.u.u.u.8. m R R .. ", +" u.u.u.u.u.6. u.u.u.u.u.u.u._. 8 R R m ", +" G.u.u.u.u.,. R m R R R R R R 8.u.u.u.u.u.8. R R R R ", +" O.u.u.u.u.u. Z R R R R R R R R R R R 8.u.u.u.u.u.|. m R R R ", +" u.u.u.u.u. R R R R R R R R R R R R R R m P.u.u.u.u.u.u. R R R ] ", +" u.u.u.$.#X .R R R R R R 8 8 Z R R R R u.u.u.u.u.u. R R R R ", +" u.u.u.u.u. ] R R R R 8 m R R R u.u.u.u.u.u.}. Z R R R ", +" u.u.u.u.6. ] R R R R OX}. R R R 4 u.u.u.u.u.R. m R R R ", +" u.u.u.u. ] R R R R !.u.u.u.u. ] R R u.u.u.u.u.u. R R R J ", +" u.u.u.u. R R R R R u.u.u. R R u.u.u.u.u.u. R R R m ", +"u.u.u.u.u. R R R R R u.$.L. R R u u.u.u.u.u.,. R R R R ", +"u.u.u.u.6. R R R R * _.u.u. R R 8 u.u.u.u.u. R R R R ", +"u.u.u.u.O. R R R R R u.u. m R G ,.u.u.u.u. R R R R ", +",.8.u.u. R R R R m u.u. R R u.u.u.u.u. R R R R ", +"u.u.u.u. R R R R R u.u. m R 6 u.u.u.u.u. R R R R ", +"u.u.u.u. R R R R R u.u. ] R U.u.u.u.u. ] R R R R ", +"u.u.u.u. R R R R R u.u. R R R X u.u.u.u.u. u R R R R ", +" u.u.u.u. R R R R R u.u.u. Z R R R m u.u.u.u.u. R R R R ", +" u.u.u.G. R R R R R V u.u.O. $ u.u.u.u.-.-. R R R R ", +" u.u.u.u. R R R R R R u.8.u.u. oX8.u.u.u.-.P. R R R R V ", +" u.u.u.u. R R R R R R 6.u.u.u.u.u. _.u.u.u.u.u.u.-. R R R R u ", +" u.u.u.R. m R R R R R u u.u.u.u.u.u.u.u.u.u.u.u.u.u.u.u. m R R R m ", +" u.u.u.G. 5 R R R R R R u.u.u.u.u.u.u.u.u.u.u.u. 2 R R R R @ ", +" u.u.u.u. R R R R R R R u.u.u.u.u.u.u.u. R R R R R ] ", +" u.u.u.u. ; R R R R R R J V R R R R R O ", +" Y.8.u.8. Z R R R R R R ] m R R R R R R ", +" 8.u.u.-. o R R R R R R R R u m R R R R R R ", +" u.u.$.$X $ R R R R R R R R m R R R R R R R m o. ", +" u.u.$.%X G R R R R R R R R R R m R R m R R R R R R R R V ", +" u.u.u.-. m R R R R R R R R R R R R R R R R R R R R R R R R R R .. ", +" G.u.u.u. ; R R R R R R R R R R R R R R R R R R R R R R R R ", +" u.u.u. < m R R R R R R R R R R R R R R R R R R R R m ", +" u.u.u.XX 3 m R R R R R R Z R R R R R R R R R R u ", +" u.u._. G 1 m R R R R R R R R R R R R m m ", +" 8.u.u.}. ; ; 8 Z R R R R R R R ", +" u.u.}.}. ", +" G.!.OX " +}; diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/designer.icns b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/designer.icns new file mode 100644 index 00000000000..12f9e978644 Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/designer.icns differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/designer.ico b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/designer.ico new file mode 100644 index 00000000000..756c5457b31 Binary files /dev/null and b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/icons/designer.ico differ diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/introContent.xml b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/introContent.xml new file mode 100644 index 00000000000..c5dff2d66e7 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/introContent.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin.properties new file mode 100644 index 00000000000..bcbb965408a --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin.properties @@ -0,0 +1,3 @@ +productBlurb = {2}\n\nVersion: {1}\nBuild id: {0}\n\n\n(c) Copyright 2026 Talaxie Inc. All rights reserved.\nVisit {3} +productName=Talaxie CLI Generator +Integration=Integration diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin.xml b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin.xml new file mode 100644 index 00000000000..a41ce08b1f4 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_customization.ini b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_customization.ini new file mode 100644 index 00000000000..e644bf6b84e --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_customization.ini @@ -0,0 +1,4 @@ +org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = false +org.eclipse.ui/KEY_CONFIGURATION_ID=org.talend.core.scheme +org.eclipse.m2e.core/eclipse.m2.offline=true +org.eclipse.equinox.p2.ui.sdk.scheduler/enabled=false \ No newline at end of file diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_fr.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_fr.properties new file mode 100644 index 00000000000..4150f47d0f2 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_fr.properties @@ -0,0 +1,3 @@ +productBlurb = {2}\n\nVersion\u00A0: {1}\nID du build\u00A0: {0}\n\n\n(c) Copyright 2026 Talaxie SA. Tous droits r\u00E9serv\u00E9s.\nConsultez {3} +productName=Talaxie CLI Generator +Integration=Int\u00E9gration diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_ja.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_ja.properties new file mode 100644 index 00000000000..3120b7d4e04 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_ja.properties @@ -0,0 +1,3 @@ +productBlurb = {2}\n\n\u30D0\u30FC\u30B8\u30E7\u30F3: {1}\n\u30D3\u30EB\u30C9ID: {0}\n\n\n(c) Copyright 2026 Talaxie Inc. All rights reserved.\n\u30A2\u30AF\u30BB\u30B9\u5148: {3} +productName=Talaxie CLI Generator +Integration=\u30A4\u30F3\u30C6\u30B0\u30EC\u30FC\u30B7\u30E7\u30F3 diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_zh_CN.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_zh_CN.properties new file mode 100644 index 00000000000..30824cd0c25 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/plugin_zh_CN.properties @@ -0,0 +1,3 @@ +productBlurb = {2}\n\n\u7248\u672C: {1}\n\u5185\u90E8\u7248\u672C\u53F7: {0}\n\n\n(c) Copyright 2026 Talaxie Inc. \u4FDD\u7559\u6240\u6709\u6743\u5229\u3002\n\u8BBF\u95EE {3} +productName=Talaxie CLI Generator +Integration=\u96C6\u6210 diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/pom.xml b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/pom.xml new file mode 100644 index 00000000000..5d5f5bd79fe --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + org.talend.studio + tdi-studio-se + 8.9.0-SNAPSHOT + ../../../ + + org.talaxie.cli.branding.generator + eclipse-plugin + + + + TOS_CLI_GEN + ${launcher.prefix} + cli_gen + Talaxie CLI Code Generator + ${project.artifactId} + ${project.artifactId}.product + ${product.name} for Mac OS X, Copyright Talaxie. 2026. All rights reserved. + http://www.deilink.fr\n + + + + + + filtered-resources + true + + + + + org.apache.maven.plugins + maven-deploy-plugin + + + default-deploy + deploy + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-license-artifact + package + + attach-artifact + + + + + ./resources/license.txt + txt + license + + + ./resources/NOTICE.txt + txt + notice + + + ${project.build.outputDirectory}/.eclipseproduct + txt + eclipseproduct + + + + + + + + + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/resources/NOTICE.txt b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/resources/NOTICE.txt new file mode 100644 index 00000000000..ce35fc57d27 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/resources/NOTICE.txt @@ -0,0 +1,586 @@ +Talaxie Open Studio for Data Integration +Copyright (c) 2006-2021 Talaxie Inc. - www.deilink.fr +All rights reserved. + + +This program and the accompanying materials are made available +under the terms of the Apache License, Version 2.0 + + +This product includes software developed at +Talaxie Inc. (http://www.deilink.fr). + + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org). +Licensed under the Apache License Version 2.0. + + +This product includes software developed at +The Eclipse Foundation (http://www.eclipse.org). +Licensed under the Eclipse Public License - v1.0 + + +This product includes software developed at +ASM Helper Minidev. +Licensed under Apache-2.0 + + +This product includes software developed at +AWS SDK Java (https://github.com/aws/aws-sdk-java). +Licensed under Apache-2.0 +(C) 2016, Amazon Web Services + +This product includes software developed at +Amazon Aws Libraries. +Licensed under Apache-2.0 + + +This product includes software developed at +Amazon SDK for Java (https://aws.amazon.com/sdkforjava). +Licensed under Apache-2.0 + + +This product includes software developed at +Amazon-S3 (https://github.com/aws/aws-sdk-java/blob/master/LICENSE.txt). +Licensed under Apache-2.0 + + +This product includes software developed at +AtInject (https://code.google.com/p/atinject/). +Licensed under Apache-2.0 + + +This product includes software developed at +Avro MapReduce. +Licensed under Apache-2.0 + + +This product includes software developed at +Box Java SDK (V2) (https://github.com/box/box-java-sdk-v2/blob/master/LICENSE). +Licensed under Apache-2.0 + + +This product includes software developed at +CSV Tools. +Licensed under Apache-2.0 + + +This product includes software developed at +Castor. +Licensed under Apache-2.0 + + +This product includes software developed at +Ehcache. +Licensed under Apache-2.0 + + +This product includes software developed at +Ezmorph. +Licensed under Apache-2.0 + + +This product includes software developed at +Google APIs Client Library for Java. +Licensed under Apache-2.0 + + +This product includes software developed at +Google Gson (https://code.google.com/p/google-gson/). +Licensed under Apache-2.0 + + +This product includes software developed at +Groovy. +Licensed under Apache-2.0 + + +This product includes software developed at +Guava (https://github.com/google/guava). +Licensed under Apache-2.0 +Copyright (C) 2010 The Guava Authors + +This product includes software developed at +Guava (https://github.com/google/guava/blob/master/COPYING). +Licensed under Apache-2.0 + + +This product includes software developed at +Guava: Google Core Libraries for Java (https://code.google.com/p/guava-libraries/). +Licensed under Apache-2.0 + + +This product includes software developed at +Guava: Google Core Libraries for Java 1.6+ (https://code.google.com/p/guava-libraries/). +Licensed under Apache-2.0 + + +This product includes software developed at +Guava: Google Core Libraries for Java 1.6+. +Licensed under Apache-2.0 + + +This product includes software developed at +Hadoop Libraries. +Licensed under Apache-2.0 + + +This product includes software developed at +Hadoop Libraries (Retrieved from CDH3u0. LICENSE.txt explains that Zookeeper is distributed under Apache License 2.0). +Licensed under Apache-2.0 + + +This product includes software developed at +Ini4j. +Licensed under Apache-2.0 + + +This product includes software developed at +JClouds. +Licensed under Apache-2.0 + + +This product includes software developed at +Jackcess (http://jackcess.sourceforge.net/). +Licensed under Apache-2.0 + + +This product includes software developed at +Jackson. +Licensed under Apache-2.0 + + +This product includes software developed at +Jackson JSON Processor (http://wiki.fasterxml.com/JacksonLicensing). +Licensed under Apache-2.0 +Copyright (C) 2012-2013 FasterXML. + +This product includes software developed at +Jackson JSON processor. +Licensed under Apache-2.0 + + +This product includes software developed at +Jackson Java JSON-processor. +Licensed under Apache-2.0 +Copyright ©2009 FasterXML, LLC + +This product includes software developed at +Jackson Java JSON-processor. +Licensed under Apache-2.0 + + +This product includes software developed at +Jackson Libraries. +Licensed under Apache-2.0 + + +This product includes software developed at +Jasypt : Java Simplified Encryption. +Licensed under Apache-2.0 + + +This product includes software developed at +JetS3t. +Licensed under Apache-2.0 + + +This product includes software developed at +Jettison. +Licensed under Apache-2.0 + + +This product includes software developed at +Joda Time. +Licensed under Apache-2.0 + + +This product includes software developed at +Joda-Time (http://www.joda.org/joda-time/). +Licensed under Apache-2.0 +Copyright ©2002-2016 Joda.org + +This product includes software developed at +Joda-Time (http://www.joda.org/joda-time/). +Licensed under Apache-2.0 +Copyright ©2002-2015 Joda.org + +This product includes software developed at +Joda-Time. +Licensed under Apache-2.0 + + +This product includes software developed at +Json Simple (https://code.google.com/p/json-simple/). +Licensed under Apache-2.0 + + +This product includes software developed at +Json-Simple (https://github.com/fangyidong/json-simple). +Licensed under Apache-2.0 +Yidong Fang +Chris Nokleberg +Dave Hughes + +This product includes software developed at +Lucene Core. +Licensed under Apache-2.0 + + +This product includes software developed at +MarkLogic Java Client API. +Licensed under Apache-2.0 +Copyright 2012-2015 MarkLogic Corporation + +This product includes software developed at +Microsoft Azure SDK for Java (https://github.com/Azure/azure-sdk-for-java). +Licensed under Apache-2.0 + + +This product includes software developed at +OpenSAML (https://wiki.shibboleth.net/confluence/display/OpenSAML/Home/). +Licensed under Apache-2.0 + + +This product includes software developed at +Plexus (https://codehaus-plexus.github.io/index.html). +Licensed under Apache-2.0 + + +This product includes software developed at +Resty : A simple HTTP REST client for Java. +Licensed under Apache-2.0 + + +This product includes software developed at +Rocoto (http://99soft.github.io/rocoto/index.html +). +Licensed under Apache-2.0 + + +This product includes software developed at +Sisu Guice (https://github.com/sonatype/sisu-guice). +Licensed under Apache-2.0 +Copyright (c) 2006 Google, Inc. All rights reserved. + +This product includes software developed at +Sonatype Plexus (https://github.com/sonatype?utf8=%E2%9C%93&query=plexus). +Licensed under Apache-2.0 +Copyright The Codehaus Foundation. + +This product includes software developed at +Spring. +Licensed under Apache-2.0 +Pivotal Software Inc. / The original author or authors + +This product includes software developed at +SshJ (https://github.com/shikhar/sshj/blob/master/LICENSE). +Licensed under Apache-2.0 + + +This product includes software developed at +StAX API. +Licensed under Apache-2.0 + + +This product includes software developed at +StAXON - JSON via StAX (https://github.com/beckchr/staxon/). +Licensed under Apache-2.0 + + +This product includes software developed at +Talend ESB Libraries. +Licensed under Apache-2.0 +Talend + +This product includes software developed at +WSS4J. +Licensed under Apache-2.0 + + +This product includes software developed at +Woden. +Licensed under Apache-2.0 + + +This product includes software developed at +Woodstox. +Licensed under Apache-2.0 + + +This product includes software developed at +XMLSchema. +Licensed under Apache-2.0 + + +This product includes software developed at +Xerces2 Java Parser. +Licensed under Apache-2.0 + + +This product includes software developed at +XmlBeans. +Licensed under Apache-2.0 + + +This product includes software developed at +XmlSchema Core. +Licensed under Apache-2.0 + + +This product includes software developed at +Zip4J. +Licensed under Apache-2.0 + + +This product includes software developed at +google-gson. +Licensed under Apache-2.0 + + +This product includes software developed at +google-guice (https://code.google.com/p/google-guice/). +Licensed under Apache-2.0 + + +This product includes software developed at +json-path (https://code.google.com/p/json-path/). +Licensed under Apache-2.0 + + +This product includes software developed at +json-smart. +Licensed under Apache-2.0 + + +This product includes software developed at +Jetty (http://www.eclipse.org/jetty/). +Licensed under Apache-2.0;EPL-1.0 +Copyright (C) 2016 The Eclipse Foundation. + +This product includes software developed at +Jetty. +Licensed under Apache-2.0;EPL-1.0 + + +This product includes software developed at +Jetty (http://www.eclipse.org/jetty/licenses.php). +Licensed under Apache-2.0;EPL-1.0 + + +This product includes software developed at +Jackson Java JSON-processor. +Licensed under Apache-2.0;LGPL-2.1 + + +This product includes software developed at +Woodstox : High-performance XML processor (http://woodstox.codehaus.org/ http://woodstox.codehaus.org/Download). +Licensed under Apache-2.0;LGPL-2.1 + + +This product includes software developed at +Woodstox : High-performance XML processor (http://woodstox.codehaus.org). +Licensed under Apache-2.0;LGPL-2.1 + + +This product includes software developed at +Cryptacular. +Licensed under Apache-2.0;LGPL-3.0 + + +This product includes software developed at +SqliteJDBC. +Licensed under BSD-2-Clause + + +This product includes software developed at +ASM. +Licensed under BSD-3-Clause +INRIA + +This product includes software developed at +AntlR. +Licensed under BSD-3-Clause + + +This product includes software developed at +Antlr 3 Runtime. +Licensed under BSD-3-Clause + + +This product includes software developed at +Force.com Web Service Connector (WSC). +Licensed under BSD-3-Clause + + +This product includes software developed at +Ganymed SSH-2 for Java. +Licensed under BSD-3-Clause + + +This product includes software developed at +HsqlDB. +Licensed under BSD-3-Clause + + +This product includes software developed at +Jaxen. +Licensed under BSD-3-Clause + + +This product includes software developed at +Paraccel JDBC Driver. +Licensed under BSD-3-Clause + + +This product includes software developed at +PostgreSQL JDBC Driver. +Licensed under BSD-3-Clause + + +This product includes software developed at +Salesforce.com (http://www.force.com). +Licensed under BSD-3-Clause +Copyright (c) 2005-2013, salesforce.com + +This product includes software developed at +Scala (http://www.scala-lang.org/). +Licensed under BSD-3-Clause +Copyright (c) 2002-2016 EPFL; Copyright (c) 2011-2016 Lightbend, Inc. (formerly Typesafe, Inc.) + +This product includes software developed at +XStream (http://xstream.codehaus.org/license.html). +Licensed under BSD-3-Clause + + +This product includes software developed at +XStream. +Licensed under BSD-3-Clause + + +This product includes software developed at +XStream Core. +Licensed under BSD-3-Clause + + +This product includes software developed at +jsr-305 (JSR 305: Annotations for Software Defect Detection in Java;https://code.google.com/p/jsr-305/). +Licensed under BSD-3-Clause + + +This product includes software developed at +Java API for RESTful Services. +Licensed under CDDL-1.1 + + +This product includes software developed at +Java API for RESTful Services (http://grepcode.com/snapshot/repo1.maven.org/maven2/javax.ws.rs/javax.ws.rs-api/2.0-m10). +Licensed under CDDL-1.1 + + +This product includes software developed at +Jaxb. +Licensed under CDDL-1.1;GPL-2.0-with-classpath-exception + + +This product includes software developed at +WSDL4J. +Licensed under CPL-1.0 + + +This product includes software developed at +Aether (http://www.eclipse.org/aether/). +Licensed under EPL-1.0 +Copyright (c) 2010, 2014 Sonatype, Inc. + +This product includes software developed at +Eclipse Sisu. +Licensed under EPL-1.0 +Copyright (c) 2010, 2015 Sonatype, Inc. + +This product includes software developed at +H2 Embedded Database and JDBC Driver (H2 is EPL 1.0 !). +Licensed under EPL-1.0 + + +This product includes software developed at +Jetty. +Licensed under EPL-1.0 +Copyright (c) ${copyright-range} Mort Bay Consulting Pty. Ltd. + +This product includes software developed at +Mondrian. +Licensed under EPL-1.0 + + +This product includes software developed at +SWTChart. +Licensed under EPL-1.0 + + +This product includes software developed at +Logback. +Licensed under EPL-1.0;LGPL-2.1 + + +This product includes software developed at +Java Json (http://www.json.org/license.html). +Licensed under Json + + +This product includes software developed at +org-json-java. +Licensed under Json + + +This product includes software developed at +AOP Alliance (Java/J2EE AOP standards) (http://aopalliance.sourceforge.net/). +Licensed under Public Domain + + +This product includes software developed at +Simple API for CSS. +Licensed under W3C + + +This product includes software developed at +BCProv. +Licensed under X11 +Copyright (c) 2000 - 2016 The Legion of the Bouncy Castle Inc. (https://www.bouncycastle.org) + +This product includes software developed at +BouncyCastle. +Licensed under X11 + + +This product includes software developed at +SL4J. +Licensed under X11 + + +This product includes software developed at +SL4J (http://www.slf4j.org/license.html). +Licensed under X11 + + +This product includes software developed at +SL4J. +Licensed under X11 +Copyright (c) 2004-2013 QOS.ch + +This product includes software developed at +Simple Logging Facade for Java (http://www.slf4j.org/license.html). +Licensed under X11 + + +This product includes software developed at +Simple Logging Facade for Java. +Licensed under X11 + + +This product includes software developed at +dropbox-sdk-java : Java library for the Dropbox Core API. +Licensed under X11 + + diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/resources/license.txt b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/resources/license.txt new file mode 100644 index 00000000000..da31897134f --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/resources/license.txt @@ -0,0 +1,13 @@ +Copyright (c) 2006-2021 Talaxie Inc. - www.deilink.fr + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages.properties new file mode 100644 index 00000000000..33a033dfad6 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages.properties @@ -0,0 +1,5 @@ +corporationname=Talaxie +loginimagehigh=/icons/login_h.png +loginimageleft=icons/login_v.jpg +TosBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2006-2015, Talaxie Inc.\n//\n// This source code has been automatically generated by_{0}\n// / Licensed under the Apache License, Version 2.0 (the "License");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an "AS IS" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n +TosBrandingService_routine_license_header_content=Copyright (c) 2006-2015, Talaxie Inc.\n//\n// This source code has been automatically generated by_{0}\n// / Licensed under the Apache License, Version 2.0 (the "License");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an "AS IS" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License. diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_fr.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_fr.properties new file mode 100644 index 00000000000..f7066ebd4ec --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_fr.properties @@ -0,0 +1,5 @@ +corporationname=Talaxie +loginimagehigh=/icons/login_h.png +loginimageleft=icons/login_v.jpg +TosBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2006-2015, Talaxie SA.\n//\n// Le code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// / Soumis \u00E0 la Licence Apache, Version 2.0 (la "Licence").\n// votre utilisation de ce fichier doit respecter les termes de la Licence.\n// Vous pouvez obtenir une copie de la Licence sur\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Sauf lorsqu'explicitement pr\u00E9vu par la loi en vigueur ou accept\u00E9 par \u00E9crit, le logiciel\n// distribu\u00E9 sous la Licence est distribu\u00E9 "TEL QUEL",\n// SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite.\n// Consultez la Licence pour conna\u00EEtre la terminologie sp\u00E9cifique r\u00E9gissant les autorisations et\n// les limites pr\u00E9vues par la Licence.\n\n +TosBrandingService_routine_license_header_content=Copyright (c) 2006-2015, Talaxie SA.\n//\n// Le code source a \u00E9t\u00E9 automatiquement g\u00E9n\u00E9r\u00E9 par_{0}\n// / Soumis \u00E0 la Licence Apache, Version 2.0 (la "Licence").\n// votre utilisation de ce fichier doit respecter les termes de la Licence.\n// Vous pouvez obtenir une copie de la Licence sur\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// Sauf lorsqu'explicitement pr\u00E9vu par la loi en vigueur ou accept\u00E9 par \u00E9crit, le logiciel\n// distribu\u00E9 sous la Licence est distribu\u00E9 "TEL QUEL",\n// SANS GARANTIE OU CONDITION D'AUCUNE SORTE, expresse ou implicite.\n// Consultez la Licence pour conna\u00EEtre la terminologie sp\u00E9cifique r\u00E9gissant les autorisations et\n// les limites pr\u00E9vues par la Licence. diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_ja.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_ja.properties new file mode 100644 index 00000000000..009395c8078 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_ja.properties @@ -0,0 +1,5 @@ +corporationname=Talaxie +loginimagehigh=/icons/login_h.png +loginimageleft=icons/login_v.jpg +TosBrandingService_job_license_header_content=// ============================================================================\n//\n// Copyright (c) 2006-2015, Talaxie Inc.\n//\n// \u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// / Apache License\u3001\u30D0\u30FC\u30B8\u30E7\u30F32.0 (\u4EE5\u4E0B\u300C\u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u300D\u3068\u3044\u3046)\u306E\u4E0B\u3067\u30E9\u30A4\u30BB\u30F3\u30B9\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u9075\u5B88\u305B\u305A\u306B\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u30B3\u30D4\u30FC\u306F\u6B21\u306E\u30B5\u30A4\u30C8\u3067\u53D6\u5F97\u3067\u304D\u307E\u3059:\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// \u5F53\u8A72\u306E\u6CD5\u5F8B\u306B\u3088\u308B\u8981\u6C42\u307E\u305F\u306F\u66F8\u9762\u3067\u306E\u540C\u610F\u304C\u306A\u3044\u9650\u308A\u3001\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u4E0B\u3067\u914D\u5E03\u3055\u308C\u308B\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u306F\u3001\u300C\u73FE\u72B6\u3069\u304A\u308A\u300D\u306B\u3001\n// \u660E\u793A\u307E\u305F\u306F\u6697\u793A\u306B\u304B\u304B\u308F\u3089\u305A\u3001\u3042\u3089\u3086\u308B\u4FDD\u8A3C\u3042\u308B\u3044\u306F\u6761\u4EF6\u306A\u3057\u3067\u914D\u5E03\u3055\u308C\u307E\u3059\u3002\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u4E0B\u3067\u3001\u8A31\u53EF\u304A\u3088\u3073\u5236\u9650\u3092\u9069\u7528\u3059\u308B\n// \u7279\u5B9A\u306E\u8A00\u8A9E\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002\n\n +TosBrandingService_routine_license_header_content=Copyright (c) 2006-2015, Talaxie Inc.\n//\n// \u3053\u306E\u30BD\u30FC\u30B9\u30B3\u30FC\u30C9\u306F{0}\u306B\u3088\u3063\u3066\u81EA\u52D5\u7684\u306B\u751F\u6210\u3055\u308C\u307E\u3057\u305F\n// / Apache License\u3001\u30D0\u30FC\u30B8\u30E7\u30F32.0 (\u4EE5\u4E0B\u300C\u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u300D\u3068\u3044\u3046)\u306E\u4E0B\u3067\u30E9\u30A4\u30BB\u30F3\u30B9\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u9075\u5B88\u305B\u305A\u306B\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u30B3\u30D4\u30FC\u306F\u6B21\u306E\u30B5\u30A4\u30C8\u3067\u53D6\u5F97\u3067\u304D\u307E\u3059:\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// \u5F53\u8A72\u306E\u6CD5\u5F8B\u306B\u3088\u308B\u8981\u6C42\u307E\u305F\u306F\u66F8\u9762\u3067\u306E\u540C\u610F\u304C\u306A\u3044\u9650\u308A\u3001\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u4E0B\u3067\u914D\u5E03\u3055\u308C\u308B\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u306F\u3001\u300C\u73FE\u72B6\u3069\u304A\u308A\u300D\u306B\u3001\n// \u660E\u793A\u307E\u305F\u306F\u6697\u793A\u306B\u304B\u304B\u308F\u3089\u305A\u3001\u3042\u3089\u3086\u308B\u4FDD\u8A3C\u3042\u308B\u3044\u306F\u6761\u4EF6\u306A\u3057\u3067\u914D\u5E03\u3055\u308C\u307E\u3059\u3002\n// \u672C\u30E9\u30A4\u30BB\u30F3\u30B9\u306E\u4E0B\u3067\u3001\u8A31\u53EF\u304A\u3088\u3073\u5236\u9650\u3092\u9069\u7528\u3059\u308B\n// \u7279\u5B9A\u306E\u8A00\u8A9E\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002 diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_zh_CN.properties b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_zh_CN.properties new file mode 100644 index 00000000000..90991329b4b --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/messages_zh_CN.properties @@ -0,0 +1,5 @@ +corporationname=Talaxie +loginimagehigh=/icons/login_h.png +loginimageleft=icons/login_v.jpg +TosBrandingService_job_license_header_content=// ============================================================================\n//\n// \u7248\u6743\u6240\u6709 (c) 2006-2015, Talaxie Inc.\n//\n// \u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0} \u81EA\u52A8\u751F\u6210\n// / \u6839\u636E Apache \u8BB8\u53EF\u8BC1 2.0 \u7248 (\u201C\u8BB8\u53EF\u8BC1\u201D) \u6388\u4E88\u8BB8\u53EF\uFF1B\n// \u9664\u975E\u7B26\u5408\u8BB8\u53EF\u8BC1\u8981\u6C42\uFF0C\u5426\u5219\u60A8\u4E0D\u5F97\u4F7F\u7528\u6B64\u8F6F\u4EF6\u3002\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE\u6B64\u7F51\u9875\u83B7\u53D6\u8BB8\u53EF\u8BC1\u7684\u526F\u672C\uFF1A\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// \u9664\u975E\u9002\u7528\u6CD5\u5F8B\u8981\u6C42\u6216\u4E66\u9762\u540C\u610F\uFF0C\n// \u5426\u5219\u6839\u636E\u8BB8\u53EF\u8BC1\u5206\u53D1\u7684\u8F6F\u4EF6\u987B\u6309\u201C\u539F\u6837\u201D\u63D0\u4F9B\uFF0C\u4E14\u4E0D\u9644\u5E26\u4EFB\u4F55\u660E\u793A\u6216\u6697\u793A\u7684\u62C5\u4FDD\u6216\u6761\u4EF6\uFF0C\n// \u4E14\u4E0D\u9644\u5E26\u4EFB\u4F55\u660E\u793A\u6216\u6697\u793A\u7684\u62C5\u4FDD\u6216\u6761\u4EF6\u3002\n// \u8BF7\u53C2\u9605\u8BB8\u53EF\u8BC1\u4E86\u89E3\u6709\u5173\u8BB8\u53EF\u8BC1\u4E0B\u5177\u4F53\u7684\u6743\u9650\u548C\n// \u9650\u5236\u89C4\u5B9A\u3002\n\n +TosBrandingService_routine_license_header_content=\u7248\u6743\u6240\u6709 (c) 2006-2015, Talaxie Inc.\n//\n// \u6B64\u6E90\u4EE3\u7801\u5DF2\u7531_{0} \u81EA\u52A8\u751F\u6210\n// / \u6839\u636E Apache \u8BB8\u53EF\u8BC1 2.0 \u7248 (\u201C\u8BB8\u53EF\u8BC1\u201D) \u6388\u4E88\u8BB8\u53EF\uFF1B\n// \u9664\u975E\u7B26\u5408\u8BB8\u53EF\u8BC1\u8981\u6C42\uFF0C\u5426\u5219\u60A8\u4E0D\u5F97\u4F7F\u7528\u6B64\u8F6F\u4EF6\u3002\n// \u60A8\u53EF\u4EE5\u8BBF\u95EE\u6B64\u7F51\u9875\u83B7\u53D6\u8BB8\u53EF\u8BC1\u7684\u526F\u672C\uFF1A\n// http://www.apache.org/licenses/LICENSE-2.0\n// \n// \u9664\u975E\u9002\u7528\u6CD5\u5F8B\u8981\u6C42\u6216\u4E66\u9762\u540C\u610F\uFF0C\n// \u5426\u5219\u6839\u636E\u8BB8\u53EF\u8BC1\u5206\u53D1\u7684\u8F6F\u4EF6\u987B\u6309\u201C\u539F\u6837\u201D\u63D0\u4F9B\uFF0C\u4E14\u4E0D\u9644\u5E26\u4EFB\u4F55\u660E\u793A\u6216\u6697\u793A\u7684\u62C5\u4FDD\u6216\u6761\u4EF6\uFF0C\n// \u4E14\u4E0D\u9644\u5E26\u4EFB\u4F55\u660E\u793A\u6216\u6697\u793A\u7684\u62C5\u4FDD\u6216\u6761\u4EF6\u3002\n// \u8BF7\u53C2\u9605\u8BB8\u53EF\u8BC1\u4E86\u89E3\u6709\u5173\u8BB8\u53EF\u8BC1\u4E0B\u5177\u4F53\u7684\u6743\u9650\u548C\n// \u8BF7\u53C2\u9605\u8BB8\u53EF\u8BC1\u3002 diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/Activator.java b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/Activator.java new file mode 100644 index 00000000000..ede8180510c --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/Activator.java @@ -0,0 +1,52 @@ +package org.talaxie.cli.branding.generator; + +import org.eclipse.core.runtime.Plugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends Plugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.talaxie.cli.branding.generator"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + plugin = this; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/CliBrandingService.java b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/CliBrandingService.java new file mode 100644 index 00000000000..a8b261d9df5 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/CliBrandingService.java @@ -0,0 +1,85 @@ +package org.talaxie.cli.branding.generator; + +import java.io.IOException; +import java.net.URL; + +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.resource.ImageDescriptor; +import org.osgi.framework.Bundle; +import org.talaxie.cli.branding.generator.i18n.Messages; +import org.talend.core.branding.AbstractTalendBrandingService; +import org.talend.core.ui.branding.IBrandingConfiguration; + +public class CliBrandingService extends AbstractTalendBrandingService { + + @Override + public String getStartingBrowserId() { + // won't show the starting page + return null; + } + + @Override + public String getShortProductName() { + return getProductName(); + } + + @Override + public String getCorporationName() { + return Messages.getString("corporationname"); //$NON-NLS-1$ + } + + @Override + public ImageDescriptor getLoginHImage() { + return null; + } + + @Override + public ImageDescriptor getLoginVImage() { + return null; + } + + @Override + public URL getLicenseFile() throws IOException { + final Bundle b = Platform.getBundle(Activator.PLUGIN_ID); + final URL url = FileLocator.toFileURL(FileLocator.find(b, new Path("resources/license.txt"), null)); //$NON-NLS-1$ + return url; + } + + @Override + public IBrandingConfiguration getBrandingConfiguration() { + return null; + } + + @Override + public String getAcronym() { + return "tos_cli_gen"; + } + + @Override + public String getJobLicenseHeader(String version) { + return Messages.getString("TosBrandingService_job_license_header_content", this.getFullProductName(), version); + } + + @Override + public String getRoutineLicenseHeader(String version) { + return Messages.getString("TosBrandingService_routine_license_header_content", this.getFullProductName(), + version); + } + + @Override + public String getProductName() { + return "Talaxie CLI Generator"; + } + + @Override + public String getOptionName() { + return ""; + } + + @Override + public String getUserManuals() { + return "DI"; + } +} diff --git a/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/i18n/Messages.java b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/i18n/Messages.java new file mode 100644 index 00000000000..1b4b8594ad2 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talaxie.cli.branding.generator/src/main/java/org/talaxie/cli/branding/generator/i18n/Messages.java @@ -0,0 +1,53 @@ +// ============================================================================ +// +// Copyright (C) 2006-2021 Talaxie Inc. - www.deilink.fr +// +// This source code is available under agreement available at +// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt +// +// You should have received a copy of the agreement +// along with this program; if not, write to Talaxie SA +// 9 rue Pages 92150 Suresnes, France +// +// ============================================================================ +package org.talaxie.cli.branding.generator.i18n; + +import java.util.ResourceBundle; + +import org.talaxie.cli.branding.generator.Activator; +import org.talend.commons.i18n.MessagesCore; + +/** + * Default implementation of MessageCore from org.talend.commons plug-in. + * + */ +public class Messages extends MessagesCore { + + private static final String BUNDLE_NAME = "messages"; //$NON-NLS-1$ + + + private static ResourceBundle resourceBundle = ResourceBundle.getBundle(BUNDLE_NAME); + + /** + * Returns the i18n formatted message for key in the class bundle. + * + * @param key - the key for the desired string + * @return the string for the given key in the class resource bundle + * @see MessagesCore#getString(String, ResourceBundle) + */ + public static String getString(String key) { + return getString(key, Activator.PLUGIN_ID, resourceBundle); + } + + /** + * Returns the i18n formatted message for key and args in the specified bundle. + * + * @param key - the key for the desired string + * @param args - arg to include in the string + * @return the string for the given key in the given resource bundle + * @see MessagesCore#getString(String, ResourceBundle, Object[]) + */ + public static String getString(String key, Object... args) { + return MessagesCore.getString(key, Activator.PLUGIN_ID, resourceBundle, args); + } +} diff --git a/tdi-studio-se/main/plugins/org.talend.designer.codegen/src/main/java/org/talend/designer/codegen/components/model/ComponentsFactory.java b/tdi-studio-se/main/plugins/org.talend.designer.codegen/src/main/java/org/talend/designer/codegen/components/model/ComponentsFactory.java index 97f651476ab..252d0ffbcd4 100644 --- a/tdi-studio-se/main/plugins/org.talend.designer.codegen/src/main/java/org/talend/designer/codegen/components/model/ComponentsFactory.java +++ b/tdi-studio-se/main/plugins/org.talend.designer.codegen/src/main/java/org/talend/designer/codegen/components/model/ComponentsFactory.java @@ -234,13 +234,15 @@ protected void initComponentNameMap() { if (StringUtils.isEmpty(componentName)) { continue; } + var tckJdbcType = ITCKUIService.get().getTCKJDBCType(); + String tckJdbcLabel = tckJdbcType == null ? null : tckJdbcType.getLabel(); if (IGenericService.getService().isTcompv0(component) && (UnifiedComponentUtil.isAdditionalJDBCComponent(component.getName()) - || component.getName().contains(ITCKUIService.get().getTCKJDBCType().getLabel()))) { + || (tckJdbcLabel != null && component.getName().contains(tckJdbcLabel)))) { continue; } String componentNameLowerCase = componentName.toLowerCase(); - if (componentNameLowerCase.startsWith(ITCKUIService.get().getTCKJDBCType().getLabel().toLowerCase())) { + if (tckJdbcLabel != null && componentNameLowerCase.startsWith(tckJdbcLabel.toLowerCase())) { componentNameLowerCase = "t" + componentNameLowerCase; } Map> map = componentNameMap.get(componentNameLowerCase); diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.classpath b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.classpath new file mode 100644 index 00000000000..0aa1aa099fb --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.project b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.project new file mode 100644 index 00000000000..de3988e2c8b --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.project @@ -0,0 +1,28 @@ + + + org.talend.designer.core.generator + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.settings/org.eclipse.core.resources.prefs b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..4824b802631 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.settings/org.eclipse.jdt.core.prefs b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..a092867c450 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=21 diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/META-INF/MANIFEST.MF b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..7edc5822f25 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Code Generator Plug-in +Bundle-SymbolicName: org.talend.designer.core.generator;singleton:=true +Bundle-Vendor: Talaxie +Bundle-Version: 8.9.0.qualifier +Export-Package: org.talend.designer.core.generator +Require-Bundle: org.eclipse.equinox.app, + org.eclipse.core.jobs, + org.eclipse.core.runtime, + org.talend.commons.runtime, + org.eclipse.emf.common, + org.talend.core.repository, + org.eclipse.emf.ecore, + org.talend.core, + org.talend.core.runtime, + org.talend.model, + org.talend.designer.core, + org.talend.repository.localprovider, + org.eclipse.core.resources, + org.talend.repository, + org.talend.designer.maven +Automatic-Module-Name: org.talend.designer.core.generator +Bundle-RequiredExecutionEnvironment: JavaSE-21 diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/build.properties b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/build.properties new file mode 100644 index 00000000000..6f20375d6c7 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/build.properties @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/plugin.xml b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/plugin.xml new file mode 100644 index 00000000000..5182e079249 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/plugin.xml @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/pom.xml b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/pom.xml new file mode 100644 index 00000000000..30b8b716b82 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/pom.xml @@ -0,0 +1,12 @@ + + + 4.0.0 + + org.talend.studio + tdi-studio-se + 8.9.0-SNAPSHOT + ../../../ + + org.talend.designer.core.generator + eclipse-plugin + diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core.generator/src/org/talend/designer/core/generator/CodeGeneratorApplication.java b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/src/org/talend/designer/core/generator/CodeGeneratorApplication.java new file mode 100644 index 00000000000..252db4f43c7 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core.generator/src/org/talend/designer/core/generator/CodeGeneratorApplication.java @@ -0,0 +1,235 @@ +package org.talend.designer.core.generator; + +import java.io.File; +import java.util.HashMap; +import java.util.Optional; +import java.util.stream.Stream; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IWorkspace; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.core.runtime.Platform; +import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.emf.common.util.URI; +import org.eclipse.equinox.app.IApplication; +import org.eclipse.equinox.app.IApplicationContext; +import org.talend.commons.CommonsPlugin; +import org.talend.commons.exception.ExceptionHandler; +import org.talend.core.CorePlugin; +import org.talend.core.GlobalServiceRegister; +import org.talend.core.ICoreService; +import org.talend.core.context.Context; +import org.talend.core.context.RepositoryContext; +import org.talend.core.model.general.Project; +import org.talend.core.model.process.IProcess; +import org.talend.core.model.properties.ProcessItem; +import org.talend.core.model.properties.Property; +import org.talend.core.repository.model.ProxyRepositoryFactory; +import org.talend.core.repository.model.RepositoryFactoryProvider; +import org.talend.core.repository.utils.TalendResourceSet; +import org.talend.core.runtime.CoreRuntimePlugin; +import org.talend.core.runtime.util.URIHelper; +import org.talend.core.ui.branding.IBrandingService; +import org.talend.designer.codegen.ICodeGeneratorService; +import org.talend.designer.maven.tools.AggregatorPomsHelper; +import org.talend.repository.ProjectManager; +import org.talend.repository.ui.login.LoginHelper; + +/** + * Generates code for the process which URI is provided as argument. + */ +public class CodeGeneratorApplication implements IApplication { + + /** + * Fails the application with an error message and usage reminder. + * + * @param message the error message to print + */ + private Integer fail(String message) { + System.err.println(message); + printUsage(); + return IApplication.EXIT_OK; + } + + @Override + public Object start(IApplicationContext context) throws Exception { + // run without a Workbench, so services take their non-UI code paths + CommonsPlugin.setHeadless(true); + // non-interactive poms handling, as for a CI build + System.setProperty("ci.mode", "true"); + // generation needs only the source; component runtime jars are resolved by the downstream build + System.setProperty("skip_missing_jars", "true"); + // get the process URI from the application arguments + String[] args = (String[]) context.getArguments().get(IApplicationContext.APPLICATION_ARGS); + if (args == null || args.length == 0) { + return fail("No process path provided as argument."); + } + + ensureRepositoryFactoryProvider(); + // register project folders found in the workspace dir (a fresh checkout is not yet imported) + importWorkspaceProjects(); + // check workspace location is an existing workspace + var wsProjects = ProxyRepositoryFactory.getInstance().readProject(); + if (wsProjects.length == 0) { + return fail("The workspace provided does not contain any Talaxie project: " + + Platform.getInstanceLocation().getURL().getPath()); + } + + // check process path argument points to an existing file in workspace + var path = args[0]; + URI uri = URI.createPlatformResourceURI(path, true); + var rset = new TalendResourceSet(); + if (!rset.getURIConverter().exists(uri, null)) { + return fail("The process path provided as argument does not point an existing file: " + path); + } + + // load the ProcessItem before the poms/generation steps, which rely on the current project + var resource = rset.getResource(uri, true); + var property = resource.getContents().stream().filter(Property.class::isInstance).map(Property.class::cast) + .findFirst(); + if (!property.isPresent()) { + return fail("The process path provided as argument does not point to a valid properties file: " + + uri.toFileString()); + } + var processItemOpt = property.map(Property::getItem).filter(ProcessItem.class::isInstance) + .map(ProcessItem.class::cast); + if (!processItemOpt.isPresent()) { + return fail("The process path provided as argument points to a properties file which property does not " + + "point to a ProcessItem: " + uri.toFileString()); + } + ProcessItem processItem = processItemOpt.get(); + ensureRepositoryContextProject(processItem, wsProjects); + + // initialize the JET code-generation templates (the GUI does this at logon) + Job templateInit = GlobalServiceRegister.getDefault().getService(ICodeGeneratorService.class) + .initializeTemplates(); + templateInit.schedule(); + templateInit.join(); + + // sync routines/beans source so the generated job's `import routines.*` resolve + ICoreService coreService = GlobalServiceRegister.getDefault().getService(ICoreService.class); + coreService.syncAllRoutines(); + coreService.syncAllBeans(); + + // write the project poms (root code.Master + code + job) without forking Maven + String techLabel = ProjectManager.getInstance().getCurrentProject().getTechnicalLabel(); + new AggregatorPomsHelper(techLabel).syncAllPomsNoBuild(new NullProgressMonitor()); + + IProcess process = CorePlugin.getDefault().getDesignerCoreService().getProcessFromProcessItem(processItem); + CodeGenerator generator = new CodeGenerator(() -> process); + generator.schedule(); + generator.join(); + + // flush the generated resources before exit + ResourcesPlugin.getWorkspace().save(true, new NullProgressMonitor()); + return IApplication.EXIT_OK; + } + + /** + * Registers every Talaxie project folder (one containing both {@code .project} and + * {@code talend.project}) found directly under the workspace location as an Eclipse project, + * so that {@link ProxyRepositoryFactory#readProject()} can find it. This makes a fresh, + * non-GUI workspace usable headlessly (e.g. a git checkout mounted in CI). + */ + private void importWorkspaceProjects() { + try { + File wsDir = new File(Platform.getInstanceLocation().getURL().toURI()); + File[] subs = wsDir.listFiles(); + if (subs == null) { + return; + } + IWorkspace ws = ResourcesPlugin.getWorkspace(); + IWorkspaceRoot root = ws.getRoot(); + for (File sub : subs) { + File dotProject = new File(sub, ".project"); + File talendProject = new File(sub, "talend.project"); + if (sub.isDirectory() && dotProject.isFile() && talendProject.isFile()) { + IProjectDescription desc = ws.loadProjectDescription(new Path(dotProject.getAbsolutePath())); + IProject p = root.getProject(desc.getName()); + if (!p.exists()) { + p.create(desc, null); + } + if (!p.isOpen()) { + p.open(null); + } + } + } + } catch (Exception e) { + ExceptionHandler.process(e); + } + } + + /** + * Prints usage instructions for this application. + */ + private void printUsage() { + System.out.println("Usage: TOS_CLI_GEN.exe -data \n" + + "or alternatively: TOS_DI.exe -product org.talaxie.cli.branding.generator.product -data \n" + + "You should provide:\n" + + " - the to an existing Talaxie workspace, such as `C:/TOS_DI-X.Y.Z/workspace`\n" + + " - the to a properties file in workspace, such as `MY_PROJECT/process/myJob_0.1.properties`"); + } + + /** + * Ensure Context.REPOSITORY_CONTEXT_KEY contains a project to avoid NPE in + * project-based preference lookups during Process initialization. + * + * @param wsProjects workspace projects to find the project of the process item + */ + private void ensureRepositoryContextProject(ProcessItem processItem, Project[] wsProjects) { + var ctx = CoreRuntimePlugin.getInstance().getContext(); + var repoCtx = Optional.ofNullable(ctx.getProperty(Context.REPOSITORY_CONTEXT_KEY)) + .map(RepositoryContext.class::cast).orElseGet(() -> { + var res = new RepositoryContext(); + ctx.putProperty(Context.REPOSITORY_CONTEXT_KEY, res); + return res; + }); + // branch/field lookups (getReferencedProjects) require a non-null fields map + if (repoCtx.getFields() == null) { + repoCtx.setFields(new HashMap<>()); + } + if (repoCtx.getUser() == null) { + repoCtx.setUser(LoginHelper.getUser(LoginHelper.createDefaultLocalConnection())); + } + if (repoCtx.getProject() == null) { + IFile itemFile = URIHelper.getFile(URIHelper.convert(processItem.eResource().getURI())); + Stream.of(wsProjects).filter(p -> p.getTechnicalLabel().equals(itemFile.getProject().getName())).findFirst() + .ifPresentOrElse(repoCtx::setProject, () -> { + fail("The project of the process item cannot be found in the workspace projects: " + + itemFile.getProject().getName()); + }); + ; + } + } + + /** + * In headless CLI, proxy factory may not be initialized by login workflow. + */ + private void ensureRepositoryFactoryProvider() { + /* + * There is no ICloudSignOnService implementation in Talaxie. So we do not need + * to worry about cloud connection and login, and can directly proceed with + * local workspace (default local connection). + */ + var connBean = LoginHelper.createDefaultLocalConnection(); + var proxyRepositoryFactory = ProxyRepositoryFactory.getInstance(); + if (proxyRepositoryFactory.getRepositoryFactoryFromProvider() == null) { + // need a branding service to get the repository factory provider + GlobalServiceRegister.getDefault().getService(IBrandingService.class); + // set repository factory provider with the default local connection + proxyRepositoryFactory.setRepositoryFactoryFromProvider( + RepositoryFactoryProvider.getRepositoriyById(connBean.getRepositoryId())); + } + } + + @Override + public void stop() { + // do nothing. + } + +} \ No newline at end of file diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core/META-INF/MANIFEST.MF b/tdi-studio-se/main/plugins/org.talend.designer.core/META-INF/MANIFEST.MF index 6290b105cf7..ca19e6255fe 100644 --- a/tdi-studio-se/main/plugins/org.talend.designer.core/META-INF/MANIFEST.MF +++ b/tdi-studio-se/main/plugins/org.talend.designer.core/META-INF/MANIFEST.MF @@ -95,6 +95,7 @@ Export-Package: org.talend.designer.core; org.talend.designer.core.assist, org.talend.designer.core.build, org.talend.designer.core.debug, + org.talend.designer.core.generator, org.talend.designer.core.i18n, org.talend.designer.core.model, org.talend.designer.core.model.components, diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/generator/CodeGenerator.java b/tdi-studio-se/main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/generator/CodeGenerator.java new file mode 100644 index 00000000000..240e9c9dd17 --- /dev/null +++ b/tdi-studio-se/main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/generator/CodeGenerator.java @@ -0,0 +1,110 @@ +package org.talend.designer.core.generator; + +import java.util.function.Consumer; +import java.util.function.Supplier; + +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; +import org.talend.commons.exception.ExceptionHandler; +import org.talend.core.model.process.IProcess; +import org.talend.core.model.repository.IRepositoryObject; +import org.talend.designer.runprocess.IProcessor; +import org.talend.designer.runprocess.ProcessorException; +import org.talend.designer.runprocess.ProcessorUtilities; + +/** + * A job to generate code for a given process. + */ +public class CodeGenerator extends Job { + + /** Provides the process for which to generate code */ + private Supplier processSupplier; + /** Synchronize access during code generation (e.g. on SWT Display) */ + private Consumer lock = Runnable::run; + /** Provides the processor to use for code generation */ + private Supplier processorSupplier = () -> { + // create a processor for the process to generate code + var process = processSupplier.get(); + var property = (process instanceof IRepositoryObject r) ? r.getProperty() : null; + return ProcessorUtilities.getProcessor(process, property, process.getContextManager().getDefaultContext()); + }; + + /** + * Creates a new code generator job. + * + * @param processSupplier a supplier that provides the process for which to + * generate code + */ + public CodeGenerator(Supplier processSupplier) { + this(processSupplier, Runnable::run); + } + + /** + * Creates a new code generator job. + * + * @param processSupplier a supplier that provides the process for which to + * generate code + * @param lock a lock object to synchronize access (e.g. on SWT + * Display) during code generation + */ + public CodeGenerator(Supplier processSupplier, Consumer lock) { + super("Generating code"); + this.processSupplier = processSupplier; + this.lock = lock; + setUser(false); + setPriority(Job.INTERACTIVE); + } + + /** + * Sets the lock object to synchronize access (e.g. on SWT Display) during code + * generation. + * + * @param lock a lock object executing the generation runnable + * @return this code generator for chaining + */ + public CodeGenerator withLock(Consumer lock) { + this.lock = lock; + return this; + } + + /** + * Sets the processor supplier to use for code generation. + * + * @param processorSupplier a supplier that provides the processor to use + * @return this code generator for chaining + */ + public CodeGenerator withProcessorSupplier(Supplier processorSupplier) { + this.processorSupplier = processorSupplier; + return this; + } + + @Override + protected IStatus run(IProgressMonitor monitor) { + var process = processSupplier.get(); + if (process == null) { + return Status.error("Process not found for code generation."); + } + var processor = ProcessorUtilities.getProcessor(process, null, process.getContextManager().getDefaultContext()); + boolean codeGenerated = processor.isCodeGenerated(); + lock.accept(() -> { + try { + monitor.beginTask("Generating code", IProgressMonitor.UNKNOWN); + boolean lastGeneratedWithStats = ProcessorUtilities.getLastGeneratedWithStats(process.getId()); + boolean lastGeneratedWithTrace = ProcessorUtilities.getLastGeneratedWithTrace(process.getId()); + + int option = codeGenerated ? ProcessorUtilities.GENERATE_MAIN_ONLY + : ProcessorUtilities.GENERATE_WITH_FIRST_CHILD; + // emit source only; the generated Maven project is compiled by the downstream build + option |= ProcessorUtilities.GENERATE_WITHOUT_COMPILING; + ProcessorUtilities.generateCode(process, process.getContextManager().getDefaultContext(), + lastGeneratedWithStats, lastGeneratedWithTrace, true, option, monitor); + } catch (ProcessorException e) { + ExceptionHandler.process(e); + } + }); + return Status.OK_STATUS; + } + +} diff --git a/tdi-studio-se/main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/AbstractMultiPageTalendEditor.java b/tdi-studio-se/main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/AbstractMultiPageTalendEditor.java index 9a6df43ec5a..0efc718e131 100644 --- a/tdi-studio-se/main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/AbstractMultiPageTalendEditor.java +++ b/tdi-studio-se/main/plugins/org.talend.designer.core/src/main/java/org/talend/designer/core/ui/AbstractMultiPageTalendEditor.java @@ -40,12 +40,9 @@ import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.RegistryFactory; -import org.eclipse.core.runtime.Status; -import org.eclipse.core.runtime.jobs.Job; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.common.notify.impl.AdapterImpl; import org.eclipse.gef.EditPart; @@ -151,6 +148,7 @@ import org.talend.designer.core.DesignerPlugin; import org.talend.designer.core.IMultiPageTalendEditor; import org.talend.designer.core.ISyntaxCheckableEditor; +import org.talend.designer.core.generator.CodeGenerator; import org.talend.designer.core.i18n.Messages; import org.talend.designer.core.model.components.EParameterName; import org.talend.designer.core.model.process.AbstractProcessProvider; @@ -1441,37 +1439,11 @@ private void codeSync() { } } } - // if some code has been generated already, for the editor we should need only the main job, not the childs. + // if some code has been generated already, for the editor we should need only + // the main job, not the children. boolean codeGenerated = processor.isCodeGenerated(); - Job job = new Job("Generating code") { - - @Override - protected IStatus run(IProgressMonitor monitor) { - Display.getDefault().syncExec(() -> { - try { - monitor.beginTask("Generating code", IProgressMonitor.UNKNOWN); - boolean lastGeneratedWithStats = ProcessorUtilities.getLastGeneratedWithStats(process.getId()); - boolean lastGeneratedWithTrace = ProcessorUtilities.getLastGeneratedWithTrace(process.getId()); - - if (codeGenerated) { - ProcessorUtilities.generateCode(process, process.getContextManager().getDefaultContext(), - lastGeneratedWithStats, lastGeneratedWithTrace, true, ProcessorUtilities.GENERATE_MAIN_ONLY, - monitor); - } else { - ProcessorUtilities.generateCode(process, process.getContextManager().getDefaultContext(), - lastGeneratedWithStats, lastGeneratedWithTrace, true, - ProcessorUtilities.GENERATE_WITH_FIRST_CHILD, monitor); - } - } catch (ProcessorException e) { - ExceptionHandler.process(e); - } - }); - return Status.OK_STATUS; - } - }; - job.setUser(false); - job.setPriority(Job.INTERACTIVE); - job.schedule(); + new CodeGenerator(() -> process).withLock(Display.getDefault()::syncExec).withProcessorSupplier(() -> processor) + .schedule(); } /** diff --git a/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/Lookups.java b/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/Lookups.java index 107c098dfce..75984d73e9c 100644 --- a/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/Lookups.java +++ b/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/Lookups.java @@ -136,7 +136,12 @@ public static ComponentService service() { } public static TaCoKitCache taCoKitCache() { - return lookup(TaCoKitCache.class); + try { + return lookup(TaCoKitCache.class); + } catch (final Exception e) { + // no TaCoKit component server (e.g. headless) -> no cache + return null; + } } public static ProcessManager manager() { diff --git a/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/service/TCKUIService.java b/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/service/TCKUIService.java index 14685d2cf0b..3cea824c321 100644 --- a/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/service/TCKUIService.java +++ b/tdi-studio-se/main/plugins/org.talend.sdk.component.studio-integration/src/main/java/org/talend/sdk/component/studio/service/TCKUIService.java @@ -66,6 +66,10 @@ public boolean isTCKRepoistoryNode(RepositoryNode node) { @Override public ERepositoryObjectType getTCKRepositoryType(String componentName) { TaCoKitCache cache = Lookups.taCoKitCache(); + // no cache -> no TCK config types + if (cache == null) { + return null; + } Map configTypeNodeMap = cache.getConfigTypeNodeMap(); ConfigTypeNode configTypeNode = configTypeNodeMap.values().stream().filter(n -> componentName.equals(n.getName())) .findFirst().orElse(null); diff --git a/tdi-studio-se/pom.xml b/tdi-studio-se/pom.xml index ac077c1a9c4..1b6a02e5866 100644 --- a/tdi-studio-se/pom.xml +++ b/tdi-studio-se/pom.xml @@ -33,6 +33,7 @@ main/features/org.talend.designer.feature + main/features/org.talend.generator.feature main/features/org.talend.gmf.feature main/features/org.talend.fragment.jars.di.feature main/features/org.talend.rcp.branding.tos.feature @@ -50,6 +51,7 @@ main/plugins/org.talend.designer.components.libs main/plugins/org.talend.designer.components.localprovider main/plugins/org.talend.designer.core + main/plugins/org.talend.designer.core.generator main/plugins/org.talend.designer.core.swt main/plugins/org.talend.designer.dbmap main/plugins/org.talend.designer.documentation @@ -90,6 +92,7 @@ main/plugins/org.talend.libraries.zmq main/plugins/org.talend.presentation.onboarding.resource main/plugins/org.talend.presentation.onboarding.resource.tos + main/plugins/org.talaxie.cli.branding.generator main/plugins/org.talend.rcp.branding.tos main/plugins/org.talend.repository main/plugins/org.talend.repository.ftp