Inclusion criteria overview

AFaust edited this page Jan 6, 2015 · 7 revisions

Non-technical

No Category Type Item
1 License must allow addon evaluation and/or non-commercial use free of charge
2 License must >= 75% features / functions usable with free / reduced function / trial version of required commercial 3rd-party component(s)
3 License must allow access to addon source code covered by license
4 License should required 3rd-party component(s) covered by public or bundled documentation (specific to APIs used by addon)
5 State must public release for "beta" or "production" use
6 State must release with distinct version number scheme
7 Publication must listed on addons.alfresco.com or committment to list
8 Publication must documentation on licensing, nature of addon, release state and minimal compatible release of Alfresco
9 Publication must link to either source code or installable binary downloads
10 Documentation must sufficient documentation on installation, configuration and general usage
11 Documentation must list dependencies on addons / 3rd-party components / environments with respective version (ranges)
12 ... ... ...

Technical

No Category Type Addon variant Item
1 Artifacts must extension available in package form that either supports installing from command line, via build tools or as drop-in, or uploading into Alfresco data dictionary at runtime
2 Artifacts should extension provide AMP/JAR for installation via build tool
3 Artifacts should extension provide AMP for installation via command line (MMT)
4 Artifacts should extension provide JAR for drop-in
5 Artifacts should extension provide ACP for upload into Alfresco data dictionary at runtime
6 Artifacts must tooling available in package form that either supports platform-standard install tools, custom automated install or simple archive extraction into final runnable state
7 Artifacts must not any require build from source level
8 Artifacts may any externalize optional features in separate artifacts / packages
9 Artifacts must not any require manual copying / editing of configuration files apart from alfresco-global.properties / share-config-custom.xml
10 Build should any source provided with build tooling
11 Build must any build tooling produces result identical to pre-built artifacts for unchanged source
12 Build should extension use Maven to build AMP/JAR
13 Configuration must extension use either (web-)extension, module context, META-INF (in JAR) or customization approach to add addon-specific configuration files
14 Configuration must not extension override Alfresco configuration files in the deployed web application
15 Configuration must not extension override Alfresco out-of-the-box Spring beans / configuration sections without explicit and detailed documentation of changes and user interaction
16 Configuration must not Repository extension override Alfresco out-of-the-box properties without documentation and user interaction
17 Configuration should Repository extension provide addon-specific properties to configure functionality
18 Configuration should Share extension support configuration of functionality using configuration sections / Surf extension modules
19 Configuration should Share extension support configuration of functionality using configuration sections / Surf extension modules (struck as duplicat of #18)
20 API should extension use Public Java or Script API primarily
21 API should Repository extension use public Alfresco service beans
22 API must Repository extension use runAs() instead of unsecured private service beans to execute code with elevated privileges or as substitute for other users
23 API must not extension require existence of super user called "admin" (e.g. runAs(work, "admin"))
24 API should Repository extension provide own services using proper interfaces and private/public bean separation
25 API should Repository extension use automatic transaction management over user transactions
26 API should extension use Alfresco Full Text Search (FTS) syntax and query operations over Lucene
27 API should Repository extension use database-bound queries for transactional data retrieval (FTS with query consistency or selectNodes)
28 Misc / Java must not extension create or manipulate threads directly (e.g. sleep / interrupt)
29 Misc / Java must not extension re-package Alfresco class files or otherwise hide / override them based on classpath loader behaviour
30 Misc / Java must not extension require bytecode instrumentation except for experimental features
31 Misc / Java should not extension re-package Alfresco JavaScript, Freemarker or static web asset files or otherwise hide / ovveride them based on classpath loader behaviour
32 Configuration should extension support end user / customer override of web scripts via (web-)extension approach
33 ... ... ... ...

Compatibility

No Category Type Item
1 Alfresco must support Alfresco Community Edition 4.2.e/f
2 Alfresco must not require deprecated or EoL'ed features / components (Explorer, Lucene, AVM...)
3 Alfresco should single distribution for all supported versions of Alfresco
4 Web interface must support two or more of Alfresco supported browsers
5 Web interface should not require installation of 3rd party browser plugins
6 Web interface should not require customization of browser settings
7 ... ... ...