Compare commits

...

3 Commits

Author SHA1 Message Date
Chao MENG
80f2529101 chore: support export item 2022-09-19 10:40:48 +08:00
Chao MENG
96bded3772 chore: support code generator server 2022-09-05 11:01:57 +08:00
Chao MENG
ac7bf2559a chore: support code generator server 2022-09-05 10:57:36 +08:00
3 changed files with 65 additions and 24 deletions

View File

@@ -4,7 +4,7 @@
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>tdi-studio-se</artifactId>
<version>8.0.1</version>
<version>8.0.1-SNAPSHOT</version>
<relativePath>../../../</relativePath>
</parent>
<artifactId>org.talend.repository</artifactId>

View File

@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.log4j.Logger;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspace;
@@ -47,16 +48,20 @@ import org.talend.core.GlobalServiceRegister;
import org.talend.core.ILibraryManagerService;
import org.talend.core.model.context.link.ContextLinkService;
import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.Project;
import org.talend.core.model.properties.PropertiesPackage;
import org.talend.core.model.properties.Property;
import org.talend.core.model.properties.RoutineItem;
import org.talend.core.model.properties.RoutinesJarItem;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.FakePropertyImpl;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ResourceModelUtils;
import org.talend.core.repository.constants.FileConstants;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.ResourceFilenameHelper;
import org.talend.core.repository.utils.ResourceFilenameHelper.FileName;
import org.talend.core.repository.utils.URIHelper;
import org.talend.core.repository.utils.XmiResourceManager;
import org.talend.core.service.ITransformService;
@@ -71,6 +76,8 @@ import org.talend.repository.i18n.Messages;
/***/
public class ExportItemUtil {
private static final Logger LOGGER = Logger.getLogger(ExportItemUtil.class);
private Project project;
private ProjectManager pManager = ProjectManager.getInstance();
@@ -368,10 +375,43 @@ public class ExportItemUtil {
IPath propertyPath = null;
Property property = item.getProperty();
List<Resource> resources = localRepositoryManager.getAffectedResources(property);
if (resources.isEmpty()) {
if (resources != null && resources.isEmpty()) {
IRepositoryViewObject obj = ProxyRepositoryFactory.getInstance().getSpecificVersion(property.getId(),
property.getVersion(), true);
resources = localRepositoryManager.getAffectedResources(obj.getProperty());
if (obj != null) {
resources = localRepositoryManager.getAffectedResources(obj.getProperty());
} else {
LOGGER.info("Can't find emf resource, will try to serialize directly.");
if (item instanceof ProcessItem) {
String folder = ERepositoryObjectType.PROCESS.getFolder();
IPath outputRelativeItemPath = getProjectOutputPath().append(folder);
IPath targetPath = new Path(destinationDirectory.getAbsolutePath()).append(outputRelativeItemPath);
XmiResourceManager xrm = new XmiResourceManager();
try {
ProcessItem processItem = (ProcessItem) item;
FileName fileName = ResourceFilenameHelper.create(processItem.getProperty());
IPath itemPath = ResourceFilenameHelper.getExpectedFilePath(fileName, targetPath,
FileConstants.ITEM_EXTENSION, processItem.isNeedVersion());
itemPath.toFile().getParentFile().mkdirs();
Resource processItemResource = xrm.createItemResource(false,
URI.createFileURI(itemPath.toPortableString()));
Resource propertyResource = xrm.createPropertyResource(processItem, processItemResource);
propertyResource.getContents().add(processItem.getProperty());
propertyResource.getContents().add(processItem.getState());
propertyResource.getContents().add(processItem);
processItemResource.getContents().add(processItem.getProcess());
xrm.saveResource(processItemResource);
xrm.saveResource(propertyResource);
} finally {
xrm.unloadResources();
}
}
}
}
if (resources == null) {
resources = new ArrayList<>();
}
for (Resource curResource : resources) {
URI uri = curResource.getURI();

43
pom.xml
View File

@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.talend.studio</groupId>
<artifactId>parent-pom</artifactId>
<version>8.0.1</version>
<version>8.0.1-SNAPSHOT</version>
<relativePath />
</parent>
<artifactId>tdi-studio-se</artifactId>
@@ -34,7 +35,7 @@
<modules>
<module>main/features/org.talend.designer.feature</module>
<module>main/features/org.talend.gmf.feature</module>
<module>main/features/org.talend.fragment.jars.di.feature</module>
<module>main/features/org.talend.fragment.jars.di.feature</module>
<module>main/features/org.talend.rcp.branding.tos.feature</module>
<module>main/features/org.talend.rcp.branding.tos.test.feature</module>
<module>main/features/org.talend.repository.feature</module>
@@ -107,24 +108,24 @@
<module>main/plugins/org.talend.studio.components.tcompv0.jdbc</module>
<module>main/features/org.talend.studio.components.tcompv0.jdbc.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.netsuite</module>
<module>main/features/org.talend.studio.components.tcompv0.netsuite.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.marklogic</module>
<module>main/features/org.talend.studio.components.tcompv0.marklogic.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.googledrive</module>
<module>main/features/org.talend.studio.components.tcompv0.googledrive.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.marketo</module>
<module>main/features/org.talend.studio.components.tcompv0.marketo.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.azurestorage</module>
<module>main/features/org.talend.studio.components.tcompv0.azurestorage.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.snowflake</module>
<module>main/features/org.talend.studio.components.tcompv0.snowflake.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.jira</module>
<module>main/features/org.talend.studio.components.tcompv0.jira.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.splunk</module>
<module>main/features/org.talend.studio.components.tcompv0.splunk.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.salesforce</module>
<module>main/features/org.talend.studio.components.tcompv0.salesforce.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.netsuite</module>
<module>main/features/org.talend.studio.components.tcompv0.netsuite.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.marklogic</module>
<module>main/features/org.talend.studio.components.tcompv0.marklogic.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.googledrive</module>
<module>main/features/org.talend.studio.components.tcompv0.googledrive.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.marketo</module>
<module>main/features/org.talend.studio.components.tcompv0.marketo.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.azurestorage</module>
<module>main/features/org.talend.studio.components.tcompv0.azurestorage.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.snowflake</module>
<module>main/features/org.talend.studio.components.tcompv0.snowflake.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.jira</module>
<module>main/features/org.talend.studio.components.tcompv0.jira.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.splunk</module>
<module>main/features/org.talend.studio.components.tcompv0.splunk.feature</module>
<module>main/plugins/org.talend.studio.components.tcompv0.salesforce</module>
<module>main/features/org.talend.studio.components.tcompv0.salesforce.feature</module>
<module>test/plugins/org.talend.designer.codegen.test</module>
<module>test/plugins/org.talend.designer.components.localprovider.test</module>