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.

Reply via email to