Compare commits

..

1 Commits

Author SHA1 Message Date
dochkas-talend
36c32b6437 added bigger timeout 2022-06-20 17:51:57 +03:00
16150 changed files with 1089717 additions and 827033 deletions

View File

@@ -7,5 +7,4 @@ Huge thanks to these people who contributed in making Talend product better:
- [overpackaging](https://github.com/overpackaging) (Steeve Dreux)
- [brazabr](https://github.com/brazabr) (Thiago Benvenuto)
- [phoflack](https://jira.talendforge.org/secure/ViewProfile.jspa?name=phoflack) (Philip Hoflack)
- [bgunics-talend](https://github.com/bgunics-talend) (Balasz Gunics)
- [cflamain](https://github.com/cflamain) (Christophe Flamain)
- [bgunics-talend](https://github.com/bgunics-talend) (Balasz Gunics)

View File

@@ -1,14 +0,0 @@
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 8.0.x | :white_check_mark: |
| 7.3.x | :white_check_mark: |
| < 7.3.x | :x: |
## Reporting a Vulnerability
For information on how to report a new security problem please see [here](https://www.talend.com/security/vulnerability-disclosure/).
Our existing security advisories are published [here](https://www.talend.com/security/incident-response/).

View File

@@ -33,5 +33,4 @@
<plugin id="org.talend.libraries.mozilla" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.sqlbuilder" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.sqlbuilder" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="org.talend.designer.core.swt" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
</feature>

View File

@@ -16,7 +16,6 @@
<import plugin="org.talend.repository" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.talend.utils" version="0.0.0" match="greaterOrEqual"/>
</requires>
<plugin id="org.talend.common.ui.runtime.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.commons.runtime.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.commons.ui.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.core.repository.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
@@ -44,14 +43,12 @@
<plugin id="org.talend.migrationTool.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.model.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.generic.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.json.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.items.importexport.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.items.importexport.ui.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.localprovider.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.metadata.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.sqlbuilder.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.presentation.onboarding.resource.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.view.di.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.repository.view.test" download-size="0" install-size="0" version="0.0.0" fragment="true" unpack="false"/>
<plugin id="org.talend.testutils" download-size="0" install-size="0" version="0.0.0" unpack="false"/>

View File

@@ -139,6 +139,12 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.components.exchange"
download-size="0"
install-size="0"
version="0.0.0"/>
<plugin
id="org.talend.designer.components.localprovider"
download-size="0"
@@ -158,7 +164,7 @@
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.filemultischemas"
download-size="0"
@@ -187,14 +193,6 @@
version="0.0.0"
unpack="false"/>
<plugin
id="org.talend.designer.mapper.swt"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"
unpack="false"/>
<plugin
id="org.talend.designer.rowgenerator"
download-size="0"

View File

@@ -46,6 +46,4 @@
<plugin id="org.talend.libraries.slf4j" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.xml" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.zmq" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.libraries.bigquery" download-size="0" install-size="0" version="0.0.0"/>
<plugin id="org.talend.repository.bigquery" download-size="0" install-size="0" version="0.0.0"/>
</feature>

View File

@@ -13,9 +13,7 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.jface,
org.apache.log4j,
org.talend.libraries.apache,
org.talend.components.api,
org.talend.common.ui.runtime,
org.talend.commons.runtime
org.talend.components.api
Eclipse-LazyStart: true
Export-Package: org.talend.designer.abstractmap,
org.talend.designer.abstractmap.managers,

View File

@@ -2,7 +2,7 @@ prefs.configuration.title=\u30DE\u30C3\u30D7\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3
prefs.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DE\u30C3\u30D4\u30F3\u30B0\u30EA\u30F3\u30AF\u306E\u8868\u793A:
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52D5
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7DDA
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA(\u9AD8\u901F)
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
DraggingInfosPopup.draggingEntry={0}\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
DraggingInfosPopup.dropInvalid=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\n
DraggingInfosPopup.draggingEntries={0}\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002

View File

@@ -13,10 +13,6 @@
package org.talend.designer.abstractmap.managers;
import org.apache.log4j.Level;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.ui.runtime.ITalendThemeService;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.designer.abstractmap.ui.dnd.DraggingInfosPopup;
import org.talend.designer.abstractmap.ui.properties.LINK_STYLE;

View File

@@ -13,7 +13,5 @@ Require-Bundle: org.eclipse.core.runtime,
org.talend.core.runtime,
org.talend.model,
org.eclipse.jface,
org.talend.components.api,
org.talend.common.ui.runtime,
org.talend.commons.runtime
org.talend.components.api
Eclipse-LazyStart: true

View File

@@ -1,4 +1,4 @@
AlfrescoOutputManager.failedLoadModel=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30E1\u30BF\u30C7\u30FC\u30BF\u304B\u3089\u30E2\u30C7\u30EB\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u521D\u671F\u5316\u4E2D
AlfrescoOutputManager.failedLoadModel=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30E1\u30BF\u30C7\u30FC\u30BF\u304B\u3089\u30E2\u30C7\u30EB\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u518D\u521D\u671F\u5316\u4E2D,
AlfrescoOutputManager.schemaError.title=\u30B9\u30AD\u30FC\u30DE\u306E\u30A8\u30E9\u30FC
AlfrescoOutputManager.schemaError.msg=\u6700\u521D\u306B\u30B9\u30AD\u30FC\u30DE\u3092\u540C\u671F\u3057\u3066\u304F\u3060\u3055\u3044\u3002
AlfrescoOutputModelManager.alreadyAdded=\u3053\u306E\u30E2\u30C7\u30EB\u306F\u65E2\u306B\u8FFD\u52A0\u6E08\u307F\u3067\u3059\u3002

View File

@@ -24,14 +24,7 @@ Require-Bundle: org.talend.core.repository,
org.talend.daikon,
org.talend.daikon.crypto.utils,
org.talend.designer.core.generic,
org.talend.updates.runtime,
org.talend.commons.runtime,
org.eclipse.equinox.common,
org.eclipse.core.runtime,
org.eclipse.core.resources,
org.talend.common.ui.runtime,
org.eclipse.jface,
org.talend.core.runtime
org.talend.updates.runtime
Eclipse-LazyStart: true
Bundle-ClassPath: .
Export-Package: org.talend.designer.codegen,

View File

@@ -56,9 +56,8 @@
String jobClassPackageFolder = codeGenArgument.getCurrentProjectName().toLowerCase() + '/' + jobFolderName;
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J_ACTIVATE__"));//log4j enable
boolean isLog4j2Enabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J2_ACTIVATE__"));//log4j2 enable
boolean isLog4j1Enabled = !isLog4j2Enabled;//log4j1 enable
String MDC_CLASS = "org.slf4j.MDC";
boolean isLog4j2Enabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J2_ACTIVATE__"));//log4j2 enable
boolean isLog4j1Enabled = !isLog4j2Enabled;//log4j1 enable
boolean exist_tParallelize = false;
List<? extends INode> tParallelizeList = process.getNodesOfType("tParallelize");
@@ -322,11 +321,6 @@
globalMap.put(GLOBAL_CONNECTION_POOL_KEY, connectionPool);
}
<%}%>
private final static java.util.Properties jobInfo = new java.util.Properties();
private final static java.util.Map<String,String> mdcInfo = new java.util.HashMap<>();
private final static java.util.concurrent.atomic.AtomicLong subJobPidCounter = new java.util.concurrent.atomic.AtomicLong();
public static void main(String[] args){
final <%=className %> <%=className %>Class = new <%=className %>();
@@ -340,42 +334,6 @@
System.exit(exitCode);
}
private void getjobInfo() {
final String TEMPLATE_PATH = "src/main/templates/jobInfo_template.properties";
final String BUILD_PATH = "../jobInfo.properties";
final String path = this.getClass().getResource("").getPath();
if(path.lastIndexOf("target") > 0) {
final java.io.File templateFile = new java.io.File(
path.substring(0, path.lastIndexOf("target")).concat(TEMPLATE_PATH));
if (templateFile.exists()) {
readJobInfo(templateFile);
return;
}
}
readJobInfo(new java.io.File(BUILD_PATH));
}
private void readJobInfo(java.io.File jobInfoFile){
if(jobInfoFile.exists()) {
try (java.io.InputStream is = new java.io.FileInputStream(jobInfoFile)) {
jobInfo.load(is);
} catch (IOException e) {
<%if(isLog4jEnabled){%>
log.debug("Read jobInfo.properties file fail: " + e.getMessage());
<%}%>
}
}
<%if(isLog4jEnabled){%>
log.info(String.format("Project name: %s\tJob name: %s\tGIT Commit ID: %s\tTalend Version: %s",
projectName,jobName,jobInfo.getProperty("gitCommitId"), "<%=System.getProperties().getProperty("talend.studio.version")%>"));
<%}%>
}
<%
if (isTestContainer) {
@@ -557,34 +515,8 @@
org.apache.logging.log4j.core.config.Configurator.setLevel(org.apache.logging.log4j.LogManager.getRootLogger().getName(), log.getLevel());
<%}%>
}
getjobInfo();
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Start.");
<%}%>
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
java.util.Set<Object> jobInfoKeys = jobInfo.keySet();
for(Object jobInfoKey: jobInfoKeys) {
<%=MDC_CLASS%>.put("_" + jobInfoKey.toString(), jobInfo.get(jobInfoKey).toString());
}
<%=MDC_CLASS%>.put("_pid", pid);
<%=MDC_CLASS%>.put("_rootPid", rootPid);
<%=MDC_CLASS%>.put("_fatherPid", fatherPid);
<%=MDC_CLASS%>.put("_projectName", projectName);
<%=MDC_CLASS%>.put("_startTimestamp",java.time.ZonedDateTime.now(java.time.ZoneOffset.UTC ).format( java.time.format.DateTimeFormatter.ISO_INSTANT ));
<%=MDC_CLASS%>.put("_jobRepositoryId","<%=process.getId() %>");
<%=MDC_CLASS%>.put("_compiledAtTimestamp","<%=java.time.ZonedDateTime.now(java.time.ZoneOffset.UTC ).format( java.time.format.DateTimeFormatter.ISO_INSTANT )%>");
java.lang.management.RuntimeMXBean mx = java.lang.management.ManagementFactory.getRuntimeMXBean();
String[] mxNameTable = mx.getName().split("@"); //$NON-NLS-1$
if (mxNameTable.length == 2) {
<%=MDC_CLASS%>.put("_systemPid", mxNameTable[0]);
} else {
<%=MDC_CLASS%>.put("_systemPid", String.valueOf(java.lang.Thread.currentThread().getId()));
}
<%
}%>
<%
INode jobCatcherNode = null;
@@ -710,26 +642,14 @@
pid = TalendString.getAsciiRandomString(6);
}
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
<%=MDC_CLASS%>.put("_pid", pid);
<%}%>
if (rootPid==null) {
rootPid = pid;
}
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
<%=MDC_CLASS%>.put("_rootPid", rootPid);
<%}%>
if (fatherPid==null) {
fatherPid = pid;
}else{
isChildJob = true;
}
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
<%=MDC_CLASS%>.put("_fatherPid", fatherPid);
<%}%>
<%
if (stats) {
@@ -963,13 +883,7 @@
}
%>
//Resume: jobStart
resumeUtil.addLog("JOB_STARTED", "JOB:" + jobName, parent_part_launcher, Thread.currentThread().getId() + "", "","","","",resumeUtil.convertToJsonText(context,ContextProperties.class,parametersToEncrypt));
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
<%=MDC_CLASS%>.put("_context", contextStr);
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Started.");
java.util.Optional.ofNullable(<%=MDC_CLASS%>.getCopyOfContextMap()).ifPresent(mdcInfo::putAll);
<%}%>
resumeUtil.addLog("JOB_STARTED", "JOB:" + jobName, parent_part_launcher, Thread.currentThread().getId() + "", "","","","",resumeUtil.convertToJsonText(context,parametersToEncrypt));
<%
if (stats) {
@@ -1180,10 +1094,6 @@ this.globalResumeTicket = false;//to run others jobs
runningThreadCount.add(1);
new Thread(){
public void run() {
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
mdcInfo.forEach(<%=MDC_CLASS%>::put);
<% } %>
java.util.Map threadRunResultMap = new java.util.HashMap();
threadRunResultMap.put("errorCode", null);
threadRunResultMap.put("status", "");
@@ -1246,15 +1156,9 @@ this.globalResumeTicket = false;//to run others jobs
if (!componentName.equals("tJobStructureCatcher") && !componentName.equals("tLogCatcher") && !componentName.equals("tFlowMeterCatcher") && !componentName.equals("tAssertCatcher") && !componentName.equals("tStatCatcher") && !componentName.equals("tAsyncIn")) {
%>
<%=createCallProcess(rootNode, className, false) %>
<%
if (process.getNodesOfType("tStatCatcher").size() > 0) {
%>
<%=statsErrorHandlingAfterMainCall(rootNode, process.getNodesOfType("tStatCatcher"))%>
<%
}
}
}
}// end if(isRunInMultiThread)
<% }
}
}// end if(isRunInMultiThread)
%>
this.globalResumeTicket = true;//to run tPostJob
@@ -1388,15 +1292,6 @@ if (execStat) {
returnCode = errorCode.intValue();
}
resumeUtil.addLog("JOB_ENDED", "JOB:" + jobName, parent_part_launcher, Thread.currentThread().getId() + "", "","" + returnCode,"","","");
resumeUtil.flush();
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
<%=MDC_CLASS%>.remove("_subJobName");
<%=MDC_CLASS%>.remove("_subJobPid");
<%=MDC_CLASS%>.remove("_systemPid");
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Finished - status: " + status + " returnCode: " + returnCode );
<%}%>
return returnCode;

View File

@@ -42,10 +42,10 @@ public class CLASS
//List< ? extends IConnection> onSubJobErrorConns = rootNode.getOutgoingConnections(EConnectionType.ON_SUBJOB_ERROR);
//if(onSubJobErrorConns!=null){
// for(IConnection conn : onSubJobErrorConns) {
// for(IConnection conn : onSubJobErrorConns) {
// toReturn += createCallProcess(conn.getTarget(), className, isMultiThread);
// }
//}
//}
if(isMultiThread){
toReturn += "\n}catch (java.lang.Error e_" + rootNode.getUniqueName() + ") {\n";
toReturn += "globalMap.put(\""+rootNode.getUniqueName()+ "_SUBPROCESS_STATE\", -1);\n";
@@ -55,20 +55,7 @@ public class CLASS
toReturn += "\n}";
return toReturn;
}
public String statsErrorHandlingAfterMainCall(INode rootNode, List<? extends INode> statsNodes) {
String catchErrorReturn = "catch (Error error_" + rootNode.getUniqueName() + " ) {\n";
catchErrorReturn+="end = System.currentTimeMillis();\n";
for (INode statCatcherNode : statsNodes) {
catchErrorReturn += statCatcherNode.getUniqueName() + ".addMessage(\"failure\", (end-startTime));\n";
catchErrorReturn += "try {\n " + statCatcherNode.getDesignSubjobStartNode().getUniqueName() + "Process(globalMap);\n";
catchErrorReturn += "} catch (Exception e_" + statCatcherNode.getUniqueName() + ") {\n";
catchErrorReturn += "e_" + statCatcherNode.getUniqueName() + ".printStackTrace();\n}\n";
}
catchErrorReturn+= "throw error_" + rootNode.getUniqueName() + ";\n}\n";
return catchErrorReturn;
}
public String generate(Object argument) {
return "";
}

