JBoss.org Community Documentation
The previous sections describe the logical object mapping model. In this section, we will explain the physical mapping model, that is, how do we map the POJO into Core Cache for transactional state replication. However, it should be noted that the physical structure of the cache is purely an internal implementation detail, it should not be treated as an API as it may change in future releases. This information is provided solely to aid in better understanding the mapping process in POJO Cache.
When an object is first attached in POJO Cache, the Core Cache node representation is created in a special internal
area. The Id
fqn that is passed to attach()
is used to create an empty node that
references the internal node. Future references to the same object will point to the same internal node location, and that
node will remain until all such references have been removed (detached).
The example below demonstrates the mapping of the Person
object under id "pojo/joe" and
"pojo/mary" as metioned in previous sections. It is created from a two node replication group where
one node is a Beanshell window and the other node is a Swing Gui window (shown here).
For clarity, multiple snapshots were taken to highlight the mapping process.
The first figure illustrates the first step of the mapping approach. From the bottom of the figure,
it can be seen that
the PojoReference
field under pojo/joe
is pointing to an
internal location,
/__JBossInternal__/5c4o12-lpaf5g-esl49n5e-1-esl49n5o-2
. That is, under the user-specified
Id string, we store only an indirect reference to the internal area. Please note that
Mary
has a similar reference.
Then by clicking on the referenced internal node (from the following figure), it can seen that the
primitive fields for Joe
are stored there. E.g., Age
is
41
and
Name
is Joe Black
. And similarly for Mary
as
well.
Under the /__JBossInternal__/5c4o12-lpaf5g-esl49n5e-1-esl49n5o-2
, it can be seen that
there is an Address
node. Clicking
on the Address
node shows that it references another internal location:
/__JBossInternal__/5c4o12-lpaf5g-esl49n5e-1-esl49ngs-3
as shown in the following figure.
Then by the same token, the Address
node under
/__JBossInternal__/5c4o12-lpaf5g-esl49n5e-1-esl49na0-4
points to the same
address reference. That is, both Joe
and Mary
share the same
Address
reference.
Finally, the /__JBossInternal__/5c4o12-lpaf5g-esl49n5e-1-esl49ngs-3
node
contains the various various primitive fields of Address
, e.g., Street
,
Zip
, and City
. This is illustrated in the following figure.