In fact you don't really want to handle subscribers at all. On the other hand subscribers do not want to be sent updates unless they ask for them. Another feature of Java is that products will often sit on top of shared classes. Indeed that is a major feature of the system which makes it effective over a distributed network. Your carefully honed application may well be using classes from elsewhere which are also used by other applications.
Nobody wants to waste bandwidth collecting and dispatching multiple copies of files.
This is not the place to go into detail but the basic principle is that the developer can publish a product to Castanet . This will do all the management such as detecting files shared with other published applications. When you want to update your product you simply inform Castanet and it will work out the update patches that your users will need. At the other end users use a software tuner to subscribe to an application. They can ask for updates as frequently as they wish but only necessary items will be sent to them.