Skip to content

Commit

Permalink
fix loading of ecss.smp.xsmpcat (#144)
Browse files Browse the repository at this point in the history
  • Loading branch information
ydaveluy authored Jun 10, 2024
1 parent 20c8b91 commit 764b606
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,6 @@ class XsmpcatGeneratorTest {
def test() {

var rs = resourceSetProvider.get
parsehelper.parse(getClass().getResource("/org/eclipse/xsmp/lib/ecss.smp.xsmpcat").openStream,
URI.createURI("ecss.smp.xsmpcat"), null, rs)

val model = parsehelper.parse(getClass().getResource("Test.xsmpcat").openStream, URI.createURI("Test.xsmpcat"),
null, rs)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,22 @@
package org.eclipse.xsmp.scoping;

import java.io.IOException;
import java.util.Collections;

import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.xtext.resource.IEObjectDescription;
import org.eclipse.xtext.resource.IResourceDescription;
import org.eclipse.xtext.resource.IResourceFactory;
import org.eclipse.xtext.resource.XtextResourceSet;
import org.eclipse.xtext.scoping.IScope;
import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider;
import org.eclipse.xtext.scoping.impl.SelectableBasedScope;

import com.google.common.base.Predicate;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;

@Singleton
Expand All @@ -33,7 +36,7 @@ public class XsmpGlobalScopeProvider extends DefaultGlobalScopeProvider
private IResourceDescription.Manager descriptionManager;

@Inject
private IResourceFactory resourceFactory;
private Provider<XtextResourceSet> resourceSetprovider;

private IResourceDescription xsmpcatDescription = null;

Expand All @@ -48,18 +51,17 @@ private IResourceDescription getXsmpcatDescription()
throw new IllegalStateException("Unable to load ecss.smp.xsmpcat");
}

final var uri = URI.createURI(url.toString());

final var resource = resourceFactory.createResource(uri);
final var resource = resourceSetprovider.get().createResource(URI.createURI(url.toString()));
try
{
resource.load(url.openStream(), null);
resource.load(url.openStream(), Collections.emptyMap());
}
catch (final IOException e)
{
throw new IllegalStateException("Unable to load ecss.smp.xsmpcat");
}
xsmpcatDescription = descriptionManager.getResourceDescription(resource);
EcoreUtil.resolveAll(resource);
}
return xsmpcatDescription;
}
Expand All @@ -72,4 +74,4 @@ protected IScope getScope(final Resource context, boolean ignoreCase, EClass typ
filter, type, ignoreCase), context, ignoreCase, type, filter);
}

}
}

0 comments on commit 764b606

Please sign in to comment.