View File

@@ -138,7 +138,7 @@
SchemaSettingTool_<%=cid%>_<%=schemaIndex%>_<%=classNameTail%> sst_<%=cid%>_<%=schemaIndex%>_<%=classNameTail%> = new SchemaSettingTool_<%=cid%>_<%=schemaIndex%>_<%=classNameTail%>();
props_<%=cid %><%=propInfo.fieldName%>.setValue("<%=property.getName()%>",
new org.apache.avro.Schema.Parser().setValidateDefaults(false).parse(sst_<%=cid%>_<%=schemaIndex%>_<%=classNameTail%>.getSchemaValue()));
new org.apache.avro.Schema.Parser().parse(sst_<%=cid%>_<%=schemaIndex%>_<%=classNameTail%>.getSchemaValue()));
<%
} else if (!(value instanceof String) || !((String)value).equals("")) {
%>

View File

@@ -36,15 +36,6 @@
boolean stats = codeGenArgument.isStatistics();
boolean trace = codeGenArgument.isTrace();
boolean isRunInMultiThread = codeGenArgument.getIsRunInMultiThread();
boolean exportTypeSpringBoot = false;
if (process instanceof org.talend.core.model.process.IProcess2) {
org.talend.core.model.process.IProcess2 p2 = (org.talend.core.model.process.IProcess2) process;
if (p2.getProperty() != null && p2.getProperty().getAdditionalProperties() != null) {
exportTypeSpringBoot = "REST_MS".equals(p2.getProperty().getAdditionalProperties().get(org.talend.core.runtime.process.TalendProcessArgumentConstant.ARG_BUILD_TYPE));
}
}
List<IContextParameter> params = new ArrayList<IContextParameter>();
params=process.getContextManager().getDefaultContext().getContextParameterList();
String className = process.getName();
@@ -150,8 +141,7 @@ for (INode node : process.getNodesOfType("tRESTClient")) {
}
}
boolean isChildRouteJob = !process.getNodesOfType("tRouteInput").isEmpty();
boolean talendEsbJobFactory = actAsProvider || isChildRouteJob;
boolean talendEsbJobFactory = actAsProvider || !process.getNodesOfType("tRouteInput").isEmpty();
boolean talendEsbJob = talendEsbJobFactory || actAsConsumer || ProcessorUtilities.isEsbJob(process);
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J_ACTIVATE__"));//log4j enable
@@ -255,11 +245,6 @@ if(isRunInMultiThread){
<%//uft-8 is for temp file, for example: tSortRow, tMap. Because they need keep reversibility.%>
private final static String utf8Charset = "UTF-8";
<%
if(!exportTypeSpringBoot || isChildRouteJob){
%>
//contains type for every context property
public class PropertiesWithType extends java.util.Properties {
private static final long serialVersionUID = 1L;
@@ -280,16 +265,9 @@ if(!exportTypeSpringBoot || isChildRouteJob){
return propertyTypes.get(key);
}
}
<%
}
%>
// create and load default properties
private java.util.Properties defaultProps = new java.util.Properties();
<%
if(!exportTypeSpringBoot){
%>
// create application properties with default
public class ContextProperties extends PropertiesWithType {
@@ -355,10 +333,6 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
}
%>
}
<%
}
%>
protected ContextProperties context = new ContextProperties(); // will be instanciated by MS.
public ContextProperties getContext() {
return this.context;

View File

@@ -30,10 +30,6 @@ boolean containsTPartitioner = node.getProcess().getNodesOfType("tPartitioner").
boolean isRunJob = "tRunJob".equals(node.getComponent().getName());
IProcess process = node.getProcess();
final boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J_ACTIVATE__"));
final boolean isLog4j2Enabled = ("true").equals(ElementParameterParser.getValue(process, "__LOG4J2_ACTIVATE__"));//log4j2 enable
final String MDC_CLASS = "org.slf4j.MDC";
boolean isTestContainer=ProcessUtils.isTestContainer(process);
String className = process.getName();
if (isTestContainer) {
@@ -195,11 +191,8 @@ for (IConnection iterateConn : iterateConnSet) { //1
}
public void run() {
<% if(isLog4jEnabled && isLog4j2Enabled) { %>
mdcInfo.forEach(<%=MDC_CLASS%>::put);
<% } %>
public void run() {
java.util.Map threadRunResultMap = new java.util.HashMap();
threadRunResultMap.put("errorCode", null);
threadRunResultMap.put("status", "");

View File

@@ -32,8 +32,6 @@
boolean stat = codeGenArgument.isStatistics();
boolean containsTPartitioner = subTree.getRootNode().getProcess().getNodesOfType("tPartitioner").size() > 0 ? true : false;
boolean isLog4jEnabled = ("true").equals(ElementParameterParser.getValue(subTree.getRootNode().getProcess(), "__LOG4J_ACTIVATE__"));
boolean isLog4j2Enabled = ("true").equals(ElementParameterParser.getValue(subTree.getRootNode().getProcess(), "__LOG4J2_ACTIVATE__"));//log4j2 enable
String MDC_CLASS = "org.slf4j.MDC";
%>
<%
@@ -1098,8 +1096,7 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
<%
} else if(javaType.isObjectBased() || typeToGenerate.equals("Geometry") || typeToGenerate.equals("Dynamic")) {
%>
dos.clearInstanceCache();
dos.writeObject(this.<%=column.getLabel() %>);
dos.writeObject(this.<%=column.getLabel() %>);
<%
} else {
typeToGenerate =JavaTypesManager.getTypeToGenerate(column.getTalendType(), false);
@@ -1431,8 +1428,7 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
<%
} else if(typeToGenerate.equals("Object") || typeToGenerate.equals("Geometry") || typeToGenerate.equals("BigDecimal") || typeToGenerate.equals("List") || typeToGenerate.equals("Dynamic") || typeToGenerate.equals("Document")) {
%>
objectOut.clearInstanceCache();
objectOut.writeObject(this.<%=column.getLabel() %>);
objectOut.writeObject(this.<%=column.getLabel() %>);
<%
} else {
typeToGenerate =JavaTypesManager.getTypeToGenerate(column.getTalendType(), false);
@@ -1597,7 +1593,6 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
}
}
%>
<% if (subTree.isMethodSizeNeeded()){ %>
/**
* Start of Function: <%=subTree.getName() %>Process.
@@ -1608,12 +1603,6 @@ public void <%=subTree.getName() %>Process(final java.util.Map<String, Object> g
globalMap.put("<%=subTree.getName() %>_SUBPROCESS_STATE", 0);
final boolean execStat = this.execStat;
<%if(isLog4jEnabled && isLog4j2Enabled) {%>
mdcInfo.forEach(<%=MDC_CLASS%>::put);
<%=MDC_CLASS%>.put("_subJobName", "<%=subTree.getName() %>");
<%=MDC_CLASS%>.put("_subJobPid", "<%=getAsciiRandomString(6)%>_" + subJobPidCounter.getAndIncrement());
<%}%>
<%
boolean isParallelize = false;
for (INode node : subTree.getNodes()) {

View File

@@ -93,25 +93,7 @@ public class CLASS
}
return toReturn;
}
// copy from routine TalendString
private static String getAsciiRandomString(int length) {
java.security.SecureRandom random = new java.security.SecureRandom();
int cnt = 0;
StringBuilder builder = new StringBuilder();
char ch;
int end = 'z' + 1;
int start = ' ';
while (cnt < length) {
ch = (char) (random.nextInt(end - start) + start);
if (Character.isLetterOrDigit(ch)) {
builder.append(ch);
cnt++;
}
}
return builder.toString();
}
public String generate(Object argument) {
return "";
}

View File

@@ -15,7 +15,7 @@ JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u30E1\u30BD\u30C3\u30C9
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\\: org.talend.designer.codegen.JavaRoutineSynchronizer line\\:58
JetSkeletonManager.unableLoad=\u30B9\u30B1\u30EB\u30C8\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.unableSave=\u30B9\u30B1\u30EB\u30C8\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093
JetSkeletonManager.updateProblem=\u30B9\u30B1\u30EB\u30C8\u30F3\u6C38\u7D9A\u30C7\u30FC\u30BF\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
JetSkeletonManager.updateProblem=\u30B9\u30B1\u30EB\u30C8\u30F3\u6C38\u7D9A\u30C7\u30FC\u30BF\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F,
EmfEmittersPersistence.CodeGen.DataMissing=\u30B3\u30FC\u30C9\u751F\u6210\u306E\u30C7\u30FC\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u5B8C\u5168\u306A\u30B3\u30FC\u30C9\u751F\u6210\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002
CodeGeneratorEmittersPoolFactory.PersitentData.Error=\u6301\u7D9A\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093:
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitter \u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304C\u5B58\u5728\u3057\u307E\u305B\u3093\u3001\u5168\u4F53\u306E\u518D\u521D\u671F\u5316\u304C\u5FC5\u8981\u3067\u3059\u3002
@@ -36,7 +36,7 @@ CodeGenInit.addMarkers=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u30DE\u3
CodeGenInit.createProject={0}\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u4F5C\u6210
CodeGenInit.deleteProject={0}\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u524A\u9664
CodeGenInit.initTemplate=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u521D\u671F\u5316
CodeGenInit.removeLink=\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30EA\u30BD\u30FC\u30B9\u3092\u524A\u9664
CodeGenInit.removeLink=\u30EA\u30F3\u30AF\u3055\u308C\u305F\u30EA\u30BD\u30FC\u30B9\u306E\u524A\u9664
CodeGenInit.saveWorkspace=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306E\u4FDD\u5B58\u4E2D
DocumentRootImpl.mixed= (\u4E21\u7528:
NodesSubTree.enableParallel=__ENABLE_PARALLEL__
@@ -45,7 +45,7 @@ TalendJetEmitter.compileFail= \u30B3\u30F3\u30D1\u30A4\u30EB\u5931\u6557: {0} :
TalendJetEmitter.exception=\u4F8B\u5916
JetFilesProviderManager.unableLoad={0}\u3092\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093
ComponentsFactory.afterSystemComponent=\u30B7\u30B9\u30C6\u30E0\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u5F8C
ComponentsFactory.componentNotFound=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093:
ComponentsFactory.componentNotFound=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 \\:
ComponentsFactory.load.components=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9...
ComponentsFactory.parentNotRecompiled=\u8B66\u544A: *.inc.javajet\u306E\u89AA\u306F\u518D\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
ComponentsFactory.loadComponents.missingFolder=\u30D7\u30E9\u30B0\u30A4\u30F3"{1}"\u306B\u30D5\u30A9\u30EB\u30C0\u30FC"{0}"\u304C\u3042\u308A\u307E\u305B\u3093\u3002
@@ -58,8 +58,8 @@ ComponentsPreferencePage.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8
ComponentsPreferencePage.rowLimit=\u884C\u6570\u5236\u9650
ComponentsPreferencePage.WarningMsg=Talend Open Studio\u3092\u518D\u8D77\u52D5\u3057\u3066\u3001\u62E1\u5F35\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
ComponentsPreferencePage.WarningTitle=\u8B66\u544A
ComponentsPreferencePage.directoryFieldLabel=\u30E6\u30FC\u30B6\u30FC\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0:
ComponentsPreferencePage.notValidDirectory=\u3053\u308C\u3092\u9078\u629E\u3059\u308B\u3068\u30D5\u30A9\u30EB\u30C0\u30FC\u304C\u30CD\u30B9\u30C8\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u306F\u63A8\u5968\u3055\u308C\u307E\u305B\u3093\u3002 \u7D9A\u884C\u3057\u307E\u3059\u304B?
ComponentsPreferencePage.directoryFieldLabel=\u30E6\u30FC\u30B6\u30FC\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D5\u30A9\u30EB\u30C0 \\:
ComponentsPreferencePage.notValidDirectory=\u3053\u308C\u3092\u9078\u629E\u3059\u308B\u3068\u30D5\u30A9\u30EB\u30C0\u30FC\u304C\u30CD\u30B9\u30C8\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u306F\u63A8\u5968\u3055\u308C\u307E\u305B\u3093\u3002 \u7D9A\u884C\u3057\u307E\u3059\u304B?,
ComponentsPreferencePage.installComponentsFailure=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F
ComponentsProviderManager.unableLoad=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30D7\u30ED\u30D0\u30A4\u30C0\u306E\u30ED\u30FC\u30C9\u304C\u3067\u304D\u307E\u305B\u3093
ComponenttRunJobPreferencePage.label=tRunJob\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u5F8C\u3001\u5BFE\u5FDC\u30B8\u30E7\u30D6\u3092\u8868\u793A\u3057\u306A\u3044\u3002
@@ -76,7 +76,7 @@ XsdValidationCacheManager.unableLoadxsd=XSD\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\
XsdValidationCacheManager.unableSavexsd=XSD\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u306E\u30AD\u30E3\u30C3\u30B7\u30E5\u30D5\u30A1\u30A4\u30EB\u3092\u4FDD\u5B58\u3067\u304D\u307E\u305B\u3093
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52D5
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7DDA
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA(\u9AD8\u901F)
prefs.configuration.LINK_STYLE.LINE=\u76F4\u7DDA\uFF08\u9AD8\u901F\uFF09
FAMILY.AS400=AS400
FAMILY.Access=\u30A2\u30AF\u30BB\u30B9
FAMILY.Alfresco=Alfresco
@@ -88,7 +88,7 @@ FAMILY.Connections=\u63A5\u7D9A
FAMILY.Custom_Code=\u30AB\u30B9\u30BF\u30E0\u30B3\u30FC\u30C9
FAMILY.DB2=DB2
FAMILY.DB_Generic=\u6C4E\u7528ODBC
FAMILY.DB_JDBC=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AFJDBC
FAMILY.DB_JDBC=\u6C4E\u7528JDBC
FAMILY.DB_SCD=DB SCD
FAMILY.Data_Quality=\u30C7\u30FC\u30BF\u30AF\u30AA\u30EA\u30C6\u30A3
FAMILY.Data_Privacy=\u30C7\u30FC\u30BF\u30D7\u30E9\u30A4\u30D0\u30B7\u30FC

View File

@@ -152,9 +152,7 @@ public class CodeGeneratorService implements ICodeGeneratorService {
ComponentsFactoryProvider.getInstance().resetCache();
ILibraryManagerService librairesManagerService = (ILibraryManagerService) GlobalServiceRegister.getDefault().getService(
ILibraryManagerService.class);
//TUP-31721: The generated studio index will include every possible values with TP_ALL license .
//Studio 8 will not re-generate the index after applying patch and installing any component.
librairesManagerService.clearCache(false);
librairesManagerService.clearCache();
CorePlugin.getDefault().getLibrariesService().syncLibraries();
Job job = CodeGeneratorEmittersPoolFactory.initialize();
// achen modify to record ctrl+shift+f3 is pressed to fix bug 0006107

View File

@@ -46,7 +46,6 @@ import org.talend.commons.exception.BusinessException;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.io.FilesUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ILibraryManagerService;
import org.talend.core.language.LanguageManager;
import org.talend.core.model.component_cache.ComponentsCache;
import org.talend.core.model.components.AbstractComponentsProvider;
@@ -91,8 +90,6 @@ public class ComponentsFactory implements IComponentsFactory {
private static Set<IComponent> customComponentList = new HashSet<>(); // user/exchange/tck components
private static Map<IComponent, File> customComponentFolderMap = new HashMap<IComponent, File>();
private IProgressMonitor monitor;
private SubMonitor subMonitor;
@@ -135,7 +132,6 @@ public class ComponentsFactory implements IComponentsFactory {
componentList.clear();
skeletonList.clear();
customComponentList.clear();
customComponentFolderMap.clear();
boolean needRegenerate = false;
if (CodeGeneratorActivator.getDefault().getBundle().getBundleContext().getProperty("osgi.dev") != null) {
@@ -173,8 +169,6 @@ public class ComponentsFactory implements IComponentsFactory {
initComponentNameMap();
isInitializing.set(false);
// sync custom component libs after init
syncCustomComponentLibs();
// TimeMeasure.step("initComponents", "createCache");
log.info(componentList.size() + " components loaded in " + (System.currentTimeMillis() - startTime) + " ms"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -374,7 +368,6 @@ public class ComponentsFactory implements IComponentsFactory {
} else {
componentList.add(currentComp);
customComponentList.add(currentComp);
customComponentFolderMap.put(currentComp, currentFolder);
}
} catch (MissingMainXMLComponentFileException e) {
log.trace(currentFolder.getName() + " is not a " + getCodeLanguageSuffix() + " component", e); //$NON-NLS-1$ //$NON-NLS-2$
@@ -394,23 +387,6 @@ public class ComponentsFactory implements IComponentsFactory {
}
}
private void syncCustomComponentLibs() {
try {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ILibraryManagerService.class)) {
ILibraryManagerService libraryService = GlobalServiceRegister.getDefault()
.getService(ILibraryManagerService.class);
if (libraryService != null) {
customComponentFolderMap.forEach((component, componentFolder) -> libraryService
.deployLibsFromCustomComponents(componentFolder, component.getModulesNeeded()));
}
}
} catch (Exception e) {
ExceptionHandler.process(e);
} finally {
customComponentFolderMap.clear();
}
}
private void loadComponentsFromFolder(String pathSource, AbstractComponentsProvider provider) {
// Changed by Marvin Wang on Feb.22 for bug TDI-19166, caz the test ConnectionManagerTest maybe get the null
// context.

View File

@@ -13,7 +13,6 @@
package org.talend.designer.codegen.components.model;
import java.util.List;
import java.util.stream.Collectors;
import org.talend.core.model.components.IComponent;
import org.talend.core.ui.component.ComponentsFactoryProvider;
@@ -46,7 +45,6 @@ public class UserComponentsTokenCollector extends AbstractTokenCollector {
public JSONObject collect() throws Exception {
JSONObject object = new JSONObject();
List<IComponent> customComponents = ComponentsFactoryProvider.getInstance().getCustomComponents();
customComponents = filterOutComponents(customComponents);
JSONArray customComponentsArray = new JSONArray();
if (customComponents != null) {
for (int i = 0; i < customComponents.size(); i++) {
@@ -57,9 +55,4 @@ public class UserComponentsTokenCollector extends AbstractTokenCollector {
return object;
}
private List<IComponent> filterOutComponents(List<IComponent> customComponents) {
customComponents = customComponents.stream().filter(comp ->!"tTaCoKitGuessSchema".equals(comp.getName())).collect(Collectors.toList());
return customComponents;
}
}

View File

@@ -55,9 +55,6 @@ public enum EInternalTemplate {
CAMEL_RUNIF("camel_run_if", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
CAMEL_SPECIALLINKS("camel_speciallinks", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
MICROSERVICE_APP("microservice_app", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
MICROSERVICE_APP_MS_CONTEXT_PROPERTIES("microservice_app_ms_context_properties","0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
MICROSERVICE_APP_CONTEXT_PROPERTIES("microservice_app_context_properties","0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
MICROSERVICE_APP_PROPERTIES("microservice_app_properties","0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$
HEADER_ADDITIONAL("header_additional", "0.0.1"), //$NON-NLS-1$ //$NON-NLS-2$

View File

@@ -418,13 +418,6 @@ public final class CodeGeneratorEmittersPoolFactory {
jetBean.setClassLoader(createDelegateClassLoader(jetBean.getClassLoader(), sparkUtilsPluginName,
"org.talend.designer.spark.SparkPlugin")); //$NON-NLS-1$
}
String bigdataDIUtilsPluginName = "org.talend.designer.bigdata.di"; //$NON-NLS-1$
if (PluginChecker.isPluginLoaded(bigdataDIUtilsPluginName)) {
jetBean.addClassPath("BIGDATA_DI_LIBRARIES", bigdataDIUtilsPluginName); //$NON-NLS-1$
jetBean.setClassLoader(createDelegateClassLoader(jetBean.getClassLoader(), bigdataDIUtilsPluginName,
"org.talend.designer.bigdata.di.BigdataDiPlugin")); //$NON-NLS-1$
}
return jetBean;
}
@@ -480,7 +473,6 @@ public final class CodeGeneratorEmittersPoolFactory {
// generate the code.
String sparkUtilsPluginName = "org.talend.designer.spark"; //$NON-NLS-1$
String bigDataUtilsPluginName = "org.talend.designer.bigdata"; //$NON-NLS-1$
String bigdataDIUtilsPluginName = "org.talend.designer.bigdata.di"; //$NON-NLS-1$
if (PluginChecker.isPluginLoaded(sparkUtilsPluginName) && ("SPARK".equals(component.getPaletteType()) //$NON-NLS-1$
|| "MR".equals(component.getPaletteType()) || "STORM".equals(component.getPaletteType()) //$NON-NLS-1$ //$NON-NLS-2$
|| "SPARKSTREAMING".equals(component.getPaletteType()))) { //$NON-NLS-1$
@@ -502,22 +494,6 @@ public final class CodeGeneratorEmittersPoolFactory {
jetBean.getClassLoader()));
}
} else if (PluginChecker.isPluginLoaded(bigdataDIUtilsPluginName)) { //$NON-NLS-1$
jetBean.addClassPath("BIGDATA_DI_LIBRARIES", bigdataDIUtilsPluginName); //$NON-NLS-1$
jetBean.setClassLoader(createDelegateClassLoader(new CodeGeneratorEmittersPoolFactory().getClass().getClassLoader(),
bigdataDIUtilsPluginName, "org.talend.designer.bigdata.di.BigdataDiPlugin")); //$NON-NLS-1$
// If Big Data DI AND with an external component, use the external component as the parent classloader and
// Big Data DI as a secondary, delegate classloader.
if (component.getPluginExtension() != null) {
jetBean.addClassPath(
"EXTERNAL_COMPONENT_" + component.getPluginExtension().toUpperCase().replaceAll("\\.", "_"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
component.getPluginExtension());
jetBean.setClassLoader(new DelegateClassLoader(
ExternalNodesFactory.getInstance(component.getPluginExtension()).getClass().getClassLoader(),
jetBean.getClassLoader()));
}
} else if (component.getPluginExtension() != null) {
jetBean.addClassPath("EXTERNAL_COMPONENT_" + component.getPluginExtension().toUpperCase().replaceAll("\\.", "_"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -564,7 +540,7 @@ public final class CodeGeneratorEmittersPoolFactory {
JetBean jetBean = new JetBean(componentsPath, templateURI, "component", component.getVersion(), //$NON-NLS-1$
"", codePart.getName());//$NON-NLS-1$
addCommonLibs(jetBean);
jetBean.addClassPath("AVRO", "avro"); //$NON-NLS-1$ //$NON-NLS-2$
jetBean.addClassPath("AVRO", "org.apache.servicemix.bundles.avro"); //$NON-NLS-1$ //$NON-NLS-2$
for (String pluginDependency : component.getPluginDependencies()) {
jetBean.addClassPath(pluginDependency.toUpperCase().replaceAll("\\.", "_") + "_LIBRARIES", pluginDependency); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="class"/>
</classpath>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.talend.designer.components.exchange</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,3 @@
#Wed Aug 31 14:34:59 CST 2011
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled

View File

@@ -0,0 +1,41 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Exchange Plug-in
Bundle-SymbolicName: org.talend.designer.components.exchange;singleton:=true
Bundle-Version: 8.8.8.qualifier
Bundle-Activator: org.talend.designer.components.exchange.ExchangePlugin
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui,
org.apache.log4j,
org.apache.commons.collections,
org.apache.commons.discovery,
org.apache.commons.logging,
org.apache.commons.commons-beanutils,
org.apache.commons.io,
org.apache.commons.lang,
org.apache.commons.httpclient,
org.talend.commons.ui,
org.talend.core,
org.talend.core.ui,
org.talend.utils,
org.talend.librariesmanager,
org.talend.libraries.mozilla;resolution:=optional,
org.talend.libraries.uniserv;resolution:=optional,
org.talend.designer.core,
org.talend.model,
org.talend.repository,
org.talend.core.repository,
org.talend.updates.runtime,
org.eclipse.ui.intro,
org.eclipse.ui.forms,
org.eclipse.jface.text
Bundle-ActivationPolicy: lazy
Bundle-Vendor: .Talend SA.
Export-Package: org.talend.designer.components.exchange,
org.talend.designer.components.exchange.i18n,
org.talend.designer.components.exchange.ui,
org.talend.designer.components.exchange.ui.views
Eclipse-BundleShape: dir
Import-Package: org.codehaus.jackson,
org.codehaus.jackson.map,
org.talend.registration.wizards.register

View File

@@ -0,0 +1,17 @@
source.. = src/main/java/
output.. = class/
bin.includes = META-INF/,\
.,\
plugin.xml,\
icons/,\
plugin.properties,\
model/,\
content/,\
plugin_de.properties,\
plugin_en.properties,\
plugin_fr.properties,\
plugin_it.properties,\
plugin_ja.properties,\
plugin_ru.properties,\
plugin_swtbot.properties,\
plugin_zh_CN.properties

View File

@@ -0,0 +1,204 @@
body, td, th {
font-size: 12px;
color: #404040;
line-height: 23px;
font-family: Verdana, Arial, Helvetica, sans-serif;
padding: 5px;
}
input, textarea {
border: 1px solid #9BB9F5;
}
body {
margin: 0px;
height: 100%;
background-color: #EBEBDB;
}
ul {
margin: 0px;
padding: 0px;
list-style-type: none;
}
a:link.xh {
color: #000000;
text-decoration: none;
}
a:hover.xh {
text-decoration: none;
}
a:visited.xh {
text-decoration: none;
color: #000000;
}
.hover {
background: rgb(167,207,223); /* Old browsers */
color: white
}
.leave {
background: none;
}
img {
border: 0px;
}
.style_1 {
font-size: 16px;
}
.style_2 {
color: #000000;
}
.style_3 {
font-weight: bold;
}
.style_4{
font-size: 16px;
font-weight: bold;
color: #000000;
}
div {
margin: 0;
padding: 0
}
#container {
position:relative;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
#container .menu {
position: absolute;
left: 0;
top: 0;
width: 200px;
height: 100%;
float: left;
border: 1px solid #9BB9F5;
border-right: 0px;
}
#container .main1 {
position: absolute;
left: 200;
top: 0;
float: left;
background: #FFFFFF;
}
#menu li {
display: block;
cursor: pointer;
text-align: left;
padding: 0px 0px;
}
.ulhide {
display: none;
overflow: auto;
}
.ulblock {
display: block;
}
.left_1 {
width: 100px;
margin-top: 10px;
float: left;
padding-left: 0px;
vertical-align: top;
margin-right: 10px;
}
.compDesc {
height: 200px;
margin-top: 10px;
margin-bottom: 30px;
padding-left: 20px;
overflow: auto;
border: 1px solid #9BB9F5;
}
.compImg {
height: 200px;
margin-top: 10px;
margin-bottom: 30px;
padding-left: 10px;
border: 1px solid #9BB9F5;
}
.reviews {
width: 60%;
height: 350px;
margin-bottom: 10px;
padding-left: 10px;
word-break: break-all;
WORD-WRAP: break-word;
}
.userreview {
font-size: 13px;
color: #000000;
font-weight: bold;
padding-left: 10px;
}
.left_11 {
width: 100px;
margin-top: 10px;
float: left;
padding-left: 0px;
vertical-align: top;
margin-right: 10px;
}
.toolbar {
background-color: #EBEBDB;
border: 1px solid #9BB9F5;
border-bottom: 0px;
height: 40px;
padding: 5px;
}
.icon {
-moz-border-radius: 3px;
border: 1px solid #EBEBDB;
border-radius: 3px;
padding: 5px;
vertical-align: middle;
cursor: pointer;
}
a.icon:hover {
border: 1px solid #9BB9F5;
}
.toolbarButton {
-moz-border-radius: 3px;
border: 1px solid #EBEBDB;
border-radius: 3px;
cursor: pointer;
padding: 5px;
text-align: center;
width: 140px;
}
a.toolbarButton:hover {
border: 1px solid #9BB9F5;
}
table.tableStyle {
width: 600px;
}
.formStyle {
position: relative;
height: 100%;
border: 1px solid #9BB9F5;
border-top: 0px;
}
div.fileinputs {
position: relative;
}
div.fakefile {
position: absolute;
top: 0px;
left: 0px;
z-index: 1;
}
input.file {
position: relative;
text-align: right;
-moz-opacity:0 ;
filter:alpha(opacity: 0);
opacity: 0;
z-index: 2;
width: 260px;
cursor: pointer;
}

