Compare commits
1 Commits
temp/TDI-4
...
tmppatch/8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0993b4f6f0 |
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<feature id="org.talend.designer.feature" label="Designer Feature" version="8.0.1.qualifier" provider-name=".Talend SA.">
|
||||
<feature id="org.talend.designer.feature" label="Designer Feature" version="8.0.1" provider-name=".Talend SA.">
|
||||
<description url="http://www.talend.com/online/featuresdescription.html#designer-feature">Complete description about this feature at http://www.talend.com/online/featuresdescription.html#designer-feature</description>
|
||||
<copyright url="http://www.talend.com/online/copyright.txt">Copyright Talend 2006, 2007</copyright>
|
||||
<license>The licence are describe in branding feature</license>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.fragment.jars.di.feature"
|
||||
label="Fragment Jars in DI"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.fragment.jars.di.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.gmf.feature"
|
||||
label="Gmf"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
GMF
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.gmf.feature</artifactId>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<feature id="org.talend.rcp.branding.tos.feature" label="Tos branding feature" version="8.0.1.qualifier" provider-name=".Talend SA." plugin="org.talend.rcp.branding.tos">
|
||||
<feature id="org.talend.rcp.branding.tos.feature" label="Tos branding feature" version="8.0.1" provider-name=".Talend SA." plugin="org.talend.rcp.branding.tos">
|
||||
<description url="http://www.example.com/description">[Enter Feature Description here.]</description>
|
||||
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
|
||||
<license>[Enter License Description here.]</license>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.rcp.branding.tos.feature</artifactId>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<feature id="org.talend.rcp.branding.tos.test.feature" label="Test feature for TOS" version="8.0.1.qualifier">
|
||||
<feature id="org.talend.rcp.branding.tos.test.feature" label="Test feature for TOS" version="8.0.1">
|
||||
<description url="http://www.example.com/description">[Enter Feature Description here.]</description>
|
||||
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
|
||||
<license url="http://www.example.com/license">[Enter License Description here.]</license>
|
||||
@@ -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,11 @@
|
||||
<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"/>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.rcp.branding.tos.test.feature</artifactId>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<feature id="org.talend.repository.feature" label="Repository Feature" version="8.0.1.qualifier" provider-name=".Talend SA.">
|
||||
<feature id="org.talend.repository.feature" label="Repository Feature" version="8.0.1" provider-name=".Talend SA.">
|
||||
<description url="http://www.talend.com/online/featuresdescription.html#repository-feature">Complete description about this feature at http://www.talend.com/online/featuresdescription.html#repository-feature</description>
|
||||
<copyright url="http://www.talend.com/online/copyright.txt">Copyright Talend 2006, 2007</copyright>
|
||||
<license>The licence are describe in branding feature</license>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.repository.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.azurestorage.feature"
|
||||
label="Azure Storage"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Azure Storage
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.azurestorage.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.googledrive.feature"
|
||||
label="Google Drive"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Google drive component
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.googledrive.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.jdbc.feature"
|
||||
label="JDBC_feature"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.jdbc.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.jira.feature"
|
||||
label="Jira"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Jira component
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.jira.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.marketo.feature"
|
||||
label="Marketo"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Marketo component
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.marketo.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.marklogic.feature"
|
||||
label="Marklogic"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Marklogic component
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.marklogic.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.netsuite.feature"
|
||||
label="Netsuite"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Netsuite
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.netsuite.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.salesforce.feature"
|
||||
label="Salesforce"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Salesforce component
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.salesforce.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.snowflake.feature"
|
||||
label="SNOWFLAKE_feature"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Snowflake
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.snowflake.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.studio.components.tcompv0.splunk.feature"
|
||||
label="Splunk"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
Splunk component
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.studio.components.tcompv0.splunk.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<feature
|
||||
id="org.talend.tos.components.feature"
|
||||
label="Components-feature"
|
||||
version="8.0.1.qualifier">
|
||||
version="8.0.1">
|
||||
|
||||
<description url="http://www.example.com/description">
|
||||
[Enter Feature Description here.]
|
||||
@@ -248,12 +248,5 @@
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
<plugin
|
||||
id="org.talend.designer.esb.components.rs.consumer"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"
|
||||
unpack="false"/>
|
||||
|
||||
</feature>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.components.feature</artifactId>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<feature id="org.talend.tos.core.feature" label="Feature" version="8.0.1.qualifier">
|
||||
<feature id="org.talend.tos.core.feature" label="Feature" version="8.0.1">
|
||||
<description url="http://www.example.com/description">[Enter Feature Description here.]</description>
|
||||
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
|
||||
<license url="http://www.example.com/license">[Enter License Description here.]</license>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.core.feature</artifactId>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<feature id="org.talend.tos.feature" label="Tos feature" version="8.0.1.qualifier" provider-name=".Talend SA.">
|
||||
<feature id="org.talend.tos.feature" label="Tos feature" version="8.0.1" provider-name=".Talend SA.">
|
||||
<description url="http://www.example.com/description">[Enter Feature Description here.]</description>
|
||||
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
|
||||
<license>[Enter License Description here.]</license>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.feature</artifactId>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<feature id="org.talend.tos.libraries.feature" label="Libraries_feature" version="8.0.1.qualifier">
|
||||
<feature id="org.talend.tos.libraries.feature" label="Libraries_feature" version="8.0.1">
|
||||
<description url="http://www.example.com/description">[Enter Feature Description here.]</description>
|
||||
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
|
||||
<license url="http://www.example.com/license">[Enter License Description here.]</license>
|
||||
@@ -43,8 +43,8 @@
|
||||
<plugin id="org.talend.libraries.palo" download-size="0" install-size="0" version="0.0.0"/>
|
||||
<plugin id="org.talend.libraries.persist.lookup" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
|
||||
<plugin id="org.talend.libraries.salesforce" download-size="0" install-size="0" version="0.0.0"/>
|
||||
<plugin id="org.talend.libraries.servlet" download-size="0" install-size="0" version="0.0.0"/>
|
||||
<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.esb" download-size="0" install-size="0" version="0.0.0"/>
|
||||
</feature>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.tos.libraries.feature</artifactId>
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Abstract Map Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.abstractmap;singleton:=true
|
||||
Bundle-Version: 8.0.1.qualifier
|
||||
Bundle-Version: 8.0.1
|
||||
Bundle-Activator: org.talend.designer.abstractmap.MapPlugin
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.talend.core,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.abstractmap</artifactId>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
prefs.configuration.LINK_STYLE.AUTO=Auto
|
||||
prefs.configuration.title=Map components preferences :
|
||||
prefs.configuration.LINK_STYLE.LINE=Lines (fast)
|
||||
prefs.configuration.LINK_STYLE.BEZIER_CURVE=Curves
|
||||
prefs.configuration.LINK_STYLE=Default mapping links display as :
|
||||
DraggingInfosPopup.draggingEntry=Dragging {0} entry.
|
||||
DraggingInfosPopup.dropInvalid=\n<< Drop invalid >>\n
|
||||
DraggingInfosPopup.draggingEntries=Dragging {0} entries.
|
||||
DraggingInfosPopup.dropInvalidWithKey=\n<< Drop invalid >>\nPress both Shift and Ctrl keys to map one to one and overwrite
|
||||
DraggingInfosPopup.overwriteMode=\ > Overwrite mode
|
||||
DraggingInfosPopup.appendMode=\ > Append mode
|
||||
DraggingInfosPopup.appendModeToOverwrite=\ > Append mode (Ctrl key to overwrite)
|
||||
DraggingInfosPopup.insertAllSelectedEntries=\ > Insert all selected entries
|
||||
DraggingInfosPopup.insertRemainingEntries=\ > Insert remaining entries
|
||||
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> Each source entry expression to each target expression
|
||||
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> Each source entry to each target expression
|
||||
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> All source entries expression to a single one target expression (Shift key to change mapping)
|
||||
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpression=> All source entries expression to a single one target expression
|
||||
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpressionShiftKey=> All source entries to a single one target expression (Shift key to change mapping)
|
||||
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpression=> All source entries to a single one target expression
|
||||
@@ -6,7 +6,7 @@ prefs.configuration.LINK_STYLE.LINE=Lignes (rapide)
|
||||
DraggingInfosPopup.draggingEntry=Glissement de {0} entr\u00E9e(s).
|
||||
DraggingInfosPopup.dropInvalid=\n<< D\u00E9p\u00F4t impossible >>\n
|
||||
DraggingInfosPopup.draggingEntries=Glissement de {0} entr\u00E9es.
|
||||
DraggingInfosPopup.dropInvalidWithKey=\n<< D\u00E9p\u00F4t impossible >>\nAppuyez sur Maj et Ctrl pour mapper en un pour un et \u00E9craser
|
||||
DraggingInfosPopup.dropInvalidWithKey=\n<<D\u00E9p\u00F4t impossible>>\n : appuyez sur Maj et Ctrl pour mapper en un pour un et \u00E9craser
|
||||
DraggingInfosPopup.overwriteMode= > Mode \u00E9crasement
|
||||
DraggingInfosPopup.appendMode= > Mode \u00E9criture \u00E0 la suite
|
||||
DraggingInfosPopup.appendModeToOverwrite= > Mode \u00E9criture \u00E0 la suite (Ctrl pour \u00E9craser)
|
||||
|
||||
@@ -3,18 +3,18 @@ prefs.configuration.LINK_STYLE=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DE\u30C3\u30D4\
|
||||
prefs.configuration.LINK_STYLE.AUTO=\u81EA\u52D5
|
||||
prefs.configuration.LINK_STYLE.BEZIER_CURVE=\u66F2\u7DDA
|
||||
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.draggingEntry={0}\u30A8\u30F3\u30C8\u30EA\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
|
||||
DraggingInfosPopup.dropInvalidWithKey=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\nShift\u30AD\u30FC\u3068Ctrl\u30AD\u30FC\u3092\u540C\u6642\u306B\u62BC\u3059\u3068\u30011\u5BFE1\u3067\u30DE\u30C3\u30D4\u30F3\u30B0\u3055\u308C\u3066\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3059
|
||||
DraggingInfosPopup.draggingEntries={0}\u30A8\u30F3\u30C8\u30EA\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u3044\u307E\u3059\u3002
|
||||
DraggingInfosPopup.dropInvalidWithKey=\n<< \u7121\u52B9\u306A\u30C9\u30ED\u30C3\u30D7 >>\n\u4E00\u5BFE\u4E00\u30DE\u30C3\u30D4\u30F3\u30B0\u3057\u3001\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F\u3001Shift\u30AD\u30FC\u3068Ctrl\u30AD\u30FC\u3092\u540C\u6642\u306B\u62BC\u3057\u307E\u3059
|
||||
DraggingInfosPopup.overwriteMode= > \u4E0A\u66F8\u304D\u30E2\u30FC\u30C9
|
||||
DraggingInfosPopup.appendMode= > \u8FFD\u52A0\u30E2\u30FC\u30C9
|
||||
DraggingInfosPopup.appendModeToOverwrite= > \u8FFD\u52A0\u30E2\u30FC\u30C9(\u4E0A\u66F8\u304D\u3059\u308B\u306B\u306F[Ctrl]\u30AD\u30FC)
|
||||
DraggingInfosPopup.insertAllSelectedEntries= > \u9078\u629E\u3057\u305F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u633F\u5165\u3057\u307E\u3059
|
||||
DraggingInfosPopup.insertRemainingEntries= > \u6B8B\u308A\u306E\u30A8\u30F3\u30C8\u30EA\u30FC\u3092\u633F\u5165\u3057\u307E\u3059
|
||||
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC\u5F0F
|
||||
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC
|
||||
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC\u5F0F (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
|
||||
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC\u5F0F
|
||||
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
|
||||
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u30FC
|
||||
DraggingInfosPopup.insertAllSelectedEntries= > \u9078\u629E\u3057\u305F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
|
||||
DraggingInfosPopup.insertRemainingEntries= > \u6B8B\u308A\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u633F\u5165\u3057\u307E\u3059
|
||||
DraggingInfosPopup.eachSourceEntryExpressionToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F
|
||||
DraggingInfosPopup.eachSourceEntryToEachTargetExpression=> \u5404\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u5404\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA
|
||||
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
|
||||
DraggingInfosPopup.allSourceEntriesExpressionToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA\u5F0F
|
||||
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpressionShiftKey=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA (\u30DE\u30C3\u30D4\u30F3\u30B0\u3092\u5909\u66F4\u3059\u308B\u306B\u306FShift\u30AD\u30FC)
|
||||
DraggingInfosPopup.allSourceEntriesToASingleOneTargetExpression=> 1\u3064\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u306B\u5BFE\u3059\u308B\u3059\u3079\u3066\u306E\u30BD\u30FC\u30B9\u30A8\u30F3\u30C8\u30EA
|
||||
|
||||
@@ -6,7 +6,7 @@ prefs.configuration.LINK_STYLE.LINE=\u76F4\u7EBF (\u5FEB)
|
||||
DraggingInfosPopup.draggingEntry=\u62D6\u52A8 {0} \u6761\u76EE
|
||||
DraggingInfosPopup.dropInvalid=\n<< \u65E0\u6548\u91CA\u653E >>\n
|
||||
DraggingInfosPopup.draggingEntries=\u62D6\u52A8 {0} \u4E2A\u6761\u76EE\u3002
|
||||
DraggingInfosPopup.dropInvalidWithKey=\n<< \u65E0\u6548\u653E\u7F6E >>\n\u6309\u4F4F Shift \u548C Ctrl \u952E\u4EE5\u8FDB\u884C\u4E00\u5BF9\u4E00\u6620\u5C04\u5E76\u6539\u5199
|
||||
DraggingInfosPopup.dropInvalidWithKey=\n<<\u65E0\u6548\u653E\u7F6E>>\n\u6309\u4F4F Shift \u548C Ctrl \u952E\u4EE5\u8FDB\u884C\u4E00\u5BF9\u4E00\u6620\u5C04\u5E76\u6539\u5199
|
||||
DraggingInfosPopup.overwriteMode= > \u91CD\u5199\u6A21\u5F0F
|
||||
DraggingInfosPopup.appendMode= >\u9644\u52A0\u6A21\u5F0F
|
||||
DraggingInfosPopup.appendModeToOverwrite= > \u8FFD\u52A0\u6A21\u5F0F (Ctrl \u952E\u6765\u6539\u5199)
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Alfresco Output Component Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.alfrescooutput;singleton:=true
|
||||
Bundle-Version: 8.0.1.qualifier
|
||||
Bundle-Version: 8.0.1
|
||||
Bundle-Vendor: .Talend SA.
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.talend.core,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.alfrescooutput</artifactId>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
AlfrescoModelDialog.missingAspectDefinitions.msg=The chosen aspects refer to unknown Alfresco aspect(s) : ${0}.\nPlease provide the alfresco model files that define them.
|
||||
AlfrescoModelDialog.modelTable.title=Title
|
||||
AlfrescoModelDialog.availableAspects=Available Aspects
|
||||
AlfrescoModelDialog.missingAspectDefinitions.title=Missing aspect definitions
|
||||
AlfrescoOutputManager.schemaError.title=Error in schema
|
||||
AlfrescoModelDialog.missingTypeDefinitions.msg=The chosen type refers to unknown Alfresco type(s) or aspect(s) : ${0}.\nPlease provide the alfresco model files that define them.
|
||||
AlfrescoModelDialog.missingTypeDefinitions.title=Missing type definitions
|
||||
AlfrescoModelDialog.add=Add...
|
||||
AlfrescoOutputModelManager.errorReadingModel=Error reading Alfresco model file
|
||||
AlfrescoModelDialog.aspects=Aspects
|
||||
AlfrescoOutputManager.schemaError.msg=Please synchronize schema first
|
||||
AlfrescoOutputModelManager.alreadyAdded=This model has already been added
|
||||
AlfrescoModelDialog.removeModelFailed=Failed to remove model
|
||||
AlfrescoOutputModelManager.prefixConflict=Unable to add the model, prefix conflict with previously added model for
|
||||
AlfrescoOutputModelManager.notYetAdded=This model has not yet been added
|
||||
AlfrescoModelDialog.type=Type
|
||||
AlfrescoModelDialog.addModelFailed=Failed to add model
|
||||
AlfrescoModelDialog.modelTable.name=Name
|
||||
AlfrescoModelDialog.remove=Remove
|
||||
AlfrescoOutputManager.failedLoadModel=Failed to load model from component metadata, reinitializing
|
||||
@@ -4,7 +4,7 @@ AlfrescoOutputManager.schemaError.msg=\u6700\u521D\u306B\u30B9\u30AD\u30FC\u30DE
|
||||
AlfrescoOutputModelManager.alreadyAdded=\u3053\u306E\u30E2\u30C7\u30EB\u306F\u65E2\u306B\u8FFD\u52A0\u6E08\u307F\u3067\u3059\u3002
|
||||
AlfrescoOutputModelManager.errorReadingModel=Alfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u306E\u8AAD\u8FBC\u307F\u30A8\u30E9\u30FC
|
||||
AlfrescoOutputModelManager.notYetAdded=\u3053\u306E\u30E2\u30C7\u30EB\u306F\u307E\u3060\u8FFD\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
|
||||
AlfrescoOutputModelManager.prefixConflict=\u5148\u306B\u8FFD\u52A0\u3055\u308C\u305F\u30E2\u30C7\u30EB\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306E\u885D\u7A81\u306E\u305F\u3081\u3001\u30E2\u30C7\u30EB\u306E\u8FFD\u52A0\u304C\u3067\u304D\u307E\u305B\u3093\u3002
|
||||
AlfrescoOutputModelManager.prefixConflict=\u5148\u306B\u8FFD\u52A0\u3055\u308C\u305F\u30E2\u30C7\u30EB\u306E\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u306E\u885D\u7A81\u306E\u305F\u3081\u3001\u30E2\u30C7\u30EB\u306E\u8FFD\u52A0\u304C\u51FA\u6765\u307E\u305B\u3093\u3002
|
||||
AlfrescoModelDialog.type=\u30BF\u30A4\u30D7
|
||||
AlfrescoModelDialog.aspects=\u30A2\u30B9\u30DA\u30AF\u30C8
|
||||
AlfrescoModelDialog.availableAspects=\u53EF\u80FD\u306A\u30A2\u30B9\u30DA\u30AF\u30C8
|
||||
@@ -13,8 +13,8 @@ AlfrescoModelDialog.addModelFailed=\u30E2\u30C7\u30EB\u8FFD\u52A0\u306B\u5931\u6
|
||||
AlfrescoModelDialog.remove=\u524A\u9664
|
||||
AlfrescoModelDialog.removeModelFailed=\u30E2\u30C7\u30EB\u306E\u524A\u9664\u306B\u5931\u6557\u3057\u307E\u3057\u305F
|
||||
AlfrescoModelDialog.missingTypeDefinitions.title=\u578B\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093
|
||||
AlfrescoModelDialog.missingTypeDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u306F\u3001Alfresco\u306E\u4E0D\u660E\u306A\u30BF\u30A4\u30D7\u307E\u305F\u306F\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308Balfresco\u306E\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
AlfrescoModelDialog.missingTypeDefinitions.msg=\u9078\u629E\u3057\u305F\u65B9\u306F\u4E0D\u660E\u306EAlfresco\u578B\u3082\u3057\u304F\u306F\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
AlfrescoModelDialog.missingAspectDefinitions.title=\u30A2\u30B9\u30DA\u30AF\u30C8\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093\u3002
|
||||
AlfrescoModelDialog.missingAspectDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30A2\u30B9\u30DA\u30AF\u30C8\u306F\u3001Alfresco\u306E\u4E0D\u660E\u306A\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308Balfresco\u306E\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
AlfrescoModelDialog.missingAspectDefinitions.msg=\u9078\u629E\u3055\u308C\u305F\u30A2\u30B9\u30DA\u30AF\u30C8\u306F\u4E0D\u660E\u306EAlfresco\u30A2\u30B9\u30DA\u30AF\u30C8: ${0}\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\n\u305D\u308C\u3089\u3092\u5B9A\u7FA9\u3057\u305FAlfresco\u30E2\u30C7\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u63D0\u4F9B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
AlfrescoModelDialog.modelTable.title=\u30BF\u30A4\u30C8\u30EB
|
||||
AlfrescoModelDialog.modelTable.name=\u540D\u524D
|
||||
|
||||
@@ -13,8 +13,8 @@ AlfrescoModelDialog.addModelFailed=\u6DFB\u52A0\u6A21\u578B\u5931\u8D25
|
||||
AlfrescoModelDialog.remove=\u79FB\u9664
|
||||
AlfrescoModelDialog.removeModelFailed=\u79FB\u9664\u6A21\u578B\u5931\u8D25
|
||||
AlfrescoModelDialog.missingTypeDefinitions.title=\u7F3A\u7701\u7C7B\u578B\u5B9A\u4E49
|
||||
AlfrescoModelDialog.missingTypeDefinitions.msg=\u6240\u9009\u62E9\u7684\u7C7B\u578B\u6D89\u53CA\u672A\u77E5\u7684 Alfresco \u7C7B\u578B\u6216\u65B9\u9762: ${0}\u3002\n\u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
|
||||
AlfrescoModelDialog.missingTypeDefinitions.msg=\u6240\u9009\u62E9\u7684\u7C7B\u578B\u6D89\u53CA\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u77E5\u7684 Alfresco \u7C7B\u578B\u6216asepct: ${0}.\n \u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B \u7C7B\u578B\u6216 aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
|
||||
AlfrescoModelDialog.missingAspectDefinitions.title=\u7F3A\u7701\u65B9\u9762\u5B9A\u4E49
|
||||
AlfrescoModelDialog.missingAspectDefinitions.msg=\u6240\u9009\u62E9\u7684\u65B9\u9762\u6D89\u53CA\u672A\u77E5\u7684Alfresco\u65B9\u9762: ${0}.\n\u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
|
||||
AlfrescoModelDialog.missingAspectDefinitions.msg=\u6240\u9009\u62E9\u7684\u65B9\u9762\u6D89\u53CA\u4E00\u4E2A\u6216\u591A\u4E2A\u672A\u77E5\u7684 Alfresco aspect: ${0}.\n \u8BF7\u63D0\u4F9B\u5B9A\u4E49\u8FD9\u4E9B aspect \u7684 Alfresco \u6A21\u578B\u6587\u4EF6\u3002
|
||||
AlfrescoModelDialog.modelTable.title=\u6807\u9898
|
||||
AlfrescoModelDialog.modelTable.name=\u540D\u79F0
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: CodeGen Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.codegen;singleton:=true
|
||||
Bundle-Version: 8.0.1.qualifier
|
||||
Bundle-Version: 8.0.1
|
||||
Bundle-Localization: plugin
|
||||
Require-Bundle: org.talend.core.repository,
|
||||
org.eclipse.emf.codegen,
|
||||
|
||||
@@ -7,6 +7,7 @@ bin.includes = plugin.xml,\
|
||||
jet_stub/,\
|
||||
plugin.properties,\
|
||||
plugin_de.properties,\
|
||||
plugin_en.properties,\
|
||||
plugin_es.properties,\
|
||||
plugin_fr.properties,\
|
||||
plugin_ja.properties,\
|
||||
|
||||
@@ -90,9 +90,11 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
|
||||
INode source = con.getSource();
|
||||
String sourceNodeId = source.getUniqueName();
|
||||
|
||||
String sourceNodeLabel = NodeUtil.getLabel(source);
|
||||
|
||||
String targetNodeLabel = NodeUtil.getLabel(node);
|
||||
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
|
||||
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel.trim());
|
||||
|
||||
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel.trim());
|
||||
|
||||
String sourceNodeComponent = source.getComponent().getName();
|
||||
for (INode jobStructureCatcher : jobCatcherNodes) {
|
||||
@@ -122,9 +124,11 @@ if((codePart.equals(ECodePart.END))&&(stat || logstashCurrent)){
|
||||
INode source = con.getSource();
|
||||
String sourceNodeId = source.getUniqueName();
|
||||
|
||||
String sourceNodeLabel = NodeUtil.getLabel(source);
|
||||
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
|
||||
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel.trim());
|
||||
|
||||
String targetNodeLabel = NodeUtil.getLabel(node);
|
||||
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel.trim());
|
||||
|
||||
String sourceNodeComponent = source.getComponent().getName();
|
||||
for (INode jobStructureCatcher : jobCatcherNodes) {
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
}
|
||||
%>
|
||||
currentComponent="<%=node.getUniqueName() %>";
|
||||
|
||||
|
||||
<%
|
||||
connSet = new HashSet<IConnection>();
|
||||
connSet.addAll(node.getIncomingConnections(EConnectionType.FLOW_MAIN));
|
||||
@@ -155,17 +155,6 @@
|
||||
//about performance monitor, no way to support more than one job catcher component, also that is not necessary
|
||||
final String subprocessName4Catcher = logstashCurrent ? jobCatcherNodes.get(0).getDesignSubjobStartNode().getUniqueName() : null;
|
||||
|
||||
if(logstashCurrent) {
|
||||
String currentLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
if(currentLabel==null || "".equals(currentLabel) || "__UNIQUE_NAME__".equals(currentLabel) || cid.endsWith(NodeUtil.getLabel(node))) {
|
||||
//not generate the unnecessary statement if label is default one
|
||||
} else {
|
||||
%>
|
||||
cLabel="<%=NodeUtil.getLabel(node)%>";
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
if ((codePart.equals(ECodePart.BEGIN))&&(stat || logstashCurrent)&&connSet.size()>0) {
|
||||
if(containsTPartitioner) {
|
||||
%>
|
||||
@@ -207,9 +196,11 @@
|
||||
INode source = con.getSource();
|
||||
String sourceNodeId = source.getUniqueName();
|
||||
|
||||
String sourceNodeLabel = NodeUtil.getLabel(source);
|
||||
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
|
||||
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel.trim());
|
||||
|
||||
String targetNodeLabel = NodeUtil.getLabel(node);
|
||||
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel.trim());
|
||||
|
||||
String sourceNodeComponent = source.getComponent().getName();
|
||||
%>
|
||||
@@ -241,9 +232,11 @@
|
||||
INode source = con.getSource();
|
||||
String sourceNodeId = source.getUniqueName();
|
||||
|
||||
String sourceNodeLabel = NodeUtil.getLabel(source);
|
||||
|
||||
String targetNodeLabel = NodeUtil.getLabel(node);
|
||||
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
|
||||
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel.trim());
|
||||
|
||||
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel.trim());
|
||||
|
||||
String sourceNodeComponent = source.getComponent().getName();
|
||||
%>
|
||||
@@ -266,9 +259,11 @@
|
||||
INode source = con.getSource();
|
||||
String sourceNodeId = source.getUniqueName();
|
||||
|
||||
String sourceNodeLabel = NodeUtil.getLabel(source);
|
||||
|
||||
String targetNodeLabel = NodeUtil.getLabel(node);
|
||||
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
|
||||
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel.trim());
|
||||
|
||||
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel.trim());
|
||||
|
||||
String sourceNodeComponent = source.getComponent().getName();
|
||||
|
||||
@@ -300,9 +295,11 @@
|
||||
INode source = con.getSource();
|
||||
String sourceNodeId = source.getUniqueName();
|
||||
|
||||
String sourceNodeLabel = NodeUtil.getLabel(source);
|
||||
String sourceLabel = ElementParameterParser.getValue(source, "__LABEL__");
|
||||
String sourceNodeLabel = ((sourceLabel==null || "__UNIQUE_NAME__".equals(sourceLabel) || sourceLabel.contains("\"")) ? sourceNodeId : sourceLabel.trim());
|
||||
|
||||
String targetNodeLabel = NodeUtil.getLabel(node);
|
||||
String targetLabel = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
String targetNodeLabel = ((targetLabel==null || "__UNIQUE_NAME__".equals(targetLabel) || targetLabel.contains("\"")) ? node.getUniqueName() : targetLabel.trim());
|
||||
|
||||
String sourceNodeComponent = source.getComponent().getName();
|
||||
|
||||
@@ -437,7 +434,8 @@
|
||||
|
||||
if(logstashCurrent) {
|
||||
for (INode jobStructureCatcher : jobCatcherNodes) {
|
||||
String nodeLabel = NodeUtil.getLabel(node);
|
||||
String label = ElementParameterParser.getValue(node, "__LABEL__");
|
||||
String nodeLabel = ((label==null || "__UNIQUE_NAME__".equals(label) || label.contains("\"")) ? node.getUniqueName() : label.trim());
|
||||
%>
|
||||
if(enableLogStash) {
|
||||
<%=jobStructureCatcher.getUniqueName() %>.addCM("<%=node.getUniqueName()%>", "<%=nodeLabel%>", "<%=node.getComponent().getName()%>");
|
||||
|
||||
@@ -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");
|
||||
@@ -224,7 +223,7 @@
|
||||
public boolean useDatastax(INode node){
|
||||
String dbVersion = ElementParameterParser.getValue(node, "__DB_VERSION__");
|
||||
String apiType = ElementParameterParser.getValue(node, "__API_TYPE__");
|
||||
return "CASSANDRA_2_2".equals(dbVersion) || "CASSANDRA_3_0".equals(dbVersion) || "CASSANDRA_4_0".equals(dbVersion) || ("CASSANDRA_2_0_0".equals(dbVersion) && "DATASTAX".equals(apiType));
|
||||
return "CASSANDRA_2_2".equals(dbVersion) || "CASSANDRA_3_0".equals(dbVersion) || ("CASSANDRA_2_0_0".equals(dbVersion) && "DATASTAX".equals(apiType));
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -322,8 +321,6 @@
|
||||
globalMap.put(GLOBAL_CONNECTION_POOL_KEY, connectionPool);
|
||||
}
|
||||
<%}%>
|
||||
|
||||
private final static java.util.Properties jobInfo = new java.util.Properties();
|
||||
|
||||
public static void main(String[] args){
|
||||
final <%=className %> <%=className %>Class = new <%=className %>();
|
||||
@@ -337,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 {
|
||||
jobInfo.load(new java.io.FileInputStream(jobInfoFile));
|
||||
} 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) {
|
||||
@@ -553,61 +514,17 @@
|
||||
}
|
||||
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;
|
||||
|
||||
int threadPoolSize = 0;
|
||||
boolean tRESTRequestLoopExists = false;
|
||||
}
|
||||
log.info("TalendJob: '<%=codeGenArgument.getJobName()%>' - Start.");
|
||||
<%}%>
|
||||
|
||||
<%
|
||||
INode jobCatcherNode = null;
|
||||
for (INode nodeInProcess : process.getGeneratingNodes()) {
|
||||
String componentName = nodeInProcess.getComponent().getName();
|
||||
|
||||
if(jobCatcherNode==null && "tJobStructureCatcher".equals(componentName)) {
|
||||
if("tJobStructureCatcher".equals(componentName)) {
|
||||
jobCatcherNode = nodeInProcess;
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!nodeInProcess.isActivate()) continue;
|
||||
|
||||
if("tRESTRequestLoop".equals(componentName)) {
|
||||
tRESTRequestLoopExists = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if("tWriteXMLFieldOut".equals(componentName)) {
|
||||
IConnection nextMergeConn = NodeUtil.getNextMergeConnection(nodeInProcess);
|
||||
if(nextMergeConn == null || nextMergeConn.getInputId()==1){
|
||||
threadPoolSize++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -707,26 +624,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) {
|
||||
@@ -746,15 +651,15 @@
|
||||
%>
|
||||
boolean inOSGi = routines.system.BundleUtils.inOSGi();
|
||||
|
||||
try {
|
||||
java.util.Dictionary<String, Object> jobProperties = null;
|
||||
if (inOSGi) {
|
||||
jobProperties = routines.system.BundleUtils.getJobProperties(jobName);
|
||||
|
||||
if (jobProperties != null && jobProperties.get("context") != null) {
|
||||
contextStr = (String)jobProperties.get("context");
|
||||
}
|
||||
if (inOSGi) {
|
||||
java.util.Dictionary<String, Object> jobProperties = routines.system.BundleUtils.getJobProperties(jobName);
|
||||
|
||||
if (jobProperties != null && jobProperties.get("context") != null) {
|
||||
contextStr = (String)jobProperties.get("context");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
//call job/subjob with an existing context, like: --context=production. if without this parameter, there will use the default context instead.
|
||||
java.io.InputStream inContext = <%=className%>.class.getClassLoader().getResourceAsStream("<%=jobClassPackageFolder%>/contexts/" + contextStr + ".properties");
|
||||
if (inContext == null) {
|
||||
@@ -764,17 +669,8 @@
|
||||
try {
|
||||
//defaultProps is in order to keep the original context value
|
||||
if(context != null && context.isEmpty()) {
|
||||
defaultProps.load(inContext);
|
||||
if (inOSGi && jobProperties != null) {
|
||||
java.util.Enumeration<String> keys = jobProperties.keys();
|
||||
while (keys.hasMoreElements()) {
|
||||
String propKey = keys.nextElement();
|
||||
if (defaultProps.containsKey(propKey)) {
|
||||
defaultProps.put(propKey, (String) jobProperties.get(propKey));
|
||||
}
|
||||
}
|
||||
}
|
||||
context = new ContextProperties(defaultProps);
|
||||
defaultProps.load(inContext);
|
||||
context = new ContextProperties(defaultProps);
|
||||
}
|
||||
} finally {
|
||||
inContext.close();
|
||||
@@ -960,12 +856,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.");
|
||||
<%}%>
|
||||
resumeUtil.addLog("JOB_STARTED", "JOB:" + jobName, parent_part_launcher, Thread.currentThread().getId() + "", "","","","",resumeUtil.convertToJsonText(context,parametersToEncrypt));
|
||||
|
||||
<%
|
||||
if (stats) {
|
||||
@@ -1238,15 +1129,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
|
||||
@@ -1304,26 +1189,6 @@ this.globalResumeTicket = true;//to run tPostJob
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
//tRESTRequest may appear in microservice, the code may be called before call submit(task) method, so can't shutdown it here
|
||||
if(!tRESTRequestLoopExists && threadPoolSize>0) {
|
||||
%>
|
||||
es.shutdown();
|
||||
<%//shutdownNow should never be executed, only for safe%>
|
||||
try {
|
||||
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
|
||||
es.shutdownNow();
|
||||
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
|
||||
|
||||
}
|
||||
}
|
||||
} catch (java.lang.InterruptedException ie) {
|
||||
es.shutdownNow();
|
||||
} catch (java.lang.Exception e) {
|
||||
|
||||
}
|
||||
<%
|
||||
}
|
||||
%>
|
||||
@@ -1380,15 +1245,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;
|
||||
|
||||
@@ -1504,27 +1360,16 @@ if (execStat) {
|
||||
Object obj_cluster;
|
||||
Object obj_conn;
|
||||
<% for (INode cassandraDbNode : cassandraComponentsList) {
|
||||
String dbVersionCassandra = ElementParameterParser.getValue(cassandraDbNode, "__DB_VERSION__");
|
||||
if((new API_selector()).useDatastax(cassandraDbNode)) {
|
||||
if("CASSANDRA_4_0".equals(dbVersionCassandra)) {
|
||||
%>
|
||||
obj_conn = globalMap.remove("connection_<%=cassandraDbNode.getUniqueName()%>");if(obj_conn != null) {
|
||||
((com.datastax.oss.driver.api.core.CqlSession) obj_conn).close();
|
||||
}
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
obj_cluster = globalMap.remove("cluster_<%=cassandraDbNode.getUniqueName()%>");
|
||||
obj_conn = globalMap.remove("connection_<%=cassandraDbNode.getUniqueName()%>");
|
||||
if(obj_conn != null) {
|
||||
((com.datastax.driver.core.Session) obj_conn).close();
|
||||
}
|
||||
if(obj_cluster != null) {
|
||||
((com.datastax.driver.core.Cluster) obj_cluster).close();
|
||||
}
|
||||
<%
|
||||
}
|
||||
} else { %>
|
||||
if((new API_selector()).useDatastax(cassandraDbNode)) { %>
|
||||
obj_cluster = globalMap.remove("cluster_<%=cassandraDbNode.getUniqueName()%>");
|
||||
obj_conn = globalMap.remove("connection_<%=cassandraDbNode.getUniqueName()%>");
|
||||
if(obj_conn != null) {
|
||||
((com.datastax.driver.core.Session) obj_conn).close();
|
||||
}
|
||||
if(obj_cluster != null) {
|
||||
((com.datastax.driver.core.Cluster) obj_cluster).close();
|
||||
}
|
||||
<% } else { %>
|
||||
obj_conn = globalMap.remove("cluster_<%=cassandraDbNode.getUniqueName()%>");
|
||||
if(obj_conn!=null) {
|
||||
((me.prettyprint.hector.api.Cluster) obj_conn).getConnectionManager().shutdown();
|
||||
|
||||
@@ -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 "";
|
||||
}
|
||||
|
||||
@@ -170,8 +170,16 @@ class IndexedRecordToRowStructGenerator {
|
||||
if (columnName.equals(dynamicColName)) {
|
||||
%>
|
||||
java.util.Map<String, Object> dynamicValue_<%=cid%> = (java.util.Map<String, Object>) <%=codeVarSchemaEnforcer%>.get(<%=i%>);
|
||||
org.apache.avro.Schema dynSchema_<%=cid%> = ((org.talend.codegen.enforcer.OutgoingDynamicSchemaEnforcer) <%=codeVarSchemaEnforcer%>).getDynamicFieldsSchema();
|
||||
for (org.apache.avro.Schema.Field dynamicField_<%=cid%> : dynSchema_<%=cid%>.getFields()){
|
||||
String name = dynamicField_<%=cid%>.name();
|
||||
if("true".equals(dynamicField_<%=cid%>.getProp("ENABLE_SPECIAL_TABLENAME"))){
|
||||
dynamicValue_<%=cid%>.put(dynamicField_<%=cid%>.getProp("talend.field.dbColumnName"), dynamicValue_<%=cid%>.get(name));
|
||||
dynamicValue_<%=cid%>.remove(name);
|
||||
}
|
||||
}
|
||||
for (java.util.Map.Entry<String, Object> dynamicValueEntry_<%=cid%> : dynamicValue_<%=cid%>.entrySet()) {
|
||||
<%=codeVarDynamic%>.addColumnValue(dynamicValueEntry_<%=cid%>.getValue());
|
||||
<%=codeVarDynamic%>.setColumnValue(<%=codeVarDynamic%>.getIndex(dynamicValueEntry_<%=cid%>.getKey()), dynamicValueEntry_<%=cid%>.getValue());
|
||||
}
|
||||
<%=codeVarRowStruct%>.<%=dynamicColName%> = <%=codeVarDynamic%>;
|
||||
<%
|
||||
|
||||
@@ -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;
|
||||
@@ -369,10 +343,6 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
|
||||
public Integer errorCode = null;
|
||||
private String currentComponent = "";
|
||||
<%
|
||||
// is necessary? avoid some compiler issue as var name not found? TODO consider remove it, also the currentComponent above
|
||||
%>
|
||||
private String cLabel = null;
|
||||
<%
|
||||
//tParallelize will wrap globalMap with synchronizedMap
|
||||
if(isRunInMultiThread || NodeUtil.containsMultiThreadComponent(process)){
|
||||
%>
|
||||
@@ -415,101 +385,11 @@ public <%=JavaTypesManager.getTypeToGenerate(ctxParam.getType(),true)%> get<%=Ch
|
||||
|
||||
<%
|
||||
INode jobCatcherNode = null;
|
||||
|
||||
//one matched component or part, one thread
|
||||
//why not computed by cpu or resource : please image this case :
|
||||
//loop==>(input==>(twritexmlfield A)==>(twritexmlfield B)==>(twritexmlfield C)==>output), dead lock as cycle dependency and only one thead in thread pool
|
||||
//maybe newCachedThreadPool is a better idea, but that have risk for creating more threads, then more memory for TDI-47230
|
||||
//why not generate thread pool object in subprocess scope :
|
||||
// 1: major reason : difficult to control the var scope, somewhere can't access it, then compiler issue
|
||||
// 2: we may need this thread pool for bigger scope, not only for twritexmlfield/twritejsonfield in future
|
||||
// 3: we don't suppose this thread pool cost big resource after all tasks done, so we can shutdown it more later,
|
||||
// for example, most time, user will use less than 3 twritexmlfield in one job, then 3 threads thread pool, we can close them in job finish code part,
|
||||
// not a big cost to keep that. And of course, we best to start&clean it in subprocess finish, but that's risk of 1 above.
|
||||
int threadPoolSize = 0;
|
||||
boolean tHMapExists = false;
|
||||
boolean tHMapOutExists = false;
|
||||
boolean tRESTRequestLoopExists = false;
|
||||
for (INode nodeInProcess : processNodes) {
|
||||
String componentName = nodeInProcess.getComponent().getName();
|
||||
|
||||
if(jobCatcherNode==null && "tJobStructureCatcher".equals(componentName)) {
|
||||
if("tJobStructureCatcher".equals(componentName)) {
|
||||
jobCatcherNode = nodeInProcess;
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!nodeInProcess.isActivate()) continue;
|
||||
|
||||
if("tHMap".equals(componentName)) {
|
||||
tHMapExists = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if("tHMapOut".equals(componentName)) {
|
||||
tHMapOutExists = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if("tRESTRequestLoop".equals(componentName)) {
|
||||
tRESTRequestLoopExists = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
if("tWriteXMLFieldOut".equals(componentName)) {
|
||||
IConnection nextMergeConn = NodeUtil.getNextMergeConnection(nodeInProcess);
|
||||
if(nextMergeConn == null || nextMergeConn.getInputId()==1){
|
||||
threadPoolSize++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(threadPoolSize>0) {
|
||||
if(tRESTRequestLoopExists) {//miscroservice
|
||||
%>
|
||||
private class DaemonThreadFactory implements java.util.concurrent.ThreadFactory {
|
||||
java.util.concurrent.ThreadFactory factory = java.util.concurrent.Executors.defaultThreadFactory();
|
||||
|
||||
public java.lang.Thread newThread(java.lang.Runnable r) {
|
||||
java.lang.Thread t = factory.newThread(r);
|
||||
t.setDaemon(true);
|
||||
return t;
|
||||
}
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
if(tHMapExists || tHMapOutExists) {
|
||||
%>
|
||||
private final java.util.concurrent.ExecutorService es = java.util.concurrent.Executors.newFixedThreadPool(<%=threadPoolSize%> <%if(tRESTRequestLoopExists) {%>,new DaemonThreadFactory()<%}%>);
|
||||
<%
|
||||
} else {
|
||||
%>
|
||||
private final java.util.concurrent.ExecutorService es = java.util.concurrent.Executors.newCachedThreadPool(<%if(tRESTRequestLoopExists) {%>new DaemonThreadFactory()<%}%>);
|
||||
<%
|
||||
}
|
||||
|
||||
if(tRESTRequestLoopExists) {//miscroservice
|
||||
%>
|
||||
{
|
||||
java.lang.Runtime.getRuntime().addShutdownHook(new java.lang.Thread() {
|
||||
public void run() {
|
||||
es.shutdown();
|
||||
try {
|
||||
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
|
||||
es.shutdownNow();
|
||||
if(!es.awaitTermination(60, java.util.concurrent.TimeUnit.SECONDS)) {
|
||||
|
||||
}
|
||||
}
|
||||
} catch (java.lang.InterruptedException ie) {
|
||||
es.shutdownNow();
|
||||
} catch (java.lang.Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
<%
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -627,10 +507,7 @@ private class TalendException extends Exception {
|
||||
|
||||
private java.util.Map<String, Object> globalMap = null;
|
||||
private Exception e = null;
|
||||
|
||||
private String currentComponent = null;
|
||||
private String cLabel = null;
|
||||
|
||||
private String virtualComponentName = null;
|
||||
|
||||
public void setVirtualComponentName (String virtualComponentName){
|
||||
@@ -642,11 +519,6 @@ private class TalendException extends Exception {
|
||||
this.globalMap = globalMap;
|
||||
this.e = e;
|
||||
}
|
||||
|
||||
private TalendException(Exception e, String errorComponent, String errorComponentLabel, final java.util.Map<String, Object> globalMap) {
|
||||
this(e, errorComponent, globalMap);
|
||||
this.cLabel = errorComponentLabel;
|
||||
}
|
||||
|
||||
public Exception getException() {
|
||||
return this.e;
|
||||
@@ -706,15 +578,6 @@ private class TalendException extends Exception {
|
||||
<%
|
||||
boolean needCatchTalendException = false;
|
||||
|
||||
if(enableLogStash) {
|
||||
%>
|
||||
if(enableLogStash) {
|
||||
<%=jobCatcherNode.getUniqueName() %>.addJobExceptionMessage(currentComponent, cLabel, null, e);
|
||||
<%=jobCatcherNode.getDesignSubjobStartNode().getUniqueName() %>Process(globalMap);
|
||||
}
|
||||
<%
|
||||
}
|
||||
|
||||
if (process.getNodesOfType("tLogCatcher").size() > 0) {
|
||||
List<INode> logCatchers = (List<INode>)process.getNodesOfType("tLogCatcher");
|
||||
for (INode logCatcher : logCatchers) {
|
||||
@@ -725,7 +588,7 @@ private class TalendException extends Exception {
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
INode virtualNCatchNode = null;
|
||||
boolean hasRealCatchNode = false;
|
||||
for (INode logCatcher : logCatchers) {
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
TalendException te = new TalendException(e, currentComponent, cLabel, globalMap);
|
||||
TalendException te = new TalendException(e, currentComponent, globalMap);
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
|
||||
@@ -200,7 +200,6 @@ for (IConnection iterateConn : iterateConnSet) { //1
|
||||
|
||||
this.isRunning = true;
|
||||
String currentComponent = "";
|
||||
String cLabel = null;
|
||||
java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
this.errorCode = localErrorCode;
|
||||
}
|
||||
}
|
||||
pool.setErrorThread(this, new TalendException(e, currentComponent, cLabel, globalMap));
|
||||
pool.setErrorThread(this, new TalendException(e, currentComponent, globalMap));
|
||||
//pool.setErrorThread(this,e);
|
||||
pool.stopAllThreads();
|
||||
}finally{
|
||||
@@ -117,7 +117,7 @@
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
} catch (java.lang.Exception te) {
|
||||
throw new TalendException(te, currentComponent, cLabel, globalMap);
|
||||
throw new TalendException(te, currentComponent, globalMap);
|
||||
}
|
||||
<%
|
||||
}else{
|
||||
@@ -228,7 +228,7 @@
|
||||
<%
|
||||
}
|
||||
%>
|
||||
TalendException te = new TalendException(e, currentComponent, cLabel, globalMap);
|
||||
TalendException te = new TalendException(e, currentComponent, globalMap);
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
org.talend.core.model.process.IHashConfiguration
|
||||
org.talend.core.model.process.IHashableColumn
|
||||
org.talend.core.model.utils.NodeUtil
|
||||
org.talend.core.model.utils.TalendTextUtils
|
||||
"
|
||||
class="SubProcessHeader"
|
||||
skeleton="subprocess_header_java.skeleton"
|
||||
@@ -32,8 +31,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";
|
||||
%>
|
||||
|
||||
<%
|
||||
@@ -186,48 +183,6 @@ public static class <%=conn.getName() %>Struct<%=templateOrigin %> implements ro
|
||||
public <%= typeToGenerate %> get<%=column.getLabel().substring(0, 1).toUpperCase()%><%=column.getLabel().substring(1)%> () {
|
||||
return this.<%=column.getLabel()%>;
|
||||
}
|
||||
|
||||
public Boolean <%=column.getLabel()%>IsNullable(){
|
||||
return <%=column.isNullable()%>;
|
||||
}
|
||||
public Boolean <%=column.getLabel()%>IsKey(){
|
||||
return <%=column.isKey()%>;
|
||||
}
|
||||
public Integer <%=column.getLabel()%>Length(){
|
||||
return <%=column.getLength()%>;
|
||||
}
|
||||
public Integer <%=column.getLabel()%>Precision(){
|
||||
return <%=column.getPrecision()%>;
|
||||
}
|
||||
public String <%=column.getLabel()%>Default(){
|
||||
<% if (column.getDefault() == null) { %>
|
||||
return null;
|
||||
<% } else { %>
|
||||
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getDefault()))%>";
|
||||
<% } %>
|
||||
}
|
||||
public String <%=column.getLabel()%>Comment(){
|
||||
<% if (column.getComment() == null) { %>
|
||||
return null;
|
||||
<% } else { %>
|
||||
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getComment()))%>";
|
||||
<% } %>
|
||||
}
|
||||
public String <%=column.getLabel()%>Pattern(){
|
||||
<% if (column.getPattern() == null) { %>
|
||||
return null;
|
||||
<% } else { %>
|
||||
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getPattern()))%>";
|
||||
<% } %>
|
||||
}
|
||||
public String <%=column.getLabel()%>OriginalDbColumnName(){
|
||||
<% if (column.getOriginalDbColumnName() == null) { %>
|
||||
return null;
|
||||
<% } else { %>
|
||||
return "<%=TalendTextUtils.escapeJavaText(TalendTextUtils.removeQuotes(column.getOriginalDbColumnName()))%>";
|
||||
<% } %>
|
||||
}
|
||||
|
||||
<%
|
||||
if((conn.getLineStyle() == EConnectionType.FLOW_REF) && conn.getTarget().getUniqueName().startsWith("tXMLMap") && "id_Document".equals(javaType.getId())) {
|
||||
%>
|
||||
@@ -1605,11 +1560,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) {%>
|
||||
<%=MDC_CLASS%>.put("_subJobName", "<%=subTree.getName() %>");
|
||||
<%=MDC_CLASS%>.put("_subJobPid", TalendString.getAsciiRandomString(6));
|
||||
<%}%>
|
||||
|
||||
<%
|
||||
boolean isParallelize = false;
|
||||
for (INode node : subTree.getNodes()) {
|
||||
@@ -1648,7 +1598,6 @@ public void <%=subTree.getName() %>Process(final java.util.Map<String, Object> g
|
||||
|
||||
this.isRunning = true;
|
||||
String currentComponent = "";
|
||||
String cLabel = null;
|
||||
<%
|
||||
if(NodeUtil.hasVirtualComponent(subTree.getNodes())){
|
||||
%>
|
||||
@@ -1682,7 +1631,6 @@ public void <%=subTree.getName() %>Process(final java.util.Map<String, Object> g
|
||||
int iterateLoop = 0;
|
||||
<%}%>
|
||||
String currentComponent = "";
|
||||
String cLabel = null;
|
||||
java.util.Map<String, Object> resourceMap = new java.util.HashMap<String, Object>();
|
||||
|
||||
try {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
providerName=www.example.org
|
||||
pluginName=EmittersPool Model
|
||||
components=Components
|
||||
trunjob=tRunJob
|
||||
format=Format
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.codegen</artifactId>
|
||||
|
||||
@@ -10,7 +10,6 @@ CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
|
||||
CodeGenerator.JET.TimeOut=JET initialisation Time Out
|
||||
CodeGenerator.newLine=\n\n\n\n
|
||||
CodeGenerator.Node.NotFound=Node not found in current process
|
||||
CodeGenerator.Components.NotFound={0}: Component is missing: {1}; use -D{2}=false in your studio or commandline to skip this check, and a warning message will be logged.
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:49
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:58
|
||||
JetSkeletonManager.unableLoad=unable to load skeleton update cache file
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:49
|
||||
CodeGeneratorEmittersPoolFactory.JETEmitters.NoPresent=JETEmitters Project not present, full reinitialize is needed
|
||||
generatedcode.footerprocess.nbcharsgenerated={0} characters generated by {1}
|
||||
CodeGeneratorEmittersPoolFactory.Class.NotFound=Template still present, but class {0} has disapeared from workspace. This unit needs to be recompiled.
|
||||
CodeGeneratorEmittersPoolFactory.PersitentData.Error=Persitent data cannot be saved :
|
||||
generatedcode.copyright.title=Copyright (c) 2005-2011, Talend Inc.
|
||||
CodeGeneratorEmittersPoolFactory.initMessage=Generation Engine Initialization in progress...
|
||||
generatedcode.copyright.body5=(http://www.gnu.org/licenses/lgpl.html).
|
||||
EmfEmittersPersistence.CodeGen.DataMissing=Missing code generation data. Starting full code generation.
|
||||
CodeGenerator.JET.TimeOut=JET initialisation Time Out
|
||||
generatedcode.copyright.body4=You may distribute this code under the terms of the GNU LGPL license
|
||||
CodeGenerator.Node.NotFound=Node not found in current process
|
||||
generatedcode.copyright.body3=You can find more information about Talend products at www.talend.com.
|
||||
EmittersPoolFactoryImpl.Class.IllegalArg=The class ' {0}' is not a valid classifier
|
||||
generatedcode.copyright.body2=/ JobDesigner (CodeGenerator version {0}).
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=method not implemented: org.talend.designer.codegen.JavaRoutineSynchronizer line:58
|
||||
CodeGenerator.getGraphicalNode1=------process.getGraphicalNodes()------
|
||||
CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
|
||||
CodeGenerator.newLine=\n\n\n\n
|
||||
JetSkeletonManager.unableLoad=unable to load skeleton update cache file
|
||||
JetSkeletonManager.unableSave=unable to save skeleton update cache file
|
||||
JetSkeletonManager.updateProblem=when update skeleton persistence data, there have some problems
|
||||
CodeGeneratorEmittersPoolFactory.codeThread=Code generation background thread
|
||||
CodeGeneratorEmittersPoolFactory.componentCompiled=Components compiled in {0} ms
|
||||
CodeGeneratorEmittersPoolFactory.failCompail=Components compile fail : \r\n
|
||||
CodeGeneratorEmittersPoolFactory.initialException=Exception during Initialization
|
||||
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=Error during JetEmitter initalization
|
||||
CodeGeneratorService.invalidLanguage1=invalid language type.
|
||||
CodeGeneratorService.invalidLanguage2=invalid language type.
|
||||
CodeGenInit.addMarkers=Adding markers to workspace
|
||||
CodeGenInit.createProject=create {0} project
|
||||
CodeGenInit.deleteProject=delete {0} project
|
||||
CodeGenInit.initTemplate=init Templates
|
||||
CodeGenInit.removeLink=Remove linked resources
|
||||
CodeGenInit.saveWorkspace=Saving workspace
|
||||
DocumentRootImpl.mixed=\ (mixed:
|
||||
NodesSubTree.enableParallel=__ENABLE_PARALLEL__
|
||||
PoolTypeImpl.persistentPool= \ (persistentPool:
|
||||
TalendJetEmitter.compileFail=\ compile fail : {0} : {1}
|
||||
TalendJetEmitter.exception=Exception on
|
||||
JetFilesProviderManager.unableLoad=Unable to load {0}JetFilesProviderManager.unableLoad
|
||||
CodeGeneratorEmittersPoolFactory.dialogContent=JetEmitter Generation is canceled,to avoid problems cause by this, please press Ctrl+Shift+F3 to generate again\!
|
||||
CodeGeneratorEmittersPoolFactory.operationCanceled=Operation Canceled
|
||||
ComponentsFactory.afterSystemComponent=after system component
|
||||
ComponentsFactory.componentNotFound=Component folder not found\:
|
||||
ComponentsFactory.load.components=Load Components...
|
||||
ComponentsFactory.parentNotRecompiled=Warning\: parents of *.inc.javajet are not recompiled \!
|
||||
ComponentsLocalProviderService.componentLoadError=Component load error
|
||||
ComponentsLocalProviderService.talendExchangeError=Talend Exchange Error
|
||||
ComponentsPreferencePage.ButtonLabel0=Ok
|
||||
ComponentsPreferencePage.configuration.LINK_STYLE=Default mapping links display as :
|
||||
ComponentsPreferencePage.rowLimit=Row limit
|
||||
ComponentsPreferencePage.WarningMsg=You need to restart Talend Open Studio to load extra components.
|
||||
ComponentsPreferencePage.WarningTitle=Warning
|
||||
ComponentsPreferencePage.directoryFieldLabel=User component folder\:
|
||||
ComponentsProviderManager.unableLoad=unable to load component provider
|
||||
ComponenttRunJobPreferencePage.label=Don't show corresponding job after double click on a tRunJob Component.
|
||||
ComponentJobletPreferencePage.label=Don't show corresponding job after double click on a Joblet Component.
|
||||
ComponenttRunJobPreferencePage.showCorrespondingJob=Show corresponding job after double click on a tRunJob Component.
|
||||
XsdValidationCacheManager.unableLoadxsd=unable to load xsd validation cache file
|
||||
XsdValidationCacheManager.unableSavexsd=unable to save xsd validation cache file
|
||||
prefs.configuration.LINK_STYLE.AUTO=Auto
|
||||
prefs.configuration.LINK_STYLE.BEZIER_CURVE=Curves
|
||||
prefs.configuration.LINK_STYLE.LINE=Lines (fast)
|
||||
FAMILY.AS400=AS400
|
||||
FAMILY.Access=Access
|
||||
FAMILY.Alfresco=Alfresco
|
||||
FAMILY.Business=Business
|
||||
FAMILY.Business_Intelligence=Business Intelligence
|
||||
FAMILY.CentricCRM=CentricCRM
|
||||
FAMILY.Charts=Charts
|
||||
FAMILY.Connections=Connections
|
||||
FAMILY.Custom_Code=Custom Code
|
||||
FAMILY.DB2=DB2
|
||||
FAMILY.DB_Generic=DB Generic
|
||||
FAMILY.DB_JDBC=DB JDBC
|
||||
FAMILY.DB_SCD=DB SCD
|
||||
FAMILY.Data_Quality=Data Quality
|
||||
FAMILY.Databases=Databases
|
||||
FAMILY.ELT=ELT
|
||||
FAMILY.ESB=ESB
|
||||
FAMILY.EXASolution=EXASolution
|
||||
FAMILY.eXist=eXist
|
||||
FAMILY.FTP=FTP
|
||||
FAMILY.Fields=Fields
|
||||
FAMILY.File=File
|
||||
FAMILY.FireBird=FireBird
|
||||
FAMILY.Greenplum=Greenplum
|
||||
FAMILY.HSQLDb=HSQLDb
|
||||
FAMILY.Healthcare=Healthcare
|
||||
FAMILY.Hive=Hive
|
||||
FAMILY.Informix=Informix
|
||||
FAMILY.Ingres=Ingres
|
||||
FAMILY.Input=Input
|
||||
FAMILY.Interbase=Interbase
|
||||
FAMILY.Internet=Internet
|
||||
FAMILY.Jasper=Jasper
|
||||
FAMILY.JavaDB=JavaDB
|
||||
FAMILY.JDBC=JDBC
|
||||
FAMILY.LDAP=LDAP
|
||||
FAMILY.Logs_Errors=Logs & Errors
|
||||
FAMILY.MS_SQL_Server=MS SQL Server
|
||||
FAMILY.MSSql=MSSql
|
||||
FAMILY.Management=Management
|
||||
FAMILY.MaxDB=MaxDB
|
||||
FAMILY.Microsoft_AX=Microsoft AX
|
||||
FAMILY.Microsoft_CRM=Microsoft CRM
|
||||
FAMILY.Misc=Misc
|
||||
FAMILY.MySQL=MySQL
|
||||
FAMILY.Netezza=Netezza
|
||||
FAMILY.OLAP_Cube=OLAP Cube
|
||||
FAMILY.Oracle=Oracle
|
||||
FAMILY.Orchestration=Orchestration
|
||||
FAMILY.Output=Output
|
||||
FAMILY.ParAccel=ParAccel
|
||||
FAMILY.PostgreSQL=PostgreSQL
|
||||
FAMILY.PostgresPlus=PostgresPlus
|
||||
FAMILY.Processing=Processing
|
||||
FAMILY.SAP=SAP
|
||||
FAMILY.Sas=Sas
|
||||
FAMILY.SCD=SCD
|
||||
FAMILY.SCP=SCP
|
||||
FAMILY.SPSS=SPSS
|
||||
FAMILY.SQLite=SQLite
|
||||
FAMILY.Salesforce=Salesforce
|
||||
FAMILY.SugarCRM=SugarCRM
|
||||
FAMILY.Sybase=Sybase
|
||||
FAMILY.System=System
|
||||
FAMILY.Technical=Technical
|
||||
FAMILY.Teradata=Teradata
|
||||
FAMILY.Vertica=Vertica
|
||||
FAMILY.VtigerCRM=VtigerCRM
|
||||
FAMILY.XML=XML
|
||||
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=Update the palette for editors
|
||||
ComponentsPreferencePage.componentAssist=Enable Component Creation Assistant
|
||||
ComponentsPreferencePage.notValidDirectory=Your selection will result in folder nesting, which is not recommended. Do you want to continue anyway?
|
||||
ComponentsFactory.loadComponents.missingFolder=The folder "{0}" is missing in the plugin "{1}".
|
||||
ComponentsPreferencePage_SuccessTitle=Success
|
||||
ComponentsPreferencePage_SuccessMessage1=Need restart studio to load the new components. Else, will be loaded in next time when start.
|
||||
ComponentsPreferencePage_SuccessMessage2=Do you want to restart right now?
|
||||
ComponentsPreferencePage.installComponentsFailure=Install components failure
|
||||
generatedcode.copyright.body1=This source code has been automatically generated by {0}
|
||||
ComponentsFactory.init.waitForFinish.timeout=Can't initialise ComponentsFactory, please try again.
|
||||
FAMILY.Data_Privacy=Data Privacy
|
||||
ComponentsPreferencePage.enableOnLineHelp=Enable online help for components
|
||||
ComponentsPreferencePage.titleInstallHelp=Install offline help feature?
|
||||
ComponentsPreferencePage.msgInstallHelp=This will open additional packages dialog to install offline help feature, do you want to continue?
|
||||
ComponentsPreferencePage.grpHelp=Help
|
||||
@@ -10,7 +10,6 @@ CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
|
||||
CodeGenerator.JET.TimeOut=D\u00E9lai d'initialisation JET d\u00E9pass\u00E9
|
||||
CodeGenerator.newLine=\n\n\n\n
|
||||
CodeGenerator.Node.NotFound=N\u0153ud introuvable dans le processus courant
|
||||
CodeGenerator.Components.NotFound={0}\u00A0: Le composant est manquant\u00A0: {1}; utilisez -D{2}=false dans votre Studio ou CommandLine pour ignorer cette v\u00E9rification. Un message d'avertissement sera enregistr\u00E9 dans les logs.
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:49
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=M\u00E9thode non impl\u00E9ment\u00E9e : org.talend.designer.codegen.JavaRoutineSynchronizer line:58
|
||||
JetSkeletonManager.unableLoad=Impossible de charger le fichier de cache de la mise \u00E0 jour du squelette
|
||||
|
||||
@@ -10,12 +10,11 @@ CodeGenerator.getGraphicalNode2=------process.getGeneratingNodes()------
|
||||
CodeGenerator.JET.TimeOut=JET\u306E\u521D\u671F\u5316\u51E6\u7406\u304C\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8\u3057\u307E\u3057\u305F
|
||||
CodeGenerator.newLine=\n\n\n\n
|
||||
CodeGenerator.Node.NotFound=\u73FE\u5728\u306E\u30D7\u30ED\u30BB\u30B9\u306B\u30CE\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
|
||||
CodeGenerator.Components.NotFound={0}: \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u304C\u6B20\u843D\u3057\u3066\u3044\u307E\u3059: {1}\u3002Studio\u3067 -D{2}=false\u3092\u4F7F\u3046\u3068\u3053\u306E\u30C1\u30A7\u30C3\u30AF\u304C\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u3001\u8B66\u544A\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u306B\u8A18\u9332\u3055\u308C\u307E\u3059\u3002
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u30E1\u30BD\u30C3\u30C9\u304C\u5B9F\u88C5\u3055\u308C\u3066\u3044\u307E\u305B\u3093\\: org.talend.designer.codegen.JavaRoutineSynchronizer line\\:49
|
||||
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.unableLoad=\u30B9\u30B1\u30EB\u30C8\u30F3\u66F4\u65B0\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\u66F4\u65B0\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\u66F4\u65B0\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
|
||||
@@ -29,14 +28,14 @@ CodeGeneratorEmittersPoolFactory.initialException=\u521D\u671F\u5316\u4E2D\u306B
|
||||
CodeGeneratorEmittersPoolFactory.initMessage=\u751F\u6210\u30A8\u30F3\u30B8\u30F3\u306E\u521D\u671F\u5316\u4E2D...
|
||||
CodeGeneratorEmittersPoolFactory.jetEmitterInitialException=JetEmitter\u306E\u521D\u671F\u5316\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
|
||||
CodeGeneratorEmittersPoolFactory.operationCanceled=\u64CD\u4F5C\u306F\u30AD\u30E3\u30F3\u30BB\u30EB\u3055\u308C\u307E\u3057\u305F
|
||||
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u30D1\u30EC\u30C3\u30C8\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8
|
||||
CodeGeneratorEmittersPoolFactory.updatePaletteForEditors=\u30D1\u30EC\u30C3\u30C8\u3092\u66F4\u65B0
|
||||
CodeGeneratorService.invalidLanguage1=\u7121\u52B9\u306A\u8A00\u8A9E\u30BF\u30A4\u30D7\u3067\u3059\u3002
|
||||
CodeGeneratorService.invalidLanguage2=\u7121\u52B9\u306A\u8A00\u8A9E\u30BF\u30A4\u30D7\u3067\u3059\u3002
|
||||
CodeGenInit.addMarkers=\u30EF\u30FC\u30AF\u30B9\u30DA\u30FC\u30B9\u306B\u30DE\u30FC\u30AB\u30FC\u3092\u8FFD\u52A0\u4E2D
|
||||
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__
|
||||
@@ -49,7 +48,7 @@ ComponentsFactory.componentNotFound=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u
|
||||
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
|
||||
ComponentsFactory.init.waitForFinish.timeout=ComponentsFactory\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3002\u3084\u308A\u76F4\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
ComponentsFactory.init.waitForFinish.timeout=ComponentsFactory\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u8A66\u3057\u3066\u304F\u3060\u3055\u3044\u3002
|
||||
ComponentsLocalProviderService.componentLoadError=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30ED\u30FC\u30C9\u30A8\u30E9\u30FC
|
||||
ComponentsLocalProviderService.talendExchangeError=Talend Exchange \u30A8\u30E9\u30FC
|
||||
ComponentsPreferencePage.ButtonLabel0=OK
|
||||
@@ -66,7 +65,7 @@ ComponenttRunJobPreferencePage.label=tRunJob\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3
|
||||
ComponentJobletPreferencePage.label=Joblet\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
|
||||
ComponentsPreferencePage_SuccessTitle=\u6210\u529F
|
||||
ComponentsPreferencePage_SuccessMessage1=\u65B0\u898F\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u305F\u3081\u306B\u306F\u3001Studio\u3092\u518D\u8D77\u52D5\u3057\u307E\u3059\u3002\u307E\u305F\u306F\u6B21\u56DE\u306E\u958B\u59CB\u6642\u306B\u30ED\u30FC\u30C9\u3055\u308C\u307E\u3059\u3002
|
||||
ComponentsPreferencePage_SuccessMessage2=\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B?
|
||||
ComponentsPreferencePage_SuccessMessage2=\u518D\u8D77\u52D5\u3057\u307E\u3059\u304B\uFF1F
|
||||
ComponentsPreferencePage.enableOnLineHelp=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u6709\u52B9\u5316
|
||||
ComponentsPreferencePage.titleInstallHelp=\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B?
|
||||
ComponentsPreferencePage.msgInstallHelp=\u3053\u308C\u306B\u3088\u3063\u3066\u8FFD\u52A0\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30C0\u30A4\u30A2\u30ED\u30B0\u304C\u958B\u304D\u3001\u30AA\u30D5\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u6A5F\u80FD\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u307E\u3059\u3002\u7D9A\u884C\u3057\u307E\u3059\u304B?
|
||||
|
||||
@@ -10,7 +10,6 @@ CodeGenerator.getGraphicalNode2=\u8FDB\u7A0B\u5F97\u5230\u751F\u6210\u8282\u70B9
|
||||
CodeGenerator.JET.TimeOut=JET \u521D\u59CB\u5316\u8D85\u65F6
|
||||
CodeGenerator.newLine=\n\n\n\n
|
||||
CodeGenerator.Node.NotFound=\u5728\u5F53\u524D
|
||||
CodeGenerator.Components.NotFound={0}: \u7EC4\u4EF6\u7F3A\u5931: {1}; \u5728 Studio \u6216\u547D\u4EE4\u884C\u4E2D\u4F7F\u7528 -D{2}=false \u53EF\u8DF3\u8FC7\u6B64\u9879\u68C0\u67E5\uFF0C\u540C\u65F6\u89E6\u53D1\u8B66\u544A\u6D88\u606F\u3002
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception1=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:49
|
||||
JavaRoutineSynchronizer.UnsupportedOperation.Exception2=\u65B9\u6CD5\u672A\u5B9E\u65BD\uFF1Aorg.talend.designer.codegen.JavaRoutineSynchronizer line:58
|
||||
JetSkeletonManager.unableLoad=\u65E0\u6CD5\u52A0\u8F7D\u4E3B\u5E72\u66F4\u65B0\u7F13\u5B58\u6587\u4EF6
|
||||
|
||||
@@ -66,7 +66,6 @@ import org.talend.designer.codegen.model.CodeGeneratorEmittersPoolFactory;
|
||||
import org.talend.designer.codegen.model.CodeGeneratorInternalTemplatesFactoryProvider;
|
||||
import org.talend.designer.codegen.proxy.JetProxy;
|
||||
import org.talend.designer.core.generic.model.Component;
|
||||
import org.talend.designer.core.model.components.DummyComponent;
|
||||
import org.talend.designer.runprocess.ProcessorUtilities;
|
||||
|
||||
/**
|
||||
@@ -846,25 +845,6 @@ public class CodeGenerator implements ICodeGenerator {
|
||||
IComponentFileNaming componentFileNaming = ComponentsFactoryProvider.getFileNamingInstance();
|
||||
|
||||
IComponent component = node.getComponent();
|
||||
if (component instanceof DummyComponent) {
|
||||
if (((DummyComponent) component).isMissingComponent()) {
|
||||
String processName = "";
|
||||
try {
|
||||
IProcess proc = node.getProcess();
|
||||
processName = proc.getName() + " " + proc.getVersion();
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
if (IProcess.ERR_ON_COMPONENT_MISSING) {
|
||||
throw new CodeGeneratorException(Messages.getString("CodeGenerator.Components.NotFound", processName,
|
||||
component.getName(), IProcess.PROP_ERR_ON_COMPONENT_MISSING));
|
||||
}
|
||||
if (ECodePart.BEGIN.equals(part)) {
|
||||
log.warn(Messages.getString("CodeGenerator.Components.NotFound", processName, component.getName(),
|
||||
IProcess.PROP_ERR_ON_COMPONENT_MISSING));
|
||||
}
|
||||
}
|
||||
}
|
||||
// some code unification to handle all component types the same way.
|
||||
String templateURI = component.getTemplateFolder() + TemplateUtil.DIR_SEP
|
||||
+ componentFileNaming.getJetFileName(component.getTemplateNamePrefix(), language.getExtension(), part);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
@@ -59,7 +58,6 @@ import org.talend.core.model.components.IComponentsFactory;
|
||||
import org.talend.core.model.components.IComponentsHandler;
|
||||
import org.talend.core.model.components.filters.ComponentsFactoryProviderManager;
|
||||
import org.talend.core.model.components.filters.IComponentFactoryFilter;
|
||||
import org.talend.core.model.general.ModuleNeeded;
|
||||
import org.talend.core.runtime.util.ComponentsLocationProvider;
|
||||
import org.talend.core.ui.IJobletProviderService;
|
||||
import org.talend.core.ui.ISparkJobletProviderService;
|
||||
@@ -370,8 +368,6 @@ public class ComponentsFactory implements IComponentsFactory {
|
||||
} else {
|
||||
componentList.add(currentComp);
|
||||
customComponentList.add(currentComp);
|
||||
|
||||
syncCustomComponentLibs(currentFolder, currentComp.getModulesNeeded());
|
||||
}
|
||||
} catch (MissingMainXMLComponentFileException e) {
|
||||
log.trace(currentFolder.getName() + " is not a " + getCodeLanguageSuffix() + " component", e); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
@@ -391,18 +387,6 @@ public class ComponentsFactory implements IComponentsFactory {
|
||||
}
|
||||
}
|
||||
|
||||
private void syncCustomComponentLibs(File componentFolder, List<ModuleNeeded> modulesNeeded) {
|
||||
try {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(ILibraryManagerService.class)) {
|
||||
ILibraryManagerService libraryService = GlobalServiceRegister.getDefault()
|
||||
.getService(ILibraryManagerService.class);
|
||||
libraryService.deployLibsFromCustomComponents(componentFolder, modulesNeeded);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
|
||||
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.
|
||||
|
||||
@@ -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$
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Exchange Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.components.exchange;singleton:=true
|
||||
Bundle-Version: 8.0.1.qualifier
|
||||
Bundle-Version: 8.0.1
|
||||
Bundle-Activator: org.talend.designer.components.exchange.ExchangePlugin
|
||||
Require-Bundle: org.eclipse.core.runtime,
|
||||
org.eclipse.ui,
|
||||
|
||||
@@ -8,6 +8,7 @@ bin.includes = META-INF/,\
|
||||
model/,\
|
||||
content/,\
|
||||
plugin_de.properties,\
|
||||
plugin_en.properties,\
|
||||
plugin_fr.properties,\
|
||||
plugin_it.properties,\
|
||||
plugin_ja.properties,\
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
Exchange=Exchange
|
||||
DownloadComponenentsAction.Label=Download Selected Components
|
||||
RefreshComponenentsAction.Label=Refresh Components List
|
||||
providerName=www.example.org
|
||||
pluginName=Exchange Model
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.talend.studio</groupId>
|
||||
<artifactId>tdi-studio-se</artifactId>
|
||||
<version>8.0.1-SNAPSHOT</version>
|
||||
<version>8.0.1-PATCH</version>
|
||||
<relativePath>../../../</relativePath>
|
||||
</parent>
|
||||
<artifactId>org.talend.designer.components.exchange</artifactId>
|
||||
|
||||
@@ -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
|
||||
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=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.
|
||||
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.REFRESH_BUTTON=Refresh
|
||||
ImportExchangeDialog.REFRESHING_PROGRESSBAR=Refreshing\! Please Wait.....
|
||||
ImportExchangeDialog.OPERATION_CANCELLED=Operation was cancelled
|
||||
Exchange.logon.error=Exchange user have not been registered, please register using the preferences .
|
||||
ImportExchangeDialog.download.extensions=Download extensions\! Please Wait\!
|
||||
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.installComponentsTitle=Install components
|
||||
@@ -14,13 +14,13 @@ DownloadedExtensionsComposite.DownloadDate=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\
|
||||
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
|
||||
DownloadedExtensionsComposite.updateOperateStatus=\u66F4\u65B0
|
||||
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.UpdateOperateStatus=\u66F4\u65B0
|
||||
MyExtensionsComposite.ModifyOperateStatus=\u5909\u66F4
|
||||
MyExtensionsComposite.DeleteOperateStatus=\u524A\u9664
|
||||
MyExtensionsComposite.Form.Return=\u623B\u308A\u5024
|
||||
@@ -45,7 +45,7 @@ MyExtensionsComposite.Form.Upload.Browse.SelectFile=\u30A2\u30C3\u30D7\u30ED\u30
|
||||
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.UpdateExtension=Extension\u66F4\u65B0
|
||||
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
|
||||
@@ -56,7 +56,7 @@ ShowInstalledExtensionsJob.ShowInstalledExtensions.Title=extensions\u3092\u30A4\
|
||||
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.DeleteFailure=\u524A\u9664\u51FA\u6765\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
|
||||
@@ -77,7 +77,7 @@ DownloadComponenentsAction_failureMessage=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u
|
||||
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.ReloadPalette=\u30D1\u30EC\u30C3\u30C8\u306E\u66F4\u65B0...
|
||||
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
|
||||
@@ -85,17 +85,17 @@ ExchangeWebService.insertionExtensionSuccessful=Extension\u306E\u30A4\u30F3\u30B
|
||||
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.updateRevisionSuccessful=\u30EA\u30D3\u30B8\u30E7\u30F3\u66F4\u65B0\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\u9805\u76EE\u3092\uFF11\u3064\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044...
|
||||
ImportExchangeDialog.downloadProgressBar=\u9805\u76EE\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u4E2D\u3067\u3059\u3002\u3057\u3070\u3089\u304F\u304A\u5F85\u3061\u304F\u3060\u3055\u3044!
|
||||
ImportExchangeDialog.EXTENSION_NAME=\u62E1\u5F35\u5B50\u540D
|
||||
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.REFRESHING_PROGRESSBAR=\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\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
|
||||
|
||||
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Components Libs Plug-in
|
||||
Bundle-SymbolicName: org.talend.designer.components.libs
|
||||
Bundle-Version: 8.0.1.qualifier
|
||||
Bundle-Version: 8.0.1
|
||||
Require-Bundle: org.eclipse.core.runtime
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-Vendor: .Talend SA.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.microsoft.azure</groupId>
|
||||
<artifactId>adal4j</artifactId>
|
||||
<version>1.6.6-20220707</version>
|
||||
<version>1.6.4-20210713</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>adal4j</name>
|
||||
<description>
|
||||
@@ -104,12 +104,12 @@
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.8.9</version>
|
||||
<version>2.8.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.34</version>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
|
||||
@@ -37,18 +37,7 @@
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.5</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.reload4j</groupId>
|
||||
<artifactId>reload4j</artifactId>
|
||||
<version>1.2.22</version>
|
||||
</dependency>
|
||||
<!-- Spring 3 dependencies -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
<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>
|
||||
<groupId>org.talend.components</groupId>
|
||||
<artifactId>checkArchive</artifactId>
|
||||
<version>1.2-20210901</version>
|
||||
<name>checkArchive</name>
|
||||
<description>Dependence for tFileArchive and tFileUnAchive</description>
|
||||
<url>http://maven.apache.org</url>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
|
||||
<java.source.version>1.8</java.source.version>
|
||||
</properties>
|
||||
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<dependencies>
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-compress</artifactId>
|
||||
<version>1.21</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<configuration>
|
||||
<source>${java.source.version}</source>
|
||||
<target>${java.source.version}</target>
|
||||
<showDeprecation>true</showDeprecation>
|
||||
<showWarnings>true</showWarnings>
|
||||
<compilerArgument>-XDignore.symbol.file</compilerArgument>
|
||||
<fork>true</fork>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -1,183 +1,184 @@
|
||||
package com.talend.compress.zip;
|
||||
|
||||
import org.apache.commons.compress.archivers.ArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipFile;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.CipherInputStream;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.SecretKeyFactory;
|
||||
import javax.crypto.spec.PBEKeySpec;
|
||||
import javax.crypto.spec.PBEParameterSpec;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
// import javax.crypto.Cipher;
|
||||
|
||||
public class IntegrityUtil {
|
||||
|
||||
/**
|
||||
* Is used to check if the zip file is corrupted/destroyed
|
||||
*
|
||||
* @param file
|
||||
* @return
|
||||
*/
|
||||
public static boolean isZipValid(final File file) {
|
||||
ZipFile zipFile = null;
|
||||
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} finally {
|
||||
try {
|
||||
if (zipFile != null) {
|
||||
zipFile.close();
|
||||
zipFile = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void validate(final File file) {
|
||||
ZipFile zipFile = null;
|
||||
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
|
||||
} catch (IOException e) {
|
||||
} finally {
|
||||
try {
|
||||
if (zipFile != null) {
|
||||
zipFile.close();
|
||||
zipFile = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To check if the encrpted zip file is corrupted or not
|
||||
*
|
||||
* @param file
|
||||
* @param password
|
||||
* @return
|
||||
*/
|
||||
public static boolean isEncryptedZipValid(final File file, String password) {
|
||||
ZipArchiveInputStream input = null;
|
||||
InputStream target = null;
|
||||
try {
|
||||
target = new FileInputStream(file);
|
||||
target = new CipherInputStream(target, createCipher(Cipher.DECRYPT_MODE, password));
|
||||
input = new ZipArchiveInputStream(target);
|
||||
ArchiveEntry entry = input.getNextEntry();
|
||||
return true;
|
||||
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
} finally {
|
||||
try {
|
||||
if (input != null) {
|
||||
input.close();
|
||||
input = null;
|
||||
}
|
||||
if (target != null) {
|
||||
target.close();
|
||||
target = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to check tar.gz/.tgz/.gz file is corrupted/destroyed
|
||||
*
|
||||
* @param fileName
|
||||
* @return
|
||||
*/
|
||||
public static boolean isGZIPValid(final String fileName) {
|
||||
GZIPInputStream inputStream = null;
|
||||
InputStream is = null;
|
||||
try {
|
||||
is = new FileInputStream(new File(fileName));
|
||||
inputStream = new GZIPInputStream(is);
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}finally {
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
inputStream = null;
|
||||
} else if(is != null) {
|
||||
is.close();
|
||||
is = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to check tar.tar file is corrupted/destroyed
|
||||
*
|
||||
* @param fileName
|
||||
* @return
|
||||
*/
|
||||
public static boolean isTarValid(final String fileName) {
|
||||
TarArchiveInputStream inputStream = null;
|
||||
InputStream is = null;
|
||||
try {
|
||||
is = new FileInputStream(new File(fileName));
|
||||
inputStream = new TarArchiveInputStream(is);
|
||||
return inputStream.canReadEntryData(inputStream.getNextEntry());
|
||||
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}finally {
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
inputStream = null;
|
||||
} else if(is != null) {
|
||||
is.close();
|
||||
is = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param mode
|
||||
* @param password
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static Cipher createCipher(int mode, String password) throws Exception {
|
||||
String alg = "PBEWithSHA1AndDESede"; // BouncyCastle has better algorithms
|
||||
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
|
||||
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(alg);
|
||||
SecretKey secretKey = keyFactory.generateSecret(keySpec);
|
||||
|
||||
Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
|
||||
cipher.init(mode, secretKey, new PBEParameterSpec("saltsalt".getBytes(), 2000));
|
||||
|
||||
return cipher;
|
||||
}
|
||||
}
|
||||
package org.talend.archive;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.CipherInputStream;
|
||||
import javax.crypto.SecretKey;
|
||||
import javax.crypto.SecretKeyFactory;
|
||||
import javax.crypto.spec.PBEKeySpec;
|
||||
import javax.crypto.spec.PBEParameterSpec;
|
||||
|
||||
import org.apache.commons.compress.archivers.ArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipFile;
|
||||
|
||||
// import javax.crypto.Cipher;
|
||||
|
||||
public class IntegrityUtil {
|
||||
|
||||
/**
|
||||
* Is used to check if the zip file is corrupted/destroyed
|
||||
*
|
||||
* @param file
|
||||
* @return
|
||||
*/
|
||||
public static boolean isZipValid(final File file) {
|
||||
ZipFile zipFile = null;
|
||||
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} finally {
|
||||
try {
|
||||
if (zipFile != null) {
|
||||
zipFile.close();
|
||||
zipFile = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void validate(final File file) {
|
||||
ZipFile zipFile = null;
|
||||
|
||||
try {
|
||||
zipFile = new ZipFile(file);
|
||||
|
||||
} catch (IOException e) {
|
||||
} finally {
|
||||
try {
|
||||
if (zipFile != null) {
|
||||
zipFile.close();
|
||||
zipFile = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To check if the encrpted zip file is corrupted or not
|
||||
*
|
||||
* @param file
|
||||
* @param password
|
||||
* @return
|
||||
*/
|
||||
public static boolean isEncryptedZipValid(final File file, String password) {
|
||||
ZipArchiveInputStream input = null;
|
||||
InputStream target = null;
|
||||
try {
|
||||
target = new FileInputStream(file);
|
||||
target = new CipherInputStream(target, createCipher(Cipher.DECRYPT_MODE, password));
|
||||
input = new ZipArchiveInputStream(target);
|
||||
ArchiveEntry entry = input.getNextEntry();
|
||||
return true;
|
||||
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
} finally {
|
||||
try {
|
||||
if (input != null) {
|
||||
input.close();
|
||||
input = null;
|
||||
}
|
||||
if (target != null) {
|
||||
target.close();
|
||||
target = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to check tar.gz/.tgz/.gz file is corrupted/destroyed
|
||||
*
|
||||
* @param fileName
|
||||
* @return
|
||||
*/
|
||||
public static boolean isGZIPValid(final String fileName) {
|
||||
GZIPInputStream inputStream = null;
|
||||
InputStream is = null;
|
||||
try {
|
||||
is = new FileInputStream(new File(fileName));
|
||||
inputStream = new GZIPInputStream(is);
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}finally {
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
inputStream = null;
|
||||
} else if(is != null) {
|
||||
is.close();
|
||||
is = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Used to check tar.tar file is corrupted/destroyed
|
||||
*
|
||||
* @param fileName
|
||||
* @return
|
||||
*/
|
||||
public static boolean isTarValid(final String fileName) {
|
||||
TarArchiveInputStream inputStream = null;
|
||||
InputStream is = null;
|
||||
try {
|
||||
is = new FileInputStream(new File(fileName));
|
||||
inputStream = new TarArchiveInputStream(is);
|
||||
return inputStream.canReadEntryData(inputStream.getNextEntry());
|
||||
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}finally {
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
inputStream = null;
|
||||
} else if(is != null) {
|
||||
is.close();
|
||||
is = null;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param mode
|
||||
* @param password
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public static Cipher createCipher(int mode, String password) throws Exception {
|
||||
String alg = "PBEWithSHA1AndDESede"; // BouncyCastle has better algorithms
|
||||
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray());
|
||||
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(alg);
|
||||
SecretKey secretKey = keyFactory.generateSecret(keySpec);
|
||||
|
||||
Cipher cipher = Cipher.getInstance("PBEWithSHA1AndDESede");
|
||||
cipher.init(mode, secretKey, new PBEParameterSpec("saltsalt".getBytes(), 2000));
|
||||
|
||||
return cipher;
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
|
||||
<slf4.version>1.7.34</slf4.version>
|
||||
<slf4.version>1.7.25</slf4.version>
|
||||
<lombok.version>1.18.12</lombok.version>
|
||||
</properties>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<groupId>net.sf.json-lib</groupId>
|
||||
<artifactId>json-lib</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>2.4.8-talend</version>
|
||||
<version>2.4.6-talend</version>
|
||||
<name>json-lib</name>
|
||||
|
||||
<properties>
|
||||
@@ -230,9 +230,9 @@
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.reload4j</groupId>
|
||||
<artifactId>reload4j</artifactId>
|
||||
<version>1.2.22</version>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.14</version>
|
||||
<scope>runtime</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<cxf.version>3.5.5</cxf.version>
|
||||
<cxf.version>3.3.10</cxf.version>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.talend</groupId>
|
||||
<artifactId>talendMQRFH2</artifactId>
|
||||
<version>1.3.0-20220912</version>
|
||||
<version>1.0.1-20190206</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<properties>
|
||||
@@ -36,10 +36,20 @@
|
||||
</distributionManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.ibm.mq</groupId>
|
||||
<artifactId>com.ibm.mq</artifactId>
|
||||
<version>8.0.0.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ibm.mq</groupId>
|
||||
<artifactId>com.ibm.mqjms</artifactId>
|
||||
<version>8.0.0.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ibm.mq</groupId>
|
||||
<artifactId>com.ibm.mq.allclient</artifactId>
|
||||
<version>9.2.5.0</version>
|
||||
<version>8.0.0.9</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.talend.libraries</groupId>
|
||||
@@ -57,9 +67,9 @@
|
||||
<version>6.0.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.reload4j</groupId>
|
||||
<artifactId>reload4j</artifactId>
|
||||
<version>1.2.22</version>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<!-- #################################################### -->
|
||||
|
||||
<!-- modification 1: config -->
|
||||
<property name="jar.name" value="MsmqTalend-1.0.5.jar" />
|
||||
<property name="jar.name" value="MsmqTalend-1.0.0.jar" />
|
||||
<property name="component.name" value="tMicrosoftMQInput" />
|
||||
<property name="author.name" value="ytao" />
|
||||
|
||||
|
||||
@@ -27,8 +27,7 @@
|
||||
|
||||
package ionic.Msmq;
|
||||
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
|
||||
/**
|
||||
* The Queue class represents a message queue in MSMQ.
|
||||
@@ -96,8 +95,6 @@ public class Queue
|
||||
int getValue() { return _accessFlag; }
|
||||
}
|
||||
|
||||
private static final Logger LOG = Logger.getLogger(Queue.class.getName());
|
||||
private static boolean initialized;
|
||||
|
||||
/**
|
||||
* <p>Call this constructor to open a queue by name for SEND and
|
||||
@@ -136,7 +133,6 @@ public class Queue
|
||||
private void _init(String queueName, int access)
|
||||
throws MessageQueueException
|
||||
{
|
||||
initialize();
|
||||
// the openQueue native method causes the _queueSlot to be set.
|
||||
int rc = 0;
|
||||
if (access == 0x01) // RECEIVE
|
||||
@@ -153,9 +149,7 @@ public class Queue
|
||||
}
|
||||
else { rc= 0xC00E0006; /* MQ_INVALID_PARAMETER */ }
|
||||
|
||||
if (rc!=0) {
|
||||
throw new MessageQueueException("Cannot open queue.", rc);
|
||||
}
|
||||
if (rc!=0) throw new MessageQueueException("Cannot open queue.", rc);
|
||||
|
||||
_name= queueName;
|
||||
_formatName= "unknown";
|
||||
@@ -182,17 +176,14 @@ public class Queue
|
||||
public static Queue create(String queuePath, String queueLabel, boolean isTransactional)
|
||||
throws MessageQueueException
|
||||
{
|
||||
initialize();
|
||||
int rc= nativeCreateQueue( queuePath, queueLabel, (isTransactional)?1:0);
|
||||
if (rc!=0) {
|
||||
if (rc!=0)
|
||||
throw new MessageQueueException("Cannot create queue.", rc);
|
||||
}
|
||||
// DIRECT=OS ? or DIRECT=TCP ?
|
||||
String a1= "OS";
|
||||
char[] c= queuePath.toCharArray();
|
||||
if ((c[0]>='1') && (c[0]<='9')) {
|
||||
a1= "TCP"; // assume ip address
|
||||
}
|
||||
if ((c[0]>='1')
|
||||
&& (c[0]<='9')) a1= "TCP"; // assume ip address
|
||||
|
||||
Queue q= new Queue("DIRECT=" + a1 + ":" + queuePath);
|
||||
q._name= queuePath;
|
||||
@@ -210,11 +201,9 @@ public class Queue
|
||||
public static void delete(String queuePath)
|
||||
throws MessageQueueException
|
||||
{
|
||||
initialize();
|
||||
int rc= nativeDeleteQueue( queuePath );
|
||||
if (rc!=0) {
|
||||
if (rc!=0)
|
||||
throw new MessageQueueException("Cannot delete queue.", rc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -229,16 +218,14 @@ public class Queue
|
||||
public void send(Message msg, boolean highPriority, TransactionType t)
|
||||
throws MessageQueueException
|
||||
{
|
||||
initialize();
|
||||
int rc= nativeSendBytes(msg.getBody(),
|
||||
msg.getLabel(),
|
||||
msg.getCorrelationId(),
|
||||
t.getValue(),
|
||||
highPriority
|
||||
);
|
||||
if (rc!=0) {
|
||||
if (rc!=0)
|
||||
throw new MessageQueueException("Cannot send.", rc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -284,16 +271,14 @@ public class Queue
|
||||
throws MessageQueueException, java.io.UnsupportedEncodingException
|
||||
|
||||
{
|
||||
initialize();
|
||||
int rc= nativeSendBytes(s.getBytes("UTF-8"), // bytes of string
|
||||
"", // empty label
|
||||
null, // empty correlationId
|
||||
0, // outside any transaction
|
||||
false // false = not high priority
|
||||
);
|
||||
if (rc!=0) {
|
||||
if (rc!=0)
|
||||
throw new MessageQueueException("Cannot send.", rc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -306,16 +291,14 @@ public class Queue
|
||||
public void send(byte[] b)
|
||||
throws MessageQueueException
|
||||
{
|
||||
initialize();
|
||||
int rc= nativeSendBytes(b,
|
||||
"", // empty label
|
||||
null, // empty correlationId
|
||||
0, // outside any transaction
|
||||
false // false = not high priority
|
||||
);
|
||||
if (rc!=0) {
|
||||
if (rc!=0)
|
||||
throw new MessageQueueException("Cannot send.", rc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -325,15 +308,13 @@ public class Queue
|
||||
private ionic.Msmq.Message _internal_receive(int timeout, int ReadOrPeek)
|
||||
throws MessageQueueException
|
||||
{
|
||||
initialize();
|
||||
Message msg = new Message();
|
||||
|
||||
int rc = nativeReceiveBytes(msg, timeout, ReadOrPeek);
|
||||
//int rc = nativeReceiveBytes(timeout, ReadOrPeek);
|
||||
|
||||
if (rc!=0) {
|
||||
if (rc!=0)
|
||||
throw new MessageQueueException("Cannot receive.", rc);
|
||||
}
|
||||
|
||||
return msg;
|
||||
}
|
||||
@@ -397,11 +378,10 @@ public class Queue
|
||||
public void close()
|
||||
throws MessageQueueException
|
||||
{
|
||||
initialize();
|
||||
|
||||
int rc=nativeClose();
|
||||
if (rc!=0) {
|
||||
if (rc!=0)
|
||||
throw new MessageQueueException("Cannot close.", rc);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -460,59 +440,38 @@ public class Queue
|
||||
|
||||
// --------------------------------------------
|
||||
// private members
|
||||
private int _queueSlot = 0;
|
||||
private String _name;
|
||||
private String _formatName;
|
||||
private String _label;
|
||||
private boolean _isTransactional;
|
||||
int _queueSlot = 0;
|
||||
String _name;
|
||||
String _formatName;
|
||||
String _label;
|
||||
boolean _isTransactional;
|
||||
|
||||
// --------------------------------------------
|
||||
// static initializer
|
||||
private static void initialize() {
|
||||
if (initialized) {
|
||||
return;
|
||||
}
|
||||
synchronized (Queue.class) {
|
||||
if (initialized) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
loadLib();
|
||||
nativeInit();
|
||||
initialized = true;
|
||||
} catch (Throwable e) {
|
||||
LOG.log(Level.SEVERE, "Error during library initialization. ", e);
|
||||
if (e instanceof Error) {
|
||||
throw (Error) e;
|
||||
}
|
||||
if (e instanceof RuntimeException) {
|
||||
throw (RuntimeException) e;
|
||||
}
|
||||
throw new IllegalStateException("Initialization failure. ", e);
|
||||
}
|
||||
}
|
||||
static {
|
||||
//System.loadLibrary("MsmqJava");
|
||||
loadLib();
|
||||
nativeInit();
|
||||
}
|
||||
|
||||
/* Try extracting and loading library from jar */
|
||||
|
||||
private static void loadLib() throws Exception {
|
||||
String libName = "MsmqJava";
|
||||
String dllName = libName + ".dll";
|
||||
private static void loadLib() {
|
||||
String dllName = "MsmqJava.dll";
|
||||
String TMP_HOME = System.getProperty("java.io.tmpdir");
|
||||
// TMP_HOME = "d:";
|
||||
String SEPARATOR = System.getProperty("file.separator");
|
||||
String fileName = TMP_HOME + SEPARATOR + dllName;
|
||||
java.io.File file = new java.io.File(fileName);
|
||||
java.io.FileOutputStream os = null;
|
||||
java.io.InputStream is = null;
|
||||
boolean extracted = false;
|
||||
boolean useLocalLib = true;
|
||||
boolean loadSuccess = true;
|
||||
|
||||
try {
|
||||
if (!file.exists()) {
|
||||
|
||||
is = Queue.class.getResourceAsStream("/" + dllName);
|
||||
if (is != null) {
|
||||
LOG.info("Unpacking local native library.");
|
||||
extracted = true;
|
||||
int read;
|
||||
byte[] buffer = new byte[4096];
|
||||
@@ -520,62 +479,31 @@ public class Queue
|
||||
while ((read = is.read(buffer)) != -1) {
|
||||
os.write(buffer, 0, read);
|
||||
}
|
||||
} else {
|
||||
LOG.info("No local native library found.");
|
||||
useLocalLib = false;
|
||||
os.close();
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
loadSuccess = false;
|
||||
if (useLocalLib) {
|
||||
LOG.info("Using previously unpacked local native library.");
|
||||
if (fileName.indexOf(SEPARATOR) != -1) {
|
||||
|
||||
System.load(fileName);
|
||||
} else {
|
||||
LOG.info("Using native library from system.");
|
||||
System.loadLibrary(libName);
|
||||
System.loadLibrary(fileName);
|
||||
}
|
||||
loadSuccess = true;
|
||||
} catch (Throwable e) {
|
||||
if (loadSuccess) {
|
||||
throw e; // throw exception if unrelated to library loading
|
||||
}
|
||||
if (useLocalLib) {
|
||||
LOG.warning("Unable to load local native library \"" + dllName
|
||||
+ "\" with system path \"" + System.getenv("PATH")
|
||||
+ "\", trying to load from system. ");
|
||||
try {
|
||||
System.loadLibrary(libName);
|
||||
loadSuccess = true; // successfully recovered from error condition
|
||||
LOG.info("Native library \"" + dllName + "\" loaded from system.");
|
||||
} catch (Throwable t) {
|
||||
LOG.log(Level.WARNING, "Loading native library failed. ", t);
|
||||
}
|
||||
}
|
||||
if (!loadSuccess) {
|
||||
LOG.severe("Unable to load native library \"" + dllName
|
||||
+ "\" with library path \"" + System.getProperty("java.library.path")
|
||||
+ "\" and system path \"" + System.getenv("PATH") + "\"");
|
||||
throw e;
|
||||
}
|
||||
} finally {
|
||||
try {
|
||||
if (os != null)
|
||||
os.close();
|
||||
} catch (Throwable e) {
|
||||
LOG.log(Level.WARNING, "Closing library file output stream failed. ", e);
|
||||
} catch (java.io.IOException e1) {
|
||||
}
|
||||
try {
|
||||
if (is != null)
|
||||
is.close();
|
||||
} catch (Throwable e) {
|
||||
LOG.log(Level.WARNING, "Closing library resource stream failed. ", e);
|
||||
}
|
||||
try {
|
||||
if (extracted && file.exists()) {
|
||||
file.delete();
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
LOG.log(Level.WARNING, "Removing library file failed. ", e);
|
||||
} catch (java.io.IOException e1) {
|
||||
}
|
||||
if (extracted && file.exists())
|
||||
file.delete();
|
||||
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>org.neo4j.talend</groupId>
|
||||
<artifactId>neo4j-talend-component</artifactId>
|
||||
<version>1.4-20220912</version>
|
||||
<version>1.3-20191012</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>Neo4j Talend </name>
|
||||
@@ -103,19 +103,19 @@
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.34</version>
|
||||
<version>1.7.25</version>
|
||||
</dependency>
|
||||
<!-- Talend log4j library -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.34</version>
|
||||
<version>1.7.25</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.qos.reload4j</groupId>
|
||||
<artifactId>reload4j</artifactId>
|
||||
<version>1.2.22</version>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- JUnit -->
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
<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>
|
||||
|
||||
<groupId>org.talend.components</groupId>
|
||||
<artifactId>simpleexcel</artifactId>
|
||||
<version>2.5-20201119</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>simpleexcel</name>
|
||||
<url>http://maven.apache.org</url>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<talend.nexus.url>https://artifacts-oss.talend.com</talend.nexus.url>
|
||||
<java.source.version>1.8</java.source.version>
|
||||
<junit5.version>5.6.2</junit5.version>
|
||||
</properties>
|
||||
|
||||
<distributionManagement>
|
||||
<snapshotRepository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceSnapshot/</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
</releases>
|
||||
</snapshotRepository>
|
||||
<repository>
|
||||
<id>talend_nexus_deployment</id>
|
||||
<url>${talend.nexus.url}/nexus/content/repositories/TalendOpenSourceRelease/</url>
|
||||
<snapshots>
|
||||
<enabled>false</enabled>
|
||||
</snapshots>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
</distributionManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-scratchpad</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml-schemas</artifactId>
|
||||
<version>4.1.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
|
||||
<!--test-->
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
<version>${junit5.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-params</artifactId>
|
||||
<version>${junit5.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<configuration>
|
||||
<source>${java.source.version}</source>
|
||||
<target>${java.source.version}</target>
|
||||
<showDeprecation>true</showDeprecation>
|
||||
<showWarnings>true</showWarnings>
|
||||
<compilerArgument>-XDignore.symbol.file</compilerArgument>
|
||||
<fork>true</fork>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.talend.excel.xssf.event;
|
||||
|
||||
public class ColumnUtil {
|
||||
|
||||
/**
|
||||
* get index of column,like "AB12" return 27
|
||||
*/
|
||||
public static int calculateIndexOfColumn(String cellReference) {
|
||||
int columnIndex = -1;
|
||||
// get First Digit index ,like cellReferecnce is "AA13" ,firstDigitIndex return 2
|
||||
int firstDigitIndex = -1;
|
||||
for (int c = 0; c < cellReference.length(); ++c) {
|
||||
if (Character.isDigit(cellReference.charAt(c))) {
|
||||
firstDigitIndex = c;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// get String part for cellReference,like "AB2" ,return "AB"
|
||||
String cellStringPart = cellReference.substring(0, firstDigitIndex);
|
||||
for (int i = 0; i < cellStringPart.length(); ++i) {
|
||||
int c = cellStringPart.charAt(i);
|
||||
columnIndex = (columnIndex + 1) * 26 + c - 'A';
|
||||
}
|
||||
return columnIndex;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// 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 com.talend.excel.xssf.event;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* DOC Administrator class global comment. Detailled comment
|
||||
*/
|
||||
public class DataBufferCache {
|
||||
|
||||
// private static DataBufferCache instance = new DataBufferCache();
|
||||
|
||||
private long bufferSize = 5000;
|
||||
|
||||
private boolean isEnd = false;
|
||||
|
||||
private int bufferNum = 10;
|
||||
|
||||
private LinkedList<Buffer> buffers = new LinkedList<Buffer>();
|
||||
|
||||
private Buffer currentReadBuff = null;
|
||||
|
||||
private Buffer currentWriteBuff = null;
|
||||
|
||||
private DataBufferCache() {
|
||||
}
|
||||
|
||||
public static DataBufferCache getInstance() {
|
||||
return new DataBufferCache();
|
||||
}
|
||||
|
||||
public void setIsEnd() {
|
||||
synchronized (buffers) {
|
||||
try {
|
||||
if (!isEnd && currentWriteBuff != null) {
|
||||
buffers.add(currentWriteBuff);
|
||||
}
|
||||
this.isEnd = true;
|
||||
} finally {
|
||||
this.buffers.notifyAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void setBufferNum(int num) {
|
||||
if (num <= 0) {
|
||||
return;
|
||||
}
|
||||
this.bufferNum = num;
|
||||
}
|
||||
|
||||
public void setBufferSize(long size) {
|
||||
if (size <= 0) {
|
||||
return;
|
||||
}
|
||||
this.bufferSize = size;
|
||||
}
|
||||
|
||||
public boolean hasData() {
|
||||
getCurrReadBuffer();
|
||||
if (currentReadBuff == null) {
|
||||
return false;
|
||||
}
|
||||
return this.currentReadBuff.hasNext();
|
||||
}
|
||||
|
||||
public List<String> readData() {
|
||||
return this.currentReadBuff.Next();
|
||||
}
|
||||
|
||||
private void getCurrReadBuffer() {
|
||||
if (currentReadBuff != null && currentReadBuff.hasNext()) {
|
||||
return;
|
||||
}
|
||||
synchronized (this.buffers) {
|
||||
try {
|
||||
while (!this.isEnd && buffers.size() < 1) {
|
||||
try {
|
||||
buffers.wait();
|
||||
} catch (InterruptedException ex) {
|
||||
System.err.println(ex.getMessage());
|
||||
}
|
||||
}
|
||||
if (buffers.size() > 0) {
|
||||
currentReadBuff = buffers.remove();
|
||||
}
|
||||
} finally {
|
||||
this.buffers.notifyAll();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void writeData(List<String> record) {
|
||||
if (currentWriteBuff == null) {
|
||||
currentWriteBuff = new Buffer();
|
||||
}
|
||||
if (currentWriteBuff.size() < this.bufferSize) {
|
||||
currentWriteBuff.add(record);
|
||||
} else {
|
||||
currentWriteBuff.add(record);
|
||||
synchronized (buffers) {
|
||||
try {
|
||||
while (buffers.size() > bufferNum) {
|
||||
try {
|
||||
buffers.wait();
|
||||
} catch (InterruptedException ex) {
|
||||
System.err.println(ex.getMessage());
|
||||
}
|
||||
}
|
||||
if (currentWriteBuff.size() > 0) {
|
||||
this.buffers.add(currentWriteBuff);
|
||||
}
|
||||
currentWriteBuff = null;
|
||||
} finally {
|
||||
this.buffers.notifyAll();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void notifyErrorOccurred() {
|
||||
setIsEnd();
|
||||
}
|
||||
|
||||
class Buffer {
|
||||
|
||||
private LinkedList<List<String>> buffer = null;
|
||||
|
||||
private boolean isForRead = false; // false for write, true for read
|
||||
|
||||
public Buffer() {
|
||||
buffer = createNewBuffer();
|
||||
}
|
||||
|
||||
public void setIsForRead(boolean isForRead) {
|
||||
this.isForRead = isForRead;
|
||||
}
|
||||
|
||||
public boolean isForRead() {
|
||||
return this.isForRead;
|
||||
}
|
||||
|
||||
public boolean hasNext() {
|
||||
return buffer.size() > 0;
|
||||
}
|
||||
|
||||
public List<String> Next() {
|
||||
return buffer.remove();
|
||||
}
|
||||
|
||||
public void add(List<String> o) {
|
||||
this.buffer.add(o);
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return this.buffer.size();
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
this.buffer.clear();
|
||||
buffer = null;
|
||||
}
|
||||
|
||||
private LinkedList<List<String>> createNewBuffer() {
|
||||
return new LinkedList<List<String>>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// 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 com.talend.excel.xssf.event;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.poi.xssf.usermodel.XSSFComment;
|
||||
|
||||
/**
|
||||
* created by wwang on 2012-9-27 Detailled comment
|
||||
*
|
||||
*/
|
||||
public class DefaultTalendSheetContentsHandler implements TalendXSSFSheetXMLHandler.TalendSheetContentsHandler {
|
||||
|
||||
private DataBufferCache cache = null;
|
||||
|
||||
private List<String> row = null;
|
||||
|
||||
private boolean stop = false;
|
||||
|
||||
private int currentColumnIndex = -1;
|
||||
|
||||
private int lastColumnIndex = -1;
|
||||
|
||||
public DefaultTalendSheetContentsHandler(DataBufferCache cache) {
|
||||
this.cache = cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startRow(int rowNum) {
|
||||
row = new ArrayList<String>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endRow(int rowNum) {
|
||||
cache.writeData(row);
|
||||
row = null;
|
||||
// when each row end ,reset lastColumnIndex
|
||||
lastColumnIndex = -1;
|
||||
if (stop) {
|
||||
throw new EnoughDataException("Get enough data,now stop the xml parse action");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cell(String cellReference, String formattedValue,XSSFComment comment) {
|
||||
checkHasNullValue(cellReference);
|
||||
row.add(formattedValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void headerFooter(String text, boolean isHeader, String tagName) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void endSheet() {
|
||||
|
||||
}
|
||||
|
||||
public void stop() {
|
||||
this.stop = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* when currentCellReferecnce is "A1" ,and next currentCellReferecnce is "C1",we need add a null value for "B1"
|
||||
*/
|
||||
private void checkHasNullValue(String cellReference) {
|
||||
currentColumnIndex = ColumnUtil.calculateIndexOfColumn(cellReference);
|
||||
// Might be the empty string.
|
||||
for (int i = lastColumnIndex; i < currentColumnIndex - 1; i++) {
|
||||
row.add(null);
|
||||
}
|
||||
// Update column
|
||||
if (currentColumnIndex > -1) {
|
||||
lastColumnIndex = currentColumnIndex;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// 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 com.talend.excel.xssf.event;
|
||||
|
||||
public class EnoughDataException extends RuntimeException {
|
||||
|
||||
private static final long serialVersionUID = 2843001993190805937L;
|
||||
|
||||
public EnoughDataException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public EnoughDataException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
public EnoughDataException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public EnoughDataException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
// ============================================================================
|
||||
//
|
||||
// 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 com.talend.excel.xssf.event;
|
||||
|
||||
import org.apache.poi.ooxml.util.PackageHelper;
|
||||
import org.apache.poi.openxml4j.opc.OPCPackage;
|
||||
import org.apache.poi.poifs.crypt.Decryptor;
|
||||
import org.apache.poi.poifs.crypt.EncryptionInfo;
|
||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
||||
import org.apache.poi.ss.usermodel.DataFormatter;
|
||||
import org.apache.poi.xssf.eventusermodel.ReadOnlySharedStringsTable;
|
||||
import org.apache.poi.xssf.eventusermodel.XSSFReader;
|
||||
import org.apache.poi.xssf.model.StylesTable;
|
||||
import org.xml.sax.ContentHandler;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.XMLReader;
|
||||
import org.xml.sax.helpers.XMLReaderFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.text.DateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.FutureTask;
|
||||
|
||||
/**
|
||||
* created by wwang on 2012-9-27 Detailled comment
|
||||
*/
|
||||
public class ExcelReader implements Callable {
|
||||
|
||||
private DataBufferCache cache;
|
||||
|
||||
private Thread task;
|
||||
|
||||
private FutureTask futureTask;
|
||||
|
||||
private String fileURL = null;
|
||||
|
||||
private String charset = "UTF-8";
|
||||
|
||||
private String password = null;
|
||||
|
||||
private java.io.InputStream is;
|
||||
|
||||
private List<String> sheetNames = new ArrayList<String>();
|
||||
|
||||
private List<Integer> sheetPositions = new ArrayList<Integer>();
|
||||
|
||||
private List<Boolean> asRegexs = new ArrayList<Boolean>();
|
||||
|
||||
private final Map<Integer, DateFormat> columnDateFormats = new HashMap<>();
|
||||
|
||||
DefaultTalendSheetContentsHandler sheetContentsHandler = null;
|
||||
|
||||
private boolean includePhoneticRuns;
|
||||
|
||||
public ExcelReader() {
|
||||
cache = DataBufferCache.getInstance();
|
||||
futureTask = new FutureTask(this);
|
||||
task = new Thread(futureTask);
|
||||
}
|
||||
|
||||
public void parse(String fileURL, String charset, String password) {
|
||||
this.fileURL = fileURL;
|
||||
this.charset = charset;
|
||||
this.password = password;
|
||||
task.start();
|
||||
}
|
||||
|
||||
public void parse(java.io.InputStream is, String charset, String password) {
|
||||
this.is = is;
|
||||
this.charset = charset;
|
||||
this.password = password;
|
||||
task.start();
|
||||
}
|
||||
|
||||
public boolean hasNext() {
|
||||
return cache.hasData();
|
||||
}
|
||||
|
||||
public List<String> next() {
|
||||
return cache.readData();
|
||||
}
|
||||
|
||||
public void addSheetName(String name, Boolean asRegex) {
|
||||
this.sheetNames.add(name);
|
||||
this.asRegexs.add(asRegex);
|
||||
}
|
||||
|
||||
public void addSheetName(int position, Boolean asRegex) {
|
||||
// Keep "asRegex" here for code generated
|
||||
if (!this.sheetPositions.contains(position)) {
|
||||
this.sheetPositions.add(position);
|
||||
}
|
||||
}
|
||||
|
||||
public void addDateFormat(Integer columnIndex, DateFormat dateFormat) {
|
||||
this.columnDateFormats.put(columnIndex, dateFormat);
|
||||
}
|
||||
|
||||
public void stopRead() {
|
||||
sheetContentsHandler.stop();
|
||||
}
|
||||
|
||||
public boolean isIncludePhoneticRuns() {
|
||||
return includePhoneticRuns;
|
||||
}
|
||||
|
||||
public void setIncludePhoneticRuns(boolean includePhoneticRuns) {
|
||||
this.includePhoneticRuns = includePhoneticRuns;
|
||||
}
|
||||
|
||||
/**
|
||||
* handle the exception in task. FutureTask.get() is a block method waiting for the Task over and it can throw the
|
||||
* exception in Task(Callable,Thread,Runnable)
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public void handleException() throws Exception {
|
||||
futureTask.get();
|
||||
}
|
||||
|
||||
public Object call() throws Exception {
|
||||
OPCPackage pkg = null;
|
||||
POIFSFileSystem fs = null;
|
||||
try {
|
||||
if (password != null) {
|
||||
if (fileURL != null) {
|
||||
fs = new POIFSFileSystem(new File(fileURL));
|
||||
} else {
|
||||
fs = new POIFSFileSystem(is);
|
||||
}
|
||||
Decryptor d = Decryptor.getInstance(new EncryptionInfo(fs));
|
||||
if (!d.verifyPassword(password)) {
|
||||
throw new RuntimeException("Error: Cannot decrypt Excel file. Invalid password.");
|
||||
}
|
||||
pkg = OPCPackage.open(d.getDataStream(fs));
|
||||
} else {
|
||||
if (fileURL != null) {
|
||||
pkg = OPCPackage.open(fileURL);
|
||||
} else {
|
||||
pkg = PackageHelper.open(is);
|
||||
}
|
||||
}
|
||||
XSSFReader r = new XSSFReader(pkg);
|
||||
|
||||
StylesTable styles = r.getStylesTable();
|
||||
ReadOnlySharedStringsTable strings = new ReadOnlySharedStringsTable(pkg, includePhoneticRuns);
|
||||
sheetContentsHandler = new DefaultTalendSheetContentsHandler(cache);
|
||||
DataFormatter formatter = new DataFormatter();
|
||||
boolean formulasNotResults = false;
|
||||
|
||||
XMLReader parser = XMLReaderFactory.createXMLReader();
|
||||
ContentHandler handler = new TalendXSSFSheetXMLHandler(styles, strings, sheetContentsHandler, formatter,
|
||||
formulasNotResults, columnDateFormats);
|
||||
parser.setContentHandler(handler);
|
||||
|
||||
XSSFReader.SheetIterator sheets = (XSSFReader.SheetIterator) r.getSheetsData();
|
||||
// List<InputStream> iss = new ArrayList<InputStream>();
|
||||
LinkedHashMap<String, InputStream> issmap = new LinkedHashMap<String, InputStream>();
|
||||
List<String> allSheetNames = new ArrayList<String>();
|
||||
int sheetPosition = 0;
|
||||
while (sheets.hasNext()) {
|
||||
InputStream sheet = sheets.next();
|
||||
String sheetName = sheets.getSheetName();
|
||||
if (allSheetNames.contains(sheetName)) {
|
||||
sheet.close();
|
||||
continue;
|
||||
} else {
|
||||
allSheetNames.add(sheetName);
|
||||
}
|
||||
boolean match = false;
|
||||
if (sheetNames.size() > 0) {
|
||||
for (int i = 0; i < sheetNames.size(); i++) {
|
||||
if ((asRegexs.get(i) && sheetName.matches(sheetNames.get(i)))
|
||||
|| (!asRegexs.get(i) && sheetName.equalsIgnoreCase(sheetNames.get(i)))) {
|
||||
match = true;
|
||||
// iss.add(sheet);
|
||||
issmap.put(sheetName, sheet);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (sheetPositions.size() > 0) {
|
||||
if (sheetPositions.contains(sheetPosition)) {
|
||||
match = true;
|
||||
issmap.put(sheetName, sheet);
|
||||
// remove from the list for index out of range check.
|
||||
sheetPositions.remove(sheetPositions.indexOf(sheetPosition));
|
||||
}
|
||||
}
|
||||
sheetPosition++;
|
||||
if (!match) {
|
||||
sheet.close();
|
||||
}
|
||||
}
|
||||
|
||||
if (issmap.size() < 1) {
|
||||
throw new RuntimeException("No match sheets");
|
||||
}
|
||||
|
||||
// if the "sheetPositions" still not empty, means thsoe positions out of range.
|
||||
if (sheetPositions.size() > 0) {
|
||||
throw new IllegalArgumentException(
|
||||
"Sheet index " + sheetPositions + " is out of range (0.." + (sheetPosition - 1) + ")");
|
||||
}
|
||||
|
||||
for (InputStream is : issmap.values()) {
|
||||
try {
|
||||
InputSource sheetSource = new InputSource(is);
|
||||
sheetSource.setEncoding(charset);
|
||||
parser.parse(sheetSource);
|
||||
} finally {
|
||||
is.close();
|
||||
}
|
||||
}
|
||||
|
||||
} finally {
|
||||
if (pkg != null) {
|
||||
pkg.revert();
|
||||
}
|
||||
if (fs != null) {
|
||||
fs.close();
|
||||
}
|
||||
cache.notifyErrorOccurred();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user