AgE 2.6
Released: TBA
General
- Dropped initial "j" (standing for "Java") from the official name.
Distributed AgE
- Removal of old communication services.
- Implementation of Hazelcast-based communication service.
- Added distributed "Hello world" example.
Node
- Replaced old bootstrapping mechanisms with a simplified bootstrapper and a complex lifecycle manager.
Core component
- Aggregate has been divided into a container and separate services.
SimpleAggregate
uses the standard RW lock now.
Other changes
Dropped EasyMock for Mockito.
jAgE 2.5
Released: 25 November 2011
Platform
- New node life-cycle introduced based on
IStarter
service, which is responsible for creating required node services and running computation(s). Detailed description of node life-cycle can be found at Node start-up and command line arguments (AGE-38)- A reference implementation of the starter implemented (
BatchModeSingleStarter
). The starter runs a single computation read from a configuration file given as a command line argument - Batch mode single run starter documentation
- A reference implementation of the starter implemented (
- Separating interface and implementation modules. Component diagram with avaialble interfaces can be found at: Node services (AGE-43)
- Communication modules based on RMI and JMS added: Communication based on RMI and Communication based on JMS (AGE-26)
Core component
- Splitting the project in two: The platform module holds the code related to what will become AgE components framework (Containers, ComponentDefinitions, etc.), the services module contains logic specific to multi-agents computations: (Workplaces, Agents, Queries, etc.).
- Broadcast selector was changed to select all addresses before initialisation (AGE-6).
- Added support for multicast selectors (AGE-21).
- New, simplified addressing mechanism (AGE-65). This new version greatly reduces the complexity of addressing configuration. For information about its usage refer to: Addressing, about implementation: Addressing scheme implementation. If you are upgrading from the older jAgE version, you may be interested in a short upgrade guide.
- New, unified message classes (AGE-65). For their description refer to: Messaging implementation. If you are upgrading from the older jAgE version, you may be interested in a short upgrade guide.
- Completely new queries API based on the fluent interface pattern (AGE-67). For their description refer to: Queries and Queries implementation.
ConnectedSimpleWorkplace
added as an example implementation of a workplace aware of another workplaces (AGE-71).
Configuration
- A priori verification mechanism introduced (AGE-7)
- Components' dependency and properties injection is now independent from jAgE Properties API. (AGE-31) (Description)
- Components not longer have to implement IPropertyContainer and can be any simple POJO.
- Dependencies will be autowired, injected through setters, then fields annotated with
@Inject
. - Properties will be injected through setters, Then fields. For backward compatibility, annotated jAgE Properties are also still supported, but this behavior is deprecated and will be removed in a future release.
- Explicit dependencies will override implicit autowiring.
- Support for autowiring of generic collections (lists, sets, maps) (AGE-16). All collections that are annotated with
@Inject
are now looked up with its generic type taken into consideration. For more information about autowiring refer to: Components, about changes to the configuration file: SpecyfikacjaPlikuKonfiguracyjnego. - Tables support in configuration and autowiring (AGE-19). Tables can be used as with the
<array />
element in XML configuration in the same way as<list />
and<map />
. For more information refer to: SpecyfikacjaPlikuKonfiguracyjnego. - Improved support for generics in the properties library (AGE-16, AGE-21).
- Resource loading similar to the one from Spring is now available (AGE-62). For more information about supported protocols refer to: Node start-up and command line arguments.
Other changes
- Logging framework has been changed to SLF4J (AGE-59).
- New examples (for their description see Sample applications):
- Bug fixes:
- Runtime exceptions thrown by actions are now handled by the aggregate and will no longer silently kill the current thread. (AGE-78)
- General code clean-up and upgrade to better exploit newer Java versions.
- Documentation upgrade and its further translation.
Wersja 2.4.1
Data release'u: 24-02-2010
- caribou@552 changing doxia-confluence version to 1.1.1 and therefore maven-site-plugin to 2.1-SNAPSHOT. Maven prerequisite changed to 2.1.0
Wersja 2.4.0
Data release'u: 02.10.2009
- caribou#72 dodano kontrakty komponentów opisane w plikach XMLowych; szczegółowa dokumentacja na stronie Komponenty oparte o deskyproty XMLowe.
Wersja 2.3.2
Data release'u: 08.09.2009
- caribou@535 doxia version changed to 1.0
- caribou@534 warning about not found action turned off as it was misleading
- caribou@525 BUG FIX: rekurencyjne wywołanie metody
PicoWorkplaceManager.unregisterAddress
, które powodujowałe nieskończoną pętlę - caribou@525 BUG FIX: poprawione zlecenia akcji migracji (metoda
SimpleAgent.doMove
) - dostosowane do nowego mechanizmu akcji, - caribou@523 dodanie budowania testów i ich źródeł do domyślnego cyklu builda; testy deployowane jako artefakty mavena, zobacz: Dostęp do testów platormy
Wersja 2.3.1
Data release'u: 21.05.2009
- caribou#68 akcje: przeniesione sprawdzanie poprawności adresów z agregatu do fazy inicjalizacji akcji
- caribou@515 zmieniono nazwe
AbstractActionStrategy
naAbstractPerformActionStrategy
Wersja 2.3.0
Data release'u: 20.05.2009
- caribou#51 wirtualne właściwości dla agentów
- caribou#44 usunięto ID z
IPlatformComponent
, dodano doIComponentInstanceProvider
metodęgetName
- caribou#64 usunięto interfejs
IStrategyActionContext
- caribou#58 implementacja wykonania akcji na agregacie oraz jego rodzicu (przyklad w tescie
ActionValidationTest
) - caribou@498 usunięto akcje metodę
IAgent.getClone
- caribou#54 akcja tworzenia nowego agenta (dodano factory method
SimpleAgent.createAddNewAgentAction
- caribou#61 wydzielenie warunku stopu jako osobny komponent (
IPlatformComponent
) - caribou#34 zmiana interfejsu
IAgeComponent
naIPlatformComponent
, wprowadzenie interfejsuICoreComponent
- caribou#53 zmiana nazwy
IActionStrategy
naIPerformStrategy
oraz metodyperformAction
naperform
- caribou#57 wprowadzenie trzech faz wykonania akcji
INIT
,MAIN
,FINISH
- caribou@488 usunięto akcje
cloneAction
- caribou@488 dodano
AbstractStrategy
andIProviderAwareStrategy
- caribou#56 nowa adresacja - dokumentacja adresacji
- caribou#56 nowy mechanizm zapytań (query) - dokumentacja zapytań
- zmiana w mechanizmie akcji: caribou#48
- nowy proces wykonania (opis ...)
- caribou@477 SingleAction posiada jako target IAddressSelector<IAgentAddress> - Uwaga: stare akcje nie będą działać na nowym mechanizmie
- selectory adresów: base caribou#47, ANYCAST caribou#48, UNICAST caribou#49, BROADCAST caribou#50, NEWCAST caribou#45 (dokładny opis selectorów ...)
- usunięcie z adnotacji
PropertyField
iPropertyGetter
atrybututype
- caribou@365: zmiana wersji z 2.2.2-SNAPSHOT na 2.3.0-SNAPSHOT
- caribou#27 & caribou#28 - zmiana formatu pliku konfiguracyjnego:
object
->component
, dodano tagagent
, który jest aliasemcomponent
z atrybutemisSingleton=false
- caribou@224: dodanie do
SimpleAggragete
iSimpleWorkplace
notifikacji monitorów na końcu metody step - caribou#29: usunięcie aliasów z konfiguracji
- caribou@247: zmiana
Message
zComparable<Object>
naComparable<Message>
- caribou#31: przejście na Pico 2.6
- caribou@262:
ComponentDefinition
: sprawdzanie, czy definicje zawierjące property initializers mają odpowiednią klasę (implementującąIPropertyContainer
) - caribou#32: dodanie abstrakcyjnego przypadku testowego, udostępniającego wczytywanie konfiguracji z pliku i instancjonowanie komponentów na jej podstawie
- caribou#36: dodanie sprawdzania poprawności plików konfiguracyjnych na podstawie XML Schema: http://age.iisg.agh.edu.pl/xsd/age.xsd, zmiana targetNamespace na http://age.iisg.agh.edu.pl/AgE
- caribou#37: bugfix: dodanie do XML Schema konfiguracji typu prostego
Boolean
- caribou#38: proste wstrzykiwanie zależności w komponentach na poziomie node'a