Scene7ImagePresetsServlet.java
4.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* javax.servlet.ServletException
* org.apache.felix.scr.annotations.Reference
* org.apache.felix.scr.annotations.sling.SlingServlet
* org.apache.sling.api.SlingHttpServletRequest
* org.apache.sling.api.SlingHttpServletResponse
* org.apache.sling.api.resource.Resource
* org.apache.sling.api.resource.ResourceResolver
* org.apache.sling.api.servlets.SlingSafeMethodsServlet
* org.apache.sling.commons.json.JSONArray
* org.apache.sling.commons.json.JSONException
* org.apache.sling.commons.json.JSONObject
* org.slf4j.Logger
* org.slf4j.LoggerFactory
*/
package com.day.cq.dam.scene7.impl.servlets;
import com.day.cq.dam.scene7.api.S7Config;
import com.day.cq.dam.scene7.api.S7ConfigResolver;
import com.day.cq.dam.scene7.api.Scene7Service;
import com.day.cq.dam.scene7.impl.servlets.Scene7ConfigServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.apache.sling.commons.json.JSONArray;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SlingServlet(selectors={"imagepresets"}, extensions={"json"}, methods={"GET"}, resourceTypes={"dam/components/scene7/scene7page"}, label="%cq.scene7.servlet.name", description="%cq.scene7.servlet.description")
public class Scene7ImagePresetsServlet
extends SlingSafeMethodsServlet {
private static final Logger LOG = LoggerFactory.getLogger(Scene7ConfigServlet.class);
@Reference
protected S7ConfigResolver s7configResolver;
@Reference
protected Scene7Service s7Service;
/*
* WARNING - Removed try catching itself - possible behaviour change.
*/
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws ServletException, IOException {
block8 : {
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
Resource resource = request.getResource();
S7Config s7Config = null;
JSONArray jsonArray = new JSONArray();
try {
if (resource != null) {
String configPath = resource.getPath();
configPath = configPath.replaceAll("/jcr:content$", "");
s7Config = this.s7configResolver.getS7Config(resource.getResourceResolver(), configPath);
if (s7Config != null) {
List<String> spsImagePresets = this.s7Service.getImagePresets(s7Config);
for (String imagePreset : spsImagePresets) {
JSONObject object = new JSONObject();
object.put("presetName", (Object)imagePreset);
jsonArray.put((Object)object);
}
}
break block8;
}
LOG.warn("Could not find the config path parameter on the request!");
}
catch (JSONException e) {
LOG.error("Error adding element to the JSON response", (Throwable)e);
}
finally {
out.write(jsonArray.toString());
}
}
}
protected void bindS7configResolver(S7ConfigResolver s7ConfigResolver) {
this.s7configResolver = s7ConfigResolver;
}
protected void unbindS7configResolver(S7ConfigResolver s7ConfigResolver) {
if (this.s7configResolver == s7ConfigResolver) {
this.s7configResolver = null;
}
}
protected void bindS7Service(Scene7Service scene7Service) {
this.s7Service = scene7Service;
}
protected void unbindS7Service(Scene7Service scene7Service) {
if (this.s7Service == scene7Service) {
this.s7Service = null;
}
}
}