Artifact Naming Guideline
All Artifacts produced at gsi should follow this guideline. This helps to find them in the
Repository and prevents clash of names on the file system, this is most important for jar files.
The groupId of an artifact must contain as a minimum
de.gsi.$PROJECTDIVISION.$DEPARTMENT
if the department would like to extend it with e.g. the group name that is of course possible:
de.gsi.$PROJECTDIVISION.$DEPARTMENT.$GROUP
Examples for (former-) bel groups are
de.gsi.cs.co.ap
and
de.gsi.cs.co.fe
.
In maven a single item that can be built is called "Artifact". When programming java (and some other languages) it is usually the case that the name of a library (.JAR) for an artifact is equal to the artifacts name. So it is reasonable to put some effort into the naming of an artifact that is used in the creation of library files. Generic names should be avoided to prevent name clashes. Even if it sounds strange because of the name doubling, if generic names are used they must be prefixed with e.g. department and/or group to make them unique.
Lets say several departments (CSCO and LOBI) and groups in one of this departments (AP and FE) have a project with some commonly used code "commons". By prefixing the artifact name a name clash can be prevented:
-
cscoap-commons(.jar)
– Commonly used code of control systems/applications group
-
cscofe-commons(.jar)
– Commonly used code of control systems/front end group
-
csco-commons(.jar)
– Commonly used code of control systems
-
lobi-commons(.jar)
– Commonly used code of beam diagnostics
It is suggested to prefix the artifacts with the department name. For artifact names that are already quite unique using a common prefix should be enough.
Examples
Naming by department:
-
pbsp-cycledoc.jar
(department primary beams / system planning, project CYCLEDOC)
-
loao-app-dpo.jar
(department linac and operations / accelerator operations, project APP, module DPO)
Naming by department and group:
-
cscofe-devacc(.jar)
-> For the artifact devacc (Device Access) of the control system frontend group
-
cscoap-devacc(.jar)
-> A similar artifact developed by the control system application group (and depending on the one of the frontend group)
If you want to add more information to the artifact name so more information can be deduced from the file name:
-
cscoap-japc-ext-devacc-eqmodparser(.jar)
- CSCO Department, AP Group, Project JAPC, JAPC Extension, Extension devacc, Equipment Model Parser
Or less if you think the naming is already quite unique (ZKS - Zugangskontrollsystem project):
- zks-app-remotecontrol
- zks-app-useradministration
- zks-app-selection
- zks-client
- zks-commons
- zks-dbaccess
- zks-uwz-protocol
App group naming guideline since end of 2019
AppGuidelinesNamingGuideline
BEL Application de.gsi.bel.cs.co.ap
Known Projects are opera (VMS to linux migration), zks (Zugangskontrollsystem), japc.
BEL Frontend de.gsi.bel.cs.co.fe
Known Projects are devacc (Devicemanager, devman), biorem (the java gui for the biorem)