@NAME@ version @VERSION@ Release Notes for IDEA @IDEA-VERSION@ NOTE: This version requires IDEA to be executed with JDK 1.5.0 or greater. Project/Module Copyright Notice. This plugin is used to ensure files in a project or module have a consistent copyright notice. Copyright notices can be created for the following file types: Java, JavaScript, JSP, JSPx, XML, HTML, xHTML, DTD, Properties, and CSS. * Configuration ** Enable Plugin By default the plugin is disabled for a project. Simple select the Enable Copyright Notice Plugin checkbox to enable copyright notices for this project. ** Project and Module Level You can set the copyright notice at the project level first. This setting will be used as the default for each new module added to the project. You then have the option of adjusting each module's setting individually. For each module you can specify whether it has it's own custom copyright, uses the project copyright, or has no copyright at all. You can also import copyright notice settings from other, external projects and modules by pressing the Import Settings button. This brings up a file chooser that lets you select project (*.ipr) or module (*.iml) files. Once selected the project or module is scanned for copyright plugin settings. If found they are imported into the current level. At the module level you can also copy over the current project's settings by pressing the Copy Project Settings button. ** Settings At a given level (project or module) you can define a copyright notice template to be used by all supported file types and/or you can tailor the copyright notice settings for a specific file type. *** Template **** Text Most likely you will want the same general copyright notice for all file types. This is done by setting up the template. The copyright notice template should be undecorated and language independent. In other words, the template should not contain any language specific comment markers. The template will be treated as a Velocity template. See the section below for more information on Velocity templates. **** Formatting Options Once the basic text of the copyright notice is set you can specify several formatting options. First you should specify whether the copyright should be entered using a file's block or line comment syntax. A language not containing the selected choice will use the syntax it does have available to best emulate the choice. If the block comment is chosen you have the option of having each line preceded by a comment marker. Second you can specify whether the comment should be surrounded by a line of comment markers, referred to as a separator. If both separators are selected and are of the same length you will have the option of having the whole comment "boxed" in. The character used to fill the separator can specified. By default (nothing specified) the character used will be appropriate for the given language. Tilde (~) is used for XML type languages because a hypen (-) isn't valid when strung together. **** Relative Location If the area containing the copyright notice contains other, non-copyright comments you can specify whether the copyright notice comes before or after the other comments. You may also specify that you want a blank line to appear after the copyright notice. **** Copyright Keyword This keyword must be a valid Java regular expression (see java.util.regex.Pattern) used to determine if a comment is a normal comment or a copyright notice comment. It is important that the keyword expression doesn't match non-copyright notice comments or you may find comments getting deleted that you didn't want deleted. This warning is only true for comments near the beginning of files within the areas that copyright notices may appear. Comments in other parts of a file will not be effected even if the keyword expression matches. **** Preview Checking the Preview checkbox allows you to see what your comment will look like using Java comment syntax. This is your entered text formatted with all the options chosen in the Formatting Options area. **** Validate Pressing this button verifies that the text is a valid Velocity template. If the Velocity engine finds any problem with the text an error message is displayed. This does not verify whether the resulting comment is valid for the given file type. *** File Types By default all supported file types will use the template copyright notice. You do have the option of changing the settings for a specific file type. **** Template Override No Copyright - Select this if you don't want any copyright notice added to files of this type. If a copyright notice exists it will be removed. Use Template - Use the template copyright notice. Use Template Text - Select this if you want to use the text of the template copyright notice but you wish to format the text differently. Fully Custom - Select this if you need to enter a copyright notice in a form not supported by the supplied formatting options. If you choose this option then the text you enter must be a complete and valid comment for the given file type. See the section below on multi-comment notices. **** Formatting Options This is only enabled if Use Template Text has been selected. The options work just as described under the Template section. The only exception is that the Block and Line comment choices are enabled based on the features of the language. **** Alternate Comment Syntax JSP files can use either JSP comments or XML comments. By default the JSP syntax is used. To use XML you must check the Use XML Comments checkbox. **** Relative Location This is enabled if Use Template Text or Fully Custom has been selected. The options work just as described under the Template section. **** File Location This specifies where within a file the copyright notice is to be placed. ***** Java The copyright notice can be placed in one of the following locations: - At the start of the file before the "package" statement. - Between the package statement and any imports. - Between the imports and the first top level class (before the class' Javadoc comment, if present). ***** XML/DTD/HTML/xHTML/JSP/JSPx The copyright notice can be placed in one of the following locations: - Before the specification. - Before the first tag of the document. ***** All Other File Types For all other file types the copyright notice must appear in the begining of the file before any non-comment, non-whitespace content. * Multi-Comment Notices and Blank Lines A copyright notice may contain multiple comments. This is a given when using line comments and the copyright notice contains more than one line of text. You can also have muliple block comments in a single copyright notice. This can only happen when using a Fully Custom copyright notice. A Fully Custom copyright notice also allows for any combination of line and block comments to be used. There is one very important consideration though when your copyright notice contains multiple comments - there can't be any blank lines between any of the comments. Note - this doesn't mean there can't be blank lines in the copyright notice. They just need to be within a block comment. If you have a Fully Custom copyright notice with multiple comments and you place blank lines between any of them, you will most likely get undesirable effects when you perform copyright updates on files of that type. * Menus The option to update the copyright notice will appear in the following locations: - At the end of the context menu for a supported file in the project tree. - At the end of the context menu for a supported file in the packages tree. - At the end of the context menu for a supported file in an editor. - At the end of the context menu for a directory in the project tree. - At the end of the context menu for a package in the packages tree. - At the end of the context menu for a module in the packages tree. - At the end of the context menu for a module in the project tree. - At the end of the Code menu if the current editor contains a supported file. - At the end of the Generate popup menu if the current editor contains a supported file. Selecting a file or directory in the project tree works just like Optimize Imports. You will have the option of updating a single file or the whole directory. New files will automatically have the correct copyright notice applied to them if the file is a supported type and the file type has copyright notices enabled. * Copyright Template The contents of the copyright notice can be plain text or a Velocity template. See http://jakarta.apache.org/velocity for more information on Velocity and see http://jakarta.apache.org/velocity/user-guide.html for more details on writing Velocity templates. Currently the following variables are available in the Velocity context: Name Type Comment ======================== ======== ============================================ $today DateInfo Represents the current date and time $file.fileName String The current file's name $file.pathName String The current file's complete path and name $file.className String The current java file's classname $file.qualifiedClassName String The current java file's fully qualified name $file.lastModified DataInfo The date and time the file was last changed $project.name String The current project's name $module.name String The current module's name $username String The user's name DateInfo has the following properties: Name Type Comment ======================== ======== ============================================ year int The date's year month int The date's month (1 - 12) day int The date's day of month (1 - 31) hour int The date's hour (0 - 23) minute int The date's minute of the hour (0 - 59) second int The date's second of the minute (0 - 59) DateInfo has the following method: Name Type Comment ======================== ======== ============================================ format(String format) String See java.text.SimpleDateFormat format options