diff --git a/build.sbt b/build.sbt index 582ccafa1..c6c7d7b84 100644 --- a/build.sbt +++ b/build.sbt @@ -33,7 +33,7 @@ lazy val `commercetools-sunrise` = (project in file(".")) lazy val common = project .enablePlugins(PlayJava).configs(IntegrationTest, PlayTest) - .settings(commonSettings ++ commonTestSettings ++ jvmSdkDependencies ++ templateDependencies ++ commonDependencies ++ disableDockerPublish: _*) + .settings(commonSettings ++ commonTestSettings ++ jvmSdkDependencies ++ templateDependencies ++ sunriseModuleDependencies ++ commonDependencies ++ disableDockerPublish: _*) .dependsOn(`move-to-sdk`) lazy val `product-catalog` = project @@ -70,6 +70,12 @@ lazy val `move-to-sdk` = project javaUnidocSettings +resolvers in ThisBuild ++= Seq ( + Resolver.sonatypeRepo("releases"), + Resolver.sonatypeRepo("snapshots"), + Resolver.mavenLocal +) + lazy val commonSettings = Release.publishSettings ++ Seq ( scalaVersion := "2.11.8", javacOptions ++= Seq("-source", "1.8", "-target", "1.8"), @@ -82,12 +88,13 @@ lazy val commonSettings = Release.publishSettings ++ Seq ( ) ) +lazy val sunriseModuleDependencies = Seq ( + libraryDependencies ++= Seq ( + "com.commercetools.sunrise.cms" % "cms-api" % "0.1.0" + ) +) + lazy val jvmSdkDependencies = Seq ( - resolvers in ThisBuild ++= Seq ( - Resolver.sonatypeRepo("releases"), - Resolver.sonatypeRepo("snapshots"), - Resolver.mavenLocal - ), libraryDependencies ++= Seq ( "com.commercetools.sdk.jvm.core" % "commercetools-models" % jvmSdkVersion, "com.commercetools.sdk.jvm.core" % "commercetools-java-client" % jvmSdkVersion, diff --git a/common/app/com/commercetools/sunrise/common/controllers/SunriseFrameworkController.java b/common/app/com/commercetools/sunrise/common/controllers/SunriseFrameworkController.java index e40889224..d350e3d07 100644 --- a/common/app/com/commercetools/sunrise/common/controllers/SunriseFrameworkController.java +++ b/common/app/com/commercetools/sunrise/common/controllers/SunriseFrameworkController.java @@ -1,10 +1,10 @@ package com.commercetools.sunrise.common.controllers; +import com.commercetools.sunrise.cms.CmsPage; import com.commercetools.sunrise.common.contexts.UserContext; import com.commercetools.sunrise.common.ctp.MetricAction; import com.commercetools.sunrise.common.pages.*; import com.commercetools.sunrise.common.reverserouter.HomeReverseRouter; -import com.commercetools.sunrise.common.template.cms.CmsPage; import com.commercetools.sunrise.common.template.engine.TemplateContext; import com.commercetools.sunrise.common.template.engine.TemplateEngine; import com.commercetools.sunrise.common.template.i18n.I18nIdentifier; diff --git a/common/app/com/commercetools/sunrise/common/controllers/WithCmsPage.java b/common/app/com/commercetools/sunrise/common/controllers/WithCmsPage.java index d6620c4e6..64d0f0e8f 100644 --- a/common/app/com/commercetools/sunrise/common/controllers/WithCmsPage.java +++ b/common/app/com/commercetools/sunrise/common/controllers/WithCmsPage.java @@ -1,8 +1,8 @@ package com.commercetools.sunrise.common.controllers; +import com.commercetools.sunrise.cms.CmsPage; +import com.commercetools.sunrise.cms.CmsService; import com.commercetools.sunrise.common.contexts.UserContext; -import com.commercetools.sunrise.common.template.cms.CmsPage; -import com.commercetools.sunrise.common.template.cms.CmsService; import java.util.Optional; import java.util.concurrent.CompletionStage; diff --git a/common/app/com/commercetools/sunrise/common/template/TemplateModule.java b/common/app/com/commercetools/sunrise/common/template/TemplateModule.java index 536157998..1697a4de3 100644 --- a/common/app/com/commercetools/sunrise/common/template/TemplateModule.java +++ b/common/app/com/commercetools/sunrise/common/template/TemplateModule.java @@ -1,6 +1,6 @@ package com.commercetools.sunrise.common.template; -import com.commercetools.sunrise.common.template.cms.CmsService; +import com.commercetools.sunrise.cms.CmsService; import com.commercetools.sunrise.common.template.cms.filebased.CmsI18nResolverProvider; import com.commercetools.sunrise.common.template.cms.filebased.FileBasedCmsService; import com.commercetools.sunrise.common.template.engine.TemplateEngine; diff --git a/common/app/com/commercetools/sunrise/common/template/cms/CmsPage.java b/common/app/com/commercetools/sunrise/common/template/cms/CmsPage.java deleted file mode 100644 index 468f32ca8..000000000 --- a/common/app/com/commercetools/sunrise/common/template/cms/CmsPage.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.commercetools.sunrise.common.template.cms; - -import java.util.Optional; - -public interface CmsPage { - - /** - * Gets the content corresponding to the given field name. - * @param fieldName identifying the field (e.g. banner.image.url) - * @return the content identified by the key, or absent if not found - */ - Optional field(final String fieldName); - - /** - * Gets the content corresponding to the given field name. - * @param fieldName identifying the field (e.g. banner.image.url) - * @return the content identified by the key, or empty string if not found - */ - default String fieldOrEmpty(final String fieldName) { - return field(fieldName).orElse(""); - } -} diff --git a/common/app/com/commercetools/sunrise/common/template/cms/CmsService.java b/common/app/com/commercetools/sunrise/common/template/cms/CmsService.java deleted file mode 100644 index 1c2dbb2ab..000000000 --- a/common/app/com/commercetools/sunrise/common/template/cms/CmsService.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.commercetools.sunrise.common.template.cms; - -import java.util.List; -import java.util.Locale; -import java.util.Optional; -import java.util.concurrent.CompletionStage; - -/** - * Service that provides page content, coming from some sort of Content Management System (CMS). - */ -@FunctionalInterface -public interface CmsService { - - /** - * Gets the page content corresponding to the given key. - * @param pageKey identifying the page - * @param locales for the localized content inside the page - * @return a {@code CompletionStage} containing the page content identified by the key, or a - * {@link CmsServiceException} if there was an issue with the CMS. (Note that it is possible that other - * {@link RuntimeException}s or {@link Error}s besides {@link CmsServiceException} may be contained in the - * {@link CompletionStage}.) - */ - CompletionStage> page(final String pageKey, final List locales); - -} diff --git a/common/app/com/commercetools/sunrise/common/template/cms/CmsServiceException.java b/common/app/com/commercetools/sunrise/common/template/cms/CmsServiceException.java deleted file mode 100644 index 438ca1f3f..000000000 --- a/common/app/com/commercetools/sunrise/common/template/cms/CmsServiceException.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.commercetools.sunrise.common.template.cms; - -/** - * An unchecked exception signalling that there was a problem when obtaining the content from the CMS. - * It could be caused by wrong call parameters (eg. wrong credentials) or server side issues. - *

- * Exceptions of this type will often wrap a lower-level exception. - * - * @see Exception#getCause() - */ -public class CmsServiceException extends RuntimeException { - - public CmsServiceException(final String message, final Throwable cause) { - super(message, cause); - } - - public CmsServiceException(final Throwable cause) { - super(cause); - } -} diff --git a/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPage.java b/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPage.java index 61404b21c..49b59f06c 100644 --- a/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPage.java +++ b/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPage.java @@ -1,6 +1,6 @@ package com.commercetools.sunrise.common.template.cms.filebased; -import com.commercetools.sunrise.common.template.cms.CmsPage; +import com.commercetools.sunrise.cms.CmsPage; import com.commercetools.sunrise.common.template.i18n.I18nIdentifier; import com.commercetools.sunrise.common.template.i18n.I18nResolver; diff --git a/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsService.java b/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsService.java index 9992e6cf5..80ff8f27f 100644 --- a/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsService.java +++ b/common/app/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsService.java @@ -1,7 +1,7 @@ package com.commercetools.sunrise.common.template.cms.filebased; -import com.commercetools.sunrise.common.template.cms.CmsPage; -import com.commercetools.sunrise.common.template.cms.CmsService; +import com.commercetools.sunrise.cms.CmsPage; +import com.commercetools.sunrise.cms.CmsService; import com.commercetools.sunrise.common.template.i18n.I18nResolver; import javax.inject.Inject; diff --git a/common/app/com/commercetools/sunrise/common/template/engine/TemplateContext.java b/common/app/com/commercetools/sunrise/common/template/engine/TemplateContext.java index 6b248ece5..e4ec2e7ed 100644 --- a/common/app/com/commercetools/sunrise/common/template/engine/TemplateContext.java +++ b/common/app/com/commercetools/sunrise/common/template/engine/TemplateContext.java @@ -1,7 +1,7 @@ package com.commercetools.sunrise.common.template.engine; +import com.commercetools.sunrise.cms.CmsPage; import com.commercetools.sunrise.common.pages.PageData; -import com.commercetools.sunrise.common.template.cms.CmsPage; import javax.annotation.Nullable; import java.util.List; diff --git a/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelper.java b/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelper.java index eb5bf315c..3389bddab 100644 --- a/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelper.java +++ b/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelper.java @@ -1,6 +1,6 @@ package com.commercetools.sunrise.common.template.engine.handlebars; -import com.commercetools.sunrise.common.template.cms.CmsPage; +import com.commercetools.sunrise.cms.CmsPage; import com.github.jknack.handlebars.Helper; import com.github.jknack.handlebars.Options; import io.sphere.sdk.models.Base; diff --git a/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HelperUtils.java b/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HelperUtils.java index 1e3bd757d..f5684a213 100644 --- a/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HelperUtils.java +++ b/common/app/com/commercetools/sunrise/common/template/engine/handlebars/HelperUtils.java @@ -1,6 +1,6 @@ package com.commercetools.sunrise.common.template.engine.handlebars; -import com.commercetools.sunrise.common.template.cms.CmsPage; +import com.commercetools.sunrise.cms.CmsPage; import com.github.jknack.handlebars.Context; import io.sphere.sdk.models.Base; diff --git a/common/pt/com/commercetools/sunrise/common/DefaultTestModule.java b/common/pt/com/commercetools/sunrise/common/DefaultTestModule.java index 0e272d202..4684cd505 100644 --- a/common/pt/com/commercetools/sunrise/common/DefaultTestModule.java +++ b/common/pt/com/commercetools/sunrise/common/DefaultTestModule.java @@ -1,11 +1,11 @@ package com.commercetools.sunrise.common; +import com.commercetools.sunrise.cms.CmsService; import com.commercetools.sunrise.common.basicauth.BasicAuth; import com.commercetools.sunrise.common.contexts.UserContext; import com.commercetools.sunrise.common.controllers.TestableSphereClient; import com.commercetools.sunrise.common.pages.PageMeta; import com.commercetools.sunrise.common.pages.PageMetaFactory; -import com.commercetools.sunrise.common.template.cms.CmsService; import com.commercetools.sunrise.common.template.engine.TemplateEngine; import com.commercetools.sunrise.common.template.i18n.I18nResolver; import com.commercetools.sunrise.framework.MultiControllerComponentResolver; diff --git a/common/test/com/commercetools/sunrise/common/template/cms/CmsPageTest.java b/common/test/com/commercetools/sunrise/common/template/cms/CmsPageTest.java deleted file mode 100644 index e7a4d5470..000000000 --- a/common/test/com/commercetools/sunrise/common/template/cms/CmsPageTest.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.commercetools.sunrise.common.template.cms; - -import org.junit.Test; - -import java.util.Optional; - -import static org.assertj.core.api.Assertions.assertThat; - -public class CmsPageTest { - - @Test - public void getsMessage() throws Exception { - final CmsPage cmsPage = (f -> Optional.of("bar")); - assertThat(cmsPage.fieldOrEmpty(null)).isEqualTo("bar"); - } - - @Test - public void getsEmptyStringWhenKeyNotFound() throws Exception { - final CmsPage cmsPage = (f -> Optional.empty()); - assertThat(cmsPage.fieldOrEmpty(null)).isEmpty(); - } -} diff --git a/common/test/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPageTest.java b/common/test/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPageTest.java index 886153d90..2383288f3 100644 --- a/common/test/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPageTest.java +++ b/common/test/com/commercetools/sunrise/common/template/cms/filebased/FileBasedCmsPageTest.java @@ -1,6 +1,6 @@ package com.commercetools.sunrise.common.template.cms.filebased; -import com.commercetools.sunrise.common.template.cms.CmsPage; +import com.commercetools.sunrise.cms.CmsPage; import com.commercetools.sunrise.common.template.i18n.I18nResolver; import com.commercetools.sunrise.common.template.i18n.yaml.YamlI18nResolver; import com.google.inject.AbstractModule; diff --git a/common/test/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelperTest.java b/common/test/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelperTest.java index 0d4ab9787..8714041e6 100644 --- a/common/test/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelperTest.java +++ b/common/test/com/commercetools/sunrise/common/template/engine/handlebars/HandlebarsCmsHelperTest.java @@ -1,7 +1,7 @@ package com.commercetools.sunrise.common.template.engine.handlebars; +import com.commercetools.sunrise.cms.CmsPage; import com.commercetools.sunrise.common.pages.PageData; -import com.commercetools.sunrise.common.template.cms.CmsPage; import com.commercetools.sunrise.common.template.engine.TemplateContext; import com.commercetools.sunrise.common.template.engine.TemplateEngine; import com.commercetools.sunrise.common.template.engine.TestablePageData; diff --git a/product-catalog/app/com/commercetools/sunrise/productcatalog/home/SunriseHomeController.java b/product-catalog/app/com/commercetools/sunrise/productcatalog/home/SunriseHomeController.java index 739166f9a..13616c18c 100644 --- a/product-catalog/app/com/commercetools/sunrise/productcatalog/home/SunriseHomeController.java +++ b/product-catalog/app/com/commercetools/sunrise/productcatalog/home/SunriseHomeController.java @@ -1,13 +1,12 @@ package com.commercetools.sunrise.productcatalog.home; +import com.commercetools.sunrise.cms.CmsService; import com.commercetools.sunrise.common.contexts.RequestScoped; import com.commercetools.sunrise.common.controllers.SunriseFrameworkController; import com.commercetools.sunrise.common.controllers.WithCmsPage; import com.commercetools.sunrise.common.controllers.WithOverwriteableTemplateName; import com.commercetools.sunrise.common.pages.PageContent; import com.commercetools.sunrise.common.reverserouter.HomeReverseRouter; -import com.commercetools.sunrise.common.template.cms.CmsPage; -import com.commercetools.sunrise.common.template.cms.CmsService; import com.commercetools.sunrise.hooks.PageDataHook; import com.commercetools.sunrise.hooks.RequestHook; import com.commercetools.sunrise.productcatalog.productsuggestions.ProductSuggestionsControllerComponent; @@ -15,7 +14,6 @@ import javax.inject.Inject; import java.util.HashSet; -import java.util.Optional; import java.util.Set; import java.util.concurrent.CompletionStage; @@ -59,12 +57,6 @@ public CmsService cmsService() { return injector().getInstance(CmsService.class); } - @Override - public CompletionStage> cmsPage() { - final CmsService cmsService = injector().getInstance(CmsService.class); - return cmsService.page("home", userContext().locales()); - } - @Override public Set getFrameworkTags() { return new HashSet<>(asList("home", "product-catalog"));