This project has retired. For details please refer to its
Attic page.
WildcardPortletApplicationContext xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.tiles.request.portlet.wildcard;
23
24 import java.io.IOException;
25 import java.net.URL;
26 import java.util.ArrayList;
27 import java.util.Collection;
28 import java.util.Collections;
29 import java.util.Locale;
30
31 import javax.portlet.PortletContext;
32
33 import org.apache.tiles.request.ApplicationResource;
34 import org.apache.tiles.request.locale.URLApplicationResource;
35 import org.apache.tiles.request.portlet.PortletApplicationContext;
36 import org.springframework.core.io.Resource;
37 import org.springframework.core.io.support.ResourcePatternResolver;
38 import org.springframework.web.portlet.context.PortletContextResourcePatternResolver;
39
40
41
42
43
44
45
46 public class WildcardPortletApplicationContext extends PortletApplicationContext {
47
48
49
50
51 protected ResourcePatternResolver resolver;
52
53
54
55
56
57
58 public WildcardPortletApplicationContext(PortletContext portletContext) {
59 super(portletContext);
60 }
61
62
63 @Override
64 public void initialize(PortletContext context) {
65 super.initialize(context);
66
67 resolver = new PortletContextResourcePatternResolver(context);
68 }
69
70
71 @Override
72 public ApplicationResource getResource(String localePath) {
73 ApplicationResource retValue = null;
74 Collection<ApplicationResource> resourceSet = getResources(localePath);
75 if (resourceSet != null && !resourceSet.isEmpty()) {
76 retValue = resourceSet.iterator().next();
77 }
78 return retValue;
79 }
80
81
82 @Override
83 public ApplicationResource getResource(ApplicationResource base, Locale locale) {
84 ApplicationResource retValue = null;
85 Collection<ApplicationResource> resourceSet = getResources(base.getLocalePath(locale));
86 if (resourceSet != null && !resourceSet.isEmpty()) {
87 retValue = resourceSet.iterator().next();
88 }
89 return retValue;
90 }
91
92
93 @Override
94 public Collection<ApplicationResource> getResources(String path) {
95 Resource[] resources;
96 try {
97 resources = resolver.getResources(path);
98 } catch (IOException e) {
99 return Collections.<ApplicationResource> emptyList();
100 }
101 Collection<ApplicationResource> resourceList = new ArrayList<ApplicationResource>();
102 if (resources != null && resources.length > 0) {
103 for (int i = 0; i < resources.length; i++) {
104 URL url;
105 try {
106 url = resources[i].getURL();
107 resourceList.add(new URLApplicationResource(url.toExternalForm(), url));
108 } catch (IOException e) {
109
110 throw new IllegalArgumentException("no URL for " + resources[i].toString(), e);
111 }
112 }
113 }
114 return resourceList;
115 }
116 }