Creating related projects in repast with model initialisers

View: New views
6 Messages — Rating Filter:   Alert me  

Creating related projects in repast with model initialisers

by Dave Murray-Rust-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi List,

I'm working on a modelling framework based on RepastS, and I'd like to  
create projects which use this, but define their own models. The  
framework specifies a ModelInitializer in scenario.xml, and I would  
like for the related projects to be able to re-use this  
ModelInitialiser, but I cannot get the classpaths set up correctly.

I have added my framework to the standard java classpath, and can  
write code which uses it, and it compiles correctly. However, when the  
model runs, it cannot find the model initialiser.

When editing the Run Configuration:

* leaving the classpath as it is results in not being able to find my  
framework's ModelInitializer[1]
* if I add my framework to the Bootstrap Classpath (as a project),  
then it can't find the Repast ModelInitializer (which mine implements)
[2]
* the same happens if I add it as a project to the User Entries  
section [3]

I tried copying across the model initialiser, but then I also have to  
copy across all the supporting classes etc, and it's going to be a  
maintenance nightmare.

Any thoughts?

Cheers,
dave


[1]
2009/10/28 14:35:56,015: Scenario Load Error
java.lang.ClassNotFoundException:  
ecochangeabm.initialisation.EcochangeABMInitializer
        at  
org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown  
Source)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
        at  
repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:66)
        at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
197)
        at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
        at  
repast
.simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:40)
        at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
188)
        at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
        at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
        at saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
64)
        at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
        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:592)
        at saf.core.runtime.Boot.run(Boot.java:125)
        at saf.core.runtime.Boot.main(Boot.java:280)
        at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)

[2]
2009/10/28 14:38:09,290: Fatal error starting Repast
java.lang.NoClassDefFoundError: repast/simphony/scenario/
ModelInitializer
        at java.lang.ClassLoader.findBootstrapClass(Native Method)
        at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:946)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at  
org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown  
Source)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
        at  
repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:66)
        at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
197)
        at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
        at  
repast
.simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:40)
        at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
188)
        at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
        at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
        at saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
64)
        at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
        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:592)
        at saf.core.runtime.Boot.run(Boot.java:125)
        at saf.core.runtime.Boot.main(Boot.java:280)
        at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)

[3]
2009/10/28 14:40:00,894: Fatal error starting Repast
java.lang.NoClassDefFoundError: repast/simphony/scenario/
ModelInitializer
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at  
org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown  
Source)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:242)
        at  
repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:66)
        at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
197)
        at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
        at  
repast
.simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:40)
        at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
188)
        at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
        at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
        at saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
64)
        at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
        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:592)
        at saf.core.runtime.Boot.run(Boot.java:125)
        at saf.core.runtime.Boot.main(Boot.java:280)
        at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)


--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Repast-interest mailing list
Repast-interest@...
https://lists.sourceforge.net/lists/listinfo/repast-interest

Two follow up issues

by Dave Murray-Rust-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

1) When setting up the Data Loader, it's only possible to select  
classes in the current project (i've tried adding it explicitly to  
model.score etc). However, if I edit the XML, it works fine with a  
class from a related project. Is this just a limitation of the  
interface?

2) Libraries from related projects do not appear to be on the runtime  
build path, and need to be added manually. Is there something I should  
be doing to make this happen automatically?

Thanks,
dave

On 28 Oct 2009, at 14:42, Dave Murray-Rust wrote:

