1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.springframework.extensions.webscripts;
20
21 import org.springframework.extensions.surf.FrameworkUtil;
22 import org.springframework.extensions.surf.RequestContext;
23 import org.springframework.extensions.surf.exception.ConnectorServiceException;
24 import org.springframework.extensions.surf.studio.WebStudioService;
25 import org.springframework.extensions.surf.task.ImportTask;
26 import org.springframework.extensions.surf.task.Task;
27 import org.springframework.extensions.webscripts.ScriptBase;
28 import org.springframework.extensions.webscripts.ScriptableMap;
29 import org.springframework.extensions.webscripts.connector.Connector;
30
31
32
33
34
35
36
37 public final class ScriptImporter extends ScriptBase
38 {
39
40
41
42
43
44
45 public ScriptImporter(RequestContext context)
46 {
47 super(context);
48 }
49
50
51
52
53
54
55 protected ScriptableMap buildProperties()
56 {
57 if (this.properties == null)
58 {
59 }
60
61 return this.properties;
62 }
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 public String importArchive(String store, String webappId, String url)
80 {
81 String taskId = null;
82
83 String taskName = "Import from: " + url;
84
85
86 if (url.startsWith("/"))
87 {
88 String baseUrl = context.getRequest().getScheme() + "://"
89 + context.getRequest().getServerName();
90
91 if (context.getRequest().getServerPort() != 80)
92 {
93 baseUrl += ":" + context.getRequest().getServerPort();
94 }
95 baseUrl += context.getRequest().getContextPath();
96
97 url = baseUrl + url;
98 }
99
100
101 Connector alfrescoConnector = null;
102 try
103 {
104 alfrescoConnector = FrameworkUtil.getConnector(context, "alfresco");
105
106
107 ImportTask task = new ImportTask(taskName);
108 task.setAlfrescoConnector(alfrescoConnector);
109 task.setStoreId(store);
110 task.setWebappId(webappId);
111 task.setUrl(url);
112
113
114 taskId = WebStudioService.getInstance().getTaskManager().addTask(task);
115
116 }
117 catch(ConnectorServiceException cse)
118 {
119 FrameworkUtil.getLogger().warn("Unable to load 'alfresco' endpoint connector for script import", cse);
120 }
121
122 return taskId;
123 }
124
125
126
127
128
129
130
131
132 public Task getTask(String taskId)
133 {
134 return WebStudioService.getInstance().getTaskManager().getTask(taskId);
135 }
136 }