I think that the contract is supposed to be in cloud-api, unfortunately a bunch of plugins directly depend on interfaces from cloud-server as well. The network-refactor branch has moved some interfaces out of cloud-server into cloud-api for this purpose.
On 1/9/13 3:53 PM, "Rohit Yadav" <[email protected]> wrote: >Hi all, > >One of the challenges of writing good structural code in CloudStack is >that the artifacts and their classes depend on each other with no >code/filesystem structure. I want to discuss if it's a good idea to split >all the interface classes files (from cloud-api, cloud-server, >cloud-core) to either cloud-utils (which already provides a lot of >reusable utils) or move them to a cloud-contract or cloud-interface >artifact whose only purpose would be to provide interfaces or contracts >between CloudStack components. The rules would be that cloud-utils >provides reusable methods/utils via static methods and cloud-contract >would just provide interfaces both of whose classes can be dependent on >other classes within their artifact but they should be independent of >anything else. > >This would be just a move refactor, can be done after javelin is merged, >can be done after 4.1, but would make it easier to write components so >they won't have have cyclic dependency, tight coupling and a better >filesystem structure. > >Regards.
