bug TDI-8370 fixed:<Copy book>Not support check untranspose.
git-svn-id: http://talendforge.org/svn/tos/trunk@94844 f6f1c999-d317-4740-80b0-e6d1abc6f99e
This commit is contained in:
@@ -221,36 +221,41 @@ public class XmiResourceManager {
|
||||
return resourceSet.createResource(propertyResourceURI);
|
||||
}
|
||||
|
||||
public Resource getReferenceFileResource(Resource itemResource, String extension, boolean needLoad) {
|
||||
URI referenceFileURI = getReferenceFileURI(itemResource.getURI(), extension);
|
||||
public Resource getReferenceFileResource(Resource itemResource, ReferenceFileItem refFile, boolean needLoad) {
|
||||
URI referenceFileURI = getReferenceFileURI(itemResource.getURI(), refFile.getExtension());
|
||||
URIConverter converter = resourceSet.getURIConverter();
|
||||
Resource referenceResource = new ByteArrayResource(referenceFileURI);
|
||||
InputStream inputStream = null;
|
||||
|
||||
List<Resource> resources = new ArrayList<Resource>(resourceSet.getResources());
|
||||
for (Resource res : resources) {
|
||||
if (res != null && referenceFileURI.toString().equals(res.getURI().toString())) {
|
||||
res.unload();
|
||||
resourceSet.getResources().remove(res);
|
||||
// in case ESB load reference file from the physcial file,but DI need reference from the EMF,so add this flag
|
||||
if (refFile.isReloadFromFile()) {
|
||||
for (Resource res : resources) {
|
||||
if (res != null && referenceFileURI.toString().equals(res.getURI().toString())) {
|
||||
res.unload();
|
||||
resourceSet.getResources().remove(res);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resourceSet.getResources().add(referenceResource);
|
||||
try {
|
||||
if (needLoad) {
|
||||
inputStream = converter.createInputStream(referenceFileURI);
|
||||
referenceResource.load(inputStream, null);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
resourceSet.getResources().add(referenceResource);
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
if (needLoad) {
|
||||
inputStream = converter.createInputStream(referenceFileURI);
|
||||
referenceResource.load(inputStream, null);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
ExceptionHandler.process(e);
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
ExceptionHandler.process(e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
referenceResource = resourceSet.getResource(referenceFileURI, true);
|
||||
}
|
||||
return referenceResource;
|
||||
}
|
||||
@@ -363,7 +368,7 @@ public class XmiResourceManager {
|
||||
// do nothing, consider the file don't exist
|
||||
itemResource = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (itemResource == null && createIfNotExist) {
|
||||
itemResource = resourceSet.createResource(itemResourceURI);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user