This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new 5414bb8bee ISIS-3110: some post merge polishing
5414bb8bee is described below

commit 5414bb8bee80c536bbd1011396474ca57b5b74a1
Author: Andi Huber <[email protected]>
AuthorDate: Fri Aug 5 07:40:54 2022 +0200

    ISIS-3110: some post merge polishing
    
    - LifecycleCallbackNotifier: guard against empty
    - CallbackFacet: guard against unspecified
    - AuthorizationManager: fix constructor
    - CommandSubscriberForCommandLog: just comments
    - Converter (AsciiDoc/Markdown): better java-doc
---
 .../facets/object/callbacks/CallbackFacet.java     | 20 +++++++---
 .../metamodel/objectmanager/ObjectManager.java     | 16 ++++++--
 .../isis/core/metamodel/spec/ManagedObjects.java   | 19 +++++++++
 .../publish/LifecycleCallbackNotifier.java         | 46 +++++++++-------------
 .../manager/AuthorizationManager.java              | 44 +++++++++++----------
 .../changetracking/EntityChangeTracker.java        |  8 ++--
 .../subscriber/CommandSubscriberForCommandLog.java |  5 ++-
 .../changetracking/EntityChangeTrackerDefault.java |  3 +-
 .../asciidoc/applib/value/Converter.java           | 10 +++++
 .../markdown/applib/value/Converter.java           | 29 ++++----------
 10 files changed, 112 insertions(+), 88 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java
