I don't have a Jive 6 instance to look at right now, but all these services are configured as Spring beans and can be overridden in a plugin's spring.xml file. In Jive 7, some of the beans you are looking for would be in a file called spring-coreV3ServiceBeanContext.xml (the Jive 6 file name might be slightly different, but the concept is the same).
However, based on your requirements, I'd recommend you look at Jive's Event framework, instead of customizing services directly. Take a look at com.jivesoftware.base.event.v2.BaseJiveEvent and com.jivesoftware.community.eae.event.handlers.BaseJiveEventHandler and their subclasses to learn more about how the event Framework works and what Events you can listen to. Discussion creation and user login are definitely included.
Thanks for the replies! Jochen I ended up following your advice regarding the Event framework and everything is working well so far! Thanks for pointing me on the right path
You can always override a jive Webservice :
Create a Custom Web service :
- Create a Custom Webservice in place of default one, Which would take the CustomBean as its param.
- Override the service name in Spring file (i.e. change the reference e.g. <ref bean="customService"/> )
Create a Custom Service Helper Class :
- Pass the custom data from your ServiceImpl to Custom service helper class.
Hope these outlines help. Let me know if you need any further explanation.
We use AspectJ to modify code in the WAR to avoid overlaying Jive classes directly. You wouldn't need to do it in a plugin - you could create a Maven module and have the AspectJ maven plugin weave your changes into the WAR. Another option not mentioned above is to use a Struts interceptor.