> Hi List,
>
> I'm working on a modelling framework based on RepastS, and I'd like to
> create projects which use this, but define their own models. The
> framework specifies a ModelInitializer in scenario.xml, and I would
> like for the related projects to be able to re-use this
> ModelInitialiser, but I cannot get the classpaths set up correctly.
>
> I have added my framework to the standard java classpath, and can
> write code which uses it, and it compiles correctly. However, when the
> model runs, it cannot find the model initialiser.
>
> When editing the Run Configuration:
>
> * leaving the classpath as it is results in not being able to find my
> framework's ModelInitializer[1]
> * if I add my framework to the Bootstrap Classpath (as a project),
> then it can't find the Repast ModelInitializer (which mine implements)
> [2]
> * the same happens if I add it as a project to the User Entries
> section [3]
>
> I tried copying across the model initialiser, but then I also have to
> copy across all the supporting classes etc, and it's going to be a
> maintenance nightmare.
>
> Any thoughts?
>
> Cheers,
> dave
>
>
> [1]
> 2009/10/28 14:35:56,015: Scenario Load Error
> java.lang.ClassNotFoundException:
> ecochangeabm.initialisation.EcochangeABMInitializer
> at
> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
> 66)
> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
> 197)
> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
> at
> repast
> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
> 40)
> at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
> 188)
> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
> at  
> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
> 64)
> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
> 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:592)
> at saf.core.runtime.Boot.run(Boot.java:125)
> at saf.core.runtime.Boot.main(Boot.java:280)
> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>
> [2]
> 2009/10/28 14:38:09,290: Fatal error starting Repast
> java.lang.NoClassDefFoundError: repast/simphony/scenario/
> ModelInitializer
> at java.lang.ClassLoader.findBootstrapClass(Native Method)
> at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:946)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
> 66)
> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
> 197)
> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
> at
> repast
> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
> 40)
> at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
> 188)
> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
> at  
> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
> 64)
> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
> 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:592)
> at saf.core.runtime.Boot.run(Boot.java:125)
> at saf.core.runtime.Boot.main(Boot.java:280)
> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>
> [3]
> 2009/10/28 14:40:00,894: Fatal error starting Repast
> java.lang.NoClassDefFoundError: repast/simphony/scenario/
> ModelInitializer
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
> at  
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
> 124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
> 66)
> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
> 197)
> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
> at
> repast
> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
> 40)
> at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
> 188)
> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
> at  
> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
> 64)
> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
> 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:592)
> at saf.core.runtime.Boot.run(Boot.java:125)
> at saf.core.runtime.Boot.main(Boot.java:280)
> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart  
> your
> developing skills, take BlackBerry mobile applications to market and  
> stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> _______________________________________________
> Repast-interest mailing list
> Repast-interest@...
> https://lists.sourceforge.net/lists/listinfo/repast-interest
>


--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Repast-interest mailing list
Repast-interest@...
https://lists.sourceforge.net/lists/listinfo/repast-interest

Re: Creating related projects in repast with model initialisers

by Nick Collier-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dave,

Simphony uses a lot of dynamic class loading and that can make things  
like this complicated.

  For models, external code that you want to load is specified in the  
score file. The implementation element has an optional "binDir"  
attribute and you should be able to specify your jar in the  
implementation element for the root context. More than one path, jar  
file can be specified in the birDir by separating them with a ",".  
Note that the binDir is relative to the implementation basePath  
attribute. If you can leverage this so that the location of your  
framework is included in the "binDir" then that should work. Note that  
this will change. The current development code uses a different  
simpler and more flexible mechanism and that will become the standard  
ways in the future. Converting from the old to the new should be  
relatively trivial though so I wouldn't let it stop you from exploring  
this solution.

The other alternative is to make your framework a "plugin". All the  
repast code except for the runtime stuff that needs to be on the root  
classpath is loaded as plugins. If you configure your framework as a  
plugin then it should get loaded just as the repast code gets loaded.  
Plugins are defined via a plugin_jpf.xml file that specifies where the  
code for the plugin should be found. If you look through the source  
you'll see lots of examples. The plugin_jpf.xml has essentially two  
sections -- one that specifies what this plugin requires -- for that  
you'd fill in the plugins your framework depends on, and then a  
runtime section that specifies the code that your plugin provides,  
this includes non-repast 3rd party libraries that your code requires.  
See the source for examples. The one in repast.simphony.core is  
probably a good model for you. The last step is to make sure the  
plugin mechanism can find your plugin, the boot.properties file in  
repast.simphony.runtime specifies contains a pluginFolders property  
that specifies where to find plugins.

Nick


On Oct 28, 2009, at 10:42 AM, Dave Murray-Rust wrote:

