<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jj</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jj"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Jj"/>
	<updated>2026-11-07T18:50:49Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Extensions_releasing&amp;diff=89282</id>
		<title>Extensions releasing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Extensions_releasing&amp;diff=89282"/>
		<updated>2008-08-08T11:44:45Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Release builds of Extensions (Draft) =&lt;br /&gt;
&lt;br /&gt;
== High-level requirements ==&lt;br /&gt;
Extensions are a way to leverage the modularization of OpenOffice.org. The code of Extensions and the core OpenOffice.org needs to be separated to decouple the code and to allow less prerequisites for Extension building. Ideally, at least for Java extensions, all that is necessary to create and/or build an Extension is the OpenOffice.org SDK, a JDK and perhaps one or two small tools. This lowers the hurdles for new contributors to start developing for OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
The release of OpenOffice.org Extensions is done independently from the OpenOffice.org Release Schedule.&lt;br /&gt;
&lt;br /&gt;
Localization communities need to be able to identify whether strings belong to the OpenOffice.org core product or to an Extension to make the independent release schedule possible.&lt;br /&gt;
&lt;br /&gt;
== Consequences ==&lt;br /&gt;
&lt;br /&gt;
* To take advantage of the modularization introduced with Extensions, the core OpenOffice.org build should be possible without having to build extensions and of course vice versa.&lt;br /&gt;
&lt;br /&gt;
* To keep the release schedule of the extensions independent from the OpenOffice.org release schedule there should be own &amp;#039;targets&amp;#039; in IssueZilla and EIS.&lt;br /&gt;
&lt;br /&gt;
* For the development and release of C++ Extensions, environments for Windows, MacOS X (Intel), Solaris x86 and Solaris Sparc, Linux x86-32 and Linux x86-64 should be available (other environments may be added).&lt;br /&gt;
&lt;br /&gt;
* The development and release of OpenOffice.org extensions should be lightweight and should encourage developers to contribute since the chance of breaking the vanilla OpenOffice.org build with an extension is not likely. In most case there is also no big development team involved. So it should be possible for contributors to choose the development process of their own choice. The contributor of an extension is able to have full control about the release process (development, qa, release).&lt;br /&gt;
&lt;br /&gt;
* To enable localization communities to identify whether strings belong to the OpenOffice.org core product or to an Extension, the code and translatable strings of Extensions should be placed in separate modules. String changes in these modules indicate translations for Extensions need to be done, strings changes in other modules indicate translation work for the core OpenOffice.org product.&lt;br /&gt;
&lt;br /&gt;
* Automated QA must be possible for Extensions (at least this is a requirement of Sun provided extensions).&lt;br /&gt;
&lt;br /&gt;
* The build system for Extensions should be the same as for the core OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
== Recommendations ==&lt;br /&gt;
&lt;br /&gt;
* It is recommended to develop extensions in Java or other platform independent supported language so that the resulting extensions are able to run on every supported platform.&lt;br /&gt;
&lt;br /&gt;
* Extensions should be buildable by an automated build service to encourage contributions of Extensions into OpenOffice.org repository (also non SCA&amp;#039;d contribution hosted on [http://external.openoffice.org/source/browse/external/exemptedextensions/ Exempted Extensions repository]). &lt;br /&gt;
&lt;br /&gt;
* For every new release of OpenOffice.org all existing extensions should get tested (recompile is not necessary, since API&amp;#039;s are stable). A new extension will be build on the latest available OOo release even if a lower baseline can be used.&lt;br /&gt;
&lt;br /&gt;
== ToDos ==&lt;br /&gt;
* SCM - all extensions should be hosted in the extensions project (or http://external.openoffice.org/source/browse/external/exemptedextensions/)&lt;br /&gt;
* Bugtracking&lt;br /&gt;
** Target Milestones for an independent release schedule&lt;br /&gt;
** Component extensions plus subcomponent &lt;br /&gt;
* Developing - branch/release model - choice of the developer?&lt;br /&gt;
* Code required for localization, e.g. the module transex3 and modules it depends on, needs to be moved to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Releasing ==&lt;br /&gt;
&lt;br /&gt;
* [[Extensions/website/submission]]&lt;br /&gt;
* A list current extensions and their extensions is available at [[Extensions_Overview]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Extensions_releasing&amp;diff=89281</id>
		<title>Extensions releasing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Extensions_releasing&amp;diff=89281"/>
		<updated>2008-08-08T11:42:22Z</updated>

		<summary type="html">&lt;p&gt;Jj: reworked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Release builds of Extensions (Draft) =&lt;br /&gt;
&lt;br /&gt;
== High-level requirements ==&lt;br /&gt;
Extensions are a way to leverage the modularization of OpenOffice.org. The code of Extensions and the core OpenOffice.org needs to be separated to decouple the code and to allow less prerequisites for Extension building. Ideally, at least for Java extensions, all that is necessary to create and/or build an Extension is the OpenOffice.org SDK, a JDK, an IDE like Netbeans (a plain editor will also do, if preferred) and perhaps one or two small tools. This lowers the hurdles for new contributors to start developing for OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
The release of OpenOffice.org Extensions is done independently from the OpenOffice.org Release Schedule.&lt;br /&gt;
&lt;br /&gt;
Localization communities need to be able to identify whether strings belong to the OpenOffice.org core product or to an Extension to make the independent release schedule possible.&lt;br /&gt;
&lt;br /&gt;
== Consequences ==&lt;br /&gt;
&lt;br /&gt;
* To take advantage of the modularization introduced with Extensions, the core OpenOffice.org build should be possible without the inclusion of extensions and of course vice versa.&lt;br /&gt;
&lt;br /&gt;
* To keep the release schedule of the extensions independent from the OpenOffice.org release schedule there should be an own &amp;#039;target&amp;#039; in IssueZilla and EIS.&lt;br /&gt;
&lt;br /&gt;
* For the development and release of C++ Extensions, environments for Windows, MacOS X (Intel), Solaris x86 and Solaris Sparc, Linux x86-32 and Linux x86-64 should be available (other environments may be added).&lt;br /&gt;
&lt;br /&gt;
* The development and release of OpenOffice.org extensions should be lightweight and should encourage developers to contribute since the chance of breaking the vanilla OpenOffice.org build with an extension is not likely. In most case there is also no big development team involved. So it should be possible for contributors to choose the development process of their own choice. The contributor of an extension is able to have full control about the release process (development, qa, release).&lt;br /&gt;
&lt;br /&gt;
* To enable localization communities to identify whether strings belong to the OpenOffice.org core product or to an Extension, the code and translatable strings of Extensions should be placed in separate modules. String changes in these modules indicate translations for Extensions need to be done, strings changes in other modules indicate translation work for the core OpenOffice.org product.&lt;br /&gt;
&lt;br /&gt;
* Automated QA must be possible for Extensions (at least this is a requirement of Sun provided extensions).&lt;br /&gt;
&lt;br /&gt;
* The build system for Extensions should be the same as for the core OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
== Recommendations ==&lt;br /&gt;
&lt;br /&gt;
* It is recommended to develop extensions in Java or other platform independent supported language so that the resulting extensions are able to run on every supported platform.&lt;br /&gt;
&lt;br /&gt;
* Extensions should be buildable by an automated build service to encourage contributions of Extensions into OpenOffice.org repository (also non SCA&amp;#039;d contribution hosted on [http://external.openoffice.org/source/browse/external/exemptedextensions/ Exempted Extensions repository]). &lt;br /&gt;
&lt;br /&gt;
* For every new release of OpenOffice.org all existing extensions should get tested (recompile is not necessary, since API&amp;#039;s are stable). A new extension will be build on the latest available OOo release even if a lower baseline can be used.&lt;br /&gt;
&lt;br /&gt;
== ToDos ==&lt;br /&gt;
* SCM - all extensions should be hosted in the extensions project (or http://external.openoffice.org/source/browse/external/exemptedextensions/)&lt;br /&gt;
* Bugtracking&lt;br /&gt;
** Target Milestones for an independent release schedule&lt;br /&gt;
** Component extensions plus subcomponent &lt;br /&gt;
* Developing - branch/release model - choice of the developer&lt;br /&gt;
* Code required for localization, e.g. the module transex3 and modules it depends on, needs to be moved to the SDK.&lt;br /&gt;
&lt;br /&gt;
== Releasing ==&lt;br /&gt;
&lt;br /&gt;
* [[Extensions/website/submission]]&lt;br /&gt;
* A list current extensions and their extensions is available at [[Extensions_Overview]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82821</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82821"/>
		<updated>2008-06-13T11:28:27Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise. Keep local naming conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public). Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Use a Single Return Value (ReturnVal) =====&lt;br /&gt;
Do not change parameter references in methods as a substitution for return values. &lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly. Keep in mind that throwing exceptions can hinder closing resources. In those cases use finally to guarantee closing resources.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
* [http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html Programming With Assertions/Sun Microsystems]&lt;br /&gt;
* [[Assertions in NetBeans]]&lt;br /&gt;
&lt;br /&gt;
===== Exception Handling (Exception) =====&lt;br /&gt;
Use exception-handling to handle errors, this helps everyone to identify and locate errors. Try to use the standard exceptions of the Java API and avoid empty Catch-blocks.&lt;br /&gt;
* [http://today.java.net/pub/a/today/2003/12/04/exceptions.html Three Rules for Effective Exception Handling by Jim Cushing/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
===== Casting (Cast) =====&lt;br /&gt;
Avoid casting values to reduce ClassCastException or may be a data loss. Generics or methods as toString(), intValue() etc. offer a way to avoid casts.&lt;br /&gt;
&lt;br /&gt;
* [http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html Conversions and Promotions/Sun Microsystems]&lt;br /&gt;
* [http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html Generics/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
See the [[Java Best Practices]] page for hints and best practices for Java programming.&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Best_Practices&amp;diff=82820</id>
		<title>Java Best Practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Best_Practices&amp;diff=82820"/>
		<updated>2008-06-13T11:27:30Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is meant to collect best practices for Java programming generally and within the OpenOffice.org environment. It is an amendment to the [[Java Coding Standards]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Collections ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Threading ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
===== Query Interface (Qifc) =====&lt;br /&gt;
UnoRuntime.queryInterface() is costly regarding performance. When it has to be used in loops, it should be done outside of the loop and the result reused inside.&lt;br /&gt;
&lt;br /&gt;
===== License (Lic) =====&lt;br /&gt;
tbd&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82819</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82819"/>
		<updated>2008-06-13T11:25:00Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise. Keep local naming conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public). Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Use a Single Return Value (ReturnVal) =====&lt;br /&gt;
Do not change parameter references in methods as a substitution for return values. &lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly. Keep in mind that throwing exceptions can hinder closing resources. In those cases use finally to guarantee closing resources.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
* [http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html Programming With Assertions/Sun Microsystems]&lt;br /&gt;
* [[Assertions in NetBeans]]&lt;br /&gt;
&lt;br /&gt;
===== Exception Handling (Exception) =====&lt;br /&gt;
Use exception-handling to handle errors, this helps everyone to identify and locate errors. Try to use the standard exceptions of the Java API and avoid empty Catch-blocks.&lt;br /&gt;
* [http://today.java.net/pub/a/today/2003/12/04/exceptions.html Three Rules for Effective Exception Handling by Jim Cushing/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
===== Casting (Cast) =====&lt;br /&gt;
Avoid casting values to reduce ClassCastException or may be a data loss. Generics or methods as toString(), intValue() etc. offer a way to avoid casts.&lt;br /&gt;
&lt;br /&gt;
* [http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html Conversions and Promotions/Sun Microsystems]&lt;br /&gt;
* [http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html Generics/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Best_Practices&amp;diff=82818</id>
		<title>Java Best Practices</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Best_Practices&amp;diff=82818"/>
		<updated>2008-06-13T11:24:37Z</updated>

		<summary type="html">&lt;p&gt;Jj: New page: This page is meant to collect best practices for Java programming generally and within the OpenOffice.org environment. It is an amendment to the [Java Coding Standards].   ==== Collections...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is meant to collect best practices for Java programming generally and within the OpenOffice.org environment. It is an amendment to the [Java Coding Standards].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Collections ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Threading ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
===== Query Interface (Qifc) =====&lt;br /&gt;
UnoRuntime.queryInterface() is costly regarding performance. When it has to be used in loops, it should be done outside of the loop and the result reused inside.&lt;br /&gt;
&lt;br /&gt;
===== License (Lic) =====&lt;br /&gt;
tbd&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82815</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82815"/>
		<updated>2008-06-13T10:35:05Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise. Keep local naming conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public). Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Use a Single Return Value (ReturnVal) =====&lt;br /&gt;
Do not change parameter references in methods as a substitution for return values. &lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly. Keep in mind that throwing exceptions can hinder closing resources. In those cases use finally to guarantee closing resources.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
* [http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html Programming With Assertions/Sun Microsystems]&lt;br /&gt;
* [[Assertions in NetBeans]]&lt;br /&gt;
&lt;br /&gt;
===== Exception Handling (Exception) =====&lt;br /&gt;
Use exception-handling to handle errors, this helps everyone to identify and locate errors. Try to use the standard exceptions of the Java API and avoid empty Catch-blocks.&lt;br /&gt;
* [http://today.java.net/pub/a/today/2003/12/04/exceptions.html Three Rules for Effective Exception Handling by Jim Cushing/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
===== Casting (Cast) =====&lt;br /&gt;
Avoid casting values to reduce ClassCastException or may be a data loss. Generics or methods as toString(), intValue() etc. offer a way to avoid casts.&lt;br /&gt;
&lt;br /&gt;
* [http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html Conversions and Promotions/Sun Microsystems]&lt;br /&gt;
* [http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html Generics/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
===== Query Interface (Qifc) =====&lt;br /&gt;
UnoRuntime.queryInterface() is costly regarding performance. When it has to be used in loops, it should be done outside of the loop and the result reused inside.&lt;br /&gt;
&lt;br /&gt;
===== License (Lic) =====&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82814</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=82814"/>
		<updated>2008-06-13T10:29:01Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise. Keep local naming conventions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public). Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Use a Single Return Value (ReturnVal) =====&lt;br /&gt;
Do not change parameter references in methods as a substitution for return values. &lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly. Keep in mind that throwing exceptions can hinder closing resources. In those cases use finally to guarantee closing resources.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
* [http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html Programming With Assertions/Sun Microsystems]&lt;br /&gt;
* [[Assertions in NetBeans]]&lt;br /&gt;
&lt;br /&gt;
===== Exception Handling (Exception) =====&lt;br /&gt;
Use exception-handling to handle errors, this helps everyone to identify and locate errors. Try to use the standard exceptions of the Java API and avoid empty Catch-blocks.&lt;br /&gt;
* [http://today.java.net/pub/a/today/2003/12/04/exceptions.html Three Rules for Effective Exception Handling by Jim Cushing/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
===== Casting (Cast) =====&lt;br /&gt;
Avoid casting values to reduce ClassCastException or may be a data loss. Generics or methods as toString(), intValue() etc. offer a way to avoid casts.&lt;br /&gt;
&lt;br /&gt;
* [http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html Conversions and Promotions/Sun Microsystems]&lt;br /&gt;
* [http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html Generics/Sun Microsystems]&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
===== Unambiguous Overloads (Over) =====&lt;br /&gt;
&amp;#039;&amp;#039;Can integer overloads of function parameters be ambiguous in Java?&amp;#039;&amp;#039;&lt;br /&gt;
Let all overloads of a function be unambiguous. Be aware of default arguments and integral vs. pointer parameters. Provide either only one version of an integral type or (rarely) overloads for all Java integer-types. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== OpenOffice.org ====&lt;br /&gt;
===== Query Interface (Qifc) =====&lt;br /&gt;
UnoRuntime.queryInterface() is costly regarding performance. When it has to be used in loops, it should be done outside of the loop and the result reused inside.&lt;br /&gt;
&lt;br /&gt;
===== License (Lic) =====&lt;br /&gt;
tbd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81844</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81844"/>
		<updated>2008-06-06T11:44:17Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public). Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert (&amp;#039;&amp;#039;what is the way to do this in Java?&amp;#039;&amp;#039;) liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
===== Unambiguous Overloads (Over) =====&lt;br /&gt;
&amp;#039;&amp;#039;Can integer overloads of function parameters be ambiguous in Java?&amp;#039;&amp;#039;&lt;br /&gt;
Let all overloads of a function be unambiguous. Be aware of default arguments and integral vs. pointer parameters. Provide either only one version of an integral type or (rarely) overloads for all Java integer-types. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81843</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81843"/>
		<updated>2008-06-06T11:37:35Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public).&lt;br /&gt;
&lt;br /&gt;
===== Private Data (PrivData) =====&lt;br /&gt;
Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert (&amp;#039;&amp;#039;what is the way to do this in Java?&amp;#039;&amp;#039;) liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
===== Unambiguous Overloads (Over) =====&lt;br /&gt;
&amp;#039;&amp;#039;Can integer overloads of function parameters be ambiguous in Java?&amp;#039;&amp;#039;&lt;br /&gt;
Let all overloads of a function be unambiguous. Be aware of default arguments and integral vs. pointer parameters. Provide either only one version of an integral type or (rarely) overloads for all Java integer-types. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81842</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81842"/>
		<updated>2008-06-06T11:36:46Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public).&lt;br /&gt;
&lt;br /&gt;
===== Private Data (PrivData) =====&lt;br /&gt;
Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert (&amp;#039;&amp;#039;what is the way to do this in Java?&amp;#039;&amp;#039;) liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
===== Unambiguous Overloads (Over) =====&lt;br /&gt;
&amp;#039;&amp;#039;Can integer overloads of function parameters be ambiguous in Java?&amp;#039;&amp;#039;&lt;br /&gt;
Let all overloads of a function be unambiguous. Be aware of default arguments and integral vs. pointer parameters. Provide either only one version of an integral type or (rarely) overloads for all Java integer-types. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81841</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81841"/>
		<updated>2008-06-06T11:35:40Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public).&lt;br /&gt;
&lt;br /&gt;
===== Private Data (PrivData) =====&lt;br /&gt;
Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Static Initializers =====&lt;br /&gt;
Avoid usage of classes other than from the Java class libraries in static initializers.&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Return Values (Return) =====&lt;br /&gt;
Every method needs to return the correct value at every function return point. &lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Better not expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert (&amp;#039;&amp;#039;what is the way to do this in Java?&amp;#039;&amp;#039;) liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes. If a subclass is allowed to omit the implementation of a given method, then this should be listed in the documentation of the base classes&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
===== Instantiate Only Leaves (Leaves) =====&lt;br /&gt;
In an inheritance tree of virtual classes, instantiate only the leaves. Make constructors of base classe protected, so instantiation is impossible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
All parameters used for output should be at the end of the parameter list. Additionally it needs to be stated in the method documentation if a parameter is an output parameter.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
===== Unambiguous Overloads (Over) =====&lt;br /&gt;
&amp;#039;&amp;#039;Can integer overloads of function parameters be ambiguous in Java?&amp;#039;&amp;#039;&lt;br /&gt;
Let all overloads of a function be unambiguous. Be aware of default arguments and integral vs. pointer parameters. Provide either only one version of an integral type or (rarely) overloads for all Java integer-types. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81839</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=81839"/>
		<updated>2008-06-06T11:28:50Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Rules for Java */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
==== Code Conventions ====&lt;br /&gt;
===== Java Code Conventions (Conv) =====&lt;br /&gt;
Follow Sun&amp;#039;s Java Code Conventions [http://java.sun.com/docs/codeconv/CodeConventions.pdf] unless one of the rules below says otherwise.&lt;br /&gt;
&lt;br /&gt;
==== Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass. In these cases, if using Java5 or later, the @Override annotation must be used.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public).&lt;br /&gt;
&lt;br /&gt;
===== Private Data (PrivData) =====&lt;br /&gt;
Make all class member data private.&lt;br /&gt;
&lt;br /&gt;
===== Single Class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
===== Explicit Imports (Import) =====&lt;br /&gt;
Don&amp;#039;t import complete packages but name the classes to import explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants &lt;br /&gt;
&amp;lt;br&amp;gt; &amp;#039;&amp;#039;seems to be the same as MagNum ?&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
or are there variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== No Magic Numbers (MagNum) =====&lt;br /&gt;
Do not use unnamed constants in your code. Give them descriptive names.&lt;br /&gt;
&lt;br /&gt;
===== Return Values (Return) =====&lt;br /&gt;
Every method needs to return the correct value at every function return point. &lt;br /&gt;
&lt;br /&gt;
===== Keep Internals (Internal) =====&lt;br /&gt;
Be careful not to expose member variables by giving out mutable class references as return values. Example: String (immutable) instead of StringBuffer (mutable).&lt;br /&gt;
&lt;br /&gt;
===== Parentheses (Paren) =====&lt;br /&gt;
Always use parentheses to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly.&lt;br /&gt;
&lt;br /&gt;
===== Assert Assumptions (Assert) =====&lt;br /&gt;
Assert (&amp;#039;&amp;#039;what is the way to do this in Java?&amp;#039;&amp;#039;) liberally to document internal assumptions and invariants. Don&amp;#039;t use assertions for runtime errors. Ensure that assertions don&amp;#039;t perform side effects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== No Switch on Types (NoSoT) =====&lt;br /&gt;
Don&amp;#039;t use switch, when the cases represent types. Prefer polymorphism.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;#039;&amp;#039;is that really a rule? possible with non-integer values in Java?&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Design ====&lt;br /&gt;
===== No Cyclic Dependencies (CyclDep) =====&lt;br /&gt;
Avoid cyclic dependencies.&lt;br /&gt;
&lt;br /&gt;
===== No Premature Generalization (PremGen) =====&lt;br /&gt;
Do not generalize before the second occurrence and no later than the third.&lt;br /&gt;
&lt;br /&gt;
===== One Responsibility (OneResp) =====&lt;br /&gt;
Give one class one cohesive responsibility.&lt;br /&gt;
&lt;br /&gt;
===== How to Inherit (Inherit) =====&lt;br /&gt;
Inherit to be reused, not to reuse. Else prefer composition over inheritance.&lt;br /&gt;
&lt;br /&gt;
===== Liskov Substitution Principle (LSP) =====&lt;br /&gt;
Everything one can do with a base class, or is offered by an interface, has to be doable with all derived/implementing classes.&lt;br /&gt;
&lt;br /&gt;
===== Instantiate Only Leaves (Leaves) =====&lt;br /&gt;
In an inheritance tree of virtual classes, instantiate only the leaves. Make constructors of base classe protected, so instantiation is impossible.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Security ====&lt;br /&gt;
===== Validate Input (ValInput) =====&lt;br /&gt;
Validate all input coming from external&lt;br /&gt;
&lt;br /&gt;
===== No Types Overflows (TypesOver) =====&lt;br /&gt;
Be aware that primitive types have limited range.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Interfaces ====&lt;br /&gt;
===== Consistency (Consi) =====&lt;br /&gt;
Give the same thing the same name everywhere in the interface.&lt;br /&gt;
Let parameters with the same semantic always occur in the same order in different functions.&lt;br /&gt;
&lt;br /&gt;
===== Minimality (Min) =====&lt;br /&gt;
Provide only one way to do anything. Move functions that do not belong to the core functionality of the interface to more appropriate locations.&lt;br /&gt;
For classes: Put convenience functions as non-member functions in the same namespace beside the class.&lt;br /&gt;
&lt;br /&gt;
===== Unambiguous Overloads (Over) =====&lt;br /&gt;
&amp;#039;&amp;#039;Can integer overloads of function parameters be ambiguous in Java?&amp;#039;&amp;#039;&lt;br /&gt;
Let all overloads of a function be unambiguous. Be aware of default arguments and integral vs. pointer parameters. Provide either only one version of an integral type or (rarely) overloads for all Java integer-types. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=79112</id>
		<title>Java Coding Standards</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Java_Coding_Standards&amp;diff=79112"/>
		<updated>2008-05-30T11:12:00Z</updated>

		<summary type="html">&lt;p&gt;Jj: First draft of Java Coding Standards&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Purpose ===&lt;br /&gt;
See the [[Cpp Coding Standards|C++ Coding Standards]] for the general purpose of Standards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rules for Java ===&lt;br /&gt;
====  Declarations: Scoping and Names ====&lt;br /&gt;
===== Naming Conventions (Names) =====&lt;br /&gt;
Descriptive variable, constant and method names must be used in accord with naming conventions.&lt;br /&gt;
&lt;br /&gt;
===== Javadoc Headers (Javadoc) =====&lt;br /&gt;
Every class / non-private method needs to have a complete header in accordance with the javadoc style. When overriding a method of a superclass this header can be omitted if the content of the superclass description is still true for the implementation of the subclass.&lt;br /&gt;
&lt;br /&gt;
===== Comments (Comments) =====&lt;br /&gt;
Use enough comments in the code to make it understandable.&lt;br /&gt;
&lt;br /&gt;
===== Access Modifiers (Access) =====&lt;br /&gt;
All attributes / methods must have appropriate access modifiers (private/protected/public).&lt;br /&gt;
&lt;br /&gt;
===== Single class (SingleClass) =====&lt;br /&gt;
Each file must only contain one class (except inner classes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Implementation Details ====&lt;br /&gt;
===== Static vs. Non-Static (Static) =====&lt;br /&gt;
Are there static attributes / methods that should be non-static or vice-versa?&lt;br /&gt;
&lt;br /&gt;
===== Variable Initialization (Init) =====&lt;br /&gt;
All variables need to be properly initialized.&lt;br /&gt;
&lt;br /&gt;
===== Constants (Const) =====&lt;br /&gt;
Are there literal constants that should be named constants or are the variables that should be constants?&lt;br /&gt;
&lt;br /&gt;
===== Return Values (Return) =====&lt;br /&gt;
Every method needs to return the correct value at every function return point.&lt;br /&gt;
&lt;br /&gt;
===== Paranthesis (Paren) =====&lt;br /&gt;
Always use paranthesis to avoid ambiguity.&lt;br /&gt;
&lt;br /&gt;
===== Close I/O Resources (IO) =====&lt;br /&gt;
Opened files or connections need to be closed explicitly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Control Flow ====&lt;br /&gt;
===== Switch Default (Switch) =====&lt;br /&gt;
Every switch statement must have a default case.&lt;br /&gt;
&lt;br /&gt;
===== Switch Fall-through (FallThrough) =====&lt;br /&gt;
Every case of a switch statement should be ended by a break statement. If that is not the case and a fall-through is intended, then this must be marked by a comment.&lt;br /&gt;
&lt;br /&gt;
===== If to Switch (IfToSwitch) =====&lt;br /&gt;
Nested if-statements should to be converted to switch-statements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Modularity ====&lt;br /&gt;
===== Duplicate Code (Dupli) =====&lt;br /&gt;
Avoid and remove duplicate code. Put common code into an extra function.&lt;br /&gt;
Duplicate code may be okay, if otherwise dependencies among so far unrelated modules would be created. &lt;br /&gt;
&lt;br /&gt;
===== Use of Class Library Classes (Reuse) =====&lt;br /&gt;
Classes and methods from the Java class libraries should be used instead of creating an own implementation.&lt;br /&gt;
&lt;br /&gt;
===== Make Functions Short (Short) =====&lt;br /&gt;
Make functions short. A comment line or large control structures are hints to extract functions, making the containing function more concise and readable. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The first draft of these guidelines was based on the [[Perl Coding Standards]] and the [http://www.fing.edu.uy/inco/cursos/ingsoft/iis/files/JavaChk.html Java Inspection Checklist].&lt;br /&gt;
----&lt;br /&gt;
[[Category:Coding Standards]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease30&amp;diff=78216</id>
		<title>OOoRelease30</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease30&amp;diff=78216"/>
		<updated>2008-05-21T12:28:04Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* OOo 3.0 Final */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= OOo 3.0 =&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;s&amp;gt;first translation handover: January 18th, 2008&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;UI and [[Feature_freeze]]: March 6th, 2008&amp;lt;/s&amp;gt;&lt;br /&gt;
* &amp;lt;s&amp;gt;[[Translation for 3.0|Translation update 3.0]] start: March 13th, 2008&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== OOo 3.0 Beta ==&lt;br /&gt;
&lt;br /&gt;
* Translation update 3.0 delivery: April 3rd, 2008, code freeze for Beta&lt;br /&gt;
* Code Freeze: April 3rd, 2008&lt;br /&gt;
* begin TCM sanity testing: April 10th, 2008&lt;br /&gt;
* &amp;quot;last cws integration&amp;quot; for Beta: April 17th, 2008&lt;br /&gt;
** draft for [[OOoRelease30_Readme | OOo 3.0 Readme]]&lt;br /&gt;
* OpenOffice.org 3.0 Beta: April 30th, 2008&lt;br /&gt;
** BEA300_m1 build: April 24th, 2008&lt;br /&gt;
** BEA300_m2 build: April 28th, 2008 -&amp;gt; available for download April 30th&lt;br /&gt;
** May 5th: release status meeting: decision for releasing m2 as OOo 3.0 Beta -&amp;gt; official release announcement May 7th.&lt;br /&gt;
&lt;br /&gt;
* TCM Beta testing: May 5th - 26th, 2008&lt;br /&gt;
&lt;br /&gt;
There is the [http://www.openoffice.org/issues/show_bug.cgi?id=87736 Meta issue 87736] to track the potential stoppers for the beta release. If anyone would like to raise an issue for the release, please add the issue id of the issue you want to raise as dependent issue to the Meta Issue and drop a note on releases@openoffice.org, that and why you want to declare that issue as a stopper for releases.&lt;br /&gt;
&lt;br /&gt;
Please note that there is no special IZ target and no cws target for the Beta release. The branch &amp;quot;BEA300&amp;quot; for the 3.0 Beta release will be opened in the week of April 7th to 11th once the childworkspace &amp;lt;changefileheader&amp;gt; has been integrated. Only stoppers for the Beta release will get accepted on that branch.&lt;br /&gt;
&lt;br /&gt;
please also see [[ReleaseStatus_Minutes#Agenda_for_next_meeting]] for decision making.&lt;br /&gt;
&lt;br /&gt;
=== Release Plan for  3.0.0 Beta release ===&lt;br /&gt;
&lt;br /&gt;
{| border = &amp;quot;1&amp;quot; CELLPADDING=2&lt;br /&gt;
|-&lt;br /&gt;
! Task	!!  Who	 !! Deadline !!	Comments&lt;br /&gt;
|-&lt;br /&gt;
! last cws integration for Beta build / BEA300_mx &lt;br /&gt;
| mh, RE	  ||  ||done&lt;br /&gt;
|-&lt;br /&gt;
! release notes			 &lt;br /&gt;
|  mh, ja  ||        ||  &amp;#039;final release&amp;#039; release notes to be provided by Erwin&lt;br /&gt;
|-&lt;br /&gt;
! Setup Guides	&lt;br /&gt;
|           || 		 ||&lt;br /&gt;
|-&lt;br /&gt;
! Upload of Beta build	 &lt;br /&gt;
| ja	   || done  || &amp;#039;&amp;#039;&amp;#039;full install sets for:&amp;#039;&amp;#039;&amp;#039; en-US da de es fr it ja nl ko pl ru sv pt-BR zh-CN zh-TW gl&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;language packs for:&amp;#039;&amp;#039;&amp;#039; af ar as-IN be-BY bg br bs ca cs da de dz el en-GB en-ZA es et fi fr ga gu he hi-IN hr hu it ja ka km ko ku lt mk ml-IN mr-IN nb ne nl nn nr ns or-IN pa-IN pl pt pt-BR rw sh sk sl sr ss st sv sw-TZ ta te-IN tg th ti-ER tr ts uk ur-IN ve vi xh zh-CN zh-TW zu &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
! Trigger QA of final builds  &lt;br /&gt;
|  ja	||  || &lt;br /&gt;
|-&lt;br /&gt;
! Track Status of localized builds  &lt;br /&gt;
| ja	 || not tracked || [http://qatrack.services.openoffice.org]&lt;br /&gt;
|-&lt;br /&gt;
! Publish status of [http://qa.openoffice.org/qatesttool automated GUI testing]&lt;br /&gt;
| [[User:wg|wg]]     ||  || &lt;br /&gt;
|-&lt;br /&gt;
! Update of Beta pages&lt;br /&gt;
| ja      	||  || done&lt;br /&gt;
|-&lt;br /&gt;
! QA of English Beta builds  &lt;br /&gt;
|  ja	||   || &lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK		 &lt;br /&gt;
|  ja	||         || no SDK update for Beta build&lt;br /&gt;
|-&lt;br /&gt;
! Update of URE		 &lt;br /&gt;
|  ja	||     || no URE update for Beta build&lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK Release Notes and update of redirect page &lt;br /&gt;
[http://download.openoffice.org/sdk.html download.openoffice.org/sdk.html]&lt;br /&gt;
|  jsc/ja	||           || not necessary for Beta build&lt;br /&gt;
|-&lt;br /&gt;
! Upload of src tarballs	&lt;br /&gt;
|  ja   ||  || done&lt;br /&gt;
|-&lt;br /&gt;
! msg to announce@ooo content&lt;br /&gt;
| louis || 	 || &lt;br /&gt;
|-&lt;br /&gt;
! &lt;br /&gt;
|  ja ||  || &lt;br /&gt;
|-&lt;br /&gt;
! download pages&lt;br /&gt;
| ja || || done http://download.openoffice.org/3.0beta&lt;br /&gt;
|-&lt;br /&gt;
! upload of solver tarballs &lt;br /&gt;
| ja ||   || not for Beta build&lt;br /&gt;
|-&lt;br /&gt;
! notification of mirrors &lt;br /&gt;
| ja	  ||  || done&lt;br /&gt;
|-&lt;br /&gt;
! Update of Bittorrents	&lt;br /&gt;
|  (mike!)	|| 	 || &lt;br /&gt;
|-&lt;br /&gt;
! Update of P2P page&lt;br /&gt;
| antbryan  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
! press kit update&lt;br /&gt;
| jpmcc/lsp 	||  ||&lt;br /&gt;
|-&lt;br /&gt;
! press release/alert&lt;br /&gt;
| jpmcc  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
! homepage  &lt;br /&gt;
| louis ||		|| &lt;br /&gt;
|-&lt;br /&gt;
! release	&lt;br /&gt;
|  all		|| 		 ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OOo 3.0 Final ==&lt;br /&gt;
&lt;br /&gt;
* UI string fixes, translation handover: June 5th, 2008&lt;br /&gt;
* [[code_freeze]], last regular translation delivery: July 4th, 2008&lt;br /&gt;
* l10n CWS builds available: July 11th, 2008&lt;br /&gt;
* TCM sanity testing on CWS builds: July 11-17th, 2008&lt;br /&gt;
* [[Last cws integration]] for fixes: July 18th, 2008&lt;br /&gt;
* release candidate for all languages: July 25th, 2008, begin of TCM testing&lt;br /&gt;
* Product release: September 2nd, 2008&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Download these events as an iCal-File: [[Media:Ooo3-events-2008.doc]]. (Rename to .ics after download)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
{{OOo Releases}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74770</id>
		<title>OOoRelease30 BEA300</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74770"/>
		<updated>2008-04-25T15:55:48Z</updated>

		<summary type="html">&lt;p&gt;Jj: added obo28, sw30beta02 and dba30beta1 to the list, removed dba30c&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since there is no EIS target OOo 3.0 Beta ( for good reason) we will track with this table which cws will go into which codeline. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;BEA300&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;DEV300&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| mav32 (88424, 88435) (cloned, integrated m1) &lt;br /&gt;
| hr50 (Linux 64 bit changes) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| native148 (installation of language packs, 88445) (cloned, integrated m1) &lt;br /&gt;
| Cmcfixes43 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;dba30c (cloned)&amp;lt;/strike&amp;gt;&lt;br /&gt;
| mib07 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sw30beta01 (cloned) &lt;br /&gt;
| aw055 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| registrationurl (cloned, integrated m1) &lt;br /&gt;
| tl50 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30beta (cloned) &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| obr08b (cloned)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ab49 (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| pdfimportfix (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| tkr12&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| clbetafix01&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| l10nfixooo3b&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| obo28&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sw30beta02&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30beta1&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74648</id>
		<title>OOoRelease30 BEA300</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74648"/>
		<updated>2008-04-24T14:50:40Z</updated>

		<summary type="html">&lt;p&gt;Jj: added l10nfixooo3b to the list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since there is no EIS target OOo 3.0 Beta ( for good reason) we will track with this table which cws will go into which codeline. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;BEA300&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;DEV300&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| mav32 (88424, 88435) (cloned, integrated m1) &lt;br /&gt;
| hr50 (Linux 64 bit changes) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| native148 (installation of language packs, 88445) (cloned,integrated m1) &lt;br /&gt;
| Cmcfixes43 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30c (cloned) &lt;br /&gt;
| mib07 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sw30beta01 (cloned) &lt;br /&gt;
| aw055 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| registrationurl (cloned, integrated m1) &lt;br /&gt;
| tl50 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30beta (cloned) &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| obr08b (cloned)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ab49 (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| pdfimportfix (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| tkr12&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| clbetafix01&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| l10nfixooo3b&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74647</id>
		<title>OOoRelease30 BEA300</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74647"/>
		<updated>2008-04-24T14:42:15Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since there is no EIS target OOo 3.0 Beta ( for good reason) we will track with this table which cws will go into which codeline. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;BEA300&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;DEV300&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| mav32 (88424, 88435) (cloned, integrated m1) &lt;br /&gt;
| hr50 (Linux 64 bit changes) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| native148 (installation of language packs, 88445) (cloned,integrated m1) &lt;br /&gt;
| Cmcfixes43 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30c (cloned) &lt;br /&gt;
| mib07 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sw30beta01 (cloned) &lt;br /&gt;
| aw055 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| registrationurl (cloned, integrated m1) &lt;br /&gt;
| tl50 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30beta (cloned) &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| obr08b (cloned)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ab49 (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| pdfimportfix (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| tkr12&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| clbetafix01&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74646</id>
		<title>OOoRelease30 BEA300</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease30_BEA300&amp;diff=74646"/>
		<updated>2008-04-24T14:41:40Z</updated>

		<summary type="html">&lt;p&gt;Jj: added tkr12 and clbetafix01 to the list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Since there is no EIS target OOo 3.0 Beta ( for good reason) we will track with this table which cws will go into which codeline. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
| BEA300 &lt;br /&gt;
| DEV300 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| mav32 (88424, 88435) (cloned, integrated m1) &lt;br /&gt;
| hr50 (Linux 64 bit changes) &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| native148 (installation of language packs, 88445) (cloned,integrated m1) &lt;br /&gt;
| Cmcfixes43 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30c (cloned) &lt;br /&gt;
| mib07 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sw30beta01 (cloned) &lt;br /&gt;
| aw055 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| registrationurl (cloned, integrated m1) &lt;br /&gt;
| tl50 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| dba30beta (cloned) &lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| obr08b (cloned)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ab49 (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| pdfimportfix (cloned, integrated m1)&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| tkr12&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| clbetafix01&lt;br /&gt;
| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55101</id>
		<title>Infrastructure Requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55101"/>
		<updated>2007-11-27T16:35:57Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following list contains the major functionalities expected from the &lt;br /&gt;
OpenOffice.org infrastructure. The bullet points have been collected with focus on &lt;br /&gt;
software developerment but are also applicable for the user oriented needs.&lt;br /&gt;
&lt;br /&gt;
== Prioritized Item List ==&lt;br /&gt;
&lt;br /&gt;
# Framework / Core&lt;br /&gt;
#* lightweight role / user administration / SSH key management&amp;lt;br&amp;gt;[incl. authorization / authentication interfaces for cmdline / web based apps]&amp;lt;br&amp;gt;(e.g. LDAP directory, could be placed on the SVN/CVS server)&lt;br /&gt;
#* SubProjects and SubProject Categories:&lt;br /&gt;
#** The OpenOffice.org project is being organized into different SubProjects having their own DNS entries for WebSpace and Mailinglists eg. xml.openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; see also DNS&lt;br /&gt;
#** Subprojects are classified into the 3 subproject catagories Accepted Project, Incubator Project, Native Language Project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Access rights configurable for individual Subprojects; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** A &amp;lt;b&amp;gt;Domain Developer&amp;lt;/b&amp;gt; role gives access rights to all subprojects of the openoffice.org project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** documents and files feature per subproject where documents can be uploaded; edited etc.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** search feature - search in all OpenOffice.org subprojects or inside current OpenOffice.org subproject; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** project announcements; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sign-on&lt;br /&gt;
#** Single sign-on across the different applications; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** API to enable third-party applications to use the single sign-on; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Site Search&lt;br /&gt;
#** covering web pages, issues, mailing lists; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** no of pages: ~450k&lt;br /&gt;
# DNS&lt;br /&gt;
#* Required Domain Name Service DNS Entries:&lt;br /&gt;
#** DNS Records for SubProjects of openoffice.org eg. gsl.openoffice.org, api.openoffice.org, tools.openoffice.org, de.openoffice.org. This includes Entries for Native Language Communities for example de.openoffice.org. All entries must have IP Address under which the sub-projects web content is being served and also MX records for the projects mailing lists.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for SubDomain services.openoffice.org in control of DNS Server operated by StarOffice department, for tools like the Environment Information System (EIS); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for download.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for support.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for contributing.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for about.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Web pages&lt;br /&gt;
#* subprojects need own DNS entries, see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; external sites contain links to web content of subprojects which we would otherwise break&lt;br /&gt;
#* special purpose web pages on own website (download, support, contributing, about), see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;i&amp;gt;If not otherwise possible these may be configured as individual subprojects but it´s preferable to have the www.openoffice.org main site plus these special sites belong to just one subproject named website where content developers can join&amp;lt;/i&amp;gt;.&lt;br /&gt;
#* Navigation Bar on top available to all sub-projects and special purpose websites; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Navigation Bar left, project specific; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* global info boxes on right side of MyPage, with eg. Community Council Announcements, Download section&lt;br /&gt;
#* project specific announcements on MyPage; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Default Content of left navigation bar per subproject but overrideable per subdirectory; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Migration for files specifying content of left navigation bar in subdirectories; &amp;#039;&amp;#039;&amp;#039;nice to have&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Content modification:&lt;br /&gt;
#* all webpages in the repository are automatically surrounded by standard header (including login possibility, logo and top navigation bar), procject/directory specific left navigation bar and standard footer (including eg. copyright information); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* possibility to get HTML pages without the surrounding navigation, header and footer content via /nonav/ in URL; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Version Control System for source code&amp;lt;br&amp;gt;[For web publishing and documentation see CMS.]&amp;lt;br&amp;gt;[Some time ago we created a requirements list for a new OpenOffice.org SCM system. This can be found here: http://wiki.services.openoffice.org/wiki/SCM_Requirements.]&amp;lt;br&amp;gt;The most important ones (distilled from the mentioned list):&lt;br /&gt;
#* Clients:&lt;br /&gt;
#** Clients must be available for all our supported platforms; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;&lt;br /&gt;
#* Branches:&lt;br /&gt;
#** SCM system needs to easily support a multitude of branches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt; not supported for Mercurial&amp;lt;/font&amp;gt;&lt;br /&gt;
#** Merge tracking should be either available or can be implemented by hand; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Authentication:&lt;br /&gt;
#** Passwords must be securely transmitted to prevent malicious commits; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
#* Import:&lt;br /&gt;
#** Import from CVS needs to be history preserving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS should be customizable (for example leave out old branches etc); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS needs to be doable in days during final migration phase; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion with fsfs backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Subversion with bdb backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Mercurial&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Performance:&lt;br /&gt;
#** The performance of common used operations (checkout, commit, log, merge) should not be significantly slower than CVS as presented by CN; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Replication:&lt;br /&gt;
#** There needs to be a way to replicate the repository to save bandwidth; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Binary files, LF/CR conversions&lt;br /&gt;
#** Proper handling of binary files; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#** LF/CR conversions; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;;  &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* admin access for deletion, move&lt;br /&gt;
#* functionality similar to cvsup, anoncvs, viewcvs, notification mails; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* simple permission system; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sudo root access for selected admins; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Functionality similar to bonsai, lxr, fisheye / CIA etc.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#Bugtracking&lt;br /&gt;
#* Number of issues inside OOo:&lt;br /&gt;
#** total 82600 (closed 57693)&lt;br /&gt;
#** number of distinct submitters: 18500&lt;br /&gt;
#** number of distinct assignees: 1600&lt;br /&gt;
#** number of attached files: 49000&lt;br /&gt;
#* States:&lt;br /&gt;
#** ASSIGNED, CLOSED, NEW, REOPEN, RESOLVED, STARTED, UNCONFIRMED, VERIFIED; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Resolution:&lt;br /&gt;
#** DUPLICATE, FIXED, INVALID, LATER, REMIND, WONTFIX, WORKSFORME; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (Further details about the workflow and the relationship between State and Resolution http://www.openoffice.org/scdocs/issue_lifecycle.html)&lt;br /&gt;
#* Types:&lt;br /&gt;
#** DEFECT, ENHANCEMENT, FEATURE, PATCH, TASK; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (may be PATCH can be dropped later -&amp;gt; Was a request for CollabNet)&lt;br /&gt;
#* Additional fields and values:&lt;br /&gt;
#* Import- and export of data:&lt;br /&gt;
#** XML; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** remove export as &amp;#039;Word&amp;#039;/&amp;#039;Excel&amp;#039;; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Attachments:&lt;br /&gt;
#** Possibility to attach any type of file to the issue, eg. OpenOffice.org documents, pictures, source code, source code patches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Keywords:&lt;br /&gt;
#** List of Keywords or tags to assign to issues as a method to organize QA work; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* central configuration; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Email-notification of modified issues; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* One issue-tracking instance for more than one project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Wiki (CMS)&lt;br /&gt;
#* MediaWiki, version ? ; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Required extensions/features:&lt;br /&gt;
#** DisplayTitle feature ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** DynamicPageList; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Syntax Highlighter (GeSHi) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Breadcrumbs ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Hierarchical pages ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs;&lt;br /&gt;
#** Category Tree; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfGFlashExtension; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfLabeledSectionTransclusion ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Parser extensions (own implementation) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#* Possibility of installing own extensions ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Number of categories: 200&lt;br /&gt;
#* Number of pages: 7723 within 2000 content pages (Docs will soon increase this number by 900 (DevGuide) and possibly another 2,000 (Help)&lt;br /&gt;
#* Number of uploaded files: 2200&lt;br /&gt;
#* Number of edit/day: 7&lt;br /&gt;
#* Number of users: 10181&amp;lt;br&amp;gt;Further details http://wiki.services.openoffice.org/wiki/Special:Statistics&lt;br /&gt;
#* allow branding; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localized UI; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* versioned; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* namespaces; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* reuse of content (templates, server-side-include); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* publication routes for wiki-based documentation (ODF/PDF); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localization of wiki-based content; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Mailing Lists&lt;br /&gt;
#* Types:&lt;br /&gt;
#**unmoderated;open to anyone(mostly unused at collab); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**discuss;subcribed users Post/Read allowed,archive Read allowed others moderated (most common); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**moderated;Post always moderated; Read archive; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**allowed poster:&lt;br /&gt;
#**domain wide allowed poster:&lt;br /&gt;
#**sublist;subcribed to another List; gathering global Information eg; issues@&amp;lt;project&amp;gt;.openoffice.org to ML issues@openoffice; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* non-site-member subscription (external archives); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Archiving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Toplevel mailinglists: allcvs@openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* migrating current Archives; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* round about 850 Mailinglists with different types to migrate; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* SPAM / Virus protected (Important especially for agenda@council.openoffice.org. See &amp;quot;Comm b/w CC and CMs&amp;quot; below); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* [RSS] for easy syndication of new from various parts of the site, including the home page and mac port pages.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* webbased forums; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* NNTP; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* attachment stripping; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* customizable headers, footers, robot replies; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Audit&lt;br /&gt;
# Communication between Community Council and Community Members&lt;br /&gt;
#* Protect [http://council.openoffice.org/servlets/BrowseList?listName=agenda&amp;amp;by=date&amp;amp;from=2007-10-01&amp;amp;to=2007-10-31&amp;amp;first=1&amp;amp;count=22 agenda@council.openoffice.org] against spams and make it easy-to-post and easy-to-find community-proposals which should not be buried in spams.&lt;br /&gt;
#* Additional infrastructure where CC can listen to contributors, developers and other Community members and talk with them daily.&lt;br /&gt;
# L10n and T9n for about 100 languages&lt;br /&gt;
#* Storage for:&lt;br /&gt;
#** Pootle&lt;br /&gt;
#** translation memories&lt;br /&gt;
#** glossaries&lt;br /&gt;
#** KeyID builds&lt;br /&gt;
#** extensions translation process&lt;br /&gt;
#** documentation translation process&lt;br /&gt;
#* Management tools&lt;br /&gt;
&lt;br /&gt;
== Unprioritized List ==&lt;br /&gt;
&lt;br /&gt;
* localization of UI parts (bugtracking, webpages, ...) and process for new locales&lt;br /&gt;
* reporting / stats / logfiles&lt;br /&gt;
* Search via Google, Yahoo, ...&lt;br /&gt;
* mail forwarding (xxx@openoffice.org)&lt;br /&gt;
* IP / domain blocking&lt;br /&gt;
* blog / planet&lt;br /&gt;
* download, documents &amp;amp; files structured in folders&lt;br /&gt;
* surveys / votes / polls&lt;br /&gt;
* general open-ness for integration of scripting (PHP, Perl, ...)&lt;br /&gt;
* MySQL databases&lt;br /&gt;
* provide SSL logon for security reasons&lt;br /&gt;
* rise the limit for mail attachments from 2 MB to 10 MB&lt;br /&gt;
&lt;br /&gt;
== Migration process ==&lt;br /&gt;
* public access to the staging server&lt;br /&gt;
&lt;br /&gt;
== Key Numbers ==&lt;br /&gt;
&lt;br /&gt;
Per day the main site (actually the accelerators) receives 4-6M hits / 100,000 - 150,000 visits and sends 40-60GB. In peaks like the OpenOffice.org 2.0 launch there were &amp;gt; 16M hits per day with more than 400,000 visits.&lt;br /&gt;
&lt;br /&gt;
The mail server has to be prepared to handle 50 msg/sec and 300 parallel sessions when the rising tide flows in.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Infrastructure_Overview]]&lt;br /&gt;
* [[Infrastructure_Problems]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Website]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55099</id>
		<title>Infrastructure Requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55099"/>
		<updated>2007-11-27T16:06:02Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following list contains the major functionalities expected from the &lt;br /&gt;
OpenOffice.org infrastructure. The bullet points have been collected with focus on &lt;br /&gt;
software developerment but are also applicable for the user oriented needs.&lt;br /&gt;
&lt;br /&gt;
== Prioritized Item List ==&lt;br /&gt;
&lt;br /&gt;
# Framework / Core&lt;br /&gt;
#* lightweight role / user administration / SSH key management&amp;lt;br&amp;gt;[incl. authorization / authentication interfaces for cmdline / web based apps]&amp;lt;br&amp;gt;(e.g. LDAP directory, could be placed on the SVN/CVS server)&lt;br /&gt;
#* SubProjects and SubProject Categories:&lt;br /&gt;
#** The OpenOffice.org project is being organized into different SubProjects having their own DNS entries for WebSpace and Mailinglists eg. xml.openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; see also DNS&lt;br /&gt;
#** Subprojects are classified into the 3 subproject catagories Accepted Project, Incubator Project, Native Language Project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Access rights configurable for individual Subprojects; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** A &amp;lt;b&amp;gt;Domain Developer&amp;lt;/b&amp;gt; role gives access rights to all subprojects of the openoffice.org project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** documents and files feature per subproject where documents can be uploaded; reserved; edited etc.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** search feature - search in all OpenOffice.org subprojects or inside current OpenOffice.org subproject; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** project announcements; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sign-on&lt;br /&gt;
#** Single sign-on across the different applications; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** API to enable third-party applications to use the single sign-on; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Site Search&lt;br /&gt;
#** covering web pages, issues, mailing lists; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** no of pages: ~450k&lt;br /&gt;
# DNS&lt;br /&gt;
#* Required Domain Name Service DNS Entries:&lt;br /&gt;
#** DNS Records for SubProjects of openoffice.org eg. gsl.openoffice.org, api.openoffice.org, tools.openoffice.org, de.openoffice.org. This includes Entries for Native Language Communities for example de.openoffice.org. All entries must have IP Address under which the sub-projects web content is being served and also MX records for the projects mailing lists.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for SubDomain services.openoffice.org in control of DNS Server operated by StarOffice department, for tools like the Environment Information System (EIS); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for download.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for support.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for contributing.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for about.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Web pages&lt;br /&gt;
#* subprojects need own DNS entries, see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; external sites contain links to web content of subprojects which we would otherwise break&lt;br /&gt;
#* special purpose web pages on own website (download, support, contributing, about), see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;i&amp;gt;If not otherwise possible these may be configured as individual subprojects but it´s preferable to have the www.openoffice.org main site plus these special sites belong to just one subproject named website where content developers can join&amp;lt;/i&amp;gt;.&lt;br /&gt;
#* Navigation Bar on top available to all sub-projects and special purpose websites; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Navigation Bar left, project specific; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* global info boxes on right side of MyPage, with eg. Community Council Announcements, Download section&lt;br /&gt;
#* project specific announcements on MyPage; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Default Content of left navigation bar per subproject but overrideable per subdirectory; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Migration for files specifying content of left navigation bar in subdirectories; &amp;#039;&amp;#039;&amp;#039;nice to have&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Content modification:&lt;br /&gt;
#* all webpages in the repository are automatically surrounded by standard header (including login possibility, logo and top navigation bar), procject/directory specific left navigation bar and standard footer (including eg. copyright information); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* possibility to get HTML pages without the surrounding navigation, header and footer content via /nonav/ in URL; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Version Control System for source code&amp;lt;br&amp;gt;[For web publishing and documentation see CMS.]&amp;lt;br&amp;gt;[Some time ago we created a requirements list for a new OpenOffice.org SCM system. This can be found here: http://wiki.services.openoffice.org/wiki/SCM_Requirements.]&amp;lt;br&amp;gt;The most important ones (distilled from the mentioned list):&lt;br /&gt;
#* Clients:&lt;br /&gt;
#** Clients must be available for all our supported platforms; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;&lt;br /&gt;
#* Branches:&lt;br /&gt;
#** SCM system needs to easily support a multitude of branches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt; not supported for Mercurial&amp;lt;/font&amp;gt;&lt;br /&gt;
#** Merge tracking should be either available or can be implemented by hand; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Authentication:&lt;br /&gt;
#** Passwords must be securely transmitted to prevent malicious commits; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
#* Import:&lt;br /&gt;
#** Import from CVS needs to be history preserving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS should be customizable (for example leave out old branches etc); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS needs to be doable in days during final migration phase; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion with fsfs backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Subversion with bdb backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Mercurial&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Performance:&lt;br /&gt;
#** The performance of common used operations (checkout, commit, log, merge) should not be significantly slower than CVS as presented by CN; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Replication:&lt;br /&gt;
#** There needs to be a way to replicate the repository to save bandwidth; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Binary files, LF/CR conversions&lt;br /&gt;
#** Proper handling of binary files; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#** LF/CR conversions; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;;  &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* admin access for deletion, move&lt;br /&gt;
#* functionality similar to cvsup, anoncvs, viewcvs, notification mails; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* simple permission system; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sudo root access for selected admins; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Functionality similar to bonsai, lxr, fisheye / CIA etc.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#Bugtracking&lt;br /&gt;
#* Number of issues inside OOo:&lt;br /&gt;
#** total 82600 (closed 57693)&lt;br /&gt;
#** number of distinct submitters: 18500&lt;br /&gt;
#** number of distinct assignees: 1600&lt;br /&gt;
#** number of attached files: 49000&lt;br /&gt;
#* States:&lt;br /&gt;
#** ASSIGNED, CLOSED, NEW, REOPEN, RESOLVED, STARTED, UNCONFIRMED, VERIFIED; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Resolution:&lt;br /&gt;
#** DUPLICATE, FIXED, INVALID, LATER, REMIND, WONTFIX, WORKSFORME; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (Further details about the workflow and the relationship between State and Resolution http://www.openoffice.org/scdocs/issue_lifecycle.html)&lt;br /&gt;
#* Types:&lt;br /&gt;
#** DEFECT, ENHANCEMENT, FEATURE, PATCH, TASK; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (may be PATCH can be dropped later -&amp;gt; Was a request for CollabNet)&lt;br /&gt;
#* Additional fields and values:&lt;br /&gt;
#* Import- and export of data:&lt;br /&gt;
#** XML; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** remove export as &amp;#039;Word&amp;#039;/&amp;#039;Excel&amp;#039;; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Attachments:&lt;br /&gt;
#** Possibility to attach any type of file to the issue, eg. OpenOffice.org documents, pictures, source code, source code patches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Keywords:&lt;br /&gt;
#** List of Keywords or tags to assign to issues as a method to organize QA work; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* central configuration; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Email-notification of modified issues; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* One issue-tracking instance for more than one project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Wiki (CMS)&lt;br /&gt;
#* MediaWiki, version ? ; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Required extensions/features:&lt;br /&gt;
#** DisplayTitle feature ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** DynamicPageList; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Syntax Highlighter (GeSHi) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Breadcrumbs ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Hierarchical pages ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs;&lt;br /&gt;
#** Category Tree; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfGFlashExtension; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfLabeledSectionTransclusion ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Parser extensions (own implementation) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#* Possibility of installing own extensions ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Number of categories: 200&lt;br /&gt;
#* Number of pages: 7723 within 2000 content pages (Docs will soon increase this number by 900 (DevGuide) and possibly another 2,000 (Help)&lt;br /&gt;
#* Number of uploaded files: 2200&lt;br /&gt;
#* Number of edit/day: 7&lt;br /&gt;
#* Number of users: 10181&amp;lt;br&amp;gt;Further details http://wiki.services.openoffice.org/wiki/Special:Statistics&lt;br /&gt;
#* allow branding; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localized UI; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* versioned; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* namespaces; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* reuse of content (templates, server-side-include); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* publication routes for wiki-based documentation (ODF/PDF); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localization of wiki-based content; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Mailing Lists&lt;br /&gt;
#* Types:&lt;br /&gt;
#**unmoderated;open to anyone(mostly unused at collab); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**discuss;subcribed users Post/Read allowed,archive Read allowed others moderated (most common); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**moderated;Post always moderated; Read archive; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**allowed poster:&lt;br /&gt;
#**domain wide allowed poster:&lt;br /&gt;
#**sublist;subcribed to another List; gathering global Information eg; issues@&amp;lt;project&amp;gt;.openoffice.org to ML issues@openoffice; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* non-site-member subscription (external archives); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Archiving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Toplevel mailinglists: allcvs@openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* migrating current Archives; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* round about 850 Mailinglists with different types to migrate; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* SPAM / Virus protected (Important especially for agenda@council.openoffice.org. See &amp;quot;Comm b/w CC and CMs&amp;quot; below); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* [RSS] for easy syndication of new from various parts of the site, including the home page and mac port pages.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* webbased forums; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* NNTP; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* attachment stripping; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* customizable headers, footers, robot replies; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Audit&lt;br /&gt;
# Communication between Community Council and Community Members&lt;br /&gt;
#* Protect [http://council.openoffice.org/servlets/BrowseList?listName=agenda&amp;amp;by=date&amp;amp;from=2007-10-01&amp;amp;to=2007-10-31&amp;amp;first=1&amp;amp;count=22 agenda@council.openoffice.org] against spams and make it easy-to-post and easy-to-find community-proposals which should not be buried in spams.&lt;br /&gt;
#* Additional infrastructure where CC can listen to contributors, developers and other Community members and talk with them daily.&lt;br /&gt;
# L10n and T9n for about 100 languages&lt;br /&gt;
#* Storage for:&lt;br /&gt;
#** Pootle&lt;br /&gt;
#** translation memories&lt;br /&gt;
#** glossaries&lt;br /&gt;
#** KeyID builds&lt;br /&gt;
#** extensions translation process&lt;br /&gt;
#** documentation translation process&lt;br /&gt;
#* Management tools&lt;br /&gt;
&lt;br /&gt;
== Unprioritized List ==&lt;br /&gt;
&lt;br /&gt;
* localization of UI parts (bugtracking, webpages, ...) and process for new locales&lt;br /&gt;
* reporting / stats / logfiles&lt;br /&gt;
* Search via Google, Yahoo, ...&lt;br /&gt;
* mail forwarding (xxx@openoffice.org)&lt;br /&gt;
* IP / domain blocking&lt;br /&gt;
* blog / planet&lt;br /&gt;
* download, documents &amp;amp; files structured in folders&lt;br /&gt;
* surveys / votes / polls&lt;br /&gt;
* general open-ness for integration of scripting (PHP, Perl, ...)&lt;br /&gt;
* MySQL databases&lt;br /&gt;
* provide SSL logon for security reasons&lt;br /&gt;
* rise the limit for mail attachments from 2 MB to 10 MB&lt;br /&gt;
&lt;br /&gt;
== Migration process ==&lt;br /&gt;
* public access to the staging server&lt;br /&gt;
&lt;br /&gt;
== Key Numbers ==&lt;br /&gt;
&lt;br /&gt;
Per day the main site (actually the accelerators) receives 4-6M hits / 100,000 - 150,000 visits and sends 40-60GB. In peaks like the OpenOffice.org 2.0 launch there were &amp;gt; 16M hits per day with more than 400,000 visits.&lt;br /&gt;
&lt;br /&gt;
The mail server has to be prepared to handle 50 msg/sec and 300 parallel sessions when the rising tide flows in.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Infrastructure_Overview]]&lt;br /&gt;
* [[Infrastructure_Problems]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Website]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55098</id>
		<title>Infrastructure Requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55098"/>
		<updated>2007-11-27T16:04:38Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following list contains the major functionalities expected from the &lt;br /&gt;
OpenOffice.org infrastructure. The bullet points have been collected with focus on &lt;br /&gt;
software developerment but are also applicable for the user oriented needs.&lt;br /&gt;
&lt;br /&gt;
== Prioritized Item List ==&lt;br /&gt;
&lt;br /&gt;
# Framework / Core&lt;br /&gt;
#* lightweight role / user administration / SSH key management&amp;lt;br&amp;gt;[incl. authorization / authentication interfaces for cmdline / web based apps]&amp;lt;br&amp;gt;(e.g. LDAP directory, could be placed on the SVN/CVS server)&lt;br /&gt;
#* SubProjects and SubProject Categories:&lt;br /&gt;
#** The OpenOffice.org project is being organized into different SubProjects having their own DNS entries for WebSpace and Mailinglists eg. xml.openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; see also DNS&lt;br /&gt;
#** Subprojects are classified into the 3 subproject catagories Accepted Project, Incubator Project, Native Language Project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Access rights configurable for individual Subprojects; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** A &amp;lt;b&amp;gt;Domain Developer&amp;lt;/b&amp;gt; role gives access rights to all subprojects of the openoffice.org project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** documents and files feature per subproject where documents can be uploaded; reserved; edited etc.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** search feature - search in all OpenOffice.org subprojects or inside current OpenOffice.org subproject; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** project announcements; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sign-on&lt;br /&gt;
#** Single sign-on across the different applications; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** API to enable third-party applications to use the single sign-on; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Site Search&lt;br /&gt;
#** covering web pages, issues, mailing lists; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** no of pages: ~450k&lt;br /&gt;
# DNS&lt;br /&gt;
#* Required Domain Name Service DNS Entries:&lt;br /&gt;
#** DNS Records for SubProjects of openoffice.org eg. gsl.openoffice.org, api.openoffice.org, tools.openoffice.org, de.openoffice.org. This includes Entries for Native Language Communities for example de.openoffice.org. All entries must have IP Address under which the sub-projects web content is being served and also MX records for the projects mailing lists.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for SubDomain services.openoffice.org in control of DNS Server operated by StarOffice department, for tools like the Environment Information System (EIS); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for download.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for support.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for contributing.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for about.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Web pages&lt;br /&gt;
#* subprojects need own DNS entries, see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; external sites contain links to web content of subprojects which we would otherwise break&lt;br /&gt;
#* special purpose web pages on own website (download, support, contributing, about), see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;i&amp;gt;If not otherwise possible these may be configured as individual subprojects but it´s preferable to have the www.openoffice.org main site plus these special sites belong to just one subproject named website where content developers can join&amp;lt;/i&amp;gt;.&lt;br /&gt;
#* Navigation Bar on top available to all sub-projects and special purpose websites; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Navigation Bar left, project specific; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* global info boxes on right side of MyPage, with eg. Community Council Announcements, Download section&lt;br /&gt;
#* project specific announcements on MyPage; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Default Content of left navigation bar per subproject but overrideable per subdirectory; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Migration for files specifying content of left navigation bar in subdirectories; &amp;#039;&amp;#039;&amp;#039;nice to have&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Content modification:&lt;br /&gt;
#* all webpages in the repository are automatically surrounded by standard header (including login possibility, logo and top navigation bar), procject/directory specific left navigation bar and standard footer (including eg. copyright information); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* possibility to get HTML pages without the surrounding navigation, header and footer content via /nonav/ in URL; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Version Control System for source code&amp;lt;br&amp;gt;[For web publishing and documentation see CMS.]&amp;lt;br&amp;gt;[Some time ago we created a requirements list for a new OpenOffice.org SCM system. This can be found here: http://wiki.services.openoffice.org/wiki/SCM_Requirements.]&amp;lt;br&amp;gt;The most important ones (distilled from the mentioned list):&lt;br /&gt;
#* Clients:&lt;br /&gt;
#** Clients must be available for all our supported platforms; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;&lt;br /&gt;
#* Branches:&lt;br /&gt;
#** SCM system needs to easily support a multitude of branches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt; not supported for Mercurial&amp;lt;/font&amp;gt;&lt;br /&gt;
#** Merge tracking should be either available or can be implemented by hand; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Authentication:&lt;br /&gt;
#** Passwords must be securely transmitted to prevent malicious commits; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
#* Import:&lt;br /&gt;
#** Import from CVS needs to be history preserving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS should be customizable (for example leave out old branches etc); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS needs to be doable in days during final migration phase; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion with fsfs backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Subversion with bdb backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Mercurial&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Performance:&lt;br /&gt;
#** The performance of common used operations (checkout, commit, log, merge) should not be significantly slower than CVS as presented by CN; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Replication:&lt;br /&gt;
#** There needs to be a way to replicate the repository to save bandwidth; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Binary files, LF/CR conversions&lt;br /&gt;
#** Proper handling of binary files; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#** LF/CR conversions; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;;  &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* admin access for deletion, move&lt;br /&gt;
#* functionality similar to cvsup, anoncvs, viewcvs, notification mails; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* simple permission system; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sudo root access for selected admins; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Functionality similar to bonsai, lxr, fisheye / CIA etc.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#Bugtracking&lt;br /&gt;
#* Number of issues inside OOo:&lt;br /&gt;
#** total 82600 (closed 57693)&lt;br /&gt;
#** number of distinct submitters: 18500&lt;br /&gt;
#** number of distinct assignees: 1600&lt;br /&gt;
#** number of attached files: 49000&lt;br /&gt;
#* States:&lt;br /&gt;
#** ASSIGNED, CLOSED, NEW, REOPEN, RESOLVED, STARTED, UNCONFIRMED, VERIFIED; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Resolution:&lt;br /&gt;
#** DUPLICATE, FIXED, INVALID, LATER, REMIND, WONTFIX, WORKSFORME; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (Further details about the workflow and the relationship between State and Resolution http://www.openoffice.org/scdocs/issue_lifecycle.html)&lt;br /&gt;
#* Types:&lt;br /&gt;
#** DEFECT, ENHANCEMENT, FEATURE, PATCH, TASK; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (may be PATCH can be dropped later -&amp;gt; Was a request for CollabNet)&lt;br /&gt;
#* Additional fields and values:&lt;br /&gt;
#* Import- and export of data:&lt;br /&gt;
#** XML; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** remove export as &amp;#039;Word&amp;#039;/&amp;#039;Excel&amp;#039;; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Attachments:&lt;br /&gt;
#** Possibility to attach any type of file to the issue, eg. OpenOffice.org documents, pictures, source code, source code patches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Keywords:&lt;br /&gt;
#** List of Keywords or tags to assign to issues as a method to organize QA work; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* central configuration; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Email-notification of modified issues; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* One issue-tracking instance for more than one project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Wiki (CMS)&lt;br /&gt;
#* MediaWiki, version ? ; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Required extensions/features:&lt;br /&gt;
#** DisplayTitle feature ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** DynamicPageList; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Syntax Highlighter (GeSHi) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Breadcrumbs ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Hierarchical pages ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs;&lt;br /&gt;
#** Category Tree; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfGFlashExtension; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfLabeledSectionTransclusion ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Parser extensions (own implementation) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#* Possibility of installing own extensions ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Number of categories: 200&lt;br /&gt;
#* Number of pages: 7723 within 2000 content pages (Docs will soon increase this number by 900 (DevGuide) and possibly another 2,000 (Help)&lt;br /&gt;
#* Number of uploaded files: 2200&lt;br /&gt;
#* Number of edit/day: 7&lt;br /&gt;
#* Number of users: 10181&amp;lt;br&amp;gt;Further details http://wiki.services.openoffice.org/wiki/Special:Statistics&lt;br /&gt;
#* allow branding; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localized UI; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* versioned; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* namespaces; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* reuse of content (templates, server-side-include); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* publication routes for wiki-based documentation (ODF/PDF); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localization of wiki-based content; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Mailing Lists&lt;br /&gt;
#* Types:&lt;br /&gt;
#**unmoderated;open to anyone(mostly unused at collab); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**discuss;subcribed users Post/Read allowed,archive Read allowed others moderated (most common); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**moderated;Post always moderated; Read archive; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**allowed poster:&lt;br /&gt;
#**domain wide allowed poster:&lt;br /&gt;
#**sublist;subcribed to another List; gathering global Information eg; issues@&amp;lt;project&amp;gt;.openoffice.org to ML issues@openoffice; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* non-site-member subscription (external archives); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Archiving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Toplevel mailinglists: allcvs@openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* migrating current Archives; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* round about 850 Mailinglists with different types to migrate; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* SPAM / Virus protected (Important especially for agenda@council.openoffice.org. See &amp;quot;Comm b/w CC and CMs&amp;quot; below); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* [RSS] for easy syndication of new from various parts of the site, including the home page and mac port pages.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* webbased forums; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* NNTP; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* attachment stripping; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* customizable headers, footers, robot replies; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Audit&lt;br /&gt;
# Communication between Community Council and Community Members&lt;br /&gt;
#* Protect [http://council.openoffice.org/servlets/BrowseList?listName=agenda&amp;amp;by=date&amp;amp;from=2007-10-01&amp;amp;to=2007-10-31&amp;amp;first=1&amp;amp;count=22 agenda@council.openoffice.org] against spams and make it easy-to-post and easy-to-find community-proposals which should not be buried in spams.&lt;br /&gt;
#* Additional infrastructure where CC can listen to contributors, developers and other Community members and talk with them daily.&lt;br /&gt;
# L10n and T9n for about 100 languages&lt;br /&gt;
#* Storage for:&lt;br /&gt;
#** Pootle&lt;br /&gt;
#** translation memories&lt;br /&gt;
#** glossaries&lt;br /&gt;
#** KeyID builds&lt;br /&gt;
#** extensions translation process&lt;br /&gt;
#** documentation translation process&lt;br /&gt;
#* Management tools&lt;br /&gt;
&lt;br /&gt;
== Unprioritized List ==&lt;br /&gt;
&lt;br /&gt;
* localization of UI parts (bugtracking, webpages, ...) and process for new locales&lt;br /&gt;
* reporting / stats / logfiles&lt;br /&gt;
* Search via Google, Yahoo, ...&lt;br /&gt;
* mail forwarding (xxx@openoffice.org)&lt;br /&gt;
* IP / domain blocking&lt;br /&gt;
* blog / planet&lt;br /&gt;
* download, documents &amp;amp; files structured in folders&lt;br /&gt;
* surveys / votes / polls&lt;br /&gt;
* general open-ness for integration of scripting (PHP, Perl, ...)&lt;br /&gt;
* MySQL databases&lt;br /&gt;
* provide SSL logon for security reasons&lt;br /&gt;
* rise the limit for mail attachments from 2 MB to 10 MB&lt;br /&gt;
&lt;br /&gt;
== Key Numbers ==&lt;br /&gt;
&lt;br /&gt;
Per day the main site (actually the accelerators) receives 4-6M hits / 100,000 - 150,000 visits and sends 40-60GB. In peaks like the OpenOffice.org 2.0 launch there were &amp;gt; 16M hits per day with more than 400,000 visits.&lt;br /&gt;
&lt;br /&gt;
The mail server has to be prepared to handle 50 msg/sec and 300 parallel sessions when the rising tide flows in.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Infrastructure_Overview]]&lt;br /&gt;
* [[Infrastructure_Problems]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Website]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55024</id>
		<title>Infrastructure Requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Infrastructure_Requirements&amp;diff=55024"/>
		<updated>2007-11-27T09:31:13Z</updated>

		<summary type="html">&lt;p&gt;Jj: Major rework of the prioritized item list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following list contains the major functionalities expected from the &lt;br /&gt;
OpenOffice.org infrastructure. The bullet points have been collected with focus on &lt;br /&gt;
software developerment but are also applicable for the user oriented needs.&lt;br /&gt;
&lt;br /&gt;
== Prioritized Item List ==&lt;br /&gt;
&lt;br /&gt;
# Framework / Core&lt;br /&gt;
#* lightweight role / user administration / SSH key management&amp;lt;br&amp;gt;[incl. authorization / authentication interfaces for cmdline / web based apps]&amp;lt;br&amp;gt;(e.g. LDAP directory, could be placed on the SVN/CVS server)&lt;br /&gt;
#* SubProjects and SubProject Categories:&lt;br /&gt;
#** The OpenOffice.org project is being organized into different SubProjects having their own DNS entries for WebSpace and Mailinglists eg. xml.openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; see also DNS&lt;br /&gt;
#** Subprojects are classified into the 3 subproject catagories Accepted Project, Incubator Project, Native Language Project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Access rights configurable for individual Subprojects; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** A &amp;lt;b&amp;gt;Domain Developer&amp;lt;/b&amp;gt; role gives access rights to all subprojects of the openoffice.org project; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** documents and files feature per subproject where documents can be uploaded; reserved; edited etc.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** search feature - search in all OpenOffice.org subprojects or inside current OpenOffice.org subproject; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** project announcements; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sign-on&lt;br /&gt;
#** Single sign-on across the different applications; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** API to enable third-party applications to use the single sign-on; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Site Search&lt;br /&gt;
#** covering web pages, issues, mailing lists; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** no of pages: ~450k&lt;br /&gt;
# DNS&lt;br /&gt;
#* Required Domain Name Service DNS Entries:&lt;br /&gt;
#** DNS Records for SubProjects of openoffice.org eg. gsl.openoffice.org, api.openoffice.org, tools.openoffice.org, de.openoffice.org. This includes Entries for Native Language Communities for example de.openoffice.org. All entries must have IP Address under which the sub-projects web content is being served and also MX records for the projects mailing lists.; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for SubDomain services.openoffice.org in control of DNS Server operated by StarOffice department, for tools like the Environment Information System (EIS); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for download.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for support.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for contributing.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** DNS Entry for about.openoffice.org serving own web content; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Web pages&lt;br /&gt;
#* subprojects need own DNS entries, see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; external sites contain links to web content of subprojects which we would otherwise break&lt;br /&gt;
#* special purpose web pages on own website (download, support, contributing, about), see DNS; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;i&amp;gt;If not otherwise possible these may be configured as individual subprojects but it´s preferable to have the www.openoffice.org main site plus these special sites belong to just one subproject named website where content developers can join&amp;lt;/i&amp;gt;.&lt;br /&gt;
#* Navigation Bar on top available to all sub-projects and special purpose websites; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Navigation Bar left, project specific; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* global info boxes on right side of MyPage, with eg. Community Council Announcements, Download section&lt;br /&gt;
#* project specific announcements on MyPage; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Default Content of left navigation bar per subproject but overrideable per subdirectory; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Migration for files specifying content of left navigation bar in subdirectories; &amp;#039;&amp;#039;&amp;#039;nice to have&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Content modification:&lt;br /&gt;
#* all webpages in the repository are automatically surrounded by standard header (including login possibility, logo and top navigation bar), procject/directory specific left navigation bar and standard footer (including eg. copyright information); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* possibility to get HTML pages without the surrounding navigation, header and footer content via /nonav/ in URL; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Version Control System for source code&amp;lt;br&amp;gt;[For web publishing and documentation see CMS.]&amp;lt;br&amp;gt;[Some time ago we created a requirements list for a new OpenOffice.org SCM system. This can be found here: http://wiki.services.openoffice.org/wiki/SCM_Requirements.]&amp;lt;br&amp;gt;The most important ones (distilled from the mentioned list):&lt;br /&gt;
#* Clients:&lt;br /&gt;
#** Clients must be available for all our supported platforms; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;&lt;br /&gt;
#* Branches:&lt;br /&gt;
#** SCM system needs to easily support a multitude of branches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt; not supported for Mercurial&amp;lt;/font&amp;gt;&lt;br /&gt;
#** Merge tracking should be either available or can be implemented by hand; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Authentication:&lt;br /&gt;
#** Passwords must be securely transmitted to prevent malicious commits; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
#* Import:&lt;br /&gt;
#** Import from CVS needs to be history preserving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS should be customizable (for example leave out old branches etc); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Import from CVS needs to be doable in days during final migration phase; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion with fsfs backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Subversion with bdb backend&amp;lt;/font&amp;gt;; &amp;lt;font color=&amp;#039;red&amp;#039;&amp;gt;not OK for Mercurial&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* Performance:&lt;br /&gt;
#** The performance of common used operations (checkout, commit, log, merge) should not be significantly slower than CVS as presented by CN; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Replication:&lt;br /&gt;
#** There needs to be a way to replicate the repository to save bandwidth; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Binary files, LF/CR conversions&lt;br /&gt;
#** Proper handling of binary files; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;; &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#** LF/CR conversions; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;;  &amp;lt;font color=&amp;#039;green&amp;#039;&amp;gt;OK for Subversion&amp;lt;/font&amp;gt;;&lt;br /&gt;
#* admin access for deletion, move&lt;br /&gt;
#* functionality similar to cvsup, anoncvs, viewcvs, notification mails; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* simple permission system; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Sudo root access for selected admins; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Functionality similar to bonsai, lxr, fisheye / CIA etc.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#Bugtracking&lt;br /&gt;
#* Number of issues inside OOo:&lt;br /&gt;
#** total 82600 (closed 57693)&lt;br /&gt;
#** number of distinct submitters: 18500&lt;br /&gt;
#** number of distinct assignees: 1600&lt;br /&gt;
#** number of attached files: 49000&lt;br /&gt;
#* States:&lt;br /&gt;
#** ASSIGNED, CLOSED, NEW, REOPEN, RESOLVED, STARTED, UNCONFIRMED, VERIFIED; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Resolution:&lt;br /&gt;
#** DUPLICATE, FIXED, INVALID, LATER, REMIND, WONTFIX, WORKSFORME; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (Further details about the workflow and the relationship between State and Resolution http://www.openoffice.org/scdocs/issue_lifecycle.html)&lt;br /&gt;
#* Types:&lt;br /&gt;
#** DEFECT, ENHANCEMENT, FEATURE, PATCH, TASK; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; (may be PATCH can be dropped later -&amp;gt; Was a request for CollabNet)&lt;br /&gt;
#* Additional fields and values:&lt;br /&gt;
#* Import- and export of data:&lt;br /&gt;
#** XML; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** remove export as &amp;#039;Word&amp;#039;/&amp;#039;Excel&amp;#039;; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Attachments:&lt;br /&gt;
#** Possibility to attach any type of file to the issue, eg. OpenOffice.org documents, pictures, source code, source code patches; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Keywords:&lt;br /&gt;
#** List of Keywords or tags to assign to issues as a method to organize QA work; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* central configuration; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Wiki (CMS)&lt;br /&gt;
#* MediaWiki, version ? ; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Required extensions/features:&lt;br /&gt;
#** DisplayTitle feature ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** DynamicPageList; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** Syntax Highlighter (GeSHi) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Breadcrumbs ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Hierarchical pages ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs;&lt;br /&gt;
#** Category Tree; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfGFlashExtension; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#** wfLabeledSectionTransclusion ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#** Parser extensions (own implementation) ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039; for Docs&lt;br /&gt;
#* Possibility of installing own extensions ; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Number of categories: 200&lt;br /&gt;
#* Number of pages: 7723 within 2000 content pages (Docs will soon increase this number by 900 (DevGuide) and possibly another 2,000 (Help)&lt;br /&gt;
#* Number of uploaded files: 2200&lt;br /&gt;
#* Number of edit/day: 7&lt;br /&gt;
#* Number of users: 10181&amp;lt;br&amp;gt;Further details http://wiki.services.openoffice.org/wiki/Special:Statistics&lt;br /&gt;
#* allow branding; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localized UI; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* versioned; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* namespaces; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* reuse of content (templates, server-side-include); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* publication routes for wiki-based documentation (ODF/PDF); &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* localization of wiki-based content; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Mailing Lists&lt;br /&gt;
#* Types:&lt;br /&gt;
#**unmoderated;open to anyone(mostly unused at collab); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**discuss;subcribed users Post/Read allowed,archive Read allowed others moderated (most common); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**moderated;Post always moderated; Read archive; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#**allowed poster:&lt;br /&gt;
#**domain wide allowed poster:&lt;br /&gt;
#**sublist;subcribed to another List; gathering global Information eg; issues@&amp;lt;project&amp;gt;.openoffice.org to ML issues@openoffice; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* non-site-member subscription (external archives); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Archiving; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* Toplevel mailinglists: allcvs@openoffice.org; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* migrating current Archives to bbc; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* round about 850 Mailinglists with different types to migrate; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* SPAM / Virus protected (Important especially for agenda@council.openoffice.org. See &amp;quot;Comm b/w CC and CMs&amp;quot; below); &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* [RSS] for easy syndication of new from various parts of the site, including the home page and mac port pages.; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* webbased forums; &amp;#039;&amp;#039;&amp;#039;should&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* NNTP; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* attachment stripping; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
#* customizable headers, footers, robot replies; &amp;#039;&amp;#039;&amp;#039;must&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Audit&lt;br /&gt;
# Communication between Community Council and Community Members&lt;br /&gt;
#* Protect [http://council.openoffice.org/servlets/BrowseList?listName=agenda&amp;amp;by=date&amp;amp;from=2007-10-01&amp;amp;to=2007-10-31&amp;amp;first=1&amp;amp;count=22 agenda@council.openoffice.org] against spams and make it easy-to-post and easy-to-find community-proposals which should not be buried in spams.&lt;br /&gt;
#* Additional infrastructure where CC can listen to contributors, developers and other Community members and talk with them daily.&lt;br /&gt;
# L10n and T9n for about 100 languages&lt;br /&gt;
#* Storage for:&lt;br /&gt;
#** Pootle&lt;br /&gt;
#** translation memories&lt;br /&gt;
#** glossaries&lt;br /&gt;
#** KeyID builds&lt;br /&gt;
#** extensions translation process&lt;br /&gt;
#** documentation translation process&lt;br /&gt;
#* Management tools&lt;br /&gt;
&lt;br /&gt;
== Unprioritized List ==&lt;br /&gt;
&lt;br /&gt;
* localization of UI parts (bugtracking, webpages, ...) and process for new locales&lt;br /&gt;
* reporting / stats / logfiles&lt;br /&gt;
* Search via Google, Yahoo, ...&lt;br /&gt;
* mail forwarding (xxx@openoffice.org)&lt;br /&gt;
* IP / domain blocking&lt;br /&gt;
* blog / planet&lt;br /&gt;
* download, documents &amp;amp; files structured in folders&lt;br /&gt;
* surveys / votes / polls&lt;br /&gt;
* general open-ness for integration of scripting (PHP, Perl, ...)&lt;br /&gt;
* MySQL databases&lt;br /&gt;
* provide SSL logon for security reasons&lt;br /&gt;
* rise the limit for mail attachments from 2 MB to 10 MB&lt;br /&gt;
&lt;br /&gt;
== Key Numbers ==&lt;br /&gt;
&lt;br /&gt;
Per day the main site (actually the accelerators) receives 4-6M hits / 100,000 - 150,000 visits and sends 40-60GB. In peaks like the OpenOffice.org 2.0 launch there were &amp;gt; 16M hits per day with more than 400,000 visits.&lt;br /&gt;
&lt;br /&gt;
The mail server has to be prepared to handle 50 msg/sec and 300 parallel sessions when the rising tide flows in.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Infrastructure_Overview]]&lt;br /&gt;
* [[Infrastructure_Problems]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Website]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease24&amp;diff=53975</id>
		<title>OOoRelease24</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease24&amp;diff=53975"/>
		<updated>2007-11-15T09:52:21Z</updated>

		<summary type="html">&lt;p&gt;Jj: updated Translation start date due to &amp;quot;Feature Freeze OOo 2.4&amp;quot; announcement on releases@ooo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenOffice.org 2.4 ==&lt;br /&gt;
&lt;br /&gt;
* November  15th 2007: UI and [[Feature_freeze]]&lt;br /&gt;
* November  29th 2007: [[Translation for 2.4|Translation update 2.4]] start&lt;br /&gt;
* December  13th 2007: Translation update 2.4 delivery&lt;br /&gt;
* December  20th 2007: TCM l10n testing &lt;br /&gt;
* January   17th 2008: [[code_freeze]]&lt;br /&gt;
* February   7th 2008: [[Last cws integration]] for fixes&lt;br /&gt;
* February  21th 2008: release candidate for all languages&lt;br /&gt;
* March      4th 2008: OpenOffice.org 2.4 release&lt;br /&gt;
&lt;br /&gt;
{{OOo Releases}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Steps_towards_regular_automated_regression_testing&amp;diff=33818</id>
		<title>Steps towards regular automated regression testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Steps_towards_regular_automated_regression_testing&amp;diff=33818"/>
		<updated>2007-06-01T07:29:20Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Current pitfalls for regular regression testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Current state ==&lt;br /&gt;
&lt;br /&gt;
Automated testing with [[TestTool]] at the moment has several [http://qa.openoffice.org/ooQAReloaded/AutomationTeamsite/ooQA-TeamAutomationTestlist.html sets of test cases] available which are used for testing on Master Workspaces ([[MWS]]s) or Child Workspaces ([[CWS]]s). The tests on the MWS are used as a reference when testing a CWS derived from this MWS, so that it can be determined whether a bug found by means of an automated test was introduced on the CWS or on the MWS. Our current Master Workspaces, be it SRC680 or OOF680, do by no means succeed with all automated tests. Instead there are always some tests which fail. For such failed tests bugs are created within [[Issue Tracker]]. These are treated as normal bugs so that sooner or later they are fixed and the test works again.&lt;br /&gt;
&lt;br /&gt;
== Current pitfalls for regular regression testing ==&lt;br /&gt;
&lt;br /&gt;
When a [[QA]] engineer or developer wants to do some more automated regression tests for a CWS than the [[SmokeTest]] offers, he does encounter several problems:&lt;br /&gt;
&lt;br /&gt;
# As some tests also fail on the Master Workspace the tester has to check whether a failed test was newly introduced by the CWS or whether it already existed on the [[ReleaseMilestone]] his CWS is based on. If automated testing was done for this milestone or if at least an installation set for this milestone is still available then this check can be done with acceptable effort. If neither is available it is rather difficult to find out where the bug was introduced.&lt;br /&gt;
# Too many hands work on a CWS which have not run enough automated tests. Often the automated test scripts run parallel to manual testing. Sometimes they need to do that testing more than once because an automated test reported a defect.&lt;br /&gt;
# Too many different test environments sometimes report on some &amp;#039;&amp;#039;&amp;#039;functional tests&amp;#039;&amp;#039;&amp;#039; different results. This means that if a test fails, which did not fail on the corresponding MWS, it does not always mean that a new bug was introduced. Instead it might be that a new test run finishes without this error.&lt;br /&gt;
# If all existing test cases are run, the whole test cycle takes a few days - far too much to do this on every CWS. But reduced sets exist that run overnight.&lt;br /&gt;
&lt;br /&gt;
== What does this mean for the quality of OpenOffice.org? ==&lt;br /&gt;
&lt;br /&gt;
The effect of the above pitfalls is that it is quite hard for a developer to do extended regression testing for his CWSs. If he feels that the changes he made on his CWS should be verified by automated testing, he will usually try to get hold of one of the test automators - a limited resource, especially when we are in the middle of an OOo release. Even the QA representative for the CWS will in many cases not be able to run more than a few basic automated tests as the effort to run a larger set is too high for him.&lt;br /&gt;
&lt;br /&gt;
So we have to rely on the SmokeTest, the normal testing done by the developer and testers, and those automated tests the few test automators are able to do, to ensure the quality of the CWSs. But there is room for more. If we were able to do more automated tests then we could find some more bugs early, before they get into the codeline and the product and thus create OOo releases in an even better quality...&lt;br /&gt;
&lt;br /&gt;
== A possible way out ==&lt;br /&gt;
&lt;br /&gt;
To enable automated tests on every CWS we would have to eliminate the above two problems. So a tester encountering a failed test during automated testing should not be required to check whether the bug was really introduced on the CWS and he should be certain that a failed test means that a bug exists and not have to retry the test again to be sure. Additionally the tests should run in an acceptable time i.e. a few hours at the most.&lt;br /&gt;
&lt;br /&gt;
# The CWSs gh13 (already introduced) and gh14 are supposed to improve the usability and the speed of the TestTool. &lt;br /&gt;
# With a small set of tests being used, which always run safely and deterministic and with the tests being finished within a few hours (we might add more tests later), that leaves us with the problem of having to check whether all those failed tests were introduced with the CWS or whether they existed on the MWS.&lt;br /&gt;
&lt;br /&gt;
These checks - at least at the moment - take the most time for the test automators. They could be eliminated if the MWS were always free of bugs that cause automated tests to fail. Then a failed test would automatically mean that the corresponding bug was introduced with the new CWS - no need to check the MWS. A failed test then always means that a bug was introduced with the CWS.&lt;br /&gt;
&lt;br /&gt;
But how to ensure that the MWS stays free of bugs that cause the automated tests to fail? &lt;br /&gt;
# It looks like we would have to make the automated tests, at least a certain set, mandatory for every CWS. Otherwise, sooner or later, via some CWSs bugs would again be introduced that cause the automated tests to fail. So for every CWS the owner or the QA representative would have to run the automated tests. Ideally the test run would send the information whether the tests all succeeded directly to the [[EIS]] tool. Approval of a CWS would then require the tests to be successfully run. That way we should be able to ensure that the automated tests don&amp;#039;t get &amp;quot;corrupted&amp;quot; on the MWS. If - for whatever reason - we would indeed later detect a failed test on the MWS, then this would cause a P1 bug that would have to be fixed with the milestone before making it ready for usage, or on the next milestone if a fix is not possible in acceptable time. A milestone containing such a bug should not be used for CWS creation and CWSs already having been created on it should be resynced to the next milestone.&lt;br /&gt;
# If a CWS is introducing changes which affect the selected automated tests the automator need to make the changes at the same time as the CWS is in development, Both changes have to integrated at the same time to the versiong systems (CVS).&lt;br /&gt;
&lt;br /&gt;
== Open questions ==&lt;br /&gt;
&lt;br /&gt;
Automatic testing on the MWS for each milestone might postpone the time when the milestone is ready for usage compared to now. This ranges from a few hours for pure testing to whole days in case of real regressions which have to get fixed. Is this acceptable?&lt;br /&gt;
&lt;br /&gt;
Running automated tests that take several hours to run requires hardware to run the tests on. Do we need separate hardware to run the tests, or should this be done on the machines where the developers do the builds? Is the additional required machine time acceptable at all?&lt;br /&gt;
&lt;br /&gt;
Is it possible to integrate such testing into tinderbox builds?&lt;br /&gt;
&lt;br /&gt;
What platforms are required for the automated tests? Does one platform suffice? Should the developer have freedom to determine the necessary platforms and e.g. normally run the tests on Windows &amp;amp; Linux but be able to say that one platform is sufficient if he can safely say that his changes should not affect other platforms?&lt;br /&gt;
&lt;br /&gt;
Changes in the UI might make it necessary to adapt a corresponding test case. This requires some work from the QA engineers responsible for creating automated tests, who then might become the bottleneck. This might be mitigated by informing the automated tester early during CWS development. Do we accept this potential increase in development time?&lt;br /&gt;
&lt;br /&gt;
How does this all relate to unit test? From time to time there are efforts to push usage of unit tests or even make them mandatory, for the same reasons as given here.&lt;br /&gt;
&lt;br /&gt;
== A vision of a future with regular regression testing ==&lt;br /&gt;
&lt;br /&gt;
The following is a &amp;quot;vision&amp;quot; of an idealized future where we do more regression testing via automated tests:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;In the past few months the quality of OOo has significantly improved. A set of automated tests is now run on each and every CWS before it gets integrated, so that the quality of CWSs has improved further and thus the Master Workspace where OOo is released from.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Now, once the owner sets his CWS to the state &amp;quot;ready for QA&amp;quot;, the QA representative (or the owner himself) triggers the run of the automated tests. This is quite easy for him as it is a simple command in his command shell. The tests then run while the tester does the normal manual testing on the CWS and is usually finished even before all normal tests are done, so that it costs little or no additional time. With the finished test, the test script also reports its state to the EIS application, so that it is easy for the QA representative to see whether the tests were successful. Without successful automated tests, nearly (*) no CWS nowadays gets integrated in the MWS. (There are exceptions for special cases like pure build fixes, cws tooling changes, and the like.)&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;The test automators now have much less effort with checking failed tests, as - at least for the mandatory set of tests for every CWS - the MWS is usually free of bugs in automated tests, so that there is no such effort at least for this part of the existing tests. This leaves them the necessary time to adapt tests to modified UI in CWSs and also a bit more time to develop new test cases. Now and then they also add a test case to the set of mandatory tests, so that this set of tests has slightly increased over the past weeks.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Jj|Jj]] 13:19, 10 May 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Steps_towards_regular_automated_regression_testing&amp;diff=32276</id>
		<title>Steps towards regular automated regression testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Steps_towards_regular_automated_regression_testing&amp;diff=32276"/>
		<updated>2007-05-15T07:49:45Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Current state ==&lt;br /&gt;
&lt;br /&gt;
Automated testing with [[TestTool]] at the moment has several [http://qa.openoffice.org/ooQAReloaded/AutomationTeamsite/ooQA-TeamAutomationTestlist.html sets of test cases] available which are used for testing on Master Workspaces ([[MWS]]s) or Child Workspaces ([[CWS]]s). The tests on the MWS are used as a reference when testing a CWS derived from this MWS, so that it can be determined whether a bug found by means of an automated test was introduced on the CWS or on the MWS. Our current Master Workspaces, be it SRC680 or OOF680, do by no means succeed with all automated tests. Instead there are always some tests which fail. For such failed tests bugs are created within [[Issue Tracker]]. These are treated as normal bugs so that sooner or later they are fixed and the test works again.&lt;br /&gt;
&lt;br /&gt;
== Current pitfalls for regular regression testing ==&lt;br /&gt;
&lt;br /&gt;
When a [[QA]] engineer or developer wants to do some more automated regression tests for a CWS than the [[SmokeTest]] offers, he does encounter several problems:&lt;br /&gt;
&lt;br /&gt;
1. As some tests also fail on the Master Workspace the tester has to check whether a failed test was newly introduced by the CWS or whether it already existed on the [[ReleaseMilestone]] his CWS is based on. If automated testing was done for this milestone or if at least an installation set for this milestone is still available then this check can be done with acceptable effort. If neither is available it is rather difficult to find out where the bug was introduced.&lt;br /&gt;
&lt;br /&gt;
2. The [[Testtool]] does not always work in a deterministic way. This means that if a test fails, which did not fail on the corresponding MWS, it does not always mean that a new bug was introduced. Instead it might be that a new test run finishes without this error. The reasons are different test environments or timing issues for some test cases.&lt;br /&gt;
&lt;br /&gt;
3. If all existing test cases are run, the whole test cycle takes a few days - far too much to do this on every CWS. But reduced sets exist that run overnight.&lt;br /&gt;
&lt;br /&gt;
== What does this mean for the quality of OpenOffice.org? ==&lt;br /&gt;
&lt;br /&gt;
The effect of the above pitfalls is that it is quite hard for a developer to do extended regression testing for his CWSs. If he feels that the changes he made on his CWS should be verified by automated testing, he will usually try to get hold of one of the automated testers - a limited resource, especially when we are in the middle of an OOo release. Even the QA representative for the CWS will in many cases not be able to run more than a few basic automated tests as the effort to run a larger set is too high for him.&lt;br /&gt;
&lt;br /&gt;
So we have to rely on the SmokeTest, the normal testing done by the developer and testers, and those automated tests the few automated testers are able to do, to ensure the quality of the CWSs. But there is room for more. If we were able to do more automated tests then we could find some more bugs early, before they get into the codeline and the product and thus create OOo releases in an even better quality...&lt;br /&gt;
&lt;br /&gt;
== A possible way out ==&lt;br /&gt;
&lt;br /&gt;
To enable automated tests on every CWS we would have to eliminate the above two problems. So a tester encountering a failed test during automated testing should not be required to check whether the bug was really introduced on the CWS and he should be certain that a failed test means that a bug exists and not have to retry the test again to be sure. Additionally the tests should run in an acceptable time i.e. a few hours at the most.&lt;br /&gt;
&lt;br /&gt;
The CWSs gh13 and gh14 are supposed to improve the speed of the TestTool and also improve its deterministic behaviour. With a small set of tests being used, which always run safely and deterministic and with the tests being finished within a few hours (we might add more tests later), that leaves us with the problem of having to check whether all those failed tests were introduced with the CWS or whether they existed on the MWS.&lt;br /&gt;
&lt;br /&gt;
These checks - at least at the moment - take the most time for the automated testers. They could be eliminated if the MWS were always free of bugs that cause automated tests to fail. Then a failed test would automatically mean that the corresponding bug was introduced with the new CWS - no need to check the MWS. A failed test then always means that a bug was introduced with the CWS.&lt;br /&gt;
&lt;br /&gt;
But how to ensure that the MWS stays free of bugs that cause the automated tests to fail? It looks like we would have to make the automated tests, at least a certain set, mandatory for every CWS. Otherwise, sooner or later, via some CWSs bugs would again be introduced that cause the automated tests to fail. So for every CWS the owner or the QA representative would have to run the automated tests. Ideally the test run would send the information whether the tests all succeeded directly to the [[EIS]] tool. Approval of a CWS would then require the tests to be successfully run. That way we should be able to ensure that the automated tests don&amp;#039;t get &amp;quot;corrupted&amp;quot; on the MWS. If - for whatever reason - we would indeed later detect a failed test on the MWS, then this would cause a P1 bug that would have to be fixed with the milestone before making it ready for usage, or on the next milestone if a fix is not possible in acceptable time. A milestone containing such a bug should not be used for CWS creation and CWSs already having been created on it should be resynced to the next milestone.&lt;br /&gt;
&lt;br /&gt;
== Open questions ==&lt;br /&gt;
&lt;br /&gt;
Automatic testing on the MWS for each milestone might postpone the time when the milestone is ready for usage by a few hours compared to now. Is this acceptable?&lt;br /&gt;
&lt;br /&gt;
Running automated tests that take several hours to run requires hardware to run the tests on. Do we need separate hardware to run the tests, or should this be done on the machines where the developers do the builds? Is the additional required machine time acceptable at all?&lt;br /&gt;
&lt;br /&gt;
What platforms are required for the automated tests? Does one platform suffice? Should the developer have freedom to determine the necessary platforms and e.g. normally run the tests on Windows &amp;amp; Linux but be able to say that one platform is sufficient if he can safely say that his changes should not affect other platforms?&lt;br /&gt;
&lt;br /&gt;
Changes in the UI might make it necessary to adapt a corresponding test case. This requires some work from the QA engineers responsible for creating automated tests, who then might become the bottleneck. This might be mitigated by informing the automated tester early during CWS development. Do we accept this potential increase in development time?&lt;br /&gt;
&lt;br /&gt;
== A vision of a future with regular regression testing ==&lt;br /&gt;
&lt;br /&gt;
The following is a &amp;quot;vision&amp;quot; of an idealized future where we do more regression testing via automated tests:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;In the past few months the quality of OOo has significantly improved. A set of automated tests is now run on each and every CWS before it gets integrated, so that the quality of CWSs has improved further and thus the Master Workspace where OOo is released from.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Now, once the owner sets his CWS to the state &amp;quot;ready for QA&amp;quot;, the QA representative (or the owner himself) triggers the run of the automated tests. This is quite easy for him as it is a simple command in his command shell. The tests then run while the tester does the normal manual testing on the CWS and is usually finished even before all normal tests are done, so that it costs little or no additional time. With the finished test, the test script also reports its state to the EIS application, so that it is easy for the QA representative to see whether the tests were successful. Without successful automated tests, no CWS nowadays gets integrated in the MWS.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;The automated testers now have much less effort with checking failed tests, as - at least for the mandatory set of tests for every CWS - the MWS is usually free of bugs in automated tests, so that there is no such effort at least for this part of the existing tests. This leaves them the necessary time to adapt tests to modified UI in CWSs and also a bit more time to develop new test cases. Now and then they also add a test case to the set of mandatory tests, so that this set of tests has slightly increased over the past weeks.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Jj|Jj]] 13:19, 10 May 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease22&amp;diff=31949</id>
		<title>OOoRelease22</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease22&amp;diff=31949"/>
		<updated>2007-05-10T13:39:24Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Release Plan for  2.2 release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OOo 2.2 ==&lt;br /&gt;
&lt;br /&gt;
* UI and [[Feature_freeze]] : December 28th, 2006&lt;br /&gt;
* [[Translation for 2.2|Translation update 2.2]] start: January 4th, 2007&lt;br /&gt;
* Translation update 2.2 delivery: January 18th, 2007&lt;br /&gt;
* [[code_freeze]]: January 25th, 2007&lt;br /&gt;
* l10n CWS builds available: January 25th, 2007&lt;br /&gt;
* TCM l10n testing on CWS builds: January 25th - 31st&lt;br /&gt;
* pre release candidate (en_US only): February 1st, 2007&lt;br /&gt;
* [[Last cws integration]] for fixes: February 8th, 2007&lt;br /&gt;
* release candidate for all languages: February 22th, 2007&lt;br /&gt;
* Product release: March 28th, 2007&lt;br /&gt;
&lt;br /&gt;
=== Release Plan for  2.2 release===&lt;br /&gt;
&lt;br /&gt;
{| border = &amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Task	!!  Who	 !! Deadline !!	Comments&lt;br /&gt;
|-&lt;br /&gt;
! last cws integration for first RC / OOF680_m8 &lt;br /&gt;
| mh, RE	  ||  || done&lt;br /&gt;
|-&lt;br /&gt;
! release notes			 &lt;br /&gt;
|  mh, ja  || 	 || done for http://development.openoffice.org/releases/2.2.0rc4.html&lt;br /&gt;
|-&lt;br /&gt;
! Setup Guides	&lt;br /&gt;
|           || 		 ||&lt;br /&gt;
|-&lt;br /&gt;
! Upload of RC builds	 &lt;br /&gt;
| ja	   || done for 2.2.0rc4  || &lt;br /&gt;
                   full install sets for: en-US da de es fr it ja nl ko pl sv pt-BR zh-CN zh-TW&lt;br /&gt;
&lt;br /&gt;
language packs for:   en-US af as-IN be-BY bg br bs ca cs cy da de dz el en-GB en-ZA eo es et fa fi fr ga gl gu-IN he hi-IN hr hu it ja ka km ko ku lt mk ml-IN mr-IN nb ne nl nn nr ns or-IN pa-IN pl pt pt-BR ru rw sh-YU sk sl sr-CS ss st sv sw-TZ ta-IN te-IN tg th ti-ER tn tr ts uk ur-IN ve vi xh zh-CN zh-TW zu&amp;lt;br&amp;gt;&lt;br /&gt;
(same as for OOo 2.1 plus &amp;#039;dz&amp;#039; and &amp;#039;gl&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
! Trigger QA of final builds  &lt;br /&gt;
|  ja	||  || announcement of 2.2.0rc4 done&lt;br /&gt;
|-&lt;br /&gt;
! Track Status of localized builds  &lt;br /&gt;
| ja	 ||  || 2.2.0rc4 builds added to http://qatrack.services.openoffice.org/view.php&lt;br /&gt;
|-&lt;br /&gt;
! Publish status of [http://qa.openoffice.org/qatesttool automated GUI testing]&lt;br /&gt;
| [[User:jsi|jsi]]     ||  || [[OOoRelease22AutomationTestMatrix|http://wiki.services.openoffice.org/wiki/OOoRelease22AutomationTestMatrix]]&lt;br /&gt;
|-&lt;br /&gt;
! Update of 2.2 pages for RC&lt;br /&gt;
| ja      	||  || http://download.openoffice.org/680/index.html&lt;br /&gt;
|-&lt;br /&gt;
! QA of English RC builds  &lt;br /&gt;
|  ja	||  || done for 2.2.0rc4&lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK		 &lt;br /&gt;
|  ja	||             || download available from ../contrib/rc/2.2.0rc4&lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK Release Notes and update of redirect page http://download.openoffice.org/sdk.html	 &lt;br /&gt;
|  jsc/ja	||             || done&lt;br /&gt;
|-&lt;br /&gt;
! Upload of src tarballs	&lt;br /&gt;
|  ja   ||   || done for 2.2.0rc4&lt;br /&gt;
|-&lt;br /&gt;
! msg to announce@ooo content&lt;br /&gt;
| louis || 	 || done&lt;br /&gt;
|-&lt;br /&gt;
! move RC to final &lt;br /&gt;
|  ja ||  || done&lt;br /&gt;
|-&lt;br /&gt;
! download pages&lt;br /&gt;
| ja || || done&lt;br /&gt;
|-&lt;br /&gt;
! upload of solver tarballs &lt;br /&gt;
| ja ||   || tbd after 2.2 release&lt;br /&gt;
|-&lt;br /&gt;
! notification of mirrors &lt;br /&gt;
| ja	  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! Update of Bittorrents	&lt;br /&gt;
|  (mike!)	|| 	 ||&lt;br /&gt;
|-&lt;br /&gt;
! Update of P2P page&lt;br /&gt;
| antbryan  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
! press kit update&lt;br /&gt;
| jpmcc/lsp 	|| ||  &lt;br /&gt;
|-&lt;br /&gt;
! press release/alert&lt;br /&gt;
| jpmcc, lsp  || || http://wiki.services.openoffice.org/wiki/Press_release_2.2 - on timed release at PRWeb for March 29 PST || &lt;br /&gt;
|-&lt;br /&gt;
! homepage  &lt;br /&gt;
| louis ||		|| &lt;br /&gt;
|-&lt;br /&gt;
! release	&lt;br /&gt;
|  all		|| 		 ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Next Release ==&lt;br /&gt;
* [[OOoRelease221]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease221&amp;diff=31948</id>
		<title>OOoRelease221</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease221&amp;diff=31948"/>
		<updated>2007-05-10T13:38:41Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Release Plan for  2.2.1 release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OOo 2.2.1 ==&lt;br /&gt;
&lt;br /&gt;
as discussed on releases we&amp;#039;re going to introduce a bugfix release 2.2.1 end of May, begin of June (http://www.openoffice.org/servlets/BrowseList?list=releases&amp;amp;by=thread&amp;amp;from=1594200). We agreed on fixing only the important bugfixes only. We discussed this during the latest release status meeting (http://wiki.services.openoffice.org/wiki/ReleaseStatus_Minutes#2007-01-22) that all issues with target 2.2.1 needs to get reviewed by the Release status meeting.&lt;br /&gt;
&amp;quot;Important issue&amp;quot; means that the issue get considered as major regression to 2.2 release or has been defined as a &amp;quot;must have&amp;quot; by the release status meeting.&lt;br /&gt;
So the default target for regular defects is OOo 2.3 in this moment (--[[User:Mh|Mh]] 14:58, 25 January 2007 (CET)) &lt;br /&gt;
&lt;br /&gt;
* [[code_freeze]]: April 26th, 2007&lt;br /&gt;
* [[Last cws integration]] for fixes: May 10th, 2007&lt;br /&gt;
* release candidate for all languages: May 24th, 2007&lt;br /&gt;
* Product release: June 5th, 2007&lt;br /&gt;
&lt;br /&gt;
=== Release Plan for  2.2.1 release===&lt;br /&gt;
&lt;br /&gt;
{| border = &amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Task	!!  Who	 !! Deadline !!	Comments&lt;br /&gt;
|-&lt;br /&gt;
! last cws integration for first RC / OOF680_mxx &lt;br /&gt;
| mh, RE	  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! release notes			 &lt;br /&gt;
|  mh, ja  || 	 || &lt;br /&gt;
|-&lt;br /&gt;
! Setup Guides	&lt;br /&gt;
|           || 		 ||&lt;br /&gt;
|-&lt;br /&gt;
! Upload of RC builds	 &lt;br /&gt;
| ja	   ||   || full install sets for: en-US da de es fr it ja nl ko pl ru sv pt-BR zh-CN zh-TW&amp;lt;br&amp;gt;(same as for OOo 2.2 plus &amp;#039;ru&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
language packs for:   en-US af as-IN be-BY bg br bs ca cs cy da de dz el en-GB en-ZA eo es et fa fi fr ga gl gu-IN he hi-IN hr hu it ja ka km ko ku lt mk ml-IN mr-IN nb ne nl nn nr ns or-IN pa-IN pl pt pt-BR rw sh-YU sk sl sr-CS ss st sv sw-TZ ta-IN te-IN tg th ti-ER tn tr ts uk ur-IN ve vi xh zh-CN zh-TW zu&amp;lt;br&amp;gt;(same as for OOo 2.2 minus &amp;#039;ru&amp;#039;)&lt;br /&gt;
|-&lt;br /&gt;
! Trigger QA of final builds  &lt;br /&gt;
|  aschnabel	||  || &lt;br /&gt;
|-&lt;br /&gt;
! Track Status of localized builds  &lt;br /&gt;
| ja	 ||  || http://qatrack.services.openoffice.org/view.php&lt;br /&gt;
|-&lt;br /&gt;
! Update of 2.2.1 pages for RC&lt;br /&gt;
| ja      	||  || http://download.openoffice.org/680/index.html&lt;br /&gt;
|-&lt;br /&gt;
! QA of English RC builds  &lt;br /&gt;
|  ja	||  || &lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK		 &lt;br /&gt;
|  ja	||             || &lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK Release Notes and update of redirect page http://download.openoffice.org/sdk.html	 &lt;br /&gt;
|  jsc/ja	||             || &lt;br /&gt;
|-&lt;br /&gt;
! Upload of src tarballs	&lt;br /&gt;
|  ja   ||   || &lt;br /&gt;
|-&lt;br /&gt;
! msg to announce@ooo content&lt;br /&gt;
| louis || 	 || &lt;br /&gt;
|-&lt;br /&gt;
! move RC to final &lt;br /&gt;
|  ja ||  || &lt;br /&gt;
|-&lt;br /&gt;
! download pages&lt;br /&gt;
| ja || || &lt;br /&gt;
|-&lt;br /&gt;
! upload of solver tarballs &lt;br /&gt;
| ja ||   || &lt;br /&gt;
|-&lt;br /&gt;
! notification of mirrors &lt;br /&gt;
| ja	  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! Update of Bittorrents	&lt;br /&gt;
|  (mike!)	|| 	 ||&lt;br /&gt;
|-&lt;br /&gt;
! Update of P2P page&lt;br /&gt;
| antbryan  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
! press kit update&lt;br /&gt;
| jpmcc/lsp 	|| ||  &lt;br /&gt;
|-&lt;br /&gt;
! press release/alert&lt;br /&gt;
| jpmcc, lsp  || 		  || &lt;br /&gt;
|-&lt;br /&gt;
! homepage  &lt;br /&gt;
| louis ||		|| &lt;br /&gt;
|-&lt;br /&gt;
! release	&lt;br /&gt;
|  all		|| 		 ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Next Release ==&lt;br /&gt;
* [[OOoRelease23]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Releases]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Steps_towards_regular_automated_regression_testing&amp;diff=31945</id>
		<title>Steps towards regular automated regression testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Steps_towards_regular_automated_regression_testing&amp;diff=31945"/>
		<updated>2007-05-10T11:19:38Z</updated>

		<summary type="html">&lt;p&gt;Jj: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Current state ==&lt;br /&gt;
&lt;br /&gt;
Automated testing at the moment has several sets of test cases available which are used for testing on Master Workspaces ([[MWS]]s) or Child Workspaces ([[CWS]]s). The tests on the MWS are used as a reference when testing a CWS derived from this MWS, so that it can be determined whether a bug found by means of an automated test was introduced on the CWS or on the MWS. Our current Master Workspaces, be it SRC680 or OOF680, do by no means succeed with all automated tests. Instead there are always some tests which fail. For such failed tests bugs are created within [[Issue Tracker]]. These are treated as normal bugs so that sooner or later they are fixed and the test works again.&lt;br /&gt;
&lt;br /&gt;
== Current pitfalls for regular regression testing ==&lt;br /&gt;
&lt;br /&gt;
When a [[QA]] engineer or developer wants to do some more automated regression tests for a CWS than the [[SmokeTest]] offers, he does encounter several problems:&lt;br /&gt;
&lt;br /&gt;
1. As some tests also fail on the Master Workspace the tester has to check whether a failed test was newly introduced by the CWS or whether it already existed on the [[ReleaseMilestone]] his CWS is based on. If automated testing was done for this milestone or if at least an installation set for this milestone is still available then this check can be done with acceptable effort. If neither is available it is rather difficult to find out where the bug was introduced.&lt;br /&gt;
&lt;br /&gt;
2. The [[Testtool]] does not always work in a deterministic way. This means that if a test fails, which did not fail on the corresponding MWS, it does not always mean that a new bug was introduced. Instead it might be that a new test run finishes without this error. The reasons are e.g. timing issues for some test cases.&lt;br /&gt;
&lt;br /&gt;
3. If all existing test cases are run, the whole test cycle takes a few days - far too much to do this on every CWS. But reduced sets exist that run overnight.&lt;br /&gt;
&lt;br /&gt;
== What does this mean for the quality of OpenOffice.org? ==&lt;br /&gt;
&lt;br /&gt;
The effect of the above pitfalls is that it is quite hard for a developer to do extended regression testing for his CWSs. If he feels that the changes he made on his CWS should be verified by automated testing, he will usually try to get hold of one of the automated testers - a limited resource, especially when we are in the middle of an OOo release. Even the QA representative for the CWS will in many cases not be able to run more than a few basic automated tests as the effort to run a larger set is too high for him.&lt;br /&gt;
&lt;br /&gt;
So we have to rely on the SmokeTest, the normal testing done by the developer and testers, and those automated tests the few automated testers are able to do, to ensure the quality of the CWSs. But there is room for more. If we were able to do more automated tests then we could find some more bugs early, before they get into the codeline and the product and thus create OOo releases in an even better quality...&lt;br /&gt;
&lt;br /&gt;
== A possible way out ==&lt;br /&gt;
&lt;br /&gt;
To enable automated tests on every CWS we would have to eliminate the above two problems. So a tester encountering a failed test during automated testing should not be required to check whether the bug was really introduced on the CWS and he should be certain that a failed test means that a bug exists and not have to retry the test again to be sure. Additionally the tests should run in an acceptable time i.e. a few hours at the most.&lt;br /&gt;
&lt;br /&gt;
The CWSs gh13 and gh14 are supposed to solve the problem of the TestTool not always running in a deterministic way and should improve the speed of the TestTool. With a small set of tests being used, so that the tests are finished within a few hours (we might add more tests later), that leaves us with the problem of having to check whether all those failed tests were introduced with the CWS or whether they existed on the MWS.&lt;br /&gt;
&lt;br /&gt;
These checks - at least at the moment - take the most time for the automated testers. They could be eliminated if the MWS were always free of bugs that cause automated tests to fail. Then a failed test would automatically mean that the corresponding bug was introduced with the new CWS - no need to check the MWS. A failed test then always means that a bug was introduced with the CWS.&lt;br /&gt;
&lt;br /&gt;
But how to ensure that the MWS stays free of bugs that cause the automated tests to fail? It looks like we would have to make the automated tests, at least a certain set, mandatory for every CWS. Otherwise, sooner or later, via some CWSs bugs would again be introduced that cause the automated tests to fail. So for every CWS the owner or the QA representative would have to run the automated tests. Ideally the test run would send the information whether the tests all succeeded directly to the [[EIS]] tool. Approval of a CWS would then require the tests to be successfully run. That way we should be able to ensure that the automated tests don&amp;#039;t get &amp;quot;corrupted&amp;quot; on the MWS. If - for whatever reason - we would indeed later detect a failed test on the MWS, then this would cause a P1 bug that would have to be fixed with the milestone before making it ready for usage, or on the next milestone if a fix is not possible in acceptable time. A milestone containing such a bug should not be used for CWS creation and CWSs already having been created on it should be resynced to the next milestone.&lt;br /&gt;
&lt;br /&gt;
== Open questions ==&lt;br /&gt;
&lt;br /&gt;
Automatic testing on the MWS for each milestone might postpone the time when the milestone is ready for usage by a few hours compared to now. Is this acceptable?&lt;br /&gt;
&lt;br /&gt;
Running automated tests that take several hours to run requires hardware to run the tests on. Do we need separate hardware to run the tests, or should this be done on the machines where the developers do the builds? Is the additional required machine time acceptable at all?&lt;br /&gt;
&lt;br /&gt;
What platforms are required for the automated tests? Does one platform suffice? Should the developer have freedom to determine the necessary platforms and e.g. normally run the tests on Windows &amp;amp; Linux but be able to say that one platform is sufficient if he can safely say that his changes should not affect other platforms?&lt;br /&gt;
&lt;br /&gt;
Changes in the UI might make it necessary to adapt a corresponding test case. This requires some work from the QA engineers responsible for creating automated tests, who then might become the bottleneck. This might be mitigated by informing the automated tester early during CWS development. Do we accept this potential increase in development time?&lt;br /&gt;
&lt;br /&gt;
== A vision of a future with regular regression testing ==&lt;br /&gt;
&lt;br /&gt;
The following is a &amp;quot;vision&amp;quot; of an idealized future where we do more regression testing via automated tests:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;In the past few months the quality of OOo has significantly improved. A set of automated tests is now run on each and every CWS before it gets integrated, so that the quality of CWSs has improved further and thus the Master Workspace where OOo is released from.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Now, once the owner sets his CWS to the state &amp;quot;ready for QA&amp;quot;, the QA representative (or the owner himself) triggers the run of the automated tests. This is quite easy for him as it is a simple command in his command shell. The tests then run while the tester does the normal manual testing on the CWS and is usually finished even before all normal tests are done, so that it costs little or no additional time. With the finished test, the test script also reports its state to the EIS application, so that it is easy for the QA representative to see whether the tests were successful. Without successful automated tests, no CWS nowadays gets integrated in the MWS.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;The automated testers now have much less effort with checking failed tests, as - at least for the mandatory set of tests for every CWS - the MWS is usually free of bugs in automated tests, so that there is no such effort at least for this part of the existing tests. This leaves them the necessary time to adapt tests to modified UI in CWSs and also a bit more time to develop new test cases. Now and then they also add a test case to the set of mandatory tests, so that this set of tests has slightly increased over the past weeks.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[User:Jj|Jj]] 13:19, 10 May 2007 (CEST)&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease22&amp;diff=23549</id>
		<title>OOoRelease22</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease22&amp;diff=23549"/>
		<updated>2007-01-17T17:20:38Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Release Plan for  2.2 release */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OOo 2.2 ==&lt;br /&gt;
&lt;br /&gt;
* UI and [[Feature_freeze]] : December 28th, 2006&lt;br /&gt;
* [[Translation for 2.2|Translation update 2.2]] start: January 4th, 2007&lt;br /&gt;
* Translation update 2.2 delivery: January 18th, 2007&lt;br /&gt;
* [[code_freeze]]: January 25th, 2007&lt;br /&gt;
* l10n CWS builds available: January 25th, 2007&lt;br /&gt;
* TCM l10n testing on CWS builds: January 25th - 31st&lt;br /&gt;
* pre release candidate (en_US only): February 1st, 2007&lt;br /&gt;
* [[Last cws integration]] for fixes: February 8th, 2007&lt;br /&gt;
* release candidate for all languages: February 15th, 2007&lt;br /&gt;
* Product release: February 27th, 2007&lt;br /&gt;
&lt;br /&gt;
=== Release Plan for  2.2 release===&lt;br /&gt;
&lt;br /&gt;
{| border = &amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Task	!!  Who	 !! Deadline !!	Comments&lt;br /&gt;
|-&lt;br /&gt;
! last cws integration for first RC / SRC680_m1xx &lt;br /&gt;
| mh, RE	  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! release notes			 &lt;br /&gt;
|  mh, ja  || 	 || &lt;br /&gt;
|-&lt;br /&gt;
! Setup Guides	&lt;br /&gt;
|           || 		 ||&lt;br /&gt;
|-&lt;br /&gt;
! Upload of RC builds	 &lt;br /&gt;
| ja	   ||   || (Draft)&lt;br /&gt;
                   full install sets for: en-US da de es fr it ja nl ko pl sv pt-BR zh-CN zh-TW&lt;br /&gt;
&lt;br /&gt;
                   language packs for:  &lt;br /&gt;
|-&lt;br /&gt;
! Trigger QA of final builds  &lt;br /&gt;
|  aschnabel	||  || &lt;br /&gt;
|-&lt;br /&gt;
! Track Status of localized builds  &lt;br /&gt;
| ja	 ||  || http://www.qatrack.org/ooo/view.php&lt;br /&gt;
|-&lt;br /&gt;
! Publish status of [http://qa.openoffice.org/qatesttool automated GUI testing]&lt;br /&gt;
| [[User:jsi|jsi]]     ||  || [[OOoRelease1AutomationTestMatrix|http://wiki.services.openoffice.org/wiki/OOoRelease1AutomationTestMatrix]]&lt;br /&gt;
|-&lt;br /&gt;
! Update of 2.2 pages for RC&lt;br /&gt;
| ja      	||  || http://download.openoffice.org/680/index.html&lt;br /&gt;
|-&lt;br /&gt;
! QA of English RC builds  &lt;br /&gt;
|  ja	||  || &lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK		 &lt;br /&gt;
|  ja	||             || &lt;br /&gt;
|-&lt;br /&gt;
! Update of SDK Release Notes and update of redirect page http://download.openoffice.org/sdk.html	 &lt;br /&gt;
|  jsc/ja	||             || &lt;br /&gt;
|-&lt;br /&gt;
! Upload of src tarballs	&lt;br /&gt;
|  ja   ||   || &lt;br /&gt;
|-&lt;br /&gt;
! msg to announce@ooo content&lt;br /&gt;
| louis || 	 || &lt;br /&gt;
|-&lt;br /&gt;
! move RC to final &lt;br /&gt;
|  ja ||  || &lt;br /&gt;
|-&lt;br /&gt;
! download pages&lt;br /&gt;
| ja || || &lt;br /&gt;
|-&lt;br /&gt;
! upload of solver tarballs &lt;br /&gt;
| ja ||   || &lt;br /&gt;
|-&lt;br /&gt;
! notification of mirrors &lt;br /&gt;
| ja	  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
! Update of Bittorrents	&lt;br /&gt;
|  (mike!)	|| 	 ||&lt;br /&gt;
|-&lt;br /&gt;
! Update of P2P page&lt;br /&gt;
| antbryan  ||  ||  &lt;br /&gt;
|-&lt;br /&gt;
! press kit update&lt;br /&gt;
| jpmcc/lsp 	|| ||  &lt;br /&gt;
|-&lt;br /&gt;
! press release/alert&lt;br /&gt;
| jpmcc, lsp  || 		  || &lt;br /&gt;
|-&lt;br /&gt;
! homepage  &lt;br /&gt;
| louis ||		|| &lt;br /&gt;
|-&lt;br /&gt;
! release	&lt;br /&gt;
|  all		|| 		 ||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Next Release ==&lt;br /&gt;
* [[OOoRelease221]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Buildbot&amp;diff=22371</id>
		<title>Buildbot</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Buildbot&amp;diff=22371"/>
		<updated>2006-12-19T14:46:28Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* Allocation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A buildbot is now deployed for OpenOffice.org. &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;http://ooo-staging.osuosl.org:8010/&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
From the Buildbot README: http://buildbot.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
Please see how you can &amp;#039;&amp;#039;&amp;#039;[[Buildbot Steps | add your own buildbot]]!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Find out about the successor to the Buildbot, which is named [[Termite]].&lt;br /&gt;
&lt;br /&gt;
The BuildBot is a system to automate the compile/test cycle required by most software projects to validate code changes. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. The guilty developer can be identified and harassed without human intervention. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not. Warning counts, lint checks, image size, compile time, and other build parameters can be tracked over time, are more visible, and are therefore easier to improve.&lt;br /&gt;
&lt;br /&gt;
== OpenOffice.org Buildbot == &lt;br /&gt;
The Buildbot will: &lt;br /&gt;
* Build CWS/SVN branches on multiple platforms and make output available to developers&lt;br /&gt;
* Generate and make available install sets for multiple platforms&lt;br /&gt;
* Run tests (smoketest, performance tests, etc.) and make test reports available for tracking and regression. &lt;br /&gt;
&lt;br /&gt;
== Buildbot vs. Tinderbox == &lt;br /&gt;
Currently, there is a [[Tinderbox]]. In fact, the Buildbot uses or adapts several Tinderbox scripts. The Buildbot provides several advantages: &lt;br /&gt;
* At-a-glance, customizable statusboard &lt;br /&gt;
* Flexible, modular, extensible framework &lt;br /&gt;
* Bots can be commanded and coordinated from the botmaster &lt;br /&gt;
&lt;br /&gt;
Both Buildbots and Tinderboxes are easy to setup and can be behind the firewall. Thanks to [[User:Cloph|Cloph]] for reminding about the similarities.&lt;br /&gt;
&lt;br /&gt;
== Deployment &amp;amp; Hardware == &lt;br /&gt;
Currently, the botmaster and several buildbots are hosted at OSU-OSL (http://osuosl.org). Additional machines will be added to the pool. Sun QA/RE plans to host a Solaris bot. &lt;br /&gt;
&lt;br /&gt;
=== Allocation === &lt;br /&gt;
Many buildbot based projects dedicate groups of bots to specific code branches. Thus, for example, checkins to HEAD will automatically trigger the associated pool of machines and the changes built, tested on multiple platforms. See for example: http://www.python.org/dev/buildbot/&lt;br /&gt;
&lt;br /&gt;
However, this is impractical for OpenOffice.org due the numericity of branches (CWS&amp;#039;es). Instead, we focus on creating a reasonable sized pool of machines for each platform/variant, with flexible build policies (see below).&lt;br /&gt;
&lt;br /&gt;
Currently, bots build for: &lt;br /&gt;
* debian&lt;br /&gt;
* suse 10.0&lt;br /&gt;
* suse 10.1 (jre and gij) &lt;br /&gt;
* suse 7.3 (several)&lt;br /&gt;
* windows xp (3+)&lt;br /&gt;
* Mac OS X Intel (X11)&lt;br /&gt;
* solaris 10 (sparc)&lt;br /&gt;
* solaris 10 (x86)&lt;br /&gt;
&lt;br /&gt;
== Policies == &lt;br /&gt;
The botmaster will schedule builds based on policies that take into account the pool size, machine status and build time. When a bot is busy doing a build, additional requests are automatically queued. &lt;br /&gt;
&lt;br /&gt;
* At UTC 0200 + random() build HEAD&lt;br /&gt;
* At milestone release build milestone &lt;br /&gt;
* Build manually requested CWS or milestone&lt;br /&gt;
* Build automatically selected CWS&lt;br /&gt;
&lt;br /&gt;
== Features == &lt;br /&gt;
* When no CWS is provided --&amp;gt; checkout HEAD  - &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Summaries  - &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** tail, warnings, errors, summary log like tinderbox&lt;br /&gt;
** error - show before/after buffer (15, 5) and skip ... between errors&lt;br /&gt;
* Deploy install-sets on bot-master - &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Increase length of status page.  - &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Email notification of build result (fail, success, install, etc. with link to buildlogs)&lt;br /&gt;
** Send mail to requestor@openoffice.org when finished. (add a hint on the request form) - &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** For CWS - send to CWS owner (from EIS)&lt;br /&gt;
* Fix smoke-test on some hosts  &lt;br /&gt;
* CWS-Oriented View - &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
** Add header X axis (timeline)  &lt;br /&gt;
** Three different views - all, ready for QA, new&lt;br /&gt;
* Buildslave info on slave web page&lt;br /&gt;
* Scheduler to prioritize and distribute builds on various slaves&lt;br /&gt;
** Collect changes by one user (settling) in one build&lt;br /&gt;
** AllCVS mailing list listener to auto trigger build on commit notification&lt;br /&gt;
* Header Row - provide number/link to last build (related to status) &lt;br /&gt;
* Extra config switches field in force build form. Developers can specify some extra configure switches specific to there CWSs. - &amp;#039;&amp;#039;&amp;#039;Done&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Add suse 7.3 buildslave&lt;br /&gt;
* Generate buildbot results as RSS feed for planetizing &lt;br /&gt;
* For windows slaves, provide link to html build status page&lt;br /&gt;
* UserId/Password verification for force build and stop buid&lt;br /&gt;
&lt;br /&gt;
== People == &lt;br /&gt;
* Prasad Madhav (pmadhav) deployed and customizes the buildbot &lt;br /&gt;
* mikeleib, kaib, vq, dkeskar support and provide ideas&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease22&amp;diff=17424</id>
		<title>OOoRelease22</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease22&amp;diff=17424"/>
		<updated>2006-09-25T11:00:34Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* OOo 2.2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OOo 2.2 ==&lt;br /&gt;
&lt;br /&gt;
* UI and [[Feature_freeze]] : January 4th, 2007&lt;br /&gt;
* Translation update 2.2 start: January 11th, 2007&lt;br /&gt;
* Translation update 2.2 delivery: January 18th, 2007&lt;br /&gt;
* [[code_freeze]]: January 25th, 2007&lt;br /&gt;
* l10n CWS builds available: January 25th, 2007&lt;br /&gt;
* TCM l10n testing on CWS builds: January 25th - 31st&lt;br /&gt;
* pre release candidate (en_US only): February 1st, 2007&lt;br /&gt;
* [[Last_cws_integration]] for fixes: February 8th, 2007&lt;br /&gt;
* release candidate for all languages: February 15th, 2007&lt;br /&gt;
* Product release: February 27th, 2007&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OOoRelease205&amp;diff=16414</id>
		<title>OOoRelease205</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OOoRelease205&amp;diff=16414"/>
		<updated>2006-09-06T11:52:03Z</updated>

		<summary type="html">&lt;p&gt;Jj: /* OOo 2.1 (formerly known as 2.0.5) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OOo 2.1 (formerly known as 2.0.5) ==&lt;br /&gt;
&lt;br /&gt;
* [[Feature_freeze]] : October 5th 2006&lt;br /&gt;
* Translation update 2.0.5 start: October 12th&lt;br /&gt;
* Translation update 2.0.5 delivery: October 26th, 2006&lt;br /&gt;
* [[code_freeze]]: November 2nd&lt;br /&gt;
* l10n CWS builds available: November 2nd&lt;br /&gt;
* pre release candidate (en_US only): November 9th 2006 &lt;br /&gt;
* [[Last_cws_integration]] for fixes: November 16th 2006&lt;br /&gt;
* release candidate for all languages: November 23th 2006&lt;br /&gt;
* Product release: December 5th, 2006&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Jj</name></author>
	</entry>
</feed>