Hi Michi,
thanks for your commits - but I have some comments:
> +import org.apache.log4j.Category;
please don't introduce a custom logging concept for single
classes.
DefaultDocument is already LogEnabled.
>
> /**
> * A typical CMS document.
>  -42,6 +43,8 
> */
> public class DefaultDocument extends
AbstractLogEnabled implements Document {
>
> + private Category log =
Category.getInstance(DefaultDocument.class);
> +
> private DocumentIdentifier identifier;
> private String sourceURI;
> private DocumentIdentityMap identityMap;
>  -134,11 +137,15 
> List documentLanguages = new ArrayList();
> String[] allLanguages =
getPublication().getLanguages();
>
> + log.debug("Number of languages of this
publication: " + allLanguages.length);
Please use
if (getLogger().isDebugEnabled()) { ... }
for performance reasons.
> +
> for (int i = 0; i < allLanguages.length;
i++) {
> Document version;
> try {
> + log.debug("Try to create
document: " + allLanguages[i] + " " +
this);
> version =
getIdentityMap().getLanguageVersion(this, allLanguages[i]);
> } catch (DocumentBuildException e) {
> + log.warn(e.getMessage());
> throw new DocumentException(e);
> }
> if (version.exists()) {
>  -191,6 +198,9 
> return this.extension;
> }
>
> + /**
> + * see
org.apache.lenya.cms.publication.Document#getSourceExtension
()
> + */
> public String getSourceExtension() {
> String extension;
> try {
>  -200,6 +210,7 
> throw new RuntimeException(e);
> }
> if (extension == null) {
> + getLogger().warn("No source
extension. The extension \"xml\" will be used
as default!");
> extension = "xml";
> }
> return extension;
>  -264,6 +275,20 
> public boolean existsInAnyLanguage() throws
DocumentException {
> boolean exists = false;
>
> + String[] languages = getLanguages();
> +
> + if (languages.length > 0) {
> + log.warn("Document (" +
this + ") exists in at least one language: " +
languages.length);
This warning message is not appropriate. Please use debug
instead.
Too many warning logs will affect performance.
> + String[] allLanguages =
getPublication().getLanguages();
> + if (languages.length ==
allLanguages.length) log.warn("Document (" +
this + ") exists even in all languages of this
publication");
> + return true;
> + } else {
> + log.warn("Document (" +
this + ") does NOT exist in any language");
Same here. A warning is not appropriate here, because it is
normal
behaviour.
-- Andreas
> + return false;
> + }
> +
> +// NOTE: This seems to be unecessary because
getLanguage() already creates these documents
> +/*
> try {
> String[] languages = getLanguages();
> for (int i = 0; i < languages.length;
i++) {
>  -274,6 +299,7 
> throw new DocumentException(e);
> }
> return exists;
> +*/
> }
>
> protected DocumentIdentifier getIdentifier() {
>  -341,16 +367,22 
> * see
org.apache.lenya.cms.metadata.MetaDataOwner#getMetaDataManag
er()
> */
> public MetaDataManager getMetaDataManager() {
> + log.debug("getSourceURI(): " +
getPublication().getSourceURI());
> if (this.metaDataManager == null) {
> SourceResolver resolver = null;
> RepositorySource source = null;
> try {
> resolver = (SourceResolver)
this.manager.lookup(SourceResolver.ROLE);
> +
> + // TODO: This needs to be improved ...
> String sourceUri =
getPublication().getSourceURI() + "/content/" +
getArea()
> + getId() +
"/index_" + getLanguage() + ".xml";
> +
> + log.debug("Source URI: " +
sourceUri);
> source = (RepositorySource)
resolver.resolveURI(sourceUri);
> this.metaDataManager =
source.getNode().getMetaDataManager();
> } catch (Exception e) {
> + log.warn(e.getMessage());
> throw new RuntimeException(e);
> } finally {
> if (resolver != null) {
--
Andreas Hartmann
Wyona Inc. - Open Source Content Management - Apache
Lenya
http://www.wyona.com
http://lenya.apache.org
andreas.hartmann wyona.com andreas apache.org
------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribe lenya.apache.org
For additional commands, e-mail: dev-help lenya.apache.org
|