We have talked about adding an FtpNotifier class to do ftp notification, but it's still not there. If you wish to implement/contribute such a class, my recommendation would be to take the NotifyFiles class as a template, and use the RemoteFileSystem (org.jboss.soa.esb.util package, rosetta folder) and related utility classes to take care of the transfers. You might also want to consider using the FtpFileHandler class (which implements most of the required functionality ) in the org.jboss.internal.soa.esb.couriers.helpers package
It should be fairly straightforward if you can live with simple logging of Exceptions that happen during notification (if the notifiers themselves have problems, you might be impeded to use them to notify).
Thanks Esteban, I will look into this. If we decide to implement it I will be happy to contribute the code back to JBoss.
One more quick question: The FtpFileHandler takes an EPR in its constructor. Should I create this manually or obtain it from the registry?
The fact that the registry is used mostly to register 'services' does not disallow the ability to store other EPRs that are not considered services. So there's nothing stopping you from storing any EPR in the registry under whatever key you choose. In fact, I think the implicit suggestion to use the registry to store 'non service' eprs is quite interesting
Having said that, and whatever way you choose to do it, keep in mind that you must provide a constructor that takes a ConfigTree as argument (see how NotificationTarget.fromParams will instantiate your class), which is where you can specify anything your class needs.
If you decide to use the registry, the Registry.findEPR method will render an EPR. On the other hand, if you decide to specify in XML the EPR data needed to construct an FTPEpr or SFTPEpr, you can use the ListenerUtil.fileEprFromElement(ConfigTree) method (listeners folder, org.jboss.soa.esb.listeners package).
Let me know how it goes.
Thanks again for the advice.
The ConfigTree comment brings up a question I was going to ask as a separate topic. Have you guys given any thought to moving towards a JavaBeans configuration approach instead of ConfigTree? This approach worked out very well for jBPM and others. I did a preliminary investigation on the code base last week and looks like this option could be easily supported by modifying a few classes.
If you aren't planning on it I will probably end up coding it myself and contributing it back. I just don't want to duplicate any efforts that may be underway.
Our configuration will be changing in the next release (or two), but JavaBeans support wasn't part of that equation. If you want to add it and contribute it back, it would be great.
I have implemented the NotifyFTP class and verified it works. How may I contribute it back?
Great :). You can email it to any one of us in an attachment, or you can open a jira and attach it there. Whichever you like better.
I'm also interested in the "outbound connectors". Are there any examples to show how they work/how to configure them? Also, the FTP notifier apparently is not available in the 4.2M1 release. Will it be included in the 4.2M2 release?
Also, do you plan for other kind of notifications? We will need to use several other kind of notifications, besides the one you already have (for example WS).
Concerning a WS notifier, perhaps you can comment on this Jira:
The basic idea is there would be an action that allows for sync invocation on a external (e.g. running on .NET) WS, SLSB and perhaps even a Spring-based POJO.