내 프로그램의 일부 파일에 항상 최신 내용이 있어야합니다. EMF 자원 세트를 만들었습니다.파일 변경시 EMF ResourceSet을 자동으로 업데이트하는 방법은 무엇입니까?
resourceSet.getResource(resourceURI, true)
은 정적 필드에 설정된 리소스를 저장하기 위해 많은 시간이 걸리기 때문에 파일을 캐시 할 수 있습니다.
e.e. 일부 URI에 대해 resourceSet.getResource(resourceURI, true)
이 호출되면 파일은 resourceSet
에 캐시됩니다.
문제는 resourceSet
이 캐시가 자동으로의 업데이트되지 않는다는 것입니다 :
즉 :
resourceSet.getResource(resourceURI, true);
// delete resourceURI from file system
// Here I expect null, but old version of the file is returned
resourceSet.getResource(resourceURI, true);
방법 필요한 경우 캐시를 업데이트 할 resourceSet
을 강제로
저는 org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
을 사용하고 있습니다 만, 변경 우표를 고려한 ResourceSet
의 다른 버전이 필요합니까?
그래서 이것은 내가 ResourceSet 내 자신의 "스마트"구현을 작성 :이 파일은 일식 "타임 스탬프"를 사용하여 변경된 경우 – javapowered
이클립스 작업 공간이 당신을 위해 일을 할 것입니다 확인하는 것이 가능해야하고 있음을 의미 실제 변경 사항이있을 경우 청취자에게 알리십시오. 이 변경은 편집기가 저장하거나 예를 들어 작업 공간이 파일 시스템과 관련하여 새로 고쳐질 때 발생할 수 있습니다. –
이 모든 것을 시도 할 때 내 모델 객체는'언로드 '를 호출 할 때 프록시로 설정됩니다. 이는 정상이며 문서에 설명되어 있습니다. 그러나'load'를 호출하면 모델 객체는 계속 프록시가되고 파일의 새로운 정보로 업데이트되지 않습니다. 이것이 왜 그런지, 내가 그것에 대해 할 수있는 것에 대해 알고 있습니까? – Lii