Changes from Jadex V2 beta3 to Jadex V2 rc1

This is a short (probably incomplete) list of
the major changes regarding the programming
of Jadex V2 agents. Please look at the
example sources to learn more about the details.
Full documentation will be available with the
final V2 release and is published continuously
on the Jadex Wiki. 

New Features:
	Platform features:
	- The platform is now an active component infrastructure, which means
	  that not only agents but also other kind of active elements (like workflows)
	  can be executed. This is done in a way that all kinds of components look
	  the same for the platform, so that most tools can be used for arbitrary component
	  types. This does also mean that is easily possibly to construct applications
	  consisting of heterogeneous types of components, e.g. BDI agent controlling
	  workflows. 
	- Components are now a holonic concept. This allows a component to have (a hierarchy)
	  of subcomponents. Commands like 'kill or suspend' can thus be applied to the 
	  component itself and all contained subcomponents.
	
	Kernel features:
	- New BPMN kernel for executing BPMN workflows. BPMN workflows can be modelled
	  using the Jadex BPMN tool for eclipse (or directly by using the eclipse stp
	  BPMN editor). Annotations in the diagram allow to make the processes directly
	  executable.
	- New BPMNBDI kernel allowing BPMN workflows being used as plans for BDI agents.
	- New application kernel making applications normal components (before they were
	  treated as special case).  
	
	BDI Features:
	- Enhanced Jadex Condition Language (JCL) support making the usage of CLIPS obsolete.
	- Support for abstract elements in capabilities.

	Tool features:
	- Enhanced debugger support (specialized views for micro agents and bpmn workflows).
	- The tools are now cross-kernel functional, i.e. you can use the tools without
	  having to care about its component type.

XML Changes:
	- In application and envspace descriptors 'agent' has been replaced by 'component' 
	  to reflect the wider scope of available component types (like workflows).

Java Changes:
	- Refactoring of package names to comply with kernel and platform conventions.
	  jadex.adapter.standalone -> jadex.standalone
	  jadex.adapter.base -> jadex.base
	  jadex.microkernel -> jadex.micro
	- Renaming of several constants containing 'agent' to 'component'.  

Changes from Jadex 0.96 to Jadex V2 beta3

This is a short (probably incomplete) list of
the major changes regarding the programming
of Jadex V2 agents. Please look at the
example sources to learn more about the details.
Full documentation will be available with the
final V2 release. 

New Features:
	Application features:
	- Jadex V2 introduces agent application descriptors, which help to define
	  the components of an application. In addition to the normal agent type
	  and instance definitions you can define arbitrary kinds of spaces for
	  the agents.
	- Applications have been introduced as key concept besides agents. Agents
	  can belong to (0-1) applications and can access their application context.
	  Furthermore, the tools can be used to handle them (currently the starter 
	  allows for starting/stopping whole application and starting agents in 
	  certain running applications).
	- A generic environment support (envsupport) has been realized as specific 
	  space. This environment space is available (envsupport) that allows for 
	  designing 2D grid/continuous worlds including an easy way for their presentation
	  (you may have a look at the examples for further details).
	  
	Platform features:
	- In V2 multi-kernel support has been realized, which means that you can
	  program heterogenious agent systems consisting of different kinds of agent,
	  currently BDI and micro agents. On advantage of micro agents is that they
	  require very few resources in terms of memery and threads.
	- The Standalone platform has been realized in a service-oriented extensible
	  way. All functionalities of the platform are realized via platform services.
	  These services are declaratively defined in a configuration file 
	  (in spring beans or a proprietary Jadex format). This allows to customize
	  the platform features in a very easy and convenient way.
	- Hybrid execution model, which supports simulation as well as application modes.
	  Jadex V2 contains a simulation plugin that allows to control the time
	  advancement of the system without changing any line of code in the
	  agents. It is possible to execute the application in realtime as well as 
	  in simulation mode. Regarding the simulation mode you can choose among event 
	  or time driven execution.
	  
	BDI Features:
	- V2 supports direct referencing of elements from inner capabilities
	  (e.g. "dfcap.df_search"), i.e. it is not necessary to declare local 
	  reference elements for exported elements of direct subcapabilities. 
	  Old explicit references are still supported and necessary, when imported
	  elements should be further exported.
	- Instead of using AMS/DF capabilities, the services can be accessed
	  directly using getScope().getPlatform().getService(IAMS.class / IDF.class).
	  All platform functionalities are accessible in this way.
	  Nevertheless, using the capabilities is still equally supported and
	  facilitates the BDI agent programming.
	- Calls to jadex.bdi.runtime.* objects are now automatically correctly
	  synchronized depending on the caller thread (plan thread, swing thread, etc.),
	  i.e. you don't need to care with what thread you call from within the agent.
	  For access from other threads to agent internals still the external access
	  interface has to be used.

XML Changes:
	- Conditions and dynamic beliefs have to be written in a CLIPS-like
	  rule language (also used e.g. in JESS). Have a look at the Jadex examples.
	  Documentation for CLIPS can be found at (focus on LHS Syntax in sect. 5.4):
	  http://clipsrules.sourceforge.net/documentation/v624/bpg.htm
	- Along with the condition syntax, also the evaluation mode names have changed
	  (from 'dynamic' to either 'push' or 'pull') and are no longer assigned to
	  facts but to beliefs instead. The push mode requires a CLIPS condition and
	  actively updates a fact when changes in the condition are detected, while 
	  the pull mode takes a Java expression as before and is evaluated on access.
	  See examples for details.
	- <beliefchange> and <beliefsetchange> triggers have been removed.
	  Use <factadded/removed/changed> instead. 
	- The plan body is no longer provided as Java expression ('new XYZPlan()'),
	  but as class attribute ('class="XYZPlan"'). Arguments should be passed
	  via parameters to the plan.
	- The planlib has been restructured and capbilities have been moved (ams/df)
	  and separated (protocols).
	- The content-class default parameter for message events has been removed.
	  Use a match expression with instanceof instead.

Java Changes:
	- The classes from jadex.runtime.* have moved to jadex.bdi.runtime.*
	- IMessageEvent.get/setContent() methods have been removed.
	  Use getParameter(SFipa.CONTENT).get/setValue() instead.
	- IMessageEvent.createReply() has been removed.
	  Use getEventbase.createReply(messageevent) instead.
	- Due to the rule based implementation there are some requirements for Java objects
	  used as belief facts/parameter values etc.
	    - Objects must not change their hashCode() during lifetime.
	    - Objects, of which multiple equal instances exist (when the equals()
	      method is overridden) must not differ in their attribute values
	      and must not provide add/removePropertyChangeListener methods.
	      As a rule of thumb: override equals only for immutable value types.
	- Agent identifiers are now represente by jadex.bridge.IAgentIdentifier
	- New agent identifiers have to be created using the AMS service.
	- Package jadex.util has been renamed to jadex.common.
	- The SFipa class has been moved to package jadex.adapter.base.fipa.