Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

Basically the ONAP rules are all to consider. See ONAP rulesJava code style

Extentions for SDN-R code in [ccsdk/features]/sdnr

The verfication is done by SonarCloud. Figures are here:   ccsdk/features sdnr/wt https://sonarcloud.io/code?id=onap_ccsdk-features&selected=onap_ccsdk-features%3Asdnr%2Fwt

POM

for all pom.xml files:

  • mvn tidy:pom
  • <name>ccsdk-features :: ${project.artifactId}</name>
  • Indent: 4 Spaces, not tab

Eclipse setting for XML:

Image Removed

Lisense header

License Header Text

As placeholder and for examples the company name "highstreet technologies" is used. 

Configure eclipse workspace settings

Steps

  • Download preference file onap-project-workspace-prefs.epf
  • Menu ⇒ File ⇒ Import ⇒ General ⇒ Preferences
  • Select file and check the “Import all” checkbox
  • Click finish and restart
  • Use formatter on/of setting in eclipse for section with formatted strings, to keep them readable


Code Block
// @formatter:off 
// @formatter:on



Features

  • imports will automatically be organized on save
  • trailing spaces and empty lines will be cleared on save
  • CTRL+SHIFT+F for autoformat to ONAP codestyle (4 space indention, ...)
  • only javadoc comments will be formatted (not the lic header)
  • xml autoformat also with 4 space indention
  • comments in xml files won't be formatted on autoformat

TODO:

  • include a correct and only available (in gerrit) checkstyle formatter compliant with license header

Hints

Deactivate autoformat for string sections

Code Block
// @formatter:off 
// @formatter:on

Eclipse setting for XML

Image Added

POM

for all pom.xml files:

  • mvn tidy:pom
  • <name>ccsdk-features :: ${project.artifactId}</name>
  • Indent: 4 Spaces, not tab

Lisense header

License Header Text

As placeholder and for examples the company name "highstreet technologies" is used. 

Code Block
Code Block
============LICENSE_START=======================================================
ONAP : ccsdk features
================================================================================
Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
All rights reserved.
LICENSE_START=======================================================
ONAP : ccsdk features
==========================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License 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=========================================================

Note:
If a license pre-exists for other Organization, then add your organization with Update / Modification rights.
Example:

Code Block
======================================
Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
All rights reserved.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License 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_STARTEND=========================================================

Note:
If a license pre-exists for other Organization, then add your organization with Update / Modification rights.
Example:

Code Block
ONAP : ccsdk features
=======================LICENSE_START=========================================================
CopyrightONAP (C): 2020 Linux Foundation. All rights reserved.ccsdk features
================================================================================
Update Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
Linux Foundation. All rights reserved.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License 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=======================Update Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
All rights reserved.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License 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==================================

Examples

Example Java, JS

=======================

Examples

Example Java, JS

Copyright Header goes Copyright Header goes on top, before Package declaration, keeping an empty line after the header

...

Code Block
{license header}
package {package name}

{imports}

/**
 * @author {your name here}
 * 
 * { short description of class }
 */
public class {className} {

	// constants
	private static final ...
	// end of constants

	// variables
	private ...
	private final ...
	// end of variables

	// constructors
	public {className} {}
	// end of constructors

	// getters and setters
	public void set...
    public int get...
	// end of getters and setters

	// private methods
	private void ...
	// end of private methods

	// public methods
	public void ...
	// end of public methods

	// static methods
	private static void ... {}
	public static void ... {}
	// end of static methods
	
    // private classes
	private class internalClass {}
	// end of private classes
	
    
	
}

Configure eclipse workspace settings

  • Download preference file onap-project-workspace-prefs.epf
  • Menu ⇒ File ⇒ Import ⇒ General ⇒ Preferences
  • Select file and check the “Import all” checkbox
  • Click finish and restart

Features:

  • imports will automatically be organized on save
  • trailing spaces and empty lines will be cleared on save
  • CTRL+SHIFT+F for autoformat to ONAP codestyle (4 space indention, ...)
  • only javadoc comments will be formatted (not the lic header)
  • xml autoformat also with 4 space indention
  • comments in xml files won't be formatted on autoformat

TODO:

...