[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.stp.sca-tools] Re: ecore model instance

Once again, thx for help.

Ed, referencing my model instance (sca.composite) using the file: protocol works great, like you told me. Unfortunately this works only when using the default ResourceFactoryImpl which in turn make problems loading the model-content (The issue i already mentioned, "Class 'composite' not found").

Using the "ScaResourceFactoryImpl" I still run into the problem "unknown protocol: platform", no matter whether I'm specifing the URI using the file:/... notation (URI.createFileURI() woun't help either).

This seams to be the end of my SCA jouney since for me it looks like i can't use the model out of Eclipse at the time being (using "ScaResourceFactoryImpl()").
At least I gain insight into the EMF Persistence API and a more detailed knowlede about what's an URI all about.





"Ed Merks" <Ed.Merks@xxxxxxxxx> schrieb im Newsbeitrag news:gort5p$eph$1@xxxxxxxxxxxxxxxxxxxx
Mischa,

Comments below.

Mischa wrote:
Hi Stephane, Hi Ed,

thanks for helpful support. Let me add some more details.
Of course I used the "ScaResourceFactoryImpl" like shown in the following code snippet (The hardcoded extension was only for testing purpose).


resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(
               "composite",
               new ScaResourceFactoryImpl()
           );

I'm not definitely sure whether I'm running on an OSGi environment but I launched the App inside Eclipse as a oAW workflow which as far as I now is running on Eclipse plattform.
I'm quite sure that a workflow runs as a standard Java application, i.e., what you get when you do "Run As->Java Application" rather than what you get when you do "Run As->Eclipse Application". Don't confuse where you run it from with how its running.
Furthere more the occuring Execption depicts that the ScaResourceImpl overloads the load() method an calls some nativ java code to parse the URI:

Caused by: java.net.MalformedURLException: unknown protocol: platform
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at org.eclipse.stp.sca.util.ScaResourceImpl.load(ScaResourceImpl.java:72)
Who is specifying the URL that's being used. You can't use a platform:/resource or platform:/plugin URL if you are running as a standard Java Application.

I'll follow your suggestions and try to find the cause of my problem, I'll post the solution when I fixed it.
You'll likely need to use file: URI like what you get with URI.createFileURI. Be sure the file path is absolute, i.e., use java.io.File.getAbsolutePath...

Mischa


"Ed Merks" <Ed.Merks@xxxxxxxxx> schrieb im Newsbeitrag news:gor6qb$l3o$2@xxxxxxxxxxxxxxxxxxxx
Stephane,

What the failure tells me is that Mischa is most likely not running as an OSGi application. Eclipse registers the "platform" protocol properly so a URL using it should work properly...


Stephane Drapeau wrote:
Mischa a écrit :
Hi,

now I tried loading the XML using the Ecore mechanism. Unfortunately it failed. When using the ScaResourceImpl I get into trouble since the implementation can't hanlde the eclipse "platform" scheme (java.net.MalformedURLException: unknown protocol: platform).

This should work.
Have a look at ScaExample.java (plugin org.eclipse.stp.sca.test) and at URI.createPlatformResourceURI(String, boolean).
Moreover, to create the Resource, use the SCAResourceFactoryImpl.


Stephane Drapeau
Obeo