index 1e6e4d0f09..5dd7e85b9b 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/callbacks/CallbackFacet.java
@@ -22,6 +22,7 @@ import 
org.apache.isis.applib.exceptions.unrecoverable.DomainModelException;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ManagedObjects;
 
 /**
  * A {@link Facet} that represents some type of lifecycle callback on the 
object
@@ -32,15 +33,22 @@ extends ImperativeFacet {
 
     public void invoke(ManagedObject object);
 
-    public static void callCallback(final ManagedObject object, final Class<? 
extends Facet> cls) {
-        final CallbackFacet facet = (CallbackFacet) 
object.getSpecification().getFacet(cls);
-        if (facet != null) {
+    public static void callCallback(
+            final ManagedObject object,
+            final Class<? extends CallbackFacet> callbackFacetType) {
+
+        ManagedObjects.whenSpecified(object)
+        .map(ManagedObject::getSpecification)
+        .flatMap(spec->spec.lookupFacet(callbackFacetType))
+        .ifPresent(callbackFacet->{
             try {
-                facet.invoke(object);
+                callbackFacet.invoke(object);
             } catch (final RuntimeException e) {
-                throw new DomainModelException("Callback failed.  Calling " + 
facet + " on " + object, e);
+                throw new DomainModelException(
+                        "Callback failed.  Calling " + callbackFacet + " on " 
+ object, e);
             }
-        }
+        });
+
     }
 
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
index 03204bb5a6..d5f0bbb0c4 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/ObjectManager.java
@@ -159,7 +159,7 @@ public interface ObjectManager {
             return ManagedObject.unspecified();
         }
         return spec.isScalar()
-                ? managedObjectFor(spec, pojo, entityAdaptingMode)
+                ? managedObjectEagerlyBookmarkedIfRequired(spec, pojo, 
entityAdaptingMode)
                 : PackedManagedObject.pack(
                         
spec.getElementSpecification().orElseGet(fallbackElementType),
                         _NullSafe.streamAutodetect(pojo)
@@ -190,7 +190,8 @@ public interface ObjectManager {
                 || 
pojo.getClass().equals(proposedSpec.getCorrespondingClass()))
             // if actual type matches spec's, we assume, that we don't need to 
reload,
             // so this is a shortcut for performance reasons
-            ? managedObjectFor(proposedSpec, pojo, 
EntityAdaptingMode.MEMOIZE_BOOKMARK)
+            ? managedObjectEagerlyBookmarkedIfRequired(
+                    proposedSpec, pojo, EntityAdaptingMode.MEMOIZE_BOOKMARK)
             // fallback, ignoring proposedSpec
             : adapt(pojo);
         return adapter;
@@ -198,12 +199,19 @@ public interface ObjectManager {
 
     // -- HELPER
 
-    private static ManagedObject managedObjectFor(
+    /**
+     * {@link ManagedObject} factory, that in case of given pojo representing 
an entity
+     * and the entityAdaptingMode equals {@link 
EntityAdaptingMode#isMemoize()},
+     * then tries to memoize its {@link Bookmark} eagerly
+     * (otherwise its {@link Bookmark} is lazily resolved).
+     */
+    private static ManagedObject managedObjectEagerlyBookmarkedIfRequired(
             final ObjectSpecification spec,
             final Object pojo,
             final EntityAdaptingMode entityAdaptingMode) {
 
-        if(entityAdaptingMode.isMemoize() && spec.isEntity()) {
+        if(entityAdaptingMode.isMemoize()
+                && spec.isEntity()) {
             val entityFacet = spec.getFacet(EntityFacet.class);
             val state = entityFacet.getEntityState(pojo);
             if(state.isAttached()) {
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index 16b771b7d7..23ff65bee6 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -93,11 +93,30 @@ public final class ManagedObjects {
                 : adapter.getPojo()==null;
     }
 
+    /**
+     * Optionally given adapter, based on whether it is not null AND specified 
AND not empty.
+     */
+    public static Optional<ManagedObject> whenNonEmpty(final ManagedObject 
adapter) {
+        return isNullOrUnspecifiedOrEmpty(adapter)
+                ? Optional.empty()
+                : Optional.of(adapter);
+    }
+
     /** whether has at least a spec */
     public static boolean isSpecified(final @Nullable ManagedObject adapter) {
         return adapter!=null && adapter!=ManagedObject.unspecified();
     }
 
+    /**
+     * Optionally given adapter, based on whether it is specified
+     * (even if empty, that is, representing null.)
+     */
+    public static Optional<ManagedObject> whenSpecified(final ManagedObject 
adapter) {
+        return isSpecified(adapter)
+                ? Optional.of(adapter)
+                : Optional.empty();
+    }
+
     /**
      * whether the corresponding type can be mapped onto a REFERENCE (schema) 
or an Oid,
      * that is, the type is 'identifiable' (aka 'referencable' or 
'bookmarkable')
diff --git 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/LifecycleCallbackNotifier.java
 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/LifecycleCallbackNotifier.java
index fbd6d448a8..70fab30607 100644
--- 
a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/LifecycleCallbackNotifier.java
+++ 
b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/publish/LifecycleCallbackNotifier.java
@@ -18,11 +18,6 @@
  */
 package org.apache.isis.core.runtimeservices.publish;
 
-import java.util.LinkedHashSet;
-import java.util.Optional;
-import java.util.Set;
-import java.util.function.Consumer;
-
 import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -30,12 +25,10 @@ import javax.inject.Named;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Component;
 
-import org.apache.isis.applib.annotation.InteractionScope;
 import org.apache.isis.applib.annotation.PriorityPrecedence;
 import org.apache.isis.applib.events.lifecycle.AbstractLifecycleEvent;
-import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.eventbus.EventBusService;
-import org.apache.isis.applib.services.iactnlayer.InteractionService;
+import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.commons.internal.factory._InstanceUtil;
 import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
 import 
org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
@@ -54,12 +47,12 @@ import 
org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedLifecycleEv
 import 
org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingCallbackFacet;
 import 
org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingLifecycleEventFacet;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ManagedObjects;
 import org.apache.isis.core.runtimeservices.IsisModuleCoreRuntimeServices;
 import org.apache.isis.core.transaction.changetracking.events.PostStoreEvent;
 import org.apache.isis.core.transaction.changetracking.events.PreStoreEvent;
 
 import lombok.RequiredArgsConstructor;
-import lombok.val;
 
 /**
  * Calls lifecycle callbacks for entities, ensuring that any given entity is 
only ever called once.
@@ -75,61 +68,58 @@ public class LifecycleCallbackNotifier {
 
     final EventBusService eventBusService;
 
-    public void postCreate(ManagedObject entity) {
+    public void postCreate(final ManagedObject entity) {
         CallbackFacet.callCallback(entity, CreatedCallbackFacet.class);
         postLifecycleEventIfRequired(entity, CreatedLifecycleEventFacet.class);
     }
 
-    public void postLoad(ManagedObject entity) {
+    public void postLoad(final ManagedObject entity) {
         CallbackFacet.callCallback(entity, LoadedCallbackFacet.class);
         postLifecycleEventIfRequired(entity, LoadedLifecycleEventFacet.class);
     }
 
-    public void prePersist(ManagedObject entity) {
+    public void prePersist(final ManagedObject entity) {
         eventBusService.post(PreStoreEvent.of(entity.getPojo()));
         CallbackFacet.callCallback(entity, PersistingCallbackFacet.class);
         postLifecycleEventIfRequired(entity, 
PersistingLifecycleEventFacet.class);
     }
 
-    public void postPersist(ManagedObject entity) {
+    public void postPersist(final ManagedObject entity) {
         eventBusService.post(PostStoreEvent.of(entity.getPojo()));
         CallbackFacet.callCallback(entity, PersistedCallbackFacet.class);
         postLifecycleEventIfRequired(entity, 
PersistedLifecycleEventFacet.class);
     }
 
-    public void preUpdate(ManagedObject entity) {
+    public void preUpdate(final ManagedObject entity) {
         eventBusService.post(PreStoreEvent.of(entity.getPojo()));
         CallbackFacet.callCallback(entity, UpdatingCallbackFacet.class);
         postLifecycleEventIfRequired(entity, 
UpdatingLifecycleEventFacet.class);
     }
 
-    public void postUpdate(ManagedObject entity) {
+    public void postUpdate(final ManagedObject entity) {
         CallbackFacet.callCallback(entity, UpdatedCallbackFacet.class);
         postLifecycleEventIfRequired(entity, UpdatedLifecycleEventFacet.class);
     }
 
-    public void preRemove(ManagedObject entity) {
+    public void preRemove(final ManagedObject entity) {
         CallbackFacet.callCallback(entity, RemovingCallbackFacet.class);
         postLifecycleEventIfRequired(entity, 
RemovingLifecycleEventFacet.class);
     }
 
-
     //  -- HELPER
 
-    @SuppressWarnings({ "unchecked", "rawtypes" })
     protected void postLifecycleEventIfRequired(
-            final ManagedObject adapter,
+            final ManagedObject object,
             final Class<? extends LifecycleEventFacet> 
lifecycleEventFacetClass) {
 
-        val lifecycleEventFacet = 
adapter.getSpecification().getFacet(lifecycleEventFacetClass);
-        if(lifecycleEventFacet == null) {
-            return;
-        }
-        val eventInstance = (AbstractLifecycleEvent) _InstanceUtil
-                .createInstance(lifecycleEventFacet.getEventType());
-        val pojo = adapter.getPojo();
-        postEvent(eventInstance, pojo);
-
+        ManagedObjects.whenNonEmpty(object)
+        .map(ManagedObject::getSpecification)
+        .flatMap(spec->spec.lookupFacet(lifecycleEventFacetClass))
+        .map(LifecycleEventFacet::getEventType)
+        .map(_InstanceUtil::createInstance)
+        .ifPresent(eventInstance->{
+            postEvent(_Casts.uncheckedCast(eventInstance), object.getPojo());
+        });
     }
 
     protected void postEvent(final AbstractLifecycleEvent<Object> event, final 
Object pojo) {
diff --git 
a/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java
 
b/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java
index 78f07dcdb0..fa005ab508 100644
--- 
a/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java
+++ 
b/core/security/src/main/java/org/apache/isis/core/security/authorization/manager/AuthorizationManager.java
@@ -18,20 +18,24 @@
  */
 package org.apache.isis.core.security.authorization.manager;
 
-import lombok.val;
+import java.util.List;
+import java.util.Optional;
+
+import javax.annotation.Priority;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Service;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.PriorityPrecedence;
 import org.apache.isis.applib.services.iactnlayer.InteractionContext;
 import org.apache.isis.applib.services.sudo.SudoService;
+import org.apache.isis.commons.internal.assertions._Assert;
+import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.core.security.authorization.Authorizor;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
-
-import org.springframework.lang.Nullable;
-import javax.annotation.Priority;
-import javax.inject.Inject;
-import javax.inject.Named;
-import java.util.List;
 
 /**
  * Authorizes the user in the current session view and use members of an 
object.
@@ -44,22 +48,22 @@ import java.util.List;
 @Qualifier("Default")
 public class AuthorizationManager {
 
-    private final List<Authorizor> authorizors;
     private final Authorizor authorizor;
 
     @Inject
     public AuthorizationManager(
             final List<Authorizor> authorizors,
-            @org.springframework.lang.Nullable final AuthorizorChooser 
authorizorChooser) {
-        this.authorizors = authorizors;
-        val authorizorPrecedenceChooserToUse = authorizorChooser != null
-                ? authorizorChooser
-                : new AuthorizorChooser() {
-                    @Override public Authorizor chooseFrom(final 
List<Authorizor> authorizors) {
-                        return authorizors.get(0);
-                    }
-                };
-        this.authorizor = 
authorizorPrecedenceChooserToUse.chooseFrom(authorizors);
+            final Optional<AuthorizorChooser> authorizorChooserIfAny) {
+
+        _Assert.assertTrue(_NullSafe.size(authorizors)>0, ()->
+            String.format(
+                    "At least one %s is required to be registered for 
injection.",
+                    Authorizor.class.getName()));
+
+        this.authorizor =
+            authorizorChooserIfAny
+            .map(authorizorChooser->authorizorChooser.chooseFrom(authorizors))
+            .orElseGet(()->authorizors.get(0));
     }
 
     /**
diff --git 
a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTracker.java
 
b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTracker.java
index a75a7ead10..343e3eeb32 100644
--- 
a/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTracker.java
+++ 
b/core/transaction/src/main/java/org/apache/isis/core/transaction/changetracking/EntityChangeTracker.java
@@ -39,10 +39,10 @@ public interface EntityChangeTracker extends DisposableBean 
{
      */
     EntityChangeTracker NOOP = new EntityChangeTracker() {
         @Override public void destroy() throws Exception {}
-        @Override public void enlistCreated(ManagedObject entity) {}
-        @Override public void enlistUpdating(ManagedObject entity, 
Can<PropertyChangeRecord> propertyChangeRecords) {}
-        @Override public void enlistDeleting(ManagedObject entity) {}
-        @Override public void incrementLoaded(ManagedObject entity) {}
+        @Override public void enlistCreated(final ManagedObject entity) {}
+        @Override public void enlistUpdating(final ManagedObject entity, final 
Can<PropertyChangeRecord> propertyChangeRecords) {}
+        @Override public void enlistDeleting(final ManagedObject entity) {}
+        @Override public void incrementLoaded(final ManagedObject entity) {}
     };
 
     /**
diff --git 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
index b0f3226689..c33abf534a 100644
--- 
a/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
+++ 
b/extensions/core/commandlog/applib/src/main/java/org/apache/isis/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
@@ -27,7 +27,6 @@ import org.apache.isis.applib.annotation.PriorityPrecedence;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.publishing.spi.CommandSubscriber;
 import org.apache.isis.applib.util.JaxbUtil;
-import org.apache.isis.commons.internal.base._Casts;
 import org.apache.isis.core.config.IsisConfiguration;
 import 
org.apache.isis.extensions.commandlog.applib.IsisModuleExtCommandLogApplib;
 import org.apache.isis.extensions.commandlog.applib.dom.CommandLogEntry;
@@ -53,7 +52,9 @@ public class CommandSubscriberForCommandLog implements 
CommandSubscriber {
     @Override
     public void onCompleted(final Command command) {
 
-        if 
(isisConfiguration.getExtensions().getCommandLog().getPublishPolicy().isOnlyIfSystemChanged()
 && !command.isSystemStateChanged()) {
+        // skip if no changes AND skipping is allowed
+        if 
(isisConfiguration.getExtensions().getCommandLog().getPublishPolicy().isOnlyIfSystemChanged()
+                && !command.isSystemStateChanged()) {
             return;
         }
 
diff --git 
a/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
 
b/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
index f2b40b61f8..7753622106 100644
--- 
a/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
+++ 
b/persistence/commons/src/main/java/org/apache/isis/persistence/jpa/integration/changetracking/EntityChangeTrackerDefault.java
@@ -31,7 +31,6 @@ import javax.inject.Inject;
 import javax.inject.Named;
 import javax.inject.Provider;
 
-import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.event.EventListener;
 import org.springframework.core.annotation.Order;
@@ -173,7 +172,7 @@ implements
 
     }
 
-    private boolean isEntityExcludedForChangePublishing(ManagedObject entity) {
+    private boolean isEntityExcludedForChangePublishing(final ManagedObject 
entity) {
 
         
if(!EntityChangePublishingFacet.isPublishingEnabled(entity.getSpecification())) 
{
             return true; // ignore entities that are not enabled for entity 
change publishing
diff --git 
a/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java
 
b/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java
index ff7cc44a38..3cdb9bd124 100644
--- 
a/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java
+++ 
b/valuetypes/asciidoc/applib/src/main/java/org/apache/isis/valuetypes/asciidoc/applib/value/Converter.java
@@ -32,6 +32,16 @@ import lombok.Getter;
 
 final class Converter {
 
+    /**
+     * For syntax highlighting to work, the client/browser needs to load 
specific
+     * Javascript and CSS.
+     * The framework supports this out of the box with its various viewers,
+     * using <i>Prism</i> web-jars.
+     *
+     * @param adoc - formated input to be converted to HTML
+     *
+     * @see <a href="https://prismjs.com/";>prismjs.com</a>
+     */
     public static String adocToHtml(final @Nullable String adoc, final 
@Nullable Options options) {
         return _Strings.isEmpty(adoc)
                 ? ""
diff --git 
a/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/value/Converter.java
 
b/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/value/Converter.java
index c9c47fc096..ef4a4764d6 100644
--- 
a/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/value/Converter.java
+++ 
b/valuetypes/markdown/applib/src/main/java/org/apache/isis/valuetypes/markdown/applib/value/Converter.java
@@ -33,30 +33,15 @@ public final class Converter {
 
     /**
      * For syntax highlighting to work, the client/browser needs to load 
specific
-     * java-script and css.
-     * <p>
-     * 1) In your web-app's {@code scripts/application.js} include the bundled
-     * {@code src/main/resources/prism1.14.js}.
-     * <pre>
-     * function includeJs(jsFilePath) {
-     *     var js = document.createElement("script");
-     *     js.type = "text/javascript";
-     *     js.src = jsFilePath;
-     *     document.body.appendChild(js);
-     * }
-     *
-     * includeJs("/scripts/prism1.14.js");
-     * </pre>
-     * <p>
-     * 2) In your web-app's {@code css/application.css} include the bundled
-     * {@code src/main/resources/prism.css}.
-     * <pre>
-     * {@code @import "prism.css"}.
-     * </pre>
+     * Javascript and CSS.
+     * The framework supports this out of the box with its various viewers,
+     * using <i>Prism</i> web-jars.
      *
      * @param markdown - formated input to be converted to HTML
+     *
+     * @see <a href="https://prismjs.com/";>prismjs.com</a>
      */
-    public static String mdToHtml(String markdown) {
+    public static String mdToHtml(final String markdown) {
         if(markdownSupport==null) {
             markdownSupport = new MarkdownSupport();
         }
@@ -86,7 +71,7 @@ public final class Converter {
             renderer = HtmlRenderer.builder(options).build();
         }
 
-        public String toHtml(String markdown) {
+        public String toHtml(final String markdown) {
             return renderer.render(parser.parse(markdown));
         }
     }

Reply via email to