Skip to content

Commit

Permalink
Merge pull request #21 from CoreMedia/develop
Browse files Browse the repository at this point in the history
Release: updates for 2.1.0
  • Loading branch information
mweikard committed Jul 12, 2018
2 parents 69137b4 + 11d8ac5 commit 7843172
Show file tree
Hide file tree
Showing 85 changed files with 985 additions and 674 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ includedTypes:
- Content_
- CMArticle
- CMCollection
- CMDownload
- CMImage
- CMLinkable
- CMLocalized
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
description: "The sample schema used by the CaaS React fragments"
linkBuilders:
default: !LinkBuilder "simpleLinkBuilder"

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,10 @@ public void setTargetType(String targetType) {

@Override
public String getSourceName() {
return sourceName;
if (sourceName != null) {
return sourceName;
}
return getName();
}

public void setSourceName(String sourceName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,17 @@ public List<DirectiveDefinition> getDirectives() {
@Override
public String getTargetType() {
switch (propertyDescriptor.getType()) {
case DATE:
return "String";
case INTEGER:
return "Int";
case LINK:
LinkPropertyDescriptor linkPropertyDescriptor = (LinkPropertyDescriptor) propertyDescriptor;
InterfaceTypeDefinition targetType = schema.findInterface(linkPropertyDescriptor.getLinkType());
if (targetType != null) {
return targetType.getName();
}
break;
case INTEGER:
return "Int";
default:
return getTypeName().substring(0, 1).toUpperCase() + getTypeName().substring(1).toLowerCase();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.coremedia.cap.common.CapPropertyDescriptor;
import com.coremedia.cap.content.ContentType;

import com.google.common.base.MoreObjects;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
Expand Down Expand Up @@ -45,7 +46,8 @@ public List<FieldDefinition> getFieldDefinitions() throws InvalidTypeDefinition
for (String name : getFieldNames()) {
if (typeCustomization != null && typeCustomization.hasCustomField(name)) {
result.add(typeCustomization.getCustomField(name));
} else if (typeCustomization == null || !typeCustomization.getExcludedProperties().contains(name)) {
}
else if (typeCustomization == null || !typeCustomization.getExcludedProperties().contains(name)) {
result.add(new DocumentFieldDefinition(getSchemaConfig(), getContentType().getDescriptor(name)));
}
}
Expand All @@ -54,6 +56,21 @@ public List<FieldDefinition> getFieldDefinitions() throws InvalidTypeDefinition
}


private boolean isValidPropertyDescriptor(CapPropertyDescriptor descriptor) {
switch (descriptor.getType()) {
case BLOB:
case DATE:
case INTEGER:
case LINK:
case MARKUP:
case STRING:
return true;
default:
return false;
}
}


private Set<String> getParentFieldNames() throws InvalidTypeDefinition {
InterfaceTypeDefinition parent = getParent();
HashSet<String> result = Sets.newHashSet();
Expand All @@ -78,7 +95,7 @@ private Set<String> getFieldNames() throws InvalidTypeDefinition {
throw new InvalidTypeDefinition("Cannot override field " + name + " for type " + getName());
}
}
Set<String> localNames = getContentType().getDescriptors().stream().map(CapPropertyDescriptor::getName).collect(Collectors.toSet());
Set<String> localNames = getContentType().getDescriptors().stream().filter(this::isValidPropertyDescriptor).map(CapPropertyDescriptor::getName).collect(Collectors.toSet());
// remove all fields already defined by the parent
localNames.removeAll(parentNames);
// add custom fields
Expand Down
39 changes: 22 additions & 17 deletions headless-schema-generator/src/main/resources/templates/field.stg
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ directives:


property(fieldDefinition) ::= <<
- !<fieldDefinition.dataFetcher>
- !Property
name: <fieldDefinition.name>
<if(fieldDefinition.sourceName)>
sourceName: <fieldDefinition.sourceName>
Expand All @@ -48,23 +48,16 @@ contentproperty(fieldDefinition) ::= <<

>>

string(fieldDefinition) ::= <<
date(fieldDefinition) ::= <<
<fieldDefinition:contentproperty()>
>>

integer(fieldDefinition) ::= <<
<fieldDefinition:contentproperty()>
>>

date(fieldDefinition) ::= <<
- !ContentProperty
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
<fallbackSources(fieldDefinition.fallbackSourceNames)>
typeName: String
<if(fieldDefinition.nonNull)>nonNull: true<endif>
<directives(fieldDefinition.directives)>

string(fieldDefinition) ::= <<
<fieldDefinition:contentproperty()>
>>

link(fieldDefinition) ::= <<
Expand Down Expand Up @@ -93,7 +86,7 @@ struct(fieldDefinition) ::= <<
- !Struct
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
<if(fieldDefinition.typeName)>typeName: <fieldDefinition.targetType><endif>
typeName: <fieldDefinition.targetType>
<if(fieldDefinition.nonNull)>nonNull: true<endif>
<directives(fieldDefinition.directives)>

Expand Down Expand Up @@ -124,12 +117,14 @@ blob(fieldDefinition) ::= <<
- !Blob
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
<fallbackSources(fieldDefinition.fallbackSourceNames)>
<if(fieldDefinition.nonNull)>nonNull: true<endif>
<directives(fieldDefinition.directives)>

>>

uri(fieldDefinition) ::= <<
- !<fieldDefinition.dataFetcher>
- !Uri
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
typeName: String
Expand All @@ -139,7 +134,7 @@ uri(fieldDefinition) ::= <<
>>

meta(fieldDefinition) ::= <<
- !<fieldDefinition.dataFetcher>
- !Meta
name: <fieldDefinition.name>
typeName: <fieldDefinition.targetType>
<if(fieldDefinition.nonNull)>nonNull: true<endif>
Expand All @@ -156,7 +151,7 @@ constant(fieldDefinition) ::= <<
>>

navigation(fieldDefinition) ::= <<
- !<fieldDefinition.dataFetcher>
- !Navigation
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
typeName: <fieldDefinition.targetType>
Expand All @@ -165,7 +160,7 @@ navigation(fieldDefinition) ::= <<
>>

pagegrid(fieldDefinition) ::= <<
- !<fieldDefinition.dataFetcher>
- !PageGrid
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
typeName: <fieldDefinition.targetType>
Expand All @@ -174,11 +169,21 @@ pagegrid(fieldDefinition) ::= <<
>>

setting(fieldDefinition) ::= <<
- !<fieldDefinition.dataFetcher>
- !Setting
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
typeName: <fieldDefinition.targetType>
<if(fieldDefinition.defaultValue)>defaultValue: <fieldDefinition.defaultValue><endif>
<if(fieldDefinition.nonNull)>nonNull: true<endif>

>>

bean(fieldDefinition) ::= <<
- !Bean
name: <fieldDefinition.name>
sourceName: <fieldDefinition.sourceName>
<fallbackSources(fieldDefinition.fallbackSourceNames)>
typeName: <fieldDefinition.targetType>
<if(fieldDefinition.nonNull)>nonNull: true<endif>

>>
21 changes: 9 additions & 12 deletions headless-server-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,24 +68,21 @@
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-spectator</artifactId>
</dependency>
<dependency>
<groupId>com.netflix.spectator</groupId>
<artifactId>spectator-api</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.netflix.spectator</groupId>
<artifactId>spectator-reg-servo</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.netflix.spectator</groupId>
<artifactId>spectator-reg-metrics3</artifactId>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-spring-legacy</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-jmx</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.google.common.collect.ImmutableMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
Expand Down Expand Up @@ -44,11 +43,13 @@ public class CaasConfig extends WebMvcConfigurerAdapter {
private static final Logger LOG = LoggerFactory.getLogger(CaasConfig.class);


private CaasServiceConfig serviceConfig;
private RequestDateInitializer requestDateInitializer;
private ResponseHeaderInitializer responseHeaderInitializer;


public CaasConfig(RequestDateInitializer requestDateInitializer, ResponseHeaderInitializer responseHeaderInitializer) {
public CaasConfig(CaasServiceConfig serviceConfig, RequestDateInitializer requestDateInitializer, ResponseHeaderInitializer responseHeaderInitializer) {
this.serviceConfig = serviceConfig;
this.requestDateInitializer = requestDateInitializer;
this.responseHeaderInitializer = responseHeaderInitializer;
}
Expand Down Expand Up @@ -86,7 +87,7 @@ public void addResourceHandlers(ResourceHandlerRegistry registry) {


@Bean
@ConditionalOnProperty("logRequests")
@ConditionalOnProperty("caas.logRequests")
public Filter logFilter() {
CommonsRequestLoggingFilter filter = new CommonsRequestLoggingFilter() {
@Override
Expand All @@ -108,7 +109,7 @@ protected void beforeRequest(HttpServletRequest request, String message) {


@Bean
@ConditionalOnProperty("prettyPrintOutput")
@ConditionalOnProperty("caas.prettyPrintOutput")
public ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
Expand All @@ -120,9 +121,7 @@ public ObjectMapper objectMapper() {
public CacheCapacityConfigurer configureCache(Cache cache) {
CacheCapacityConfigurer configurer = new CacheCapacityConfigurer();
configurer.setCache(cache);
configurer.setCapacities(ImmutableMap.of(
"java.lang.Object", 10000L
));
configurer.setCapacities(serviceConfig.getCacheCapacities());
return configurer;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
package com.coremedia.caas.server;

import com.coremedia.caas.service.ServiceConfig;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
@ConfigurationProperties(prefix = "caas")
public class CaasServiceConfig implements ServiceConfig {

private boolean isPreview;
private boolean isLogRequests;
private boolean isPrettyPrintOutput;
private Map<String, Long> cacheCapacities;
private AccessControlConfig accessControlConfig;


@Override
public boolean isPreview() {
return isPreview;
}

public void setPreview(boolean preview) {
isPreview = preview;
}

public boolean isLogRequests() {
return isLogRequests;
}

public void setLogRequests(boolean logRequests) {
isLogRequests = logRequests;
}

public boolean isPrettyPrintOutput() {
return isPrettyPrintOutput;
}

public void setPrettyPrintOutput(boolean prettyPrintOutput) {
isPrettyPrintOutput = prettyPrintOutput;
}

public Map<String, Long> getCacheCapacities() {
return cacheCapacities;
}

public void setCacheCapacities(Map<String, Long> cacheCapacities) {
this.cacheCapacities = cacheCapacities;
}

public AccessControlConfig getAccessControl() {
return accessControlConfig;
}

public void setAccessControl(AccessControlConfig accessControlConfig) {
this.accessControlConfig = accessControlConfig;
}


@Override
public List<String> getDefaultValidators() {
return accessControlConfig.getDefaultValidators();
}


public static class AccessControlConfig {

private List<String> defaultValidators;

public List<String> getDefaultValidators() {
return defaultValidators;
}

public void setDefaultValidators(List<String> defaultValidators) {
this.defaultValidators = defaultValidators;
}
}
}
Loading

0 comments on commit 7843172

Please sign in to comment.