.. ===============LICENSE_START======================================================= .. Acumos CC-BY-4.0 .. =================================================================================== .. Copyright (C) 2018 . All rights reserved. .. =================================================================================== .. This Acumos documentation file is distributed by .. under the Creative Commons Attribution 4.0 International License (the "License"); .. you may not use this file except in compliance with the License. .. You may obtain a copy of the License at .. .. http://creativecommons.org/licenses/by/4.0 .. .. This file is distributed on an "AS IS" BASIS, .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. .. See the License for the specific language governing permissions and .. limitations under the License. .. ===============LICENSE_END========================================================= .. PLEASE REMEMBER TO UPDATE THE LICENSE ABOVE WITH YOUR COMPANY NAME AND THE CORRECT YEAR .. this should be very technical, aimed at people who want to help develop the components .. this should be how the component does what it does, not a requirements document of what the component should do .. this should contain what language(s) and frameworks are used, with versions .. this should contain how to obtain the code, where to look at work items (Jira tickets), how to get started developing .. _developer-guide-template: ================================ Developer Guide ================================ Overview ======== Provide an overview of the component. To be clear, the target audience for this guide is a developer who will be developing code for this feature itself. Architecture and Design ======================= Provide information about feature components and how they work together. Also include information about how the feature integrates with Acumos. An architecture diagram could help. This may be the same as the diagram used in the user guide, but it should likely be less abstract and provide more information that would be applicable to a developer. Actual diagrams as well as their image output should be stored in git. In this "templates" directory are two folders: images and diagrams. The diagrams folder contains 2 examples created with `draw.io Desktop `_, which is freely available for Windows, Mac, and Linux. If you are unable to install draw.io on your workstation, you can create diagrams using the draw.io plugin on the Acumos wiki. Instructions for using the draw.io wiki plugin are `here `_. Diagrams saved as XML need to be exported as an image and then included in the RST file. .. note:: Please remember that the images below are just examples and **do not** reflect the current design of any specific component! High-Level Flow --------------- This section contains an example of embedding a high-level architecture diagram. Leave a blank line both before and after the ``.. image::`` directive. `templates/diagrams/security-verification-arch.xml`` was created using draw.io, saved, and then exported as PNG. The resulting image was saved to the ``images`` directory. .. image:: images/security-verification-arch.png `Generated HTML output `_ as it appears on docs.acumos.org. Class Diagrams -------------- This section contains an example of embedding a class diagram. Leave a blank line both before and after the ``.. image::`` directive. ``templates/images/scantool.png`` is a class diagram generated by the Eclipse plugin `ObjectAid UML Explorer `_. .. image:: images/scantool.png Sequence Diagrams ----------------- This section contains an example of embedding a sequence diagram. Leave a blank line both before and after the ``.. image::`` directive. ``templates/diagrams/ActorInvokesScan.xml`` is the editable diagram created with draw.io. The exported image was saved to ``templates/images/ActorInvovkesScan.png``. .. image:: images/ActorInvokesScan.png :scale: 75% ** Images may be resized. See the ``.. image::`` directive `options `_. Technology and Frameworks ========================= Provide a list of the development languages, frameworks, etc. For example: #. Java 8 #. Maven 3.x #. Spring Tool Suite Project Resources ================= Provide gerrit, Jira info, JavaDoc (javadoc.acumos.org) if relevant, link to REST API documentation, etc. For example: - Gerrit repo: - `Jira `_ Development Setup ================= Instructions for how to set up a local development environment. How to Run ========== Provide steps to package and deploy your component, both for local testing and for testing on a server. How to Test =========== Provide information how to test your component