From 880332fbba5a72e047ae23251b0726cdeb9f5665 Mon Sep 17 00:00:00 2001 From: zhaoxuyang03 Date: Mon, 25 Jan 2021 10:55:42 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E3=80=90Sprint3.3.3=E3=80=91=E3=80=90Beetl?= =?UTF-8?q?=E3=80=91[BugFix]=20=E4=BF=AE=E5=A4=8D=E6=9C=AA=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E5=88=B0=E7=9A=84=E7=AC=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/beetl/core/statement/ContentBodyExpression.java | 2 +- src/main/java/org/beetl/core/tag/Tag.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/beetl/core/statement/ContentBodyExpression.java b/src/main/java/org/beetl/core/statement/ContentBodyExpression.java index ee22b3f..f47f5ec 100644 --- a/src/main/java/org/beetl/core/statement/ContentBodyExpression.java +++ b/src/main/java/org/beetl/core/statement/ContentBodyExpression.java @@ -50,7 +50,7 @@ public class ContentBodyExpression extends Expression { ctx.byteWriter = temp; block.execute(ctx); ctx.byteWriter = real; - return temp.getTempConent(); + return temp.getTempContent(); } diff --git a/src/main/java/org/beetl/core/tag/Tag.java b/src/main/java/org/beetl/core/tag/Tag.java index cd2524c..5729660 100644 --- a/src/main/java/org/beetl/core/tag/Tag.java +++ b/src/main/java/org/beetl/core/tag/Tag.java @@ -82,7 +82,7 @@ public abstract class Tag { ctx.byteWriter = tempWriter; doBodyRender(); ctx.byteWriter = writer; - return tempWriter.getTempConent(); + return tempWriter.getTempContent(); } public abstract void render(); -- Gitee From 29c7d03215cf0ebcc2ed86c631fda950d8854043 Mon Sep 17 00:00:00 2001 From: zhaoxuyang03 Date: Wed, 27 Jan 2021 14:33:33 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E3=80=90Sprint3.3.2=E3=80=91=E3=80=90Beetl?= =?UTF-8?q?=E3=80=91=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/org/beetl/core/config/BeetlConfig.java | 2 ++ .../java/org/beetl/core/runtime/IBeetlConfigManager.java | 7 +++++++ .../beetl/core/runtime/impl/DefaultBeetlConfigManager.java | 7 ++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/beetl/core/config/BeetlConfig.java b/src/main/java/org/beetl/core/config/BeetlConfig.java index 8238337..582dea1 100644 --- a/src/main/java/org/beetl/core/config/BeetlConfig.java +++ b/src/main/java/org/beetl/core/config/BeetlConfig.java @@ -14,5 +14,7 @@ public class BeetlConfig { public static final boolean DEBUG = BeetlRuntime.getConfigManager().isDebug(); /** RELEASE flag */ public static final boolean RELEASE = BeetlRuntime.getConfigManager().isRelease(); + /** Beetl 版本号 */ + public static final String BEETL_VERSION = BeetlRuntime.getConfigManager().getBeetlVersion(); } diff --git a/src/main/java/org/beetl/core/runtime/IBeetlConfigManager.java b/src/main/java/org/beetl/core/runtime/IBeetlConfigManager.java index 84cc576..b38dd7b 100644 --- a/src/main/java/org/beetl/core/runtime/IBeetlConfigManager.java +++ b/src/main/java/org/beetl/core/runtime/IBeetlConfigManager.java @@ -18,4 +18,11 @@ public interface IBeetlConfigManager { * @return true表示为发行环境,false表示不为发行环境 */ boolean isRelease(); + + /** + * 获取 Beetl 版本号 + * + * @return x.x.x + */ + String getBeetlVersion(); } diff --git a/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlConfigManager.java b/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlConfigManager.java index cb75d10..6611ba1 100644 --- a/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlConfigManager.java +++ b/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlConfigManager.java @@ -34,6 +34,11 @@ public class DefaultBeetlConfigManager implements IBeetlConfigManager { @Override public boolean isRelease() { - return !isDebug(); + return false; + } + + @Override + public String getBeetlVersion() { + return "3.3.2"; } } -- Gitee From 2aaf5cab3aebe26ebb59036ff651e21cb48c1042 Mon Sep 17 00:00:00 2001 From: zhaoxuyang03 Date: Wed, 27 Jan 2021 15:19:42 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E3=80=90Sprint3.3.2=E3=80=91=E3=80=90Beetl?= =?UTF-8?q?=E3=80=91ProgramCacheFactory=20=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...LocalCache.java => DefaultLocalCache.java} | 2 +- .../beetl/core/cache/ProgramCacheFactory.java | 25 +++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) rename src/main/java/org/beetl/core/cache/{LocalCache.java => DefaultLocalCache.java} (97%) diff --git a/src/main/java/org/beetl/core/cache/LocalCache.java b/src/main/java/org/beetl/core/cache/DefaultLocalCache.java similarity index 97% rename from src/main/java/org/beetl/core/cache/LocalCache.java rename to src/main/java/org/beetl/core/cache/DefaultLocalCache.java index 785aaee..c56c7f6 100644 --- a/src/main/java/org/beetl/core/cache/LocalCache.java +++ b/src/main/java/org/beetl/core/cache/DefaultLocalCache.java @@ -39,7 +39,7 @@ import java.util.function.Function; * @author xiandafu */ @ThreadSafety -public class LocalCache implements Cache { +public class DefaultLocalCache implements Cache { /** 线程安全的缓存 */ private final Map threadSafeCache = new ConcurrentHashMap<>(); diff --git a/src/main/java/org/beetl/core/cache/ProgramCacheFactory.java b/src/main/java/org/beetl/core/cache/ProgramCacheFactory.java index 5b1b9b5..115c387 100644 --- a/src/main/java/org/beetl/core/cache/ProgramCacheFactory.java +++ b/src/main/java/org/beetl/core/cache/ProgramCacheFactory.java @@ -33,8 +33,7 @@ import org.beetl.android.util.Log; import org.jetbrains.annotations.NotNull; /** - * 存储Program的缓存,默认是采用{@link LocalCache},可以通过设置 - * {@link Cache} 属性来设置新的缓存对象 + * 存储Program的缓存,默认是采用{@link DefaultLocalCache},可以通过设置 {@link Cache} 属性来设置新的缓存对象 * * @author xiandafu */ @@ -45,26 +44,38 @@ public class ProgramCacheFactory { /** Log TAG */ private static final String TAG = "ProgramCacheFactory"; /** 缓存实现类的类名 */ - public static String sCache = "org.beetl.core.cache.LocalCache"; + public static final String DEFAULT_CACHE_CLASS_NAME = "org.beetl.core.cache.DefaultLocalCache"; /** * 默认的缓存实现 * - * @return 如果通过 {@link #sCache} 获取缓存实例失败,则返回一个 {@link LocalCache} 类型的新实例 + * @return 如果通过 {@link #DEFAULT_CACHE_CLASS_NAME} 获取缓存实例失败,则返回一个 {@link DefaultLocalCache} 类型的新实例 */ @NotNull public static Cache defaultCache() { + return loadCache(DEFAULT_CACHE_CLASS_NAME); + } + + /** + * 默认的缓存实现 + * + * @return 如果通过 {@link #DEFAULT_CACHE_CLASS_NAME} 获取缓存实例失败,则返回一个 {@link DefaultLocalCache} 类型的新实例 + */ + @NotNull + public static Cache loadCache(String className) { ClassLoader loader = Thread.currentThread().getContextClassLoader(); if (loader == null) { loader = ProgramCacheFactory.class.getClassLoader(); } try { - return (Cache) ObjectUtil.instance(sCache, loader); + return (Cache) ObjectUtil.instance(className, loader); } catch (Exception ex) { if (DEBUG) { - Log.d(TAG, "load " + sCache + " by " + loader + " error ,instead local\n" + ex.toString()); + Log.d(TAG, "#loadCache fail." + + " className=" + className + " classLoader=" + loader + " ex=\n" + ex.toString()); } - return new LocalCache(); + return new DefaultLocalCache(); } } + } -- Gitee From 9600c29cbfda9c2eed7c347b377b93e013be6330 Mon Sep 17 00:00:00 2001 From: zhaoxuyang03 Date: Wed, 27 Jan 2021 16:00:25 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E3=80=90Sprint3.3.2=E3=80=91=E3=80=90Beetl?= =?UTF-8?q?=E3=80=91Cache=20=E7=A7=BB=E5=85=A5=20Runtime?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/beetl/core/GroupTemplate.java | 8 ++--- .../impl/DefaultBeetlConfigManager.java | 2 +- .../impl/DefaultBeetlMemoryManager.java | 2 +- .../cache/DefaultBeetlCache.java} | 5 ++-- .../cache/DefaultBeetlCacheFactory.java} | 30 ++++++++++++------- .../org/beetl/core/runtime/BeetlRuntime.java | 24 +++++++++++++-- .../Cache.java => runtime/IBeetlCache.java} | 4 +-- .../impl/DefaultBeetlMemoryManagerTest.java | 2 +- 8 files changed, 53 insertions(+), 24 deletions(-) rename src/main/java/org/beetl/core/{runtime => }/impl/DefaultBeetlConfigManager.java (96%) rename src/main/java/org/beetl/core/{runtime => }/impl/DefaultBeetlMemoryManager.java (99%) rename src/main/java/org/beetl/core/{cache/DefaultLocalCache.java => impl/cache/DefaultBeetlCache.java} (94%) rename src/main/java/org/beetl/core/{cache/ProgramCacheFactory.java => impl/cache/DefaultBeetlCacheFactory.java} (76%) rename src/main/java/org/beetl/core/{cache/Cache.java => runtime/IBeetlCache.java} (97%) rename src/test/java/org/beetl/{core/runtime => }/impl/DefaultBeetlMemoryManagerTest.java (98%) diff --git a/src/main/java/org/beetl/core/GroupTemplate.java b/src/main/java/org/beetl/core/GroupTemplate.java index a9812f7..c9dec15 100644 --- a/src/main/java/org/beetl/core/GroupTemplate.java +++ b/src/main/java/org/beetl/core/GroupTemplate.java @@ -40,10 +40,10 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import org.beetl.core.cache.Cache; +import org.beetl.core.runtime.BeetlRuntime; +import org.beetl.core.runtime.IBeetlCache; import org.beetl.core.cache.ContextBuffer; import org.beetl.core.cache.ContextLocalBuffers; -import org.beetl.core.cache.ProgramCacheFactory; import org.beetl.core.event.Event; import org.beetl.core.event.EventListener; import org.beetl.core.exception.BeetlException; @@ -77,7 +77,7 @@ public class GroupTemplate { ResourceLoader resourceLoader = null; Configuration conf = null; TemplateEngine engine = null; - Cache programCache = ProgramCacheFactory.defaultCache(); + IBeetlCache programCache = BeetlRuntime.getCache(); /** 事件监听器列表 */ List events = new ArrayList<>(); @@ -575,7 +575,7 @@ public class GroupTemplate { this.events.add(eventListener); } - public Cache getProgramCache() { + public IBeetlCache getProgramCache() { return programCache; } diff --git a/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlConfigManager.java b/src/main/java/org/beetl/core/impl/DefaultBeetlConfigManager.java similarity index 96% rename from src/main/java/org/beetl/core/runtime/impl/DefaultBeetlConfigManager.java rename to src/main/java/org/beetl/core/impl/DefaultBeetlConfigManager.java index 6611ba1..c0fca74 100644 --- a/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlConfigManager.java +++ b/src/main/java/org/beetl/core/impl/DefaultBeetlConfigManager.java @@ -1,4 +1,4 @@ -package org.beetl.core.runtime.impl; +package org.beetl.core.impl; import org.beetl.core.runtime.IBeetlConfigManager; diff --git a/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlMemoryManager.java b/src/main/java/org/beetl/core/impl/DefaultBeetlMemoryManager.java similarity index 99% rename from src/main/java/org/beetl/core/runtime/impl/DefaultBeetlMemoryManager.java rename to src/main/java/org/beetl/core/impl/DefaultBeetlMemoryManager.java index 05957f9..6466dcd 100644 --- a/src/main/java/org/beetl/core/runtime/impl/DefaultBeetlMemoryManager.java +++ b/src/main/java/org/beetl/core/impl/DefaultBeetlMemoryManager.java @@ -1,4 +1,4 @@ -package org.beetl.core.runtime.impl; +package org.beetl.core.impl; import org.beetl.core.runtime.IBeetlMemoryManager; diff --git a/src/main/java/org/beetl/core/cache/DefaultLocalCache.java b/src/main/java/org/beetl/core/impl/cache/DefaultBeetlCache.java similarity index 94% rename from src/main/java/org/beetl/core/cache/DefaultLocalCache.java rename to src/main/java/org/beetl/core/impl/cache/DefaultBeetlCache.java index c56c7f6..2b644fb 100644 --- a/src/main/java/org/beetl/core/cache/DefaultLocalCache.java +++ b/src/main/java/org/beetl/core/impl/cache/DefaultBeetlCache.java @@ -25,9 +25,10 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.beetl.core.cache; +package org.beetl.core.impl.cache; import org.beetl.core.annotation.ThreadSafety; +import org.beetl.core.runtime.IBeetlCache; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -39,7 +40,7 @@ import java.util.function.Function; * @author xiandafu */ @ThreadSafety -public class DefaultLocalCache implements Cache { +public class DefaultBeetlCache implements IBeetlCache { /** 线程安全的缓存 */ private final Map threadSafeCache = new ConcurrentHashMap<>(); diff --git a/src/main/java/org/beetl/core/cache/ProgramCacheFactory.java b/src/main/java/org/beetl/core/impl/cache/DefaultBeetlCacheFactory.java similarity index 76% rename from src/main/java/org/beetl/core/cache/ProgramCacheFactory.java rename to src/main/java/org/beetl/core/impl/cache/DefaultBeetlCacheFactory.java index 115c387..c9ccd31 100644 --- a/src/main/java/org/beetl/core/cache/ProgramCacheFactory.java +++ b/src/main/java/org/beetl/core/impl/cache/DefaultBeetlCacheFactory.java @@ -25,56 +25,64 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.beetl.core.cache; +package org.beetl.core.impl.cache; import org.beetl.core.config.BeetlConfig; import org.beetl.core.fun.ObjectUtil; import org.beetl.android.util.Log; +import org.beetl.core.runtime.IBeetlCache; import org.jetbrains.annotations.NotNull; /** - * 存储Program的缓存,默认是采用{@link DefaultLocalCache},可以通过设置 {@link Cache} 属性来设置新的缓存对象 + * 存储Program的缓存,默认是采用{@link DefaultBeetlCache},可以通过设置 {@link IBeetlCache} 属性来设置新的缓存对象 * * @author xiandafu */ -public class ProgramCacheFactory { +public class DefaultBeetlCacheFactory { /** DEBUG flag */ private static final boolean DEBUG = BeetlConfig.DEBUG; /** Log TAG */ private static final String TAG = "ProgramCacheFactory"; + /** 缓存实现类的类名 */ - public static final String DEFAULT_CACHE_CLASS_NAME = "org.beetl.core.cache.DefaultLocalCache"; + public static final String DEFAULT_CACHE_CLASS_NAME = "org.beetl.core.impl.cache.DefaultBeetlCache"; + + /** + * 不允许实例化 + */ + private DefaultBeetlCacheFactory() { + } /** * 默认的缓存实现 * - * @return 如果通过 {@link #DEFAULT_CACHE_CLASS_NAME} 获取缓存实例失败,则返回一个 {@link DefaultLocalCache} 类型的新实例 + * @return 如果通过 {@link #DEFAULT_CACHE_CLASS_NAME} 获取缓存实例失败,则返回一个 {@link DefaultBeetlCache} 类型的新实例 */ @NotNull - public static Cache defaultCache() { + public static IBeetlCache defaultCache() { return loadCache(DEFAULT_CACHE_CLASS_NAME); } /** * 默认的缓存实现 * - * @return 如果通过 {@link #DEFAULT_CACHE_CLASS_NAME} 获取缓存实例失败,则返回一个 {@link DefaultLocalCache} 类型的新实例 + * @return 如果通过 {@link #DEFAULT_CACHE_CLASS_NAME} 获取缓存实例失败,则返回一个 {@link DefaultBeetlCache} 类型的新实例 */ @NotNull - public static Cache loadCache(String className) { + public static IBeetlCache loadCache(String className) { ClassLoader loader = Thread.currentThread().getContextClassLoader(); if (loader == null) { - loader = ProgramCacheFactory.class.getClassLoader(); + loader = DefaultBeetlCacheFactory.class.getClassLoader(); } try { - return (Cache) ObjectUtil.instance(className, loader); + return (IBeetlCache) ObjectUtil.instance(className, loader); } catch (Exception ex) { if (DEBUG) { Log.d(TAG, "#loadCache fail." + " className=" + className + " classLoader=" + loader + " ex=\n" + ex.toString()); } - return new DefaultLocalCache(); + return new DefaultBeetlCache(); } } diff --git a/src/main/java/org/beetl/core/runtime/BeetlRuntime.java b/src/main/java/org/beetl/core/runtime/BeetlRuntime.java index 7e95533..eb79cac 100644 --- a/src/main/java/org/beetl/core/runtime/BeetlRuntime.java +++ b/src/main/java/org/beetl/core/runtime/BeetlRuntime.java @@ -1,7 +1,8 @@ package org.beetl.core.runtime; -import org.beetl.core.runtime.impl.DefaultBeetlConfigManager; -import org.beetl.core.runtime.impl.DefaultBeetlMemoryManager; +import org.beetl.core.impl.cache.DefaultBeetlCacheFactory; +import org.beetl.core.impl.DefaultBeetlConfigManager; +import org.beetl.core.impl.DefaultBeetlMemoryManager; /** * Beetl运行时,用于获取各种运行时 @@ -26,4 +27,23 @@ public class BeetlRuntime { return DefaultBeetlMemoryManager.get(); } + /** + * 获取缓存实例 + * + * @return 返回一个默认的实现 + */ + public static IBeetlCache getCache() { + return DefaultBeetlCacheFactory.defaultCache(); + } + + /** + * 获取缓存实例 + * + * @param className 全限定类名 + * @return 根据类名加载缓存类,返回其实例 + */ + public static IBeetlCache getCache(String className) { + return DefaultBeetlCacheFactory.loadCache(className); + } + } diff --git a/src/main/java/org/beetl/core/cache/Cache.java b/src/main/java/org/beetl/core/runtime/IBeetlCache.java similarity index 97% rename from src/main/java/org/beetl/core/cache/Cache.java rename to src/main/java/org/beetl/core/runtime/IBeetlCache.java index f814de2..fe1dc03 100644 --- a/src/main/java/org/beetl/core/cache/Cache.java +++ b/src/main/java/org/beetl/core/runtime/IBeetlCache.java @@ -25,7 +25,7 @@ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package org.beetl.core.cache; +package org.beetl.core.runtime; import java.util.function.Function; @@ -34,7 +34,7 @@ import java.util.function.Function; * * @author xiandafu */ -public interface Cache { +public interface IBeetlCache { /** * 通过 {@param key} 从缓存中获取对应的 value * diff --git a/src/test/java/org/beetl/core/runtime/impl/DefaultBeetlMemoryManagerTest.java b/src/test/java/org/beetl/impl/DefaultBeetlMemoryManagerTest.java similarity index 98% rename from src/test/java/org/beetl/core/runtime/impl/DefaultBeetlMemoryManagerTest.java rename to src/test/java/org/beetl/impl/DefaultBeetlMemoryManagerTest.java index 72b5d32..8aaa3a9 100644 --- a/src/test/java/org/beetl/core/runtime/impl/DefaultBeetlMemoryManagerTest.java +++ b/src/test/java/org/beetl/impl/DefaultBeetlMemoryManagerTest.java @@ -1,4 +1,4 @@ -package org.beetl.core.runtime.impl; +package org.beetl.impl; import org.beetl.core.runtime.BeetlRuntime; import org.testng.Assert; -- Gitee