[opencms-dev] RE: RE: Retrieve data from CmsEvent
Roman Uhlig
roman.uhlig at knve.de
Thu Oct 12 16:16:17 CEST 2006
Thanks for your help, Jon.
Regarding the use of OpenCms-Events: I usually wouldn't need a custom event
handling at all. But the well known case of creating siblings of XMLContent
in a multilingual OpenCms environment has literally forced me to use them. I
hope there will be an overhaul of the whole multilanguage
support/implementation in a future version of OpenCms.
Roman
Jonathan Woods wrote:
>
> No problem.
>
> I'm sorry if I was being overly negative about the event framework; maybe
> you'll get on better with it. Primarily because it isn't well documented
> and multiple events are fired for single stimuli, I was just uneasy about
> relying on it - for example to make programmatic changes when resources
> are
> saved by end users.
>
> Concerning LOG: in my example it's a (static member which is an) instance
> of
> the org.apache.commons.logging.LogFactory class:
>
> ---------
> private static final Log LOG = LogFactory.getLog(Class
> theClassYouWantToAssociateWithLogEntries);
> ---------
>
> This does indeed write into the OpenCms log.
>
> Jon
>
> -----Original Message-----
> From: opencms-dev-bounces at opencms.org
> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of Roman Uhlig
> Sent: 12 October 2006 14:47
> To: opencms-dev at opencms.org
> Subject: [opencms-dev] RE: Retrieve data from CmsEvent
>
>
> Thanks Jon, this definitely points me in the right direction.
> Your side note states that you have experienced strange behaviour using
> OpenCms events? While playing around with it, I didn't notice any unusual
> behaviour, at least not with the basic events like
> EVENT_RESOURCE_CREATED/DELETED. Do you think it's unsafe to rely on these
> events?
>
> Just a little side question: I noticed you are using a LOG var in your
> sample code. Do you use it to write into the opencms.log file? How would I
> obtain such an instance? I planned to investigate this during the next
> days,
> so maybe you could please give me another hint?
>
> Thanks,
> Roman
>
>
> Jonathan Woods wrote:
>>
>> Here's what I used before I gave up trying to guess in what order and
>> for what reason CmsEvents were called...
>>
>> Jon
>> --------------
>>
>> // Get a list of all file resources concerned with this event. There
>> may be only one resource, presented via map // key "resource", or
>> there may be a list underneath "resources". See I_CmsEventListener for
>> documentation.
>>
>> Map eventData = event.getData();
>> int eventType = event.getType();
>>
>> List<CmsResource> resourceList;
>>
>> try {
>> if (eventData.containsKey("resources")) {
>> resourceList = (List<CmsResource>)
>> eventData.get("resources");
>> }
>> else if (eventData.containsKey("resource")) {
>> resourceList = new ArrayList<CmsResource>(1);
>> resourceList.add((CmsResource) eventData.get("resource"));
>> }
>> else {
>> LOG.error("handleEvent called for event with no associated
>> resource(s) - may be indication that module code is incompatible with
>> OpenCms version");
>> return;
>> }
>> }
>> catch (ClassCastException e) {
>> // Should not be possible; may indicate that OpenCms version has
>> bumped.
>> LOG.error("Unexpected type met in event data - may be
> indication
>> that module code is incompatible with OpenCms version", e);
>> return;
>> }
>>
>> -----Original Message-----
>> From: opencms-dev-bounces at opencms.org
>> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of Uhlig, Roman
>> Knuepfer Verlag
>> Sent: 12 October 2006 14:19
>> To: The OpenCms mailing list
>> Subject: [opencms-dev] Retrieve data from CmsEvent
>>
>>
>> Hi,
>> what would be the right way to retrieve the data related to a
>> CmsEvent, let's say the resource name of a deleted resource in case of
>> a EVENT_RESOURCE_DELETED event?
>>
>> CmsEvent.getData() returns a map, but it has only one key ("resources"):
>>
>> resources = [[org.opencms.file.CmsResource, path:
>> /sites/default/test/bla, structure id
>> 86ff16fb-59ec-11db-bc78-000c29e71d53, resource id:
>> 86ff16fc-59ec-11db-bc78-000c29e71d53, type id: 1, folder: false, flags:
>> 0, project: 4, state: 2, date created: Thu Oct 12 12:23:54 GMT 2006,
>> user
>> created: d12bc550-4199-11db-a4a5-000c29e71d53, date lastmodified:
>> Thu Oct 12 12:23:54 GMT 2006, user lastmodified:
>> d12bc550-4199-11db-a4a5-000c29e71d53, date released: Thu Jan 01
>> 00:00:00 GMT 1970, date expired: Sun Aug 17 07:12:55 GMT 292278994,
>> size: 0 sibling
>> count: 1]]
>>
>> I also can't find the I_CmsEventListener.KEY_* values in this list. Am
>> I doing something wrong? Any help would be very appreciated.
>>
>> Thanks,
>> Roman
>>
>> _______________________________________________
>> This mail is sent to you from the opencms-dev mailing list To change
>> your list options, or to unsubscribe from the list, please visit
>> http://lists.opencms.org/mailman/listinfo/opencms-dev
>>
>>
>>
>> _______________________________________________
>> This mail is sent to you from the opencms-dev mailing list To change
>> your list options, or to unsubscribe from the list, please visit
>> http://lists.opencms.org/mailman/listinfo/opencms-dev
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/Retrieve-data-from-CmsEvent-tf2430225.html#a6776579
> Sent from the OpenCMS - Dev mailing list archive at Nabble.com.
>
>
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev
>
>
>
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev
>
>
--
View this message in context: http://www.nabble.com/Retrieve-data-from-CmsEvent-tf2430225.html#a6777102
Sent from the OpenCMS - Dev mailing list archive at Nabble.com.
More information about the opencms-dev
mailing list