> Hi List,
>
> I'm working on a modelling framework based on RepastS, and I'd like to
> create projects which use this, but define their own models. The
> framework specifies a ModelInitializer in scenario.xml, and I would
> like for the related projects to be able to re-use this
> ModelInitialiser, but I cannot get the classpaths set up correctly.
>
> I have added my framework to the standard java classpath, and can
> write code which uses it, and it compiles correctly. However, when the
> model runs, it cannot find the model initialiser.
>
> When editing the Run Configuration:
>
> * leaving the classpath as it is results in not being able to find my
> framework's ModelInitializer[1]
> * if I add my framework to the Bootstrap Classpath (as a project),
> then it can't find the Repast ModelInitializer (which mine implements)
> [2]
> * the same happens if I add it as a project to the User Entries
> section [3]
>
> I tried copying across the model initialiser, but then I also have to
> copy across all the supporting classes etc, and it's going to be a
> maintenance nightmare.
>
> Any thoughts?
>
> Cheers,
> dave
>
>
> [1]
> 2009/10/28 14:35:56,015: Scenario Load Error
> java.lang.ClassNotFoundException:
> ecochangeabm.initialisation.EcochangeABMInitializer
> at
> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
> 66)
> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
> 197)
> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
> at
> repast
> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
> 40)
> at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
> 188)
> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
> at  
> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
> 64)
> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
> 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:592)
> at saf.core.runtime.Boot.run(Boot.java:125)
> at saf.core.runtime.Boot.main(Boot.java:280)
> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>
> [2]
> 2009/10/28 14:38:09,290: Fatal error starting Repast
> java.lang.NoClassDefFoundError: repast/simphony/scenario/
> ModelInitializer
> at java.lang.ClassLoader.findBootstrapClass(Native Method)
> at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:946)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:308)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
> 66)
> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
> 197)
> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
> at
> repast
> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
> 40)
> at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
> 188)
> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
> at  
> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
> 64)
> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
> 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:592)
> at saf.core.runtime.Boot.run(Boot.java:125)
> at saf.core.runtime.Boot.main(Boot.java:280)
> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>
> [3]
> 2009/10/28 14:40:00,894: Fatal error starting Repast
> java.lang.NoClassDefFoundError: repast/simphony/scenario/
> ModelInitializer
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
> at  
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
> 124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
> Source)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:242)
> at
> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
> 66)
> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
> 197)
> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
> at
> repast
> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
> 40)
> at saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
> 188)
> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
> at  
> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
> 64)
> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
> 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:592)
> at saf.core.runtime.Boot.run(Boot.java:125)
> at saf.core.runtime.Boot.main(Boot.java:280)
> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart  
> your
> developing skills, take BlackBerry mobile applications to market and  
> stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> _______________________________________________
> Repast-interest mailing list
> Repast-interest@...
> https://lists.sourceforge.net/lists/listinfo/repast-interest


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Repast-interest mailing list
Repast-interest@...
https://lists.sourceforge.net/lists/listinfo/repast-interest

Re: Two follow up issues

by Nick Collier-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dave,

See below.

On Oct 28, 2009, at 10:58 AM, Dave Murray-Rust wrote:

> 1) When setting up the Data Loader, it's only possible to select
> classes in the current project (i've tried adding it explicitly to
> model.score etc). However, if I edit the XML, it works fine with a
> class from a related project. Is this just a limitation of the
> interface?
>

Yes. The interface grabs a data loader relevant classes from the paths  
specified in the model.score. If the classes isn't on any of those  
paths then it won't show up in the interface.

> 2) Libraries from related projects do not appear to be on the runtime
> build path, and need to be added manually. Is there something I should
> be doing to make this happen automatically?

Not sure what you mean here. Do you mean the classpath used when you  
run the model, or the build path used when compiling? If the former,  
you can specific 3rd party libs in the model.score (described in a  
previous message). If the latter, you can use eclipse to specify  
project dependencies when configuring the build path.

