Skip to content

Commit 888343a

Browse files
committed
DXA 1.7 Release
2 parents 00094cf + 0d772e0 commit 888343a

File tree

48 files changed

+1058
-641
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+1058
-641
lines changed

dxa-bom-modules/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>com.sdl.dxa.modules</groupId>
1414
<artifactId>dxa-bom-modules</artifactId>
15-
<version>1.7.0-SNAPSHOT</version>
15+
<version>1.7.0</version>
1616
<packaging>pom</packaging>
1717

1818
<name>DXA Modules - Bill of Materials</name>
@@ -45,7 +45,7 @@
4545
</developers>
4646

4747
<properties>
48-
<dxa-modules.version>1.7.0-SNAPSHOT</dxa-modules.version>
48+
<dxa-modules.version>1.7.0</dxa-modules.version>
4949
<dxa-module-core.version>${dxa-modules.version}</dxa-module-core.version>
5050
<dxa-module-cid.version>${dxa-modules.version}</dxa-module-cid.version>
5151
<dxa-module-googleanalytics.version>${dxa-modules.version}</dxa-module-googleanalytics.version>

dxa-bom/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>com.sdl.dxa</groupId>
1414
<artifactId>dxa-bom</artifactId>
15-
<version>1.7.0-SNAPSHOT</version>
15+
<version>1.7.0</version>
1616
<packaging>pom</packaging>
1717

1818
<name>DXA - Bill of Materials</name>
@@ -45,8 +45,8 @@
4545
</developers>
4646

4747
<properties>
48-
<dd4t.version>2.1.3-DXA17</dd4t.version>
49-
<cd-cil.version>8.5.0-1007</cd-cil.version>
48+
<dd4t.version>2.1.4-DXA17</dd4t.version>
49+
<cd-cil.version>8.5.0-1008</cd-cil.version>
5050

5151
<!-- DXA versions -->
5252
<dxa.version>${project.version}</dxa.version>

dxa-builder/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
group 'com.sdl.dxa'
2-
version '1.7.0-SNAPSHOT'
2+
version '1.7.0'
33

44
apply plugin: 'groovy'
55
apply plugin: 'maven-publish'

dxa-framework/dxa-common-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>com.sdl.dxa</groupId>
88
<artifactId>dxa-framework</artifactId>
9-
<version>1.7.0-SNAPSHOT</version>
9+
<version>1.7.0</version>
1010
</parent>
1111

1212
<artifactId>dxa-common-api</artifactId>

dxa-framework/dxa-common-api/src/main/java/com/sdl/webapp/common/api/model/mvcdata/DefaultsMvcData.java

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,26 @@
22

33
import lombok.Getter;
44

5-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.CORE_AREA_NAME;
6-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.ENTITY_ACTION_NAME;
7-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.ENTITY_CONTROLLER_NAME;
8-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.ERROR_ACTION_NAME;
9-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.ERROR_CONTROLLER_NAME;
10-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.PAGE_ACTION_NAME;
11-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.PAGE_CONTROLLER_NAME;
12-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.REGION_ACTION_NAME;
13-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.REGION_CONTROLLER_NAME;
14-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.SHARED_AREA_NAME;
5+
import static com.sdl.webapp.common.controller.ControllerUtils.FRAMEWORK_CONTROLLER_MAPPING;
6+
import static com.sdl.webapp.common.util.InitializationUtils.getConfiguration;
157

168
@Getter
17-
/**
18-
* <p>DefaultsMvcData class.</p>
19-
*/
209
public enum DefaultsMvcData {
2110

22-
CORE_ENTITY("Core", CORE_AREA_NAME, ENTITY_CONTROLLER_NAME, ENTITY_ACTION_NAME),
11+
CORE_ENTITY(FRAMEWORK_CONTROLLER_MAPPING, getDefaultAreaName(), "Entity", "Entity"),
2312

24-
CORE_PAGE("Core", CORE_AREA_NAME, PAGE_CONTROLLER_NAME, PAGE_ACTION_NAME),
13+
CORE_PAGE(FRAMEWORK_CONTROLLER_MAPPING, getDefaultAreaName(), "Page", "Page"),
2514

26-
CORE_REGION("Core", CORE_AREA_NAME, REGION_CONTROLLER_NAME, REGION_ACTION_NAME),
15+
CORE_REGION(FRAMEWORK_CONTROLLER_MAPPING, getDefaultAreaName(), "Region", "Region"),
2716

28-
ERROR_ENTITY("Shared", SHARED_AREA_NAME, ERROR_CONTROLLER_NAME, ERROR_ACTION_NAME);
17+
ERROR_ENTITY("Shared", "Shared", "Error", "Entity");
2918

3019
private String controllerAreaName;
20+
3121
private String controllerName;
22+
3223
private String actionName;
24+
3325
private String areaName;
3426

3527
DefaultsMvcData(String controllerAreaName, String areaName, String controllerName, String actionName) {
@@ -39,28 +31,50 @@ public enum DefaultsMvcData {
3931
this.actionName = actionName;
4032
}
4133

42-
public interface CoreAreaConstants {
43-
String CORE_AREA_NAME = "Core";
44-
45-
String SHARED_AREA_NAME = "Shared";
46-
47-
String PAGE_CONTROLLER_NAME = "Page";
48-
String PAGE_ACTION_NAME = "Page";
4934

50-
String REGION_CONTROLLER_NAME = "Region";
51-
String REGION_ACTION_NAME = "Region";
35+
/**
36+
* Returns the pre-configured area name with defaults to {@code Core}.
37+
*
38+
* @return pre-configured area name or default name
39+
*/
40+
public static String getDefaultAreaName() {
41+
return getConfiguration("dxa.web.default.area.name", "Core");
42+
}
5243

53-
String ENTITY_CONTROLLER_NAME = "Entity";
54-
String ENTITY_ACTION_NAME = "Entity";
44+
/**
45+
* Returns the pre-configured region name with defaults to {@code Main}.
46+
*
47+
* @return pre-configured region name or default name
48+
*/
49+
public static String getDefaultRegionName() {
50+
return getConfiguration("dxa.web.default.region.name", "Main");
51+
}
5552

56-
String LIST_CONTROLLER_NAME = "List";
57-
String LIST_ACTION_NAME = "List";
53+
/**
54+
* Returns the pre-configured controller name with defaults to {@code Entity}.
55+
*
56+
* @return pre-configured controller name or default name
57+
*/
58+
public static String getDefaultControllerName() {
59+
return getConfiguration("dxa.web.default.controller.name", "Entity");
60+
}
5861

59-
String ERROR_CONTROLLER_NAME = "Error";
60-
String ERROR_ACTION_NAME = "Entity";
62+
/**
63+
* Returns the pre-configured controller area name with defaults to {@code Core}.
64+
*
65+
* @return pre-configured controller area name or default name
66+
*/
67+
public static String getDefaultControllerAreaName() {
68+
return getConfiguration("dxa.web.default.controller.area.name", "Core");
69+
}
6170

62-
String NAVIGATION_CONTROLLER_NAME = "Navigation";
63-
String NAVIGATION_ACTION_NAME = "Navigation";
64-
String SITEMAP_ACTION_NAME = "SiteMap";
71+
/**
72+
* Returns the pre-configured action name with defaults to {@code Entity}.
73+
*
74+
* @return pre-configured action name or default name
75+
*/
76+
public static String getDefaultActionName() {
77+
return getConfiguration("dxa.web.default.action.name", "Entity");
6578
}
79+
6680
}

dxa-framework/dxa-common-api/src/main/java/com/sdl/webapp/common/api/model/mvcdata/MvcDataImpl.java

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.fasterxml.jackson.annotation.JsonIgnore;
44
import com.fasterxml.jackson.annotation.JsonInclude;
55
import com.fasterxml.jackson.annotation.JsonProperty;
6+
import com.google.common.base.Splitter;
67
import com.sdl.webapp.common.api.model.MvcData;
78
import lombok.AccessLevel;
89
import lombok.AllArgsConstructor;
@@ -14,8 +15,11 @@
1415
import lombok.experimental.Accessors;
1516

1617
import java.util.HashMap;
18+
import java.util.List;
1719
import java.util.Map;
1820

21+
import static com.sdl.webapp.common.controller.ControllerUtils.FRAMEWORK_CONTROLLER_MAPPING;
22+
1923
@JsonInclude(JsonInclude.Include.NON_NULL)
2024
@Getter
2125
@Setter(AccessLevel.PROTECTED)
@@ -25,6 +29,9 @@
2529
@AllArgsConstructor
2630
@NoArgsConstructor(access = AccessLevel.PROTECTED)
2731
public class MvcDataImpl implements MvcData {
32+
33+
protected static final List<String> INCLUDE_CONTROLLERS = Splitter.on(",").trimResults().splitToList("Entity, List, Navigation, Region");
34+
2835
@JsonProperty("ControllerAreaName")
2936
private String controllerAreaName;
3037

@@ -54,11 +61,6 @@ public class MvcDataImpl implements MvcData {
5461
// todo dxa2 return a copy instead of real map
5562
private Map<String, Object> metadata = new HashMap<>();
5663

57-
/**
58-
* <p>Constructor for MvcDataImpl.</p>
59-
*
60-
* @param mvcData a {@link com.sdl.webapp.common.api.model.MvcData} object.
61-
*/
6264
protected MvcDataImpl(MvcData mvcData) {
6365
this.controllerAreaName = mvcData.getControllerAreaName();
6466
this.controllerName = mvcData.getControllerName();
@@ -75,10 +77,6 @@ public static MvcDataImplBuilder newBuilder() {
7577
return new MvcDataImplBuilder();
7678
}
7779

78-
public void addMetadataValue(String key, Object obj) {
79-
this.metadata.put(key, obj);
80-
}
81-
8280
public Object getMetadataValue(String key) {
8381
return this.metadata.get(key);
8482
}
@@ -87,18 +85,36 @@ public MvcDataImplBuilder toBuilder() {
8785
return MvcDataImplBuilder.toBuilder(this);
8886
}
8987

88+
@Override
89+
public String getControllerAreaName() {
90+
return INCLUDE_CONTROLLERS.contains(getControllerName()) ? FRAMEWORK_CONTROLLER_MAPPING : controllerAreaName;
91+
}
92+
93+
public void addMetadataValue(String key, Object obj) {
94+
this.metadata.put(key, obj);
95+
}
96+
9097
/**
9198
* Builder for MvcData. Lombok's implementation fails on Javadoc.
9299
*/
93100
public static class MvcDataImplBuilder {
101+
94102
private String controllerAreaName;
103+
95104
private String controllerName;
105+
96106
private String actionName;
107+
97108
private String areaName;
109+
98110
private String viewName;
111+
99112
private String regionAreaName;
113+
100114
private String regionName;
115+
101116
private Map<String, String> routeValues = new HashMap<>();
117+
102118
private Map<String, Object> metadata = new HashMap<>();
103119

104120
protected static MvcDataImplBuilder toBuilder(MvcData mvcData) {

dxa-framework/dxa-common-api/src/main/java/com/sdl/webapp/common/api/model/page/AbstractPageModelImpl.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.sdl.webapp.common.api.model.PageModel;
1010
import com.sdl.webapp.common.api.model.RegionModelSet;
1111
import com.sdl.webapp.common.api.model.region.RegionModelSetImpl;
12+
import com.sdl.webapp.common.util.TcmUtils;
1213
import lombok.Data;
1314
import lombok.EqualsAndHashCode;
1415
import lombok.NoArgsConstructor;
@@ -35,7 +36,7 @@ public abstract class AbstractPageModelImpl extends AbstractViewModel implements
3536

3637
private static final String XPM_PAGE_SCRIPT = "<script type=\"text/javascript\" language=\"javascript\" defer=\"defer\" src=\"%s/WebUI/Editors/SiteEdit/Views/Bootstrap/Bootstrap.aspx?mode=js\" id=\"tridion.siteedit\"></script>";
3738

38-
@JsonProperty("Id")
39+
@JsonIgnore
3940
protected String id;
4041

4142
@JsonIgnore
@@ -66,6 +67,19 @@ public AbstractPageModelImpl(PageModel pageModel) {
6667
addXpmMetadata(pageModel.getXpmMetadata());
6768
}
6869

70+
/**
71+
* Returns an ID of a page without TCM parts. Used as a workaround fix for TSI-2221. Usage of this method is not recommended.
72+
*
73+
* @return ID of a page
74+
* @since 1.7
75+
* @deprecated since 1.7
76+
*/
77+
@JsonProperty("Id")
78+
@Deprecated
79+
String getIdWithoutTcm() {
80+
return String.valueOf(TcmUtils.getItemId(getId()));
81+
}
82+
6983
/**
7084
* {@inheritDoc}
7185
*/

dxa-framework/dxa-common-api/src/main/java/com/sdl/webapp/common/controller/BaseController.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@
2626
import java.util.Map;
2727
import java.util.Objects;
2828

29+
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.getDefaultActionName;
30+
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.getDefaultControllerAreaName;
31+
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.getDefaultControllerName;
32+
2933
/**
3034
* Abstract superclass for controllers with utility methods and exception handling.
3135
*/
@@ -47,9 +51,9 @@ public abstract class BaseController {
4751
private RequestMappingHandlerMapping requestMappingHandlerMapping;
4852

4953
private static Boolean isCustomAction(MvcData mvcData) {
50-
return !Objects.equals(mvcData.getActionName(), "Entity")
51-
|| !Objects.equals(mvcData.getControllerName(), "Entity")
52-
|| !Objects.equals(mvcData.getControllerAreaName(), "Core");
54+
return !Objects.equals(mvcData.getActionName(), getDefaultActionName())
55+
|| !Objects.equals(mvcData.getControllerName(), getDefaultControllerName())
56+
|| !Objects.equals(mvcData.getControllerAreaName(), getDefaultControllerAreaName());
5357
}
5458

5559
RegionModel getRegionFromRequest(HttpServletRequest request, String regionName) {
@@ -192,8 +196,8 @@ protected EntityModel enrichEntityModel(EntityModel entity, HttpServletRequest r
192196

193197
MvcData mvcData = entity.getMvcData();
194198

195-
String controllerName = mvcData.getControllerName() != null ? mvcData.getControllerName() : "Entity";
196-
String controllerAreaName = mvcData.getControllerAreaName() != null ? mvcData.getControllerAreaName() : "Core";
199+
String controllerName = mvcData.getControllerName() != null ? mvcData.getControllerName() : getDefaultControllerName();
200+
String controllerAreaName = mvcData.getControllerAreaName() != null ? mvcData.getControllerAreaName() : getDefaultControllerAreaName();
197201

198202
Map<RequestMappingInfo, HandlerMethod> handlerMethods =
199203
this.requestMappingHandlerMapping.getHandlerMethods();

dxa-framework/dxa-common-api/src/main/java/com/sdl/webapp/common/controller/ControllerUtils.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ public final class ControllerUtils {
1313

1414
public static final String INCLUDE_PATH_PREFIX = "/system/mvc/";
1515

16+
public static final String FRAMEWORK_CONTROLLER_MAPPING = "Framework";
17+
18+
public static final String INCLUDE_MAPPING = INCLUDE_PATH_PREFIX + FRAMEWORK_CONTROLLER_MAPPING;
19+
1620
public static final String SECTION_ERROR_VIEW = "Shared/Error/SectionError";
1721

1822
@Deprecated

dxa-framework/dxa-common-api/src/main/java/com/sdl/webapp/common/controller/EntityController.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.sdl.webapp.common.api.model.MvcData;
66
import com.sdl.webapp.common.api.model.ViewModel;
77
import com.sdl.webapp.common.api.model.entity.RedirectEntity;
8-
import com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData;
98
import org.slf4j.Logger;
109
import org.slf4j.LoggerFactory;
1110
import org.springframework.stereotype.Controller;
@@ -14,21 +13,20 @@
1413

1514
import javax.servlet.http.HttpServletRequest;
1615

17-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.CORE_AREA_NAME;
18-
import static com.sdl.webapp.common.api.model.mvcdata.DefaultsMvcData.CoreAreaConstants.ENTITY_CONTROLLER_NAME;
19-
import static com.sdl.webapp.common.controller.ControllerUtils.INCLUDE_PATH_PREFIX;
16+
import static com.sdl.webapp.common.controller.ControllerUtils.INCLUDE_MAPPING;
2017
import static com.sdl.webapp.common.controller.RequestAttributeNames.ENTITY_MODEL;
2118

2219
/**
23-
* Entity controller for the Core area that handles include requests to <code>/system/mvc/Core/Entity/Entity/{entityId}</code>.
20+
* Entity controller for the Core area that handles include requests to <code>/system/mvc/Framework/Entity/Entity/{entityId}</code>.
21+
*
22+
* @see ControllerUtils
2423
*/
2524
@Controller
26-
@RequestMapping(INCLUDE_PATH_PREFIX + CORE_AREA_NAME + '/' + ENTITY_CONTROLLER_NAME)
25+
@RequestMapping(INCLUDE_MAPPING + "/Entity")
2726
public class EntityController extends BaseController {
2827

2928
private static final Logger LOG = LoggerFactory.getLogger(EntityController.class);
3029

31-
3230
/**
3331
* Handles a request for an entity.
3432
*
@@ -38,7 +36,7 @@ public class EntityController extends BaseController {
3836
* @throws ContentProviderException If an error occurs so that the entity cannot not be retrieved.
3937
* @throws java.lang.Exception if any.
4038
*/
41-
@RequestMapping(value = DefaultsMvcData.CoreAreaConstants.ENTITY_ACTION_NAME + "/{entityId}")
39+
@RequestMapping(value = "Entity" + "/{entityId}")
4240
public String handleGetEntity(HttpServletRequest request,
4341
@PathVariable String entityId)
4442
throws Exception {

0 commit comments

Comments
 (0)