Pas Learner Runtime
Q: What is the Generic step being used for? It is an instance of IWorkReporter in PLR, but there is no work that needs to be shown for this step, so its unclear why it needs to be an instance of IWorkReporter in the first place. Is the step just used for testing purposes, or for something else as well?
A: It's not used in production. It is used for testing purposes and as a simple example for new developers for how to make a simple step type.
Q: Why isn't PasStep an interface instead of the abstract class AbstractPasStep?
A: Because the contract of a PasStep can change, e.g. to include new default functionality. By requiring all PasSteps to extend the same class, we can add to that class without breaking any existing Pas step types out there.
Q: How big are curnit archives?
A: The object serialization takes much less data than most of the binary resources that might be used, like graphics or sounds. For example, a curnit consisting of 1 PasProject, 500 PasActivities, and 10 PasStep (empty) per PasActivity takes up just 64KB.
Q: (Launch configuration and service initialization) I got a really promising and helpful response from Scott a while back to look into net.sf.sail.emf.launch.EMFLauncher2 for an example of initialization. I never got this working. I have sail-framework checked out. Within that directory there is a sail-data-emf/src directory. When I do mvn compile install on the top level, there are no complaints, but Eclipse complains about all the packages not existing. Attempting to run EMFLauncher2 results in Eclipse saying the class has no main method. Also, I noticed there were no compiled .class files in that directory. Are the compiled files supposed to reside somewhere outside the src/ directory?
A:
Q: I don't think I understand how to make a service available to a LearnerNode. I tried following PasServiceProvider as an example. It looked like consumeService was called whenever a serviceAvailable
event was triggered, and that initialized the service for use. When is a service created? How is a service registered with Sail? How do the Pods/Nodes register/listen for these events. Pods are SailBeanContextChildSupport so they implement the consumeService method, but where/when do these events get triggered?
A:
Q: I noticed for PAS, createBeanInPod is used to construct a new Project, Activity, or Step in a Pod. Why is this? Is this a convention over using constructors and xplicitly adding them to a Pod? I tried constructing one of the PasSteps, but that caused an error.
A: Yes, it's a helper method that constructs the step and adds it to the pod for you. Look in the PodUtils class in sail-core.