>
> Thanks,
> dave
>
> On 28 Oct 2009, at 14:42, Dave Murray-Rust wrote:
>
>> Hi List,
>>
>> I'm working on a modelling framework based on RepastS, and I'd like  
>> to
>> create projects which use this, but define their own models. The
>> framework specifies a ModelInitializer in scenario.xml, and I would
>> like for the related projects to be able to re-use this
>> ModelInitialiser, but I cannot get the classpaths set up correctly.
>>
>> I have added my framework to the standard java classpath, and can
>> write code which uses it, and it compiles correctly. However, when  
>> the
>> model runs, it cannot find the model initialiser.
>>
>> When editing the Run Configuration:
>>
>> * leaving the classpath as it is results in not being able to find my
>> framework's ModelInitializer[1]
>> * if I add my framework to the Bootstrap Classpath (as a project),
>> then it can't find the Repast ModelInitializer (which mine  
>> implements)
>> [2]
>> * the same happens if I add it as a project to the User Entries
>> section [3]
>>
>> I tried copying across the model initialiser, but then I also have to
>> copy across all the supporting classes etc, and it's going to be a
>> maintenance nightmare.
>>
>> Any thoughts?
>>
>> Cheers,
>> dave
>>
>>
>> [1]
>> 2009/10/28 14:35:56,015: Scenario Load Error
>> java.lang.ClassNotFoundException:
>> ecochangeabm.initialisation.EcochangeABMInitializer
>> at
>> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
>> Source)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:242)
>> at
>> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
>> 66)
>> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
>> 197)
>> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
>> at
>> repast
>> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
>> 40)
>> at  
>> saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
>> 188)
>> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
>> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
>> at
>> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
>> 64)
>> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
>> 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:592)
>> at saf.core.runtime.Boot.run(Boot.java:125)
>> at saf.core.runtime.Boot.main(Boot.java:280)
>> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>>
>> [2]
>> 2009/10/28 14:38:09,290: Fatal error starting Repast
>> java.lang.NoClassDefFoundError: repast/simphony/scenario/
>> ModelInitializer
>> at java.lang.ClassLoader.findBootstrapClass(Native Method)
>> at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:946)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:308)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at
>> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
>> Source)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:242)
>> at
>> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
>> 66)
>> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
>> 197)
>> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
>> at
>> repast
>> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
>> 40)
>> at  
>> saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
>> 188)
>> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
>> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
>> at
>> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
>> 64)
>> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
>> 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:592)
>> at saf.core.runtime.Boot.run(Boot.java:125)
>> at saf.core.runtime.Boot.main(Boot.java:280)
>> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>>
>> [3]
>> 2009/10/28 14:40:00,894: Fatal error starting Repast
>> java.lang.NoClassDefFoundError: repast/simphony/scenario/
>> ModelInitializer
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
>> at
>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
>> 124)
>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>> at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at
>> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
>> Source)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:242)
>> at
>> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
>> 66)
>> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
>> 197)
>> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
>> at
>> repast
>> .simphony.ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:
>> 40)
>> at  
>> saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
>> 188)
>> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
>> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
>> at
>> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
>> 64)
>> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
>> 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:592)
>> at saf.core.runtime.Boot.run(Boot.java:125)
>> at saf.core.runtime.Boot.main(Boot.java:280)
>> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>>
>>
>> --
>> The University of Edinburgh is a charitable body, registered in
>> Scotland, with registration number SC005336.
>>
>>
>> ------------------------------------------------------------------------------
>> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
>> is the only developer event you need to attend this year. Jumpstart
>> your
>> developing skills, take BlackBerry mobile applications to market and
>> stay
>> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
>> http://p.sf.net/sfu/devconference
>> _______________________________________________
>> Repast-interest mailing list
>> Repast-interest@...
>> https://lists.sourceforge.net/lists/listinfo/repast-interest
>>
>
>
> --
> The University of Edinburgh is a charitable body, registered in
> Scotland, with registration number SC005336.
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart  
> your
> developing skills, take BlackBerry mobile applications to market and  
> stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> _______________________________________________
> Repast-interest mailing list
> Repast-interest@...
> https://lists.sourceforge.net/lists/listinfo/repast-interest


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Repast-interest mailing list
Repast-interest@...
https://lists.sourceforge.net/lists/listinfo/repast-interest

