Updated Branches: refs/heads/master 1e7d09194 -> 175cd5cbc
ISIS-406: getting ready for release... .. some tiny fixes to be able to support GAE (the DHTMLX viewer) Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/175cd5cb Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/175cd5cb Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/175cd5cb Branch: refs/heads/master Commit: 175cd5cbc38887ebb44a40d4be110759a9573e47 Parents: 1e7d091 Author: Dan Haywood <[email protected]> Authored: Fri May 17 14:01:23 2013 +0100 Committer: Dan Haywood <[email protected]> Committed: Fri May 17 14:01:23 2013 +0100 ---------------------------------------------------------------------- .../runtime/installers/InstallerLookupDefault.java | 24 +++++++++----- .../isis/core/runtime/system/SystemConstants.java | 5 ++- .../core/runtime/installer-registry.properties | 1 + 3 files changed, 19 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/175cd5cb/core/runtime/src/main/java/org/apache/isis/core/runtime/installers/InstallerLookupDefault.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/installers/InstallerLookupDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/installers/InstallerLookupDefault.java index 7591670..ca35c3a 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/installers/InstallerLookupDefault.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/installers/InstallerLookupDefault.java @@ -23,6 +23,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.nullValue; +import java.awt.Canvas; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -200,19 +201,24 @@ public class InstallerLookupDefault implements InstallerLookup { @Override public TemplateImageLoaderInstaller templateImageLoaderInstaller(final String requested) { - final boolean onGae = onGae(); - return getInstaller(TemplateImageLoaderInstaller.class, requested, SystemConstants.IMAGE_LOADER_KEY, !onGae?SystemConstants.IMAGE_LOADER_DEFAULT:SystemConstants.IMAGE_LOADER_GAE); - } - - private static boolean onGae() { try { - final Class<?> cls = Thread.currentThread().getContextClassLoader().loadClass("com.google.appengine.api.utils.SystemProperty"); - return cls != null; - } catch(Exception ex) { - return false; + if(requested == null) { + // fail early if the default (which uses AWT) cannot be used. + // this is a workaround to force the fallback of Noop; ie for Google App Engine. + @SuppressWarnings("unused") + Canvas canvas = new java.awt.Canvas(); + } + return templateImageLoaderInstaller(requested, SystemConstants.IMAGE_LOADER_DEFAULT); + } catch (NoClassDefFoundError e) { + // to support running on Google App Engine + return templateImageLoaderInstaller(requested, SystemConstants.IMAGE_LOADER_NOOP); } } + private TemplateImageLoaderInstaller templateImageLoaderInstaller(final String requested, final String fallback) { + return getInstaller(TemplateImageLoaderInstaller.class, requested, SystemConstants.IMAGE_LOADER_KEY, fallback); + } + @Override public PersistenceMechanismInstaller persistenceMechanismInstaller(final String requested, final DeploymentType deploymentType) { final String persistorDefault = deploymentType.isExploring() || deploymentType.isPrototyping() ? SystemConstants.OBJECT_PERSISTOR_NON_PRODUCTION_DEFAULT : SystemConstants.OBJECT_PERSISTOR_PRODUCTION_DEFAULT; http://git-wip-us.apache.org/repos/asf/isis/blob/175cd5cb/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java index 792aa2c..c42de2c 100644 --- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java +++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/SystemConstants.java @@ -32,6 +32,7 @@ import org.apache.isis.core.runtime.imageloader.TemplateImageLoaderInstaller; import org.apache.isis.core.runtime.installerregistry.installerapi.EmbeddedWebServerInstaller; import org.apache.isis.core.runtime.installerregistry.installerapi.IsisViewerInstaller; import org.apache.isis.core.runtime.installerregistry.installerapi.PersistenceMechanismInstaller; +import org.apache.isis.core.runtime.installers.InstallerLookupDefault; import org.apache.isis.core.runtime.services.ServicesInstaller; import org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory; import org.apache.isis.core.runtime.userprofile.UserProfileStore; @@ -169,9 +170,9 @@ public final class SystemConstants { */ public static final String IMAGE_LOADER_DEFAULT = "awt"; /** - * Default if running on Google App Engine. + * Default if running on Google App Engine, see {@link InstallerLookupDefault#templateImageLoaderInstaller(String)} */ - public static final String IMAGE_LOADER_GAE = "gae"; + public static final String IMAGE_LOADER_NOOP = "noop"; /** http://git-wip-us.apache.org/repos/asf/isis/blob/175cd5cb/core/runtime/src/main/resources/org/apache/isis/core/runtime/installer-registry.properties ---------------------------------------------------------------------- diff --git a/core/runtime/src/main/resources/org/apache/isis/core/runtime/installer-registry.properties b/core/runtime/src/main/resources/org/apache/isis/core/runtime/installer-registry.properties index 44491fe..ce260c7 100644 --- a/core/runtime/src/main/resources/org/apache/isis/core/runtime/installer-registry.properties +++ b/core/runtime/src/main/resources/org/apache/isis/core/runtime/installer-registry.properties @@ -66,6 +66,7 @@ org.apache.isis.core.runtime.progmodels.JavaReflectorInstaller # "java" # image loader org.apache.isis.core.runtime.imageloader.awt.TemplateImageLoaderAwtInstaller # "awt" +org.apache.isis.core.runtime.imageloader.noop.TemplateImageLoaderNoopInstaller # "noop" # fixture loaders org.apache.isis.core.runtime.fixtures.FixturesInstallerFromConfiguration "configuration"
