[ 
https://issues.apache.org/jira/browse/PLUTO-267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12517351
 ] 

Craig Doremus commented on PLUTO-267:
-------------------------------------

Tuomas,
Thanks for the latest patch. I applied the patch locally, but it threw a 
compile error on line 160 of EventProviderImpl.java. It appears that the 
EventDefinitionDD class does not have the getValueType() method in our SVN 
repository.

I also had problems applying the patch to PortletWindowThread, but I think I 
was able to patch it manually. Please check the resulting run() method:

        public void run() {
                super.run();
                while (events.size() > 0) {
                        HttpServletRequest req = new 
PortalServletRequest(eventProvider.getRequest(), this.portletWindow);
                        HttpServletResponse res = eventProvider.getResponse();
                        try {
                                synchronized (this) {
                                        Event event = events.get(0);
                                Object value = event.getValue();
                                if (value instanceof XMLStreamReader) {
                                        XMLStreamReader xml = (XMLStreamReader) 
event.getValue();
                                        EventDefinitionDD eventDefinitionDD = 
eventProvider.getEventDefinition(event.getQName());
                                        try {
                                                // now test if object is jaxb

                                                ClassLoader loader = 
Thread.currentThread().getContextClassLoader();
                                                Class<? extends Serializable> 
clazz = 
loader.loadClass(eventDefinitionDD.getJavaClass()).asSubclass(Serializable.class);

                                                JAXBContext jc = 
JAXBContext.newInstance(clazz);
                                                Unmarshaller unmarshaller  = 
jc.createUnmarshaller();

                                                
unmarshaller.setEventHandler(new 
javax.xml.bind.helpers.DefaultValidationEventHandler());

                                                JAXBElement<? extends 
Serializable> result = unmarshaller.unmarshal(xml,clazz);

                                                event = new 
EventImpl(event.getQName(),result.getValue());
                                        } catch (JAXBException e) {
                                                throw new 
IllegalStateException(e);
                                        } catch (ClassNotFoundException e) {
                                                throw new 
IllegalStateException(e);
                                        }
                                }
                                        eventContainer.fireEvent(req, res, 
portletWindow, event);
                                        //wait();
                                        Thread.sleep(1);
                                        events.remove(0);                       
        
                                }
                        } catch (InterruptedException e){
                                System.out.println();
                                System.out.println("============interupted 
exception===============");
                                e.printStackTrace();
                        } catch (PortletException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }       
                }
        }


> Implementation of the new Eventing Model
> ----------------------------------------
>
>                 Key: PLUTO-267
>                 URL: https://issues.apache.org/jira/browse/PLUTO-267
>             Project: Pluto
>          Issue Type: New Feature
>    Affects Versions: 1.1-286-COMPATIBILITY
>            Reporter: Christian Raschka
>             Fix For: 1.1-286-COMPATIBILITY
>
>         Attachments: eventing.021106.patch, 
> eventing.fire_event_proposal.070607.patch, 
> eventing.fire_event_proposal.070607_2.patch, 
> eventing.moreeventsbug.051106.patch, 
> eventing.parameter_propagation.070607.patch, 
> eventing.parameter_saving.070607.patch, 
> eventing.provided_jaxb_proposal.020807.patch, eventing_rev14.240507.patch
>
>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to