Re: Creating related projects in repast with model initialisers

by Dave Murray-Rust-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Great, thanks for that.

In the end, I got the binDir stuff working. Unfortunately, it's not a  
process that I could ask other people to go through - I'm trying to  
keep the creation of new projects as simple as possible.

Instead, I've refactored my code so it doesn't require any messing  
around with the model initialiser. It's a bit uglier, but much easier  
to set up.

I'll have a look into the plugin mechanism when I have time, though as  
that sounds more like the Right Way to do what I want.

Thanks!
dave
On 28 Oct 2009, at 15:45, Nick Collier wrote:

> Dave,
>
> Simphony uses a lot of dynamic class loading and that can make  
> things like this complicated.
>
> For models, external code that you want to load is specified in the  
> score file. The implementation element has an optional "binDir"  
> attribute and you should be able to specify your jar in the  
> implementation element for the root context. More than one path, jar  
> file can be specified in the birDir by separating them with a ",".  
> Note that the binDir is relative to the implementation basePath  
> attribute. If you can leverage this so that the location of your  
> framework is included in the "binDir" then that should work. Note  
> that this will change. The current development code uses a different  
> simpler and more flexible mechanism and that will become the  
> standard ways in the future. Converting from the old to the new  
> should be relatively trivial though so I wouldn't let it stop you  
> from exploring this solution.
>
> The other alternative is to make your framework a "plugin". All the  
> repast code except for the runtime stuff that needs to be on the  
> root classpath is loaded as plugins. If you configure your framework  
> as a plugin then it should get loaded just as the repast code gets  
> loaded. Plugins are defined via a plugin_jpf.xml file that specifies  
> where the code for the plugin should be found. If you look through  
> the source you'll see lots of examples. The plugin_jpf.xml has  
> essentially two sections -- one that specifies what this plugin  
> requires -- for that you'd fill in the plugins your framework  
> depends on, and then a runtime section that specifies the code that  
> your plugin provides, this includes non-repast 3rd party libraries  
> that your code requires. See the source for examples. The one in  
> repast.simphony.core is probably a good model for you. The last step  
> is to make sure the plugin mechanism can find your plugin, the  
> boot.properties file in repast.simphony.runtime specifies contains a  
> pluginFolders property that specifies where to find plugins.
>
> Nick
>
>
> On Oct 28, 2009, at 10:42 AM, Dave Murray-Rust wrote:
>
>> Hi List,
>>
>> I'm working on a modelling framework based on RepastS, and I'd like  
>> to
>> create projects which use this, but define their own models. The
>> framework specifies a ModelInitializer in scenario.xml, and I would
>> like for the related projects to be able to re-use this
>> ModelInitialiser, but I cannot get the classpaths set up correctly.
>>
>> I have added my framework to the standard java classpath, and can
>> write code which uses it, and it compiles correctly. However, when  
>> the
>> model runs, it cannot find the model initialiser.
>>
>> When editing the Run Configuration:
>>
>> * leaving the classpath as it is results in not being able to find my
>> framework's ModelInitializer[1]
>> * if I add my framework to the Bootstrap Classpath (as a project),
>> then it can't find the Repast ModelInitializer (which mine  
>> implements)
>> [2]
>> * the same happens if I add it as a project to the User Entries
>> section [3]
>>
>> I tried copying across the model initialiser, but then I also have to
>> copy across all the supporting classes etc, and it's going to be a
>> maintenance nightmare.
>>
>> Any thoughts?
>>
>> Cheers,
>> dave
>>
>>
>> [1]
>> 2009/10/28 14:35:56,015: Scenario Load Error
>> java.lang.ClassNotFoundException:
>> ecochangeabm.initialisation.EcochangeABMInitializer
>> at
>> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
>> Source)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:242)
>> at
>> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
>> 66)
>> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
>> 197)
>> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
>> at
>> repast
>> .simphony
>> .ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:40)
>> at  
>> saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
>> 188)
>> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
>> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
>> at  
>> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
>> 64)
>> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
>> 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:592)
>> at saf.core.runtime.Boot.run(Boot.java:125)
>> at saf.core.runtime.Boot.main(Boot.java:280)
>> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>>
>> [2]
>> 2009/10/28 14:38:09,290: Fatal error starting Repast
>> java.lang.NoClassDefFoundError: repast/simphony/scenario/
>> ModelInitializer
>> at java.lang.ClassLoader.findBootstrapClass(Native Method)
>> at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:946)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:308)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at
>> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
>> Source)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:242)
>> at
>> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
>> 66)
>> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
>> 197)
>> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
>> at
>> repast
>> .simphony
>> .ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:40)
>> at  
>> saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
>> 188)
>> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
>> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
>> at  
>> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
>> 64)
>> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
>> 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:592)
>> at saf.core.runtime.Boot.run(Boot.java:125)
>> at saf.core.runtime.Boot.main(Boot.java:280)
>> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>>
>> [3]
>> 2009/10/28 14:40:00,894: Fatal error starting Repast
>> java.lang.NoClassDefFoundError: repast/simphony/scenario/
>> ModelInitializer
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
>> at  
>> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
>> 124)
>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>> at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
>> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at
>> org.java.plugin.standard.StandardPluginClassLoader.loadClass(Unknown
>> Source)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:242)
>> at
>> repast.simphony.scenario.Scenario.getModelInitializer(Scenario.java:
>> 66)
>> at repast.simphony.scenario.ScenarioLoader.load(ScenarioLoader.java:
>> 197)
>> at repast.simphony.ui.RSApplication.open(RSApplication.java:247)
>> at
>> repast
>> .simphony
>> .ui.RSAppConfigurator.postWindowOpen(RSAppConfigurator.java:40)
>> at  
>> saf.core.ui.GUICreatorDelegate.runDisplay(GUICreatorDelegate.java:
>> 188)
>> at saf.core.ui.GUICreator.runDisplay(GUICreator.java:14)
>> at repast.simphony.ui.RSUIPlugin.run(RSUIPlugin.java:87)
>> at  
>> saf.core.runtime.CorePlugin.runApplicationRunnable(CorePlugin.java:
>> 64)
>> at saf.core.runtime.CorePlugin.run(CorePlugin.java:33)
>> 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:592)
>> at saf.core.runtime.Boot.run(Boot.java:125)
>> at saf.core.runtime.Boot.main(Boot.java:280)
>> at repast.simphony.runtime.RepastMain.main(RepastMain.java:43)
>>
>>
>> --
>> The University of Edinburgh is a charitable body, registered in
>> Scotland, with registration number SC005336.
>>
>>
>> ------------------------------------------------------------------------------
>> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
>> is the only developer event you need to attend this year. Jumpstart  
>> your
>> developing skills, take BlackBerry mobile applications to market  
>> and stay
>> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
>> http://p.sf.net/sfu/devconference
>> _______________________________________________
>> Repast-interest mailing list
>> Repast-interest@...
>> https://lists.sourceforge.net/lists/listinfo/repast-interest
>
>


--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Repast-interest mailing list
Repast-interest@...
https://lists.sourceforge.net/lists/listinfo/repast-interest

Re: Two follow up issues

by Dave Murray-Rust-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 28 Oct 2009, at 15:49, Nick Collier wrote:

> Dave,
>
> See below.
>
> On Oct 28, 2009, at 10:58 AM, Dave Murray-Rust wrote:
>
>
>> 2) Libraries from related projects do not appear to be on the runtime
>> build path, and need to be added manually. Is there something I  
>> should
>> be doing to make this happen automatically?
>
> Not sure what you mean here. Do you mean the classpath used when you  
> run the model, or the build path used when compiling? If the former,  
> you can specific 3rd party libs in the model.score (described in a  
> previous message). If the latter, you can use eclipse to specify  
> project dependencies when configuring the build path.

Yeah, that was a really badly worded question, sorry!

I meant runtime classpath, and it's the first version you gave above.  
This works through the Run Configurations dialogue as well - I was  
just surprised that it wasn't automatic.

Thanks,
dave

--
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Repast-interest mailing list
Repast-interest@...
https://lists.sourceforge.net/lists/listinfo/repast-interest