It is also possible to extend interfaces or connectors defined via apply. That is sometimes quite useful as shown in the following example:
artifact Module2
{
include "Module2/**"
apply "layering"
// New artifact that should also be part of the service interface
artifact ServiceInterface
{
include "**/serviceinterface/**"
}
// Make the ServiceInterface artifact part of the interface Service
extend interface Service
{
// add an extra export
export ServiceInterface
}
}
Without the possibility to extend interfaces or connectors we would be forced to create a completely new interface with a different name.
