[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [geclipse-dev] JSDL job description creation
|
Neophytos Theodorou a écrit :
Deer Romain. First of all check if the file is actually created in the
local disk and in which folder. Another think is instead of trying to
create a new JSDL file from the file instance
try getting it like this
IFolder tempFolder = createTemporaryJSDLFolder();
IFile tempJSDLFile = createTemporaryJSDLFile(tempFolder);
How do you implement createTemporaryJSDLFile, because what I do at that
step for the moment is creating an empty file?
IGridElement element = GridModel.getRoot().findElement(
tempJSDLFile );
If I do that on an empty file how could an instance of
JSDLJobDescription be created?
JSDLJobDescription basicJSDL = null;
if( element instanceof JSDLJobDescription ) {
basicJSDL = initializeJSDLJobDescription(( JSDLJobDescription
)element);
basicJSDL.save( tempJSDLFile );
}
Also I suggest that you take a look at the code of GBDL Benchmark
Description. At least I have tested it and it works so you would have
a known path to achiece your goal. I'm not also sure on the call on
creating a new project. Isn't there a way to use the current project?
Thaks Neophytos
Thanks, Romain.
On Wed, May 7, 2008 at 4:53 PM, reuillon <reuillon@xxxxxxxx
<mailto:reuillon@xxxxxxxx>> wrote:
Thank you for you answer but using your code I obtains the same
exception.
I think the problem is that the file is not being looked for at
the right place:
java.io.FileNotFoundException: /myproject/jsdl/myjsld.jsdl (No
such file or directory)
When I create the IFile the getFullPath method gives me:
/myproject/jsdl/myjsld.jsdl
The getJSDLString method of the JSDLJobDescription class contains
the following code:
File jsdlFile = this.getPath().toFile();
FileInputStream jsdlStream = null;
jsdlStream = new FileInputStream( jsdlFile );
this.getPath call getFullPath on the IFile. The creation of the
input stream is done on the absolute path:
/myproject/jsdl/myjsld.jsdl, that does'nt exist.
Is my IFile is not created correctly or is it a bug?
Cheers, Romain.
Neophytos Theodorou a écrit :
Had a simillar problem. it seems that you have to open an
output stream to the file to actually create it. This what I
have done
private IFile createTemporaryJSDLFile(final IFolder jsdlFolder){
IFile newJSDL = jsdlFolder.getFile( "." +
this.benchmark.getName()
.toLowerCase() + (fileCount++) + ".jsdl" );
//$NON-NLS-1$//$NON-NLS-2$
if(!newJSDL.exists()){
try {
FileOutputStream tempOutStream= new
FileOutputStream(newJSDL.getRawLocation().toOSString());
tempOutStream.close();
FileInputStream tempInStream = new
FileInputStream(newJSDL.getRawLocation().toOSString());
newJSDL.create( tempInStream, true, null );
tempInStream.close();
} catch( FileNotFoundException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch( CoreException e1 ) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch( IOException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return newJSDL;
}
Although It may seem reduntant it actually worked. You can
find the rest of the code in
eu.geclipse.benchmarking.model.GBDLBenchmarkDescription
Neophytos Theodororou
University of Cyprus
On Tue, May 6, 2008 at 5:03 PM, reuillon <reuillon@xxxxxxxx
<mailto:reuillon@xxxxxxxx> <mailto:reuillon@xxxxxxxx
<mailto:reuillon@xxxxxxxx>>> wrote:
Hi All,
I am trying to create a simple jsdl job description with the
following code:
IWorkspace ws = ResourcesPlugin.getWorkspace();
System.out.println(ws.getRoot().getLocationURI().toString());
IWorkspaceRoot swRoot = ws.getRoot();
IProject project = swRoot.getProject( "myproject" );
if ( ! project.exists() ) {
project.create( null );
}
project.open( null );
IFile file = project.getFile( "myjsld.jsdl" );
if(!file.exists()) { file.create(new
InputStream(){
@Override
public int read() throws IOException {
return -1;
}
}, IResource.REPLACE, null );
}
JSDLJobDescription jsdl = new JSDLJobDescription(
file );
jsdl.create(new JSDLJobDescriptionCreator());
jsdl.createRoot();
jsdl.addJobDescription();
jsdl.addApplication();
jsdl.setApplicationName("/bin/date");
jsdl.save(file);
System.out.println(jsdl.getJSDLString());
But I get the following exception:
java.io.FileNotFoundException: /myproject/myjsld.jsdl (No such
file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at
eu.geclipse.jsdl.JSDLJobDescription.getJSDLString(JSDLJobDescription.java:250)
at
fr.cemagref.simexplorer.ide.osgi.processors.JobLauncherProcessor.process(JobLauncherProcessor.java:209)
at
fr.cemagref.simexplorer.ide.core.processors.modular.ProcessorsList.process(ProcessorsList.java:54)
at
fr.cemagref.simexplorer.ide.core.IDEModularApplication.run(IDEModularApplication.java:41)
at
fr.cemagref.simexplorer.service.loader.EFSSimulationLoaderImpl.run(EFSSimulationLoaderImpl.java:26)
at
fr.cemagref.simexplorer.service.application.SimExplorer.start(SimExplorer.java:49)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
at org.eclipse.equinox.launcher.Main.main(Main.java:1148)
At the end of the process the jsdl file has been written:
<?xml version="1.0" encoding="UTF-8"?>
<jsdl:JobDefinition
xmlns:jsdl="http://schemas.ggf.org/jsdl/2005/11/jsdl">
<jsdl:JobDescription>
<jsdl:Application>
<jsdl:ApplicationName>/bin/date</jsdl:ApplicationName>
</jsdl:Application>
</jsdl:JobDescription>
</jsdl:JobDefinition>
Did I miss something?
Romain
_______________________________________________
geclipse-dev mailing list
geclipse-dev@xxxxxxxxxxx <mailto:geclipse-dev@xxxxxxxxxxx>
<mailto:geclipse-dev@xxxxxxxxxxx
<mailto:geclipse-dev@xxxxxxxxxxx>>
https://dev.eclipse.org/mailman/listinfo/geclipse-dev
------------------------------------------------------------------------
_______________________________________________
geclipse-dev mailing list
geclipse-dev@xxxxxxxxxxx <mailto:geclipse-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/geclipse-dev
_______________________________________________
geclipse-dev mailing list
geclipse-dev@xxxxxxxxxxx <mailto:geclipse-dev@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/geclipse-dev
------------------------------------------------------------------------
_______________________________________________
geclipse-dev mailing list
geclipse-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/geclipse-dev