I have come across this requirement multiple times. For an end user,
creating a uber jar and submitting it directly works fine. But we have
systems which provide processing as a service. These systems take business
logic, completely agnostic of storm, from client in a jar. Service has its
own code (Topology main method etc) in a separate jar which invokes the
business code. storm-sql is a similar type of system.

There are some solutions -
1. Preparing an uber jar on runtime - This changes the internal structure
of jar. META-INF entries have to be handled correctly.

2. Loading the client jar dynamically in a class loader - This approach has
its own set of problems related to class visibility.

I wanted to know if someone else here has run into problem and how did they
solve it. I have also submitted a PR as one possible solution. Any feedback
is most welcome -
https://github.com/apache/storm/pull/1296/files




-- 
Regards,
Abhishek Agarwal

Reply via email to