View File

@@ -0,0 +1,620 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<script type="text/javascript">
String.prototype.replaceAll = function(s1, s2) {
return this.replace(new RegExp(s1, "gm"), s2);
}
String.prototype.replaceAll2Excep = function(s1, s2) {
var temp = this;
while(temp.indexOf(s1) != -1) {
temp = temp.replace(s1, s2);
}
return temp;
}
function onResizeDocument () {
var navName = navigator.appName;
var newWidth = null;
var tabs;
var intWidth = null;
var newWidth = null;
if(navName == 'Microsoft Internet Explorer'){
intWidth = (document.body.clientWidth - 213);
}else{
intWidth = (document.width - 213);
}
newWidth = intWidth+"px";
tabs = document.getElementsByTagName("table");
tabs[0].style.width = newWidth;
tabs[1].style.width = newWidth;
tabs[2].style.width = (intWidth - 20)+"px";
tabs[4].style.width = newWidth;
tabs[5].style.width = newWidth;
tabs[6].style.width = newWidth;
tabs[9].style.width = newWidth;
tabs[12].style.width = newWidth;
}
function onchangeFileUpload(fileId,fakefileId){
var v = document.getElementById(fileId).value;
document.getElementById(fakefileId).value=v;
}
function filterReWriteUrl() {
var prefix = "http://org.eclipse.ui.intro/runAction?pluginId=org.talend.designer.components.exchange&amp;class=org.talend.designer.components.exchange.ui.actions.FilterExtensionAction&amp;id=org.talend.designer.components.exchange.ui.actions.FilterExtensionAction&amp;text="
var jsonObj = document.getElementById("avialable_filter_text").value;
var url = prefix + jsonObj;
document.getElementById('commit_filter').href = url;
}
function createNewExtensionWriteUrl() {
var prefix = "http://org.eclipse.ui.intro/runAction?pluginId=org.talend.designer.components.exchange&amp;class=org.talend.designer.components.exchange.ui.htmlcontent.MyExtensionAction&amp;id=org.talend.designer.components.exchange.ui.htmlcontent.MyExtensionAction&amp;type=UPLOAD_MY_EXTENSION"
var label = "label:" + "'" + document.getElementById("extension_label").value + "'";
var lastVersionAvailable = "lastVersionAvailable:" + "'" + document.getElementById("lastVersionAvailable").value + "'";
var description = "description:" + "'" + document.getElementById("extension_description").value + "'";
description = description.replaceAll2Excep("\r\n", "/n/r");
var checkedType = "";
var filtervalue = "";
var compatibilities = document.getElementsByName("compatibility");
if(compatibilities[0].checked == true) {
checkedType = "all"
filtervalue = null;
} else if(compatibilities[1].checked == true) {
checkedType = "older"
filtervalue = document.getElementById(checkedType).value;
} else if(compatibilities[2].checked == true) {
checkedType = "newer"
filtervalue = document.getElementById(checkedType).value;
} else if(compatibilities[3].checked == true) {
checkedType = "except"
filtervalue = document.getElementById(checkedType).value;
} else if(compatibilities[4].checked == true) {
checkedType = "only"
filtervalue = document.getElementById(checkedType).value;
}
<!-- validate the createNewExtension text start-->
var labelValidate = document.getElementById("extension_label").value;
var lastVersionAvailableValidate = document.getElementById("lastVersionAvailable").value;
var filename = document.getElementById("filename").value;
var isSkipPage = true;
if(labelValidate.replace(/\s/g,"")==""){
alert("Extension Title is empty");
isSkipPage = false;
}else if(labelValidate!=labelValidate.replace(/(^\s*)|(\s*$)/g,"")){
alert("Extension Title contains incorrect characters!");
isSkipPage = false;
}else if(labelValidate=="null"){
alert("Extension Title can not be null");
isSkipPage = false;
}else if(lastVersionAvailableValidate.replace(/\s/g,"")==""){
alert("Initial Version is empty");
isSkipPage = false;
}else if(lastVersionAvailableValidate!=lastVersionAvailableValidate.replace(/[^\w\.\/]/ig,'')){
alert("Initial Version contains incorrect characters!");
isSkipPage = false;
}else if(lastVersionAvailableValidate=="null"){
alert("Initial Version can not be null");
isSkipPage = false;
}else if(filename.replace(/\s/g,"")==""){
alert("Please input a vaild File path");
isSkipPage = false;
}
<!-- validate the createNewExtension text end-->
if (isSkipPage == true) {
var listVersionCompatibles = "listVersionCompatibles:" + "'" + checkedType + "'";
var filter = "filter:" + "'" + filtervalue + "'";
var filename = "filename:" + "'" + document.getElementById("filename").value + "'";
filename = filename.replaceAll2Excep("\\", "/");
var jsonObj = "{" + label + "," + lastVersionAvailable + "," + description + "," + listVersionCompatibles + "," + filter + "," + filename + "}"
var url = prefix + "&amp;extensionValues=" + jsonObj;
document.getElementById('commit').href = url;
window.location.href = document.getElementById('commit').href;
}
}
function updateReWriteUrl() {
var prefix = "http://org.eclipse.ui.intro/runAction?pluginId=org.talend.designer.components.exchange&amp;class=org.talend.designer.components.exchange.ui.htmlcontent.MyExtensionAction&amp;id=org.talend.designer.components.exchange.ui.htmlcontent.MyExtensionAction&amp;type=UPDATE_MY_EXTENSION"
var lastVersionAvailable = "lastVersionAvailable:" + "'" + document.getElementById("lastVersionAvailable_update").value + "'";
var checkedType = "";
var filtervalue = "";
var compatibilities = document.getElementsByName("compatibility_update");
if(compatibilities[0].checked == true) {
checkedType = "all"
filtervalue = null;
} else if(compatibilities[1].checked == true) {
checkedType = "older"
filtervalue = document.getElementById(checkedType + "_update").value;
} else if(compatibilities[2].checked == true) {
checkedType = "newer"
filtervalue = document.getElementById(checkedType + "_update").value;
} else if(compatibilities[3].checked == true) {
checkedType = "except"
filtervalue = document.getElementById(checkedType + "_update").value;
} else if(compatibilities[4].checked == true) {
checkedType = "only"
filtervalue = document.getElementById(checkedType + "_update").value;
}
<!-- validate the updateExtension text start-->
var lastVersionAvailable_updateValidate = document.getElementById("lastVersionAvailable_update").value;
var filename_update = document.getElementById("filename_update").value;
var isSkipPage = true;
if(lastVersionAvailable_updateValidate.replace(/\s/g,"")==""){
alert("New Version is empty");
isSkipPage = false;
}else if(lastVersionAvailable_updateValidate!=lastVersionAvailable_updateValidate.replace(/[^\w\.\/]/ig,'')){
alert("New Version contains incorrect characters!");
isSkipPage = false;
}else if(lastVersionAvailable_updateValidate=="null"){
alert("New Version can not be null");
isSkipPage = false;
}else if(filename_update.replace(/\s/g,"")==""){
alert("Please input a vaild File path");
isSkipPage = false;
}
<!-- validate the updateExtension text end-->
if (isSkipPage == true) {
var listVersionCompatibles = "listVersionCompatibles:" + "'" + checkedType + "'";
var filter = "filter:" + "'" + filtervalue + "'";
var filename = "filename:" + "'" + document.getElementById("filename_update").value + "'";
filename = filename.replaceAll2Excep("\\", "/");
var jsonObj = "{" + lastVersionAvailable + "," + listVersionCompatibles + "," + filter + "," + filename + "}"
var url = prefix + "&amp;extensionValues=" + jsonObj;
document.getElementById('commit_update').href = url;
window.location.href = document.getElementById('commit_update').href;
}
}
function modifyReWriteUrl() {
var prefix = "http://org.eclipse.ui.intro/runAction?pluginId=org.talend.designer.components.exchange&amp;class=org.talend.designer.components.exchange.ui.htmlcontent.MyExtensionAction&amp;id=org.talend.designer.components.exchange.ui.htmlcontent.MyExtensionAction&amp;type=MODIFY_MY_EXTENSION"
var leabel = "label:" + "'" + document.getElementById("extension_label_modify").value + "'"
var description = "description:" + "'" + document.getElementById("extension_description_modify").value + "'"
description = description.replaceAll2Excep("\r\n", "/n/r");
var checkedType = "";
var filtervalue = "";
var compatibilities = document.getElementsByName("compatibility_modify");
if(compatibilities[0].checked == true) {
checkedType = "all"
filtervalue = null;
} else if(compatibilities[1].checked == true) {
checkedType = "older"
filtervalue = document.getElementById(checkedType + "_modify").value;
} else if(compatibilities[2].checked == true) {
checkedType = "newer"
filtervalue = document.getElementById(checkedType + "_modify").value;
} else if(compatibilities[3].checked == true) {
checkedType = "except"
filtervalue = document.getElementById(checkedType + "_modify").value;
} else if(compatibilities[4].checked == true) {
checkedType = "only"
filtervalue = document.getElementById(checkedType + "_modify").value;
}
var listVersionCompatibles = "listVersionCompatibles:" + "'" + checkedType + "'";
var filter = "filter:" + "'" + filtervalue + "'";
var jsonObj = "{" + leabel + "," + description + "," + listVersionCompatibles + "," + filter + "}"
var url = prefix + "&amp;extensionValues=" + jsonObj;
document.getElementById('commit_modify').href = url;
}
//can't use for cycle in the javascript,each time call the length fuction ,get error in document parser
function setTab(tabIndex, pageId) {
var tli = document.getElementById("menu").getElementsByTagName("li");
var mli = document.getElementById("main1").getElementsByTagName("ul");
if(tabIndex == 0) {
tli[0].className = "hover"
tli[1].className = "leave"
tli[2].className = "leave"
} else if(tabIndex == 1) {
tli[0].className = "leave"
tli[1].className = "hover"
tli[2].className = "leave"
} else if(tabIndex == 2) {
tli[0].className = "leave"
tli[1].className = "leave"
tli[2].className = "hover"
}
if(pageId == mli[0].id) {
mli[0].className = "ulblock"
mli[1].className = "ulhide"
mli[2].className = "ulhide"
mli[3].className = "ulhide"
mli[4].className = "ulhide"
mli[5].className = "ulhide"
mli[6].className = "ulhide"
} else if(pageId == mli[1].id) {
mli[0].className = "ulhide"
mli[1].className = "ulblock"
mli[2].className = "ulhide"
mli[3].className = "ulhide"
mli[4].className = "ulhide"
mli[5].className = "ulhide"
mli[6].className = "ulhide"
} else if(pageId == mli[2].id) {
mli[0].className = "ulhide"
mli[1].className = "ulhide"
mli[2].className = "ulblock"
mli[3].className = "ulhide"
mli[4].className = "ulhide"
mli[5].className = "ulhide"
mli[6].className = "ulhide"
} else if(pageId == mli[3].id) {
mli[0].className = "ulhide"
mli[1].className = "ulhide"
mli[2].className = "ulhide"
mli[3].className = "ulblock"
mli[4].className = "ulhide"
mli[5].className = "ulhide"
mli[6].className = "ulhide"
} else if(pageId == mli[4].id) {
mli[0].className = "ulhide"
mli[1].className = "ulhide"
mli[2].className = "ulhide"
mli[3].className = "ulhide"
mli[4].className = "ulblock"
mli[5].className = "ulhide"
mli[6].className = "ulhide"
} else if(pageId == mli[5].id) {
mli[0].className = "ulhide"
mli[1].className = "ulhide"
mli[2].className = "ulhide"
mli[3].className = "ulhide"
mli[4].className = "ulhide"
mli[5].className = "ulblock"
mli[6].className = "ulhide"
} else if(pageId == mli[6].id) {
mli[0].className = "ulhide"
mli[1].className = "ulhide"
mli[2].className = "ulhide"
mli[3].className = "ulhide"
mli[4].className = "ulhide"
mli[5].className = "ulhide"
mli[6].className = "ulblock"
}
}
</script>
<link rel="stylesheet" href="css/exchange.css" type="text/css" media="screen" title="no title" charset="utf-8"/>
</head>
<body onresize="onResizeDocument()" onload="onResizeDocument()" >
<div id="container">
<div class="menu" id="menu">
<ul id="ul_menu">
<li class="hover" id="tab1" onclick="setTab(0,'list_available_extensions')">
Available Extensions
</li>
<li id="tab2" onclick="setTab(1,'downloaded_extensions')">
Downloaded Extensions
</li>
<li id="tab3" onclick="setTab(2,'list_my_extensions')">
My Extensions
</li>
</ul>
</div>
<div class="main1" id="main1">
<!-- available extension list -->
<ul class="ulhide" id="list_available_extensions">
<li>
<table align="center" cellpadding="0" cellspacing="0" class="tableStyle">
<tr align="right">
<td colspan="5" class="toolbar">
<input id="avialable_filter_text" name="avialable_filter_text" type="text" />
<a class="icon" href="http://org.eclipse.ui.intro/runAction?pluginId=org.talend.designer.components.exchange&amp;class=org.talend.designer.components.exchange.ui.actions.FilterExtensionAction&amp;id=org.talend.designer.components.exchange.ui.actions.FilterExtensionAction&amp;text=" id="commit_filter"><img onmouseover="filterReWriteUrl()" src="imgs/refresh.gif"/> </a></td>
</tr>
<div id="INSERT_EXTENSION_DATA" xmlns="">
<contentProvider id="INSERT_EXTENSION_DATA" class="org.talend.designer.components.exchange.ui.htmlcontent.AvailableCompositeProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</table>
</li>
</ul>
<!-- extension details -->
<ul class="ulblock" id="extension_details">
<li>
<table align="center" cellpadding="0" cellspacing="0" class="tableStyle" style="border: 1px solid #9BB9F5;" >
<tr align="left">
<td class="toolbar" colspan="5" style="border:0px;border-bottom:1px solid #9BB9F5;"><a class="icon"><img onclick="setTab(0,'list_available_extensions')" src="imgs/backward_nav.gif"/></a></td>
</tr>
<tr align="center">
<td>
<div id="div_name_part">
<div id="LEFT_NAME_PART" xmlns="">
<contentProvider id="LEFT_NAME_PART" class="org.talend.designer.components.exchange.ui.htmlcontent.ExchangeContentProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</div></td>
</tr>
<tr align="left" valign="top">
<td valign="top">
<table cellpadding="0" cellspacing="0">
<tr>
<td width="75%">
<div class="compDesc" id="component_description_part">
<div id="COMPONENT_DESCRIPTION" xmlns="">
<contentProvider id="COMPONENT_DESCRIPTION" class="org.talend.designer.components.exchange.ui.htmlcontent.ExchangeContentProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</div>
</td>
<td width="25%">
<div class="compImg" id="component_Image_part">
<table align="center" border="0">
<tr>
<td>
<div id="GET_EXTENSION_IMAGE" xmlns="">
<contentProvider id="GET_EXTENSION_IMAGE" class="org.talend.designer.components.exchange.ui.htmlcontent.ExchangeContentProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</td>
</tr>
<tr>
<td>
<div id="RATE_IMANGE" xmlns="">
<contentProvider id="RATE_IMANGE" class="org.talend.designer.components.exchange.ui.htmlcontent.ExchangeContentProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</td>
</tr>
<tr>
<td>
<div id="INSTALL_COMPONENT" xmlns="">
<contentProvider id="INSTALL_COMPONENT" class="org.talend.designer.components.exchange.ui.htmlcontent.ExchangeContentProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td class="userreview">User Reviews </td>
<td>
<div id="WRITE_REVIEWS" xmlns="">
<contentProvider id="WRITE_REVIEWS" class="org.talend.designer.components.exchange.ui.htmlcontent.ExchangeContentProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<div class="reviews" id="component_reviews_part">
<div id="EXTENSION_REVIEWS" xmlns=""/>
<contentProvider id="EXTENSION_REVIEWS" class="org.talend.designer.components.exchange.ui.htmlcontent.ExchangeContentProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</li>
</ul>
<!--downloaded extensions page -->
<ul class="ulhide" id="downloaded_extensions">
<li>
<table align="center" cellpadding="0" cellspacing="0" class="tableStyle">
<tr align="left">
<td class="toolbar" colspan="5" style="border-bottom:0px solid #9BB9F5;"><a class="icon"><img onclick="setTab(2,'list_my_extensions')" src="imgs/backward_nav.gif"/></a></td>
</tr>
<div id="DOWNLOADEXTENSION_DATA" xmlns="">
<contentProvider id="DOWNLOADEXTENSION_DATA" class="org.talend.designer.components.exchange.ui.htmlcontent.DownloadExtensionProvider" pluginId="org.talend.designer.components.exchange"> </contentProvider>
</div>
</table>
</li>
</ul>
<!-- my extension list -->
<ul class="ulhide" id="list_my_extensions">
<li>
<table align="center" cellpadding="0" cellspacing="0" id="table" class="tableStyle">
<tr align="right">
<td class="toolbar" colspan="5">
<a onclick="setTab(2,'creat_new_extension')" class="toolbarButton">
Add New Extension
</a></td>
</tr>
<div id="LIST_MY_EXTENSION" xmlns="">
<contentProvider id="LIST_MY_EXTENSION" class="org.talend.designer.components.exchange.ui.htmlcontent.MyExchangeContentProvider" pluginId="org.talend.designer.components.exchange"/>
</div>
</table>
</li>
</ul>
<!-- create new extension -->
<ul class="ulhide" id="creat_new_extension">
<li>
<table align="center" cellpadding="0" cellspacing="0" id="tab_creat_new_extension" class="tableStyle">
<tr align="left">
<td class="toolbar" colspan="5" style="border-bottom:1px solid #9BB9F5;"><a class="icon"><img onclick="setTab(2,'list_my_extensions')" src="imgs/backward_nav.gif"/></a></td>
</tr>
<tr>
<td style="padding: 0px">
<div class="formStyle">
<table>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px;font-weight:bold;"> Add New Extension </span></td>
<td width="100%"></td>
</tr>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px;"> Extension Title: </span></td>
<td width="100%"><input id="extension_label" name="extension_label" style="width:230px;margin-left:5px" type="text"/></td>
</tr>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px"> Initial Version: </span></td>
<td><input id="lastVersionAvailable" name="lastVersionAvailable" style="width:100px;margin-left:5px" type="text"/></td>
</tr>
<tr>
<td nowrap="nowrap" valign="top"><span style="margin-left:10px;"> Compatibility: </span></td>
<td>
<table cellpadding="0" cellspacing="0">
<tr ><td><input checked="checked" name="compatibility" type="radio"/></td><td>All versions</td><td></td></tr>
<tr><td><input name="compatibility" type="radio"/></td><td nowrap="nowrap">Version and older:</td><td width="100%"><input id="older" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility" type="radio"/></td><td nowrap="nowrap">Versions and newer:</td><td><input id="newer" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility" type="radio"/></td><td nowrap="nowrap">All versions except:</td><td><input id="except" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility" type="radio"/></td><td nowrap="nowrap">Only these versions:</td><td><input id="only" style="width:100%;" type="text"/></td></tr>
</table>
</td>
</tr>
<tr>
<td nowrap="nowrap" valign="top"><span style="margin-left:10px;"> Description: </span></td>
<td><textarea id="extension_description" name="extension_description" style="width:100%;height:100px;margin-left:5px" type="text"> </textarea></td>
</tr>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px;"> File: </span></td>
<td>
<div class="fileinputs" style="margin-left:3px;">
<input id="filename" name="filename" type="file" class="file myFileUpload" onchange="onchangeFileUpload('filename','fake_filename')" style="cursor: pointer" />
<div class="fakefile" style="cursor: pointer; width: 260px">
<input id="fake_filename" style="cursor: pointer; width: 230px" class="myFileUpload"/>
<img src="imgs/upload.png" style="cursor: pointer"/>
</div>
</div>
</td>
</tr>
<tr>
<td ></td>
<td>
<a class="xh" href="" id="commit" style="margin-left:5px;">
<button onclick="createNewExtensionWriteUrl()" style="width: 176px">
Add Extension
</button>
</a>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- update extension -->
<ul class="ulblock" id="upload_extension_version">
<li>
<table align="center" cellpadding="0" cellspacing="0" class="tableStyle" id="tab_upload_extension_version">
<tr align="left">
<td class="toolbar" colspan="5" style="border-bottom:1px solid #9BB9F5;"><a class="icon"><img onclick="setTab(2,'list_my_extensions')" src="imgs/backward_nav.gif"/></a></td>
</tr>
<tr>
<td style="padding: 0px">
<div class="formStyle">
<table>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px;font-weight:bold;"> Upload New Version </span></td>
<td width="100%"></td>
</tr>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px"> New Version: </span></td>
<td><contentProvider id="LAST_AVAILABLE_VERSION" class="org.talend.designer.components.exchange.ui.htmlcontent.MyExchangeContentProvider" pluginId="org.talend.designer.components.exchange"/></td>
</tr>
<tr>
<td nowrap="nowrap" valign="top"><span style="margin-left:10px;"> Compatibility: </span></td>
<td>
<table cellpadding="0" cellspacing="0">
<tr ><td><input checked="checked" name="compatibility_update" type="radio"/></td><td>All versions</td><td></td></tr>
<tr><td><input name="compatibility_update" type="radio"/></td><td nowrap="nowrap">Version and older:</td><td width="100%"><input id="older_update" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility_update" type="radio"/></td><td nowrap="nowrap">Versions and newer:</td><td><input id="newer_update" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility_update" type="radio"/></td><td nowrap="nowrap">All versions except:</td><td><input id="except_update" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility_update" type="radio"/></td><td nowrap="nowrap">Only these versions:</td><td><input id="only_update" style="width:100%;" type="text"/></td></tr>
</table>
</td>
</tr>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px;"> File: </span></td>
<td>
<div class="fileinputs" style="margin-left:3px;">
<input id="filename_update" name="filename" type="file" class="file myFileUpload" onchange="onchangeFileUpload('filename_update','fake_filename_update')" style="cursor: pointer" /> <div class="fakefile" style="cursor: pointer; width: 260px">
<input id="fake_filename_update" style="cursor: pointer; width: 230px" class="myFileUpload"/>
<img src="imgs/upload.png" style="cursor: pointer"/>
</div>
</div>
</td>
</tr>
<tr>
<td ></td>
<td>
<a class="xh" href="" id="commit_update" style="margin-left:5px;">
<button onclick="updateReWriteUrl()" style="width: 176px">
Upload Extension
</button>
</a>
</td>
</tr>
</table>
</div></td>
</tr>
</table>
</li>
</ul>
<!-- modify myextension -->
<ul class="ulblock" id="modify_my_extension_page">
<li>
<table align="center" border="0" cellpadding="0" cellspacing="0" id="tab_modify_my_extension_page" class="tableStyle">
<tr align="left">
<td class="toolbar" colspan="5" style="border-bottom:1px solid #9BB9F5;"><a class="icon"><img onclick="setTab(2,'list_my_extensions')" src="imgs/backward_nav.gif" /></a></td>
</tr>
<tr>
<td style="padding: 0px">
<table style="border: 1px solid #9BB9F5; border-top: 0px">
<tr>
<td nowrap="nowrap"><span style="margin-left:10px;font-weight:bold;"> Modify Last Revision </span></td>
<td width="100%"></td>
</tr>
<tr>
<td nowrap="nowrap"><span style="margin-left:10px;"> Extension Title: </span></td>
<td width="100%"><contentProvider id="EXTENSION_LABEL" class="org.talend.designer.components.exchange.ui.htmlcontent.MyExchangeContentProvider" pluginId="org.talend.designer.components.exchange"/></td>
</tr>
<tr>
<td nowrap="nowrap" valign="top"><span style="margin-left:10px;"> Compatibility: </span></td>
<td>
<table cellpadding="0" cellspacing="0">
<tr ><td><input checked="checked" name="compatibility_modify" type="radio"/></td><td>All versions</td><td></td></tr>
<tr><td><input name="compatibility_modify" type="radio"/></td><td nowrap="nowrap">Version and older:</td><td width="100%"><input id="older_modify" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility_modify" type="radio"/></td><td nowrap="nowrap">Versions and newer:</td><td><input id="newer_modify" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility_modify" type="radio"/></td><td nowrap="nowrap">All versions except:</td><td><input id="except_modify" style="width:100%;" type="text"/></td></tr>
<tr><td><input name="compatibility_modify" type="radio"/></td><td nowrap="nowrap">Only these versions:</td><td><input id="only_modify" style="width:100%;" type="text"/></td></tr>
</table>
</td>
</tr>
<tr>
<td nowrap="nowrap" valign="top"><span style="margin-left:10px;"> Description: </span></td>
<td><textarea id="extension_description_modify" name="extension_description" style="width:100%;height:100px;margin-left:5px" type="text"> </textarea></td>
</tr>
<tr>
<td></td>
<td>
<a class="xh" href="" id="commit_modify" style="margin-left:5px;">
<button onclick="window.location.href=document.getElementById('commit_modify').href" onmouseover="modifyReWriteUrl()" style="width: 176px">
Modify Last Revision
</button>
</a>
</td>
</tr>
</table>
</td>
</tr>
</table>
</li>
</ul>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model"
nsURI="exchange" nsPrefix="exchange">
<eClassifiers xsi:type="ecore:EEnum" name="Language">
<eLiterals name="PERL" value="1"/>
<eLiterals name="JAVA" value="2"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Category">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="categoryId" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="categoryName" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="VersionRevision">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="versionId" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="versionName" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ComponentExtension">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="idExtension" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="typeExtension" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="versionExtension" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="lastVersionAvailable" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="publicationDate" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="description" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="rate" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="author" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="language" lowerBound="1"
eType="#//Language" defaultValueLiteral=""/>
<eStructuralFeatures xsi:type="ecore:EReference" name="reviews" lowerBound="1"
upperBound="-1" eType="#//AvailableExtensionViewDetail" containment="true"
eOpposite="#//AvailableExtensionViewDetail/extension"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="downloadedVersion" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="dateDownload" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="listVersionCompatibles"
lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="filename" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="linkDownload" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="AvailableExtensionViewDetail">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="author" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="comment" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="reviewrate" lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="extension" lowerBound="1"
eType="#//ComponentExtension" eOpposite="#//ComponentExtension/reviews"/>
</eClassifiers>
</ecore:EPackage>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<genmodel:GenModel xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="// ============================================================================&#xD;&#xA;//&#xD;&#xA;// Copyright (C) 2006-2019 Talend Inc. - www.talend.com&#xD;&#xA;//&#xD;&#xA;// This source code is available under agreement available at&#xD;&#xA;// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt&#xD;&#xA;//&#xD;&#xA;// You should have received a copy of the agreement&#xD;&#xA;// along with this program; if not, write to Talend SA&#xD;&#xA;// 9 rue Pages 92150 Suresnes, France&#xD;&#xA;//&#xD;&#xA;// ============================================================================"
modelDirectory="/org.talend.designer.components.exchange/src/main/java" editDirectory="/org.talend.designer.components.exchange.edit/src"
editorDirectory="/org.talend.designer.components.exchange.editor/src" modelPluginID="org.talend.designer.components.exchange"
modelName="Exchange" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
copyrightFields="false" editPluginID="org.talend.designer.components.exchange.edit"
editorPluginID="org.talend.designer.components.exchange.editor">
<foreignModel>exchange.ecore</foreignModel>
<genPackages prefix="Exchange" basePackage="org.talend.designer.components.exchange"
disposableProviderFactory="true" ecorePackage="exchange.ecore#/">
<genEnums typeSafeEnumCompatible="false" ecoreEnum="exchange.ecore#//Language">
<genEnumLiterals ecoreEnumLiteral="exchange.ecore#//Language/PERL"/>
<genEnumLiterals ecoreEnumLiteral="exchange.ecore#//Language/JAVA"/>
</genEnums>
<genClasses ecoreClass="exchange.ecore#//Category">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//Category/categoryId"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//Category/categoryName"/>
</genClasses>
<genClasses ecoreClass="exchange.ecore#//VersionRevision">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//VersionRevision/versionId"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//VersionRevision/versionName"/>
</genClasses>
<genClasses ecoreClass="exchange.ecore#//ComponentExtension">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/idExtension"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/label"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/typeExtension"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/versionExtension"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/lastVersionAvailable"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/publicationDate"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/description"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/rate"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/author"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/language"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference exchange.ecore#//ComponentExtension/reviews"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/downloadedVersion"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/dateDownload"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/listVersionCompatibles"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/filename"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//ComponentExtension/linkDownload"/>
</genClasses>
<genClasses ecoreClass="exchange.ecore#//AvailableExtensionViewDetail">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//AvailableExtensionViewDetail/author"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//AvailableExtensionViewDetail/title"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//AvailableExtensionViewDetail/comment"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute exchange.ecore#//AvailableExtensionViewDetail/reviewrate"/>
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference exchange.ecore#//AvailableExtensionViewDetail/extension"/>
</genClasses>
</genPackages>
</genmodel:GenModel>

View File

@@ -0,0 +1,5 @@
Exchange=Exchange
DownloadComponenentsAction.Label=Download Selected Components
RefreshComponenentsAction.Label=Refresh Components List
providerName=www.example.org
pluginName=Exchange Model

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.talend.core.components_provider">
<ComponentsProvider
class="org.talend.designer.components.exchange.ExchangeComponentsProvider"
folderName="exchange"
id="org.talend.designer.components.exchange.ExchangeComponentsProvider">
</ComponentsProvider>
</extension>
<extension
point="org.talend.core.components_provider">
<ComponentsProvider
class="org.talend.designer.components.exchange.SharedStudioExchangeComponentsProvider"
folderName="exchange"
id="org.talend.designer.components.exchange.SharedStudioExchangeComponentsProvider">
</ComponentsProvider>
</extension>
<extension
point="org.talend.core.runtime.service">
<Service
class="org.talend.designer.components.exchange.ui.dialog.ExchangeService"
serviceId="IExchangeService">
</Service>
</extension>
<extension
point="org.eclipse.ui.editors">
<editor
class="org.talend.designer.components.exchange.ui.views.ExchangeView"
default="false"
icon="icons/exchange_view.png"
id="org.talend.designer.components.exchange.ui.views.ExchangeView"
name="Exchange">
</editor>
</extension>
</plugin>

View File

@@ -0,0 +1,3 @@
DownloadComponenentsAction.Label=Lade ausgew\u00E4hlte Komponente
RefreshComponenentsAction.Label=Komponentenliste aktualisieren
providerName=www.beispiel.de

View File

@@ -0,0 +1 @@
providerName=www.example.org

View File

@@ -0,0 +1,5 @@
Exchange=Exchange
DownloadComponenentsAction.Label=\u9078\u629E\u3057\u305F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9
RefreshComponenentsAction.Label=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30EA\u30B9\u30C8\u3092\u66F4\u65B0
providerName=www.example.org
pluginName=Exchange\u30E2\u30C7\u30EB

View File

@@ -0,0 +1,3 @@
DownloadComponenentsAction.Label=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B
RefreshComponenentsAction.Label=\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0441\u043F\u0438\u0441\u043E\u043A \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u043E\u0432
providerName=www.example.org

View File

@@ -0,0 +1,5 @@
Exchange=Exchange
DownloadComponenentsAction.Label=Download Selected Components
RefreshComponenentsAction.Label=Refresh Componenents List
providerName=www.example.org
pluginName = Exchange Model

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.8.8-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.designer.components.exchange</artifactId>
<packaging>eclipse-plugin</packaging>
</project>

View File

@@ -0,0 +1,101 @@
ExchangeView.Exchange=Exchange
AvailableExtensionsComposite.ExtensionName=Extension Name
AvailableExtensionsComposite.Version=Version
AvailableExtensionsComposite.Rating=Rating
AvailableExtensionsComposite.Author=Author
AvailableExtensionsComposite.FilterTitle=Filter
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Install
AvailableExtensionsComposite.ViewDetail.WriteReview=Write a review
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailure=Insertion Review failure.
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=You should check it.
DownloadedExtensionsComposite.ExtensionName=Extension Name
DownloadedExtensionsComposite.DownloadedVersion=Downloaded Version
DownloadedExtensionsComposite.DownloadDate=Download Date
DownloadedExtensionsComposite.OperateStatus=Operate Status
DownloadedExtensionsComposite.installOperateStatus=Install
DownloadedExtensionsComposite.installedOperateStatus=Installed
DownloadedExtensionsComposite.updateOperateStatus=Update
MyExtensionsComposite.ExtensionName=Extension Name
MyExtensionsComposite.Version=Version
MyExtensionsComposite.UploadDate=Upload Date
MyExtensionsComposite.AddNewExtensionTitle=Add New Extension
MyExtensionsComposite.UpLoadNewVersionOperateStatus=Upload New Version
MyExtensionsComposite.UpdateOperateStatus=Update
MyExtensionsComposite.ModifyOperateStatus=Modify
MyExtensionsComposite.DeleteOperateStatus=Delete
MyExtensionsComposite.Form.Return=Return
MyExtensionsComposite.Form.ExtensionTitle=Extension Title
MyExtensionsComposite.Form.InitialVersion=Initial Version
MyExtensionsComposite.Form.Compatibility=Compatibility
MyExtensionsComposite.Form.Compatibility.AllVersions=All versions
MyExtensionsComposite.Form.Compatibility.Version=Version
MyExtensionsComposite.Form.Compatibility.AndOlder=and older
MyExtensionsComposite.Form.Compatibility.AndNewer=and newer
MyExtensionsComposite.Form.Compatibility.AllVersionsExcept=All versions except:
MyExtensionsComposite.Form.Compatibility.OnlyTheseVersions=Only these versions:
MyExtensionsComposite.Form.Description=Description
MyExtensionsComposite.Form.Visibility=Visibility
MyExtensionsComposite.Form.Visibility.Public=Public(visible by all)
MyExtensionsComposite.Form.Visibility.Private=Private(visible by me)
MyExtensionsComposite.Form.Upload=Upload
MyExtensionsComposite.Form.Upload.SelectAnItem=Select an item from the currently open project
MyExtensionsComposite.Form.Upload.File=File:
MyExtensionsComposite.Form.Upload.Browse=Browse...
MyExtensionsComposite.Form.Upload.Browse.SelectFile=Select a File of the extension to upload
MyExtensionsComposite.Form.DeleteExtensionTile=Delete Extension
MyExtensionsComposite.Form.DeleteExtensionMessage=Are you sure you want to delete this Extension?
MyExtensionsComposite.Form.UploadExtension=Upload Extension
MyExtensionsComposite.Form.UpdateExtension=Update Extension
MyExtensionsComposite.Form.ModifyExtension=Modify Extension
Exchange.logon.error=Exchange user have not been registered, please register using the preferences .
RefreshJob.FindExtensions.Title=Finding available extensions
RefreshJob.FindExtensions.Message=Finding extensions from exchange...
ShowContributedExtensionsJob.ShowContributedExtensions.Title=Finding contributed extensions
ShowContributedExtensionsJob.ShowContributedExtensions.Message=Finding contributed extensions from exchange...
ShowInstalledExtensionsJob.ShowInstalledExtensions.Title=Finding installed extensions
ShowInstalledExtensionsJob.ShowInstalledExtensions.Message=Finding installed extensions from exchange...
DeleteExtensionJob.DeleteExtensionJob.Title=Delete an extension...
DeleteExtensionJob.DeleteExtensionJob.Message=Delete an extension...
DeleteExtensionJob.DeleteFailure=Delete failure.
DeleteExtensionJob.DeleteFailureTip=You should check it.
ModifyExtensionJob.Title=Modify an extension...
ModifyExtensionJob.Message=Modify an extension...
ModifyExtensionJob.ModifyFailure=Modify failure.
ModifyExtensionJob.ModifyFailureTip=You should check it.
InstalledExtensionJob.Title=Installed an extension...
InstalledExtensionJob.Message=Installed an extension...
InsertionExtensionAction.InstalledFailure=Installed failure.
InsertionExtensionAction.InstalledFailureTip=You should check it.
UploadRevisionJob.Title=Upload Revision...
UploadRevisionJob.Message=Upload Revision...
UploadRevisionAction.InstalledFailure=Upload Revision failure.
UploadRevisionAction.InstalledFailureTip=You should check it.
DownloadComponenentsAction_restartMessage=Install the new component successfully, but need to restart studio to load it, do you want to restart now?
DownloadComponenentsAction_restartTitle=Need restart
DownloadComponenentsAction_failureTitle=Failure
DownloadComponenentsAction_failureMessage=Fail to install the component {0}, need check the component is valid or not.
DownloadComponenentsAction.installExchange=Install Exchange Components
DownloadComponenentsAction.DownloadTaskTitle=Downloading files from Exchange
DownloadComponenentsAction.DownloadTaskName=Downloading file from url:
DownloadComponenentsAction.ReloadPalette=Reloading palette...
DownloadComponenentsAction.DownloadFailure=Download failure.
DownloadComponenentsAction.DownloadFailureTip=You must change the Download Settings.
DownloadComponenentsAction.installComponentsTitle=Install components
ExchangeWebService.insertionExtensionSuccessful=Insertion Extension successful.
ExchangeWebService.downloadingExtensionSuccessful=Downloaded Extension successful.
ExchangeWebService.deleteExtensionSuccessful=Deleted Extension successful.
ExchangeWebService.insertReviewSuccessful=Insertion Review successful.
ExchangeWebService.updateRevisionSuccessful=Update Revision successful.
ExchangeWebService.insertionRevisionSuccessful=Insertion Revision successful.
ImportExchangeDialog.dialogTitle=Select an item from Talend Exchange
ImportExchangeDialog.WARNING=WARNING
ImportExchangeDialog.NOTSELECTWARNING=Please select one item from table.
ImportExchangeDialog.downloadProgressBar=Download Item,Please Wait\!
ImportExchangeDialog.EXTENSION_NAME=Extension Name
ImportExchangeDialog.AUTHOR_NAME=Author Name
ImportExchangeDialog.LATEST_REVISION=Latest Revision
ImportExchangeDialog.EXTENSION_DESCRIPTION=Extension Description
ImportExchangeDialog.download.extensions=Download extensions\! Please Wait\!
ImportExchangeDialog.REFRESH_BUTTON=Refresh
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Refreshing\! Please Wait.....
ImportExchangeDialog.OPERATION_CANCELLED=Operation was cancelled

View File

@@ -0,0 +1,19 @@
AvailableExtensionsComposite.Author=Autor
AvailableExtensionsComposite.FilterTitle=Filter
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Installieren
AvailableExtensionsComposite.ViewDetail.WriteReview=Bericht schreiben
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=Sie sollten es pr\u00FCfen.
DownloadedExtensionsComposite.installedOperateStatus=Installiert
DownloadedExtensionsComposite.updateOperateStatus=Update
MyExtensionsComposite.UpdateOperateStatus=Update
MyExtensionsComposite.ModifyOperateStatus=Modifiziere
MyExtensionsComposite.DeleteOperateStatus=L\u00F6schen
MyExtensionsComposite.Form.Description=Beschreibung
MyExtensionsComposite.Form.Upload.Browse=Durchsuchen...
DeleteExtensionJob.DeleteFailure=L\u00F6schung fehlgeschlagen
DeleteExtensionJob.DeleteFailureTip=Sie sollten es pr\u00FCfen.
DownloadComponenentsAction.DownloadTaskName=Lade Datei von URL:
ImportExchangeDialog.WARNING=Warnung
ImportExchangeDialog.AUTHOR_NAME=Name des Autors
ImportExchangeDialog.LATEST_REVISION=Aktuellste Revision
ImportExchangeDialog.OPERATION_CANCELLED=Operation wurde abgebrochen

View File

@@ -0,0 +1,8 @@
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Instalar
AvailableExtensionsComposite.ViewDetail.WriteReview=Escribir un comentario
DownloadedExtensionsComposite.installOperateStatus=Instalar
MyExtensionsComposite.ModifyOperateStatus=Modificar
MyExtensionsComposite.DeleteOperateStatus=Borrar
MyExtensionsComposite.Form.Description=Descripci\u00F3n
ImportExchangeDialog.WARNING=Advertencia
ImportExchangeDialog.REFRESH_BUTTON=Actualizar

View File

@@ -0,0 +1,17 @@
AvailableExtensionsComposite.Version=Versione
AvailableExtensionsComposite.Author=Autore
AvailableExtensionsComposite.FilterTitle=Filtro
DownloadedExtensionsComposite.installedOperateStatus=Installato
DownloadedExtensionsComposite.updateOperateStatus=Aggiornato
MyExtensionsComposite.Version=Versione
MyExtensionsComposite.UpdateOperateStatus=Aggiornato
MyExtensionsComposite.DeleteOperateStatus=Cancellare
MyExtensionsComposite.Form.Compatibility.Version=Versione
MyExtensionsComposite.Form.Description=Descrizione
MyExtensionsComposite.Form.Upload=Carica
MyExtensionsComposite.Form.Upload.Browse=Naviga...
ImportExchangeDialog.dialogTitle=Seleziona oggetto da Talend Exchange
ImportExchangeDialog.WARNING=Avvertimento
ImportExchangeDialog.LATEST_REVISION=Ultima Revisione
ImportExchangeDialog.EXTENSION_DESCRIPTION=Descrizione estensione
ImportExchangeDialog.REFRESH_BUTTON=Aggiorna

View File

@@ -0,0 +1,101 @@
ExchangeView.Exchange=Exchange
AvailableExtensionsComposite.ExtensionName=Extension\u540D
AvailableExtensionsComposite.Version=\u30D0\u30FC\u30B8\u30E7\u30F3
AvailableExtensionsComposite.Rating=\u8A55\u4FA1
AvailableExtensionsComposite.Author=\u4F5C\u6210\u8005
AvailableExtensionsComposite.FilterTitle=\u30D5\u30A3\u30EB\u30BF\u30FC
AvailableExtensionsComposite.ViewDetail.installOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
AvailableExtensionsComposite.ViewDetail.WriteReview=\u518D\u8ABF\u67FB\u306E\u66F8\u304D\u8FBC\u307F
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailure=Review\u633F\u5165\u5931\u6557\u3002
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DownloadedExtensionsComposite.ExtensionName=Extension\u540D
DownloadedExtensionsComposite.DownloadedVersion=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30D0\u30FC\u30B8\u30E7\u30F3
DownloadedExtensionsComposite.DownloadDate=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u65E5\u4ED8
DownloadedExtensionsComposite.OperateStatus=\u30B9\u30C6\u30FC\u30BF\u30B9\u64CD\u4F5C
DownloadedExtensionsComposite.installOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
DownloadedExtensionsComposite.installedOperateStatus=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F
DownloadedExtensionsComposite.updateOperateStatus=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
MyExtensionsComposite.ExtensionName=Extension\u540D
MyExtensionsComposite.Version=\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.UploadDate=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u65E5\u4ED8
MyExtensionsComposite.AddNewExtensionTitle=\u65B0\u898FExtension\u8FFD\u52A0
MyExtensionsComposite.UpLoadNewVersionOperateStatus=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
MyExtensionsComposite.UpdateOperateStatus=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
MyExtensionsComposite.ModifyOperateStatus=\u5909\u66F4
MyExtensionsComposite.DeleteOperateStatus=\u524A\u9664
MyExtensionsComposite.Form.Return=\u623B\u308A\u5024
MyExtensionsComposite.Form.ExtensionTitle=Extension\u30BF\u30A4\u30C8\u30EB
MyExtensionsComposite.Form.InitialVersion=\u521D\u671F\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.Form.Compatibility=\u4E92\u63DB\u6027
MyExtensionsComposite.Form.Compatibility.AllVersions=\u3059\u3079\u3066\u306E\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.Form.Compatibility.Version=\u30D0\u30FC\u30B8\u30E7\u30F3
MyExtensionsComposite.Form.Compatibility.AndOlder=\u3088\u308A\u53E4\u3044
MyExtensionsComposite.Form.Compatibility.AndNewer=\u3088\u308A\u65B0\u3057\u3044
MyExtensionsComposite.Form.Compatibility.AllVersionsExcept=\u3059\u3079\u3066\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u4EE5\u5916
MyExtensionsComposite.Form.Compatibility.OnlyTheseVersions=\u3053\u308C\u3089\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3060\u3051:
MyExtensionsComposite.Form.Description=\u8AAC\u660E
MyExtensionsComposite.Form.Visibility=\u53EF\u8996\u6027
MyExtensionsComposite.Form.Visibility.Public=\u5171\u6709(\u5168\u54E1\u304C\u53EF\u8996)
MyExtensionsComposite.Form.Visibility.Private=\u500B\u4EBA(\u81EA\u5206\u306E\u307F\u53EF\u8996)
MyExtensionsComposite.Form.Upload=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
MyExtensionsComposite.Form.Upload.SelectAnItem=\u73FE\u5728\u958B\u3044\u3066\u3044\u308B\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u304B\u3089\u30A2\u30A4\u30C6\u30E0\u3092\u9078\u629E
MyExtensionsComposite.Form.Upload.File=\u30D5\u30A1\u30A4\u30EB:
MyExtensionsComposite.Form.Upload.Browse=\u53C2\u7167...
MyExtensionsComposite.Form.Upload.Browse.SelectFile=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3059\u308Bextension\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u9078\u629E
MyExtensionsComposite.Form.DeleteExtensionTile=Extension\u524A\u9664
MyExtensionsComposite.Form.DeleteExtensionMessage=\u3053\u306E\u62E1\u5F35\u5B50\u3092\u524A\u9664\u3057\u307E\u3059\u304B?
MyExtensionsComposite.Form.UploadExtension=Extension\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
MyExtensionsComposite.Form.UpdateExtension=Extension\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
MyExtensionsComposite.Form.ModifyExtension=Extension\u4FEE\u6B63
Exchange.logon.error=Exchange\u30E6\u30FC\u30B6\u30FC\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u521D\u671F\u8A2D\u5B9A\u3092\u4F7F\u7528\u3057\u3066\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002
RefreshJob.FindExtensions.Title=\u53D6\u5F97\u53EF\u80FD\u306Aextensions
RefreshJob.FindExtensions.Message=Exchange\u304B\u3089\u62E1\u5F35\u6A5F\u80FD\u3092\u691C\u7D22...
ShowContributedExtensionsJob.ShowContributedExtensions.Title=extensions\u3092\u53D6\u5F97
ShowContributedExtensionsJob.ShowContributedExtensions.Message=exchange\u304B\u3089extensions\u3092\u53D6\u5F97\u2026
ShowInstalledExtensionsJob.ShowInstalledExtensions.Title=extensions\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
ShowInstalledExtensionsJob.ShowInstalledExtensions.Message=exchange\u304B\u3089extensions\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u2026
DeleteExtensionJob.DeleteExtensionJob.Title=Extension\u3092\u524A\u9664\u3057\u307E\u3059\u2026
DeleteExtensionJob.DeleteExtensionJob.Message=Extension\u3092\u524A\u9664\u3057\u307E\u3059\u2026
DeleteExtensionJob.DeleteFailure=\u524A\u9664\u3067\u304D\u307E\u305B\u3093
DeleteExtensionJob.DeleteFailureTip=\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002
ModifyExtensionJob.Title=Extension\u3092\u4FEE\u6B63\u2026
ModifyExtensionJob.Message=Extension\u3092\u4FEE\u6B63\u2026
ModifyExtensionJob.ModifyFailure=\u4FEE\u6B63\u5931\u6557\u3002
ModifyExtensionJob.ModifyFailureTip=\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002
InstalledExtensionJob.Title=Extension\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB...
InstalledExtensionJob.Message=Extension\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB...
InsertionExtensionAction.InstalledFailure=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F
InsertionExtensionAction.InstalledFailureTip=\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002
UploadRevisionJob.Title=\u30EA\u30D3\u30B8\u30E7\u30F3\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
UploadRevisionJob.Message=\u30EA\u30D3\u30B8\u30E7\u30F3\u3092\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9
UploadRevisionAction.InstalledFailure=\u30EA\u30D3\u30B8\u30E7\u30F3\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3002
UploadRevisionAction.InstalledFailureTip=\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DownloadComponenentsAction_restartMessage=\u65B0\u898F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u6210\u529F\u3057\u307E\u3057\u305F\u3002Studio\u306E\u518D\u8D77\u52D5\u304C\u5FC5\u8981\u3067\u3059\u3002\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B?
DownloadComponenentsAction_restartTitle=\u518D\u8D77\u52D5\u8981
DownloadComponenentsAction_failureTitle=\u5931\u6557
DownloadComponenentsAction_failureMessage=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8{0}\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u304C\u59A5\u5F53\u304B\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002
DownloadComponenentsAction.installExchange=Exchange\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
DownloadComponenentsAction.DownloadTaskTitle=Exchange\u304B\u3089\u30D5\u30A1\u30A4\u30EB\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9
DownloadComponenentsAction.DownloadTaskName=\u30D5\u30A1\u30A4\u30EB\u306E\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D URL \\:
DownloadComponenentsAction.ReloadPalette=\u30D1\u30EC\u30C3\u30C8\u306E\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8...
DownloadComponenentsAction.DownloadFailure=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5931\u6557\u3002
DownloadComponenentsAction.DownloadFailureTip=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u8A2D\u5B9A\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002
DownloadComponenentsAction.installComponentsTitle=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB
ExchangeWebService.insertionExtensionSuccessful=Extension\u306E\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u6210\u529F\u3057\u307E\u3057\u305F
ExchangeWebService.downloadingExtensionSuccessful=Extension\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u6210\u529F\u3002
ExchangeWebService.deleteExtensionSuccessful=Extension\u524A\u9664\u6210\u529F\u3002
ExchangeWebService.insertReviewSuccessful=Review\u633F\u5165\u6210\u529F\u3002
ExchangeWebService.updateRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u6210\u529F\u3002
ExchangeWebService.insertionRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u633F\u5165\u6210\u529F\u3002
ImportExchangeDialog.dialogTitle=Talend Exchange \u304B\u3089\u9805\u76EE\u306E\u9078\u629E
ImportExchangeDialog.WARNING=\u8B66\u544A
ImportExchangeDialog.NOTSELECTWARNING=\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u30A2\u30A4\u30C6\u30E0\u3092\uFF11\u3064\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044...
ImportExchangeDialog.downloadProgressBar=\u30A2\u30A4\u30C6\u30E0\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044!
ImportExchangeDialog.EXTENSION_NAME=Extension\u540D
ImportExchangeDialog.AUTHOR_NAME=\u4F5C\u6210\u8005\u540D
ImportExchangeDialog.LATEST_REVISION=\u6700\u65B0\u30EA\u30D3\u30B8\u30E7\u30F3
ImportExchangeDialog.EXTENSION_DESCRIPTION=\u62E1\u5F35\u306E\u8AAC\u660E
ImportExchangeDialog.download.extensions=\u62E1\u5F35\u6A5F\u80FD\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.REFRESH_BUTTON=\u66F4\u65B0
ImportExchangeDialog.REFRESHING_PROGRESSBAR=\u66F4\u65B0\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044\u3002
ImportExchangeDialog.OPERATION_CANCELLED=\u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F

View File

@@ -0,0 +1,13 @@
AvailableExtensionsComposite.Version=\u0412\u0435\u0440\u0441\u0438\u044F
AvailableExtensionsComposite.Author=\u0410\u0432\u0442\u043E\u0440
AvailableExtensionsComposite.FilterTitle=\u0444\u0438\u043B\u044C\u0442\u0440
DownloadedExtensionsComposite.installedOperateStatus=\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D
MyExtensionsComposite.Version=\u0412\u0435\u0440\u0441\u0438\u044F
MyExtensionsComposite.ModifyOperateStatus=\u041C\u043E\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043E\u0432\u0430\u0442\u044C
MyExtensionsComposite.DeleteOperateStatus=\u0423\u0434\u0430\u043B\u0438\u0442\u044C
MyExtensionsComposite.Form.Compatibility.Version=\u0412\u0435\u0440\u0441\u0438\u044F
MyExtensionsComposite.Form.Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435
MyExtensionsComposite.Form.Upload.Browse=\u041E\u0431\u0437\u043E\u0440...
DownloadComponenentsAction.DownloadTaskName=\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0444\u0430\u0439\u043B \u043F\u043E \u0441\u0441\u044B\u043B\u043A\u0435:
ImportExchangeDialog.WARNING=\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435
ImportExchangeDialog.REFRESH_BUTTON=\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C

View File

@@ -0,0 +1,18 @@
AvailableExtensionsComposite.Version=Verzia
AvailableExtensionsComposite.Author=Autor
AvailableExtensionsComposite.FilterTitle=Filter
AvailableExtensionsComposite.ViewDetail.installOperateStatus=In\u0161talova\u0165
DownloadedExtensionsComposite.installOperateStatus=In\u0161talova\u0165
DownloadedExtensionsComposite.updateOperateStatus=Obnovi\u0165
MyExtensionsComposite.Version=Verzia
MyExtensionsComposite.UpdateOperateStatus=Obnovi\u0165
MyExtensionsComposite.ModifyOperateStatus=Modifikova\u0165
MyExtensionsComposite.DeleteOperateStatus=Zmaza\u0165
MyExtensionsComposite.Form.Compatibility=Kompatibilita
MyExtensionsComposite.Form.Compatibility.Version=Verzia
MyExtensionsComposite.Form.Description=Popis
MyExtensionsComposite.Form.Visibility=Vidite\u013Enos\u0165
MyExtensionsComposite.Form.Upload=Nahra\u0165
ImportExchangeDialog.WARNING=Varovanie
ImportExchangeDialog.AUTHOR_NAME=Meno autora
ImportExchangeDialog.REFRESH_BUTTON=Obnovi\u0165

View File

@@ -0,0 +1,18 @@
AvailableExtensionsComposite.Version=Verzia
AvailableExtensionsComposite.Author=Autor
AvailableExtensionsComposite.FilterTitle=Filter
AvailableExtensionsComposite.ViewDetail.installOperateStatus=In\u0161talova\u0165
DownloadedExtensionsComposite.installOperateStatus=In\u0161talova\u0165
DownloadedExtensionsComposite.updateOperateStatus=Obnovi\u0165
MyExtensionsComposite.Version=Verzia
MyExtensionsComposite.UpdateOperateStatus=Obnovi\u0165
MyExtensionsComposite.ModifyOperateStatus=Modifikova\u0165
MyExtensionsComposite.DeleteOperateStatus=Zmaza\u0165
MyExtensionsComposite.Form.Compatibility=Kompatibilita
MyExtensionsComposite.Form.Compatibility.Version=Verzia
MyExtensionsComposite.Form.Description=Popis
MyExtensionsComposite.Form.Visibility=Vidite\u013Enos\u0165
MyExtensionsComposite.Form.Upload=Nahra\u0165
ImportExchangeDialog.WARNING=Varovanie
ImportExchangeDialog.AUTHOR_NAME=Meno autora
ImportExchangeDialog.REFRESH_BUTTON=Obnovi\u0165

View File

@@ -0,0 +1,103 @@
ExchangeView.Exchange=Exchange
AvailableExtensionsComposite.ExtensionName=Extension Name
AvailableExtensionsComposite.Version=Version
AvailableExtensionsComposite.Rating=Rating
AvailableExtensionsComposite.Author=Author
AvailableExtensionsComposite.FilterTitle=Filter
AvailableExtensionsComposite.ViewDetail.installOperateStatus=Install
AvailableExtensionsComposite.ViewDetail.WriteReview=Write a review
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailure=Insertion Review failure.
AvailableExtensionsComposite.ViewDetail.InsertionReviewFailureTip=You should check it.
DownloadedExtensionsComposite.ExtensionName=Extension Name
DownloadedExtensionsComposite.DownloadedVersion=Downloaded Version
DownloadedExtensionsComposite.DownloadDate=Download Date
DownloadedExtensionsComposite.OperateStatus=Operate Status
DownloadedExtensionsComposite.installOperateStatus=Install
DownloadedExtensionsComposite.installedOperateStatus=Installed
DownloadedExtensionsComposite.updateOperateStatus=Update
MyExtensionsComposite.ExtensionName=Extension Name
MyExtensionsComposite.Version=Version
MyExtensionsComposite.UploadDate=Upload Date
MyExtensionsComposite.AddNewExtensionTitle=Add New Extension
MyExtensionsComposite.UpLoadNewVersionOperateStatus=UpLoad New Version
MyExtensionsComposite.UpdateOperateStatus=Update
MyExtensionsComposite.ModifyOperateStatus=Modify
MyExtensionsComposite.DeleteOperateStatus=Delete
MyExtensionsComposite.Form.Return=Return
MyExtensionsComposite.Form.ExtensionTitle=Extension Title
MyExtensionsComposite.Form.InitialVersion=Initial Version
MyExtensionsComposite.Form.Compatibility=Compatibility
MyExtensionsComposite.Form.Compatibility.AllVersions=All versions
MyExtensionsComposite.Form.Compatibility.Version=Version
MyExtensionsComposite.Form.Compatibility.AndOlder=and older
MyExtensionsComposite.Form.Compatibility.AndNewer=and newer
MyExtensionsComposite.Form.Compatibility.AllVersionsExcept=All versions except:
MyExtensionsComposite.Form.Compatibility.OnlyTheseVersions=Only these versions:
MyExtensionsComposite.Form.Description=Description
MyExtensionsComposite.Form.Visibility=Visibility
MyExtensionsComposite.Form.Visibility.Public=Public(visible by all)
MyExtensionsComposite.Form.Visibility.Private=Private(visible by me)
MyExtensionsComposite.Form.Upload=Upload
MyExtensionsComposite.Form.Upload.SelectAnItem=Select an item from the currently open project
MyExtensionsComposite.Form.Upload.File=File:
MyExtensionsComposite.Form.Upload.Browse=Browse
MyExtensionsComposite.Form.Upload.Browse.SelectFile=Select a File of the extension to upload
MyExtensionsComposite.Form.DeleteExtensionTile=Delete Extension
MyExtensionsComposite.Form.DeleteExtensionMessage=You sure delete this Extension
MyExtensionsComposite.Form.UploadExtension=Upload Extension
MyExtensionsComposite.Form.UpdateExtension=Update Extension
MyExtensionsComposite.Form.ModifyExtension=Modify Extension
Exchange.logon.error=Exchange user have not been registered, please register using the preferences .
RefreshJob.FindExtensions.Title=Finding available extensions
RefreshJob.FindExtensions.Message=Finding extensions from exchange...
ShowContributedExtensionsJob.ShowContributedExtensions.Title=Finding contributed extensions
ShowContributedExtensionsJob.ShowContributedExtensions.Message=Finding contributed extensions from exchange...
ShowInstalledExtensionsJob.ShowInstalledExtensions.Title=Finding installed extensions
ShowInstalledExtensionsJob.ShowInstalledExtensions.Message=Finding installed extensions from exchange...
DeleteExtensionJob.DeleteExtensionJob.Title=Delete an extension...
DeleteExtensionJob.DeleteExtensionJob.Message=Delete an extension...
DeleteExtensionJob.DeleteFailure=Delete failure.
DeleteExtensionJob.DeleteFailureTip=You should check it.
ModifyExtensionJob.Title=Modify an extension...
ModifyExtensionJob.Message=Modify an extension...
ModifyExtensionJob.ModifyFailure=Modify failure.
ModifyExtensionJob.ModifyFailureTip=You should check it.
InstalledExtensionJob.Title=Installed an extension...
InstalledExtensionJob.Message=Installed an extension...
InsertionExtensionAction.InstalledFailure=Installed failure.
InsertionExtensionAction.InstalledFailureTip=You should check it.
UploadRevisionJob.Title=Upload Revision...
UploadRevisionJob.Message=Upload Revision...
UploadRevisionAction.InstalledFailure=Upload Revision failure.
UploadRevisionAction.InstalledFailureTip=You should check it.
DownloadComponenentsAction.installExchange=Installed Exchange Components
DownloadComponenentsAction.DownloadTaskTitle=Downloading files from Exchange
DownloadComponenentsAction.DownloadTaskName=Downloading file from url:
DownloadComponenentsAction.ReloadPalette=Reloading palette...
DownloadComponenentsAction.DownloadFailure=Download failure.
DownloadComponenentsAction.DownloadFailureTip=You must change the Download Settings.
ExchangeWebService.insertionExtensionSuccessful=Insertion Extension successful.
ExchangeWebService.downloadingExtensionSuccessful=Downloaded Extension successful.
ExchangeWebService.deleteExtensionSuccessful=Deleted Extension successful.
ExchangeWebService.insertReviewSuccessful=Insertion Review successful.
ExchangeWebService.updateRevisionSuccessful=Update Revision successful.
ExchangeWebService.insertionRevisionSuccessful=Insertion Revision successful.
ImportExchangeDialog.dialogTitle=Select an item from Talend Exchange
ImportExchangeDialog.WARNING=WARNING
ImportExchangeDialog.NOTSELECTWARNING=Please select one item from table.....
ImportExchangeDialog.downloadProgressBar=Download Item,Please Wait\!
ImportExchangeDialog.EXTENSION_NAME=Extension Name
ImportExchangeDialog.AUTHOR_NAME=Author Name
ImportExchangeDialog.LATEST_REVISION=Latest Revision
ImportExchangeDialog.EXTENSION_DESCRIPTION=Extension Description
ImportExchangeDialog.download.components=Download Components Please Wait\!
ImportExchangeDialog.JOB_BUTTON=Job Designs
ImportExchangeDialog.DOWNLOAD_JOB=Download Some Job Designs...
ImportExchangeDialog.ROUTINES_BUTTON=Routines
ImportExchangeDialog.ROUTINES_PROGRESSBAR=Download Some Routines...
ImportExchangeDialog.TEMPLATES_BUTTON=SQL Templates
ImportExchangeDialog.TEMPLATES_PROGRESSBAR=Download Some SQL Templates...
ImportExchangeDialog.REFRESH_BUTTON=Refresh
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Refreshing\! Please Wait.....
ImportExchangeDialog.NOT_SELECT_BUTTON=Please select a choice first
ImportExchangeDialog.OPERATION_CANCELLED=Operation was cancelled

View File

@@ -0,0 +1,195 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// 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 Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.components.exchange;
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.osgi.framework.Bundle;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.commons.utils.io.FilesUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.model.components.AbstractComponentsProvider;
import org.talend.core.model.components.ComponentUtilities;
import org.talend.core.model.components.IComponentsFactory;
import org.talend.core.runtime.util.SharedStudioInfoProvider;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.core.ui.branding.IBrandingService;
import org.talend.designer.components.exchange.util.ExchangeUtils;
/**
* DOC hcyi class global comment. Detailled comment
*/
public class ExchangeComponentsProvider extends AbstractComponentsProvider implements SharedStudioInfoProvider{
/**
* ExchangeComponentsProvider constructor.
*/
public ExchangeComponentsProvider() {
}
@Override
public void preComponentsLoad() throws IOException {
File installFolder = getInstallationFolder();
// clean folder
if (installFolder.exists()) {
FilesUtils.removeFolder(installFolder, true);
}
FilesUtils.createFoldersIfNotExists(installFolder.getAbsolutePath(), false);
File externalComponentsLocation = getExternalComponentsLocation();
if (externalComponentsLocation != null) {
if (externalComponentsLocation.exists()) {
try {
copyFolder(externalComponentsLocation, installFolder);
} catch (Throwable e) {
ExceptionHandler.process(e);
}
}
}
}
/**
*
* DOC hcyi Comment method "copyFolder".
*
* @param externalComponentsLocation
* @param installFolder
* @throws IOException
*/
private void copyFolder(File externalComponentsLocation, File installFolder) throws IOException {
FileFilter folderFilter = new FileFilter() {
@Override
public boolean accept(File file) {
return file.isDirectory();
}
};
FileFilter ff = new FileFilter() {
@Override
public boolean accept(File pathname) {
if (FilesUtils.isSVNFolder(pathname)) {
return false;
}
return true;
}
};
for (File folder : externalComponentsLocation.listFiles(folderFilter)) {
/*
* Some components have: <componentName>/<files> . some other have: <folder>/<componentName>/<files> .
*/
File componentFolder = searchComponentFolder(folder);
// if we cannot find the component folder, just ignore it
if (componentFolder != null) {
File target = new File(installFolder, componentFolder.getName());
// FileUtils.copyDirectory(componentFolder, target);
FilesUtils.copyFolder(componentFolder, target, true, ff, null, true, false);
}
}
}
/**
*
* DOC hcyi Comment method "searchComponentFolder".
*
* @param folder
* @return
*/
public static File searchComponentFolder(File folder) {
File componentFolder = null;
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
componentFolder = searchComponentFolder(file);
if (componentFolder != null) {
break;
}
} else {
// assumes that if the folder contains properties file, it is the root folder of component
if (file.getName().endsWith(".properties")) { //$NON-NLS-1$
componentFolder = folder;
break;
}
}
}
}
return componentFolder;
}
@Override
protected File getExternalComponentsLocation() {
return ExchangeUtils.getComponentFolder();
}
@Override
public String getComponentsLocation() {
return new Path(IComponentsFactory.COMPONENTS_INNER_FOLDER).append(IComponentsFactory.EXTERNAL_COMPONENTS_INNER_FOLDER)
.append(ComponentUtilities.getExtFolder(getFolderName())).toString();
}
@Override
public File getInstallationFolder() throws IOException {
String componentsPath = IComponentsFactory.COMPONENTS_LOCATION;
IBrandingService breaningService = (IBrandingService) GlobalServiceRegister.getDefault().getService(
IBrandingService.class);
if (breaningService.isPoweredOnlyCamel()) {
componentsPath = IComponentsFactory.CAMEL_COMPONENTS_LOCATION;
}
Bundle b = Platform.getBundle(componentsPath);
File installationFolder = null;
IPath nullPath = new Path(""); //$NON-NLS-1$
URL url = FileLocator.find(b, nullPath, null);
URL fileUrl = FileLocator.toFileURL(url);
File bundleFolder = new File(fileUrl.getPath());
IPath path = new Path(IComponentsFactory.COMPONENTS_INNER_FOLDER)
.append(IComponentsFactory.EXTERNAL_COMPONENTS_INNER_FOLDER);
path = path.append(ComponentUtilities.getExtFolder(getFolderName()));
installationFolder = new File(bundleFolder, path.toOSString());
return installationFolder;
}
@Override
public boolean isUseLocalProvider() {
return true;
}
public boolean isCustom() {
return true;
}
public String getComponentsBundle() {
return IComponentsFactory.COMPONENTS_LOCATION;
}
public boolean isSupportCurrentMode() {
if (SharedStudioUtils.isSharedStudioMode()) {
return false;
}
return true;
}
}

View File

@@ -0,0 +1,40 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// 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 Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.components.exchange;
import org.talend.designer.components.exchange.i18n.Messages;
/**
*
* DOC hcyi class global comment. Detailled comment
*/
public class ExchangeConstants {
/**
* File that store information about the components we have downloaded.
*/
public static final String COMPONENT_MODEL_FILE = "component_extensions.xmi"; //$NON-NLS-1$
public static String getReloadPaletteLable() {
return Messages.getString("DownloadComponenentsAction.ReloadPalette"); //$NON-NLS-1$
}
public static String getDownloadTaskTitleLable() {
return Messages.getString("DownloadComponenentsAction.DownloadTaskTitle"); //$NON-NLS-1$
}
public static String getDownloadTaskNameLable() {
return Messages.getString("DownloadComponenentsAction.DownloadTaskName"); //$NON-NLS-1$
}
}

View File

@@ -0,0 +1,90 @@
package org.talend.designer.components.exchange;
import java.io.File;
import java.util.StringTokenizer;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import org.talend.commons.utils.VersionUtils;
import org.talend.designer.components.exchange.util.ExchangeUtils;
/**
* The activator class controls the plug-in life cycle
*/
public class ExchangePlugin extends AbstractUIPlugin {
// The plug-in ID
public static final String PLUGIN_ID = "org.talend.designer.components.exchange"; //$NON-NLS-1$
// The shared instance
private static ExchangePlugin plugin;
private static final String LEVEL_SEPARATOR = "."; //$NON-NLS-1$
/**
* The constructor
*/
public ExchangePlugin() {
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
*/
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
createNecessaryFolders();
}
private void createNecessaryFolders() {
File file = ExchangeUtils.getComponentFolder("/"); //$NON-NLS-1$
if (file != null) {
File dowloadedFoder = new File(file, ExchangeUtils.FOLDER_DOWNLOADED);
if (!dowloadedFoder.exists()) {
dowloadedFoder.mkdir();
}
}
}
/*
* (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 ExchangePlugin getDefault() {
return plugin;
}
public static String getStudioVersion() {
StringBuffer sb = new StringBuffer();
StringTokenizer stringTokenizer = new StringTokenizer(VersionUtils.getVersion(), LEVEL_SEPARATOR);
try {
sb.append(stringTokenizer.nextToken());
sb.append(LEVEL_SEPARATOR);
sb.append(stringTokenizer.nextToken());
sb.append(LEVEL_SEPARATOR);
sb.append(stringTokenizer.nextToken());
} catch (NumberFormatException e) {
}
return sb.toString();
}
public static ImageDescriptor getImageDescriptor(String path) {
return imageDescriptorFromPlugin(PLUGIN_ID, path);
}
}

View File

@@ -0,0 +1,59 @@
package org.talend.designer.components.exchange;
//============================================================================
//
//Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
//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 Talend SA
//9 rue Pages 92150 Suresnes, France
//
//============================================================================
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ResourceBundle;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.talend.core.model.components.ComponentUtilities;
import org.talend.core.model.components.IComponentsFactory;
import org.talend.core.runtime.util.ComponentsLocationProvider;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.designer.core.model.components.ComponentBundleToPath;
public class SharedStudioExchangeComponentsProvider extends ExchangeComponentsProvider implements ComponentsLocationProvider{
@Override
public File getInstallationFolder() throws IOException {
File componentFolder = SharedStudioUtils.getSharedStudioComponentsParentFolder();
IPath path = new Path(IComponentsFactory.COMPONENTS_INNER_FOLDER);
path = path.append(IComponentsFactory.EXTERNAL_COMPONENTS_INNER_FOLDER).append(ComponentUtilities.getExtFolder(getFolderName()));
File installationFolder = new File (componentFolder, path.toOSString());
return installationFolder;
}
public String getComponentsBundle() {
return ComponentBundleToPath.SHARED_STUDIO_CUSTOM_COMPONENT_BUNDLE;
}
public boolean isSupportCurrentMode() {
if (SharedStudioUtils.isSharedStudioMode()) {
return true;
}
return false;
}
@Override
public ResourceBundle getResourceBundle(String label) {
URL configFolderUrl = Platform.getConfigurationLocation().getURL();
URLClassLoader urlLoader = new URLClassLoader(new java.net.URL[]{configFolderUrl});
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle( label ,
java.util.Locale.getDefault(), urlLoader );
return bundle;
}
}

View File

@@ -1,6 +1,6 @@
// ============================================================================
//
// Copyright (C) 2006-2023 Talend Inc. - www.talend.com
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
@@ -10,17 +10,21 @@
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.repository.bigquery.i18n;
package org.talend.designer.components.exchange.i18n;
import java.util.ResourceBundle;
import org.talend.commons.i18n.MessagesCore;
/**
*
* DOC hcyi class global comment. Detailled comment
*/
public class Messages extends MessagesCore {
private static final String BUNDLE_NAME = "messages"; //$NON-NLS-1$
private static final String PLUGIN_ID = "org.talend.repository.bigquery"; //$NON-NLS-1$
private static final String PLUGIN_ID = "org.talend.designer.components.exchange"; //$NON-NLS-1$
private static ResourceBundle resourceBundle = ResourceBundle.getBundle(BUNDLE_NAME);
@@ -31,7 +35,7 @@ public class Messages extends MessagesCore {
* @return the string for the given key in the class resource bundle
* @see MessagesCore#getString(String, ResourceBundle)
*/
public static String getString(String key) {
public static String getString(final String key) {
return getString(key, PLUGIN_ID, resourceBundle);
}
@@ -43,7 +47,7 @@ public class Messages extends MessagesCore {
* @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) {
public static String getString(final String key, final Object... args) {
return MessagesCore.getString(key, PLUGIN_ID, resourceBundle, args);
}
}

View File

@@ -0,0 +1,136 @@
// ============================================================================
//
// Copyright (C) 2006-2021 Talend Inc. - www.talend.com
//
// 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 Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.designer.components.exchange.jobs;
import java.io.File;
import java.util.Enumeration;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.apache.commons.io.FileUtils;
import org.talend.commons.utils.io.FilesUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.language.LanguageManager;
import org.talend.core.ui.services.IComponentsLocalProviderService;
/**
*
* DOC hcyi class global comment. Detailled comment
*/
public class ComponentInstaller {
/**
* Unzip the component file to user folder.
*
* @param zipFile The component zip file
* @param targetFolder The user folder
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public static File unzip(String zipFile, String targetFolder) throws Exception {
ZipFile zip = new ZipFile(zipFile);
// folder that contains all the unzipped files
File rootFolder = getRootFolder(zip, targetFolder);
if (rootFolder == null) {
// the zip does not have any directory, fix it
String fileName = new File(zip.getName()).getName();
fileName = fileName.substring(0, fileName.lastIndexOf('.')); // remove extension
Pattern pattern = Pattern.compile("^([\\w]*)");
Matcher matcher = pattern.matcher(fileName);
if (matcher.find()) {
fileName = matcher.group(1);
}
rootFolder = new File(targetFolder, fileName);
targetFolder = targetFolder + File.separatorChar + fileName;
}
if (rootFolder.exists()) {
// we have installed older revision, delete it
FileUtils.deleteDirectory(rootFolder);
}
rootFolder.mkdir();
// move some common use codes for unzipping file to FilesUtils
FilesUtils.unzip(zipFile, targetFolder);
boolean valid = false;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IComponentsLocalProviderService.class)) {
IComponentsLocalProviderService service = (IComponentsLocalProviderService) GlobalServiceRegister.getDefault()
.getService(IComponentsLocalProviderService.class);
if (service != null) {
valid = service.validateComponent(rootFolder.getAbsolutePath(), LanguageManager.getCurrentLanguage());
}
}
if (!valid) {
if (rootFolder.exists() && rootFolder.isDirectory()) {
for (File f : rootFolder.listFiles()) {
f.delete();
}
rootFolder.delete();
}
return null;
}
return rootFolder;
}
/**
* Get the root folder that contains all the unzipped files
*
* @param zip The component zip file
* @param targetFolder The user folder
* @return
*/
@SuppressWarnings("unchecked")
private static File getRootFolder(ZipFile zip, String targetFolder) {
File rootFolder = null;
Enumeration<ZipEntry> enumeration = (Enumeration<ZipEntry>) zip.entries();
String directory = null;
while (enumeration.hasMoreElements()) {
ZipEntry entry = enumeration.nextElement();
String entryName = entry.getName();
File file = new File(targetFolder, entryName);
if (entry.isDirectory()) {
// assumes that the first folder is root folder
if (rootFolder == null) {
rootFolder = file;
break;
}
}
// some zip file does not have a directory entry, see bug 0005472: [exchange view] cannot install
// tFileDelimitedSplit from exchange
if (directory == null) {
int pos = entryName.indexOf("/"); //$NON-NLS-1$
if (pos > -1) {
directory = entryName.substring(0, pos);
} else {
pos = entryName.indexOf("\\"); //$NON-NLS-1$
if (pos > -1) {
directory = entryName.substring(0, pos);
}
}
}
}
if (rootFolder == null && directory != null) {
rootFolder = new File(targetFolder, directory);
}
return rootFolder;
}
}

Some files were not shown because too many files have changed in this diff Show More