Ceki Gulcu schrieb:
Hello Ekke,

What is it that you are trying to accomplish, in plain English?
  
My Logger objects are in each class
but I also want to know the OSGI Bundle name from where the log entry comes
and - optional - the OSGI Service names from where the event happened

I store these names in Markers, so later I can get the information to print them
(this was the reason I'm using a custom BundleMarkerConverter and in my Layout I say %bundlemarker)

the Bundle is always there
If I'm also logging from an OSGI Service I create a Marker as ServiceMarker
(there can be more then one ServiceMarkers in some situations)

I'm using bundleMarker.add(serviceMarker)

so my LogEntry has always one BundleMarker and optional one or more ServiceMarker added

to know if its a BundleMarker or ServiceMarker the names have a prefix to distinguish

for different situations or different appenders I'm using different MarkerConverter classes
to get %bundlemarker, %servicemarker or %bundlewithservicemarker

%bundlemarker is always only one name of the OSGI bundle
%servicemarker is empty or one or an array of OSGI Service names
and %bundlewithservicemarker is a combination of both

at the moment I have only written the MarkerConverter class for BundleMarker
and all works well

now I read about your Marker - graphs and only wanted to ask whats the best to get
all ServiceMarkers from the graph
to decide if a Marker is a ServiceMarker I have to see if the name starts with a given prefix

I hope you understand what I mean ;-)

ekke
ekkehard wrote:
  
I read about the changes with Markers - thanks - I also was thinking 
about Markers
as a tree - now I know its only a graph of connected Markers

following scenario:
create a Marker with a Bundle-Name
add one or more Marker with Service-Names

then I have a BundleMarkerConverter.
Testing
marker.getName().startsWith(ConstantsAndProperties.BUNDLE_MARKER_PREFIX)
I know if its a BundleMarker

now there can be Markers with SERVICE_MARKER_PREFIX in the graph -
whats the recommanded way to get them all:
using the iterator ?

thx

ekke