| |
| \input{header} |
| \begin{tikzpicture} |
| |
| \begin{component}{20cm}{1}{0}{CachedGreeterComponent} |
| |
| \begin{component}{4cm}{7.5}{0}{GreeterComponent} |
| \end{component} |
| |
| \begin{component}{4cm}{7.5}{2.5}{KeyValueStorageComponent} |
| \end{component} |
| |
| \newcomponent{0}{1.3}{CachedGreeterImpl} |
| |
| \umlassemblyconnector[interface=Greeter]{GreeterComponent}{CachedGreeterImpl} |
| \umlassemblyconnector[interface=KeyValueStorage]{KeyValueStorageComponent}{CachedGreeterImpl} |
| |
| \umlprovidedinterface[interface={Annotated<Cached,Greeter>}, distance=4.3, with port, padding=2.1cm]{CachedGreeterImpl} |
| |
| \end{component} |
| \umlprovidedinterface[interface={Annotated<Cached,Greeter>}, distance=11.2, with port, padding=0.2cm]{CachedGreeterComponent} |
| |
| \umldep{CachedGreeterImpl-west-interface}{CachedGreeterComponent-west-port} |
| |
| \end{tikzpicture} |
| \input{footer} |