12
12
13
13
import java .io .*;
14
14
import java .util .regex .Pattern ;
15
+ import org .springframework .core .io .Resource ;
16
+ import org .springframework .core .io .support .PathMatchingResourcePatternResolver ;
15
17
16
18
17
19
public class URLRouter
@@ -120,14 +122,33 @@ private static String convertParmsToQueryString(boolean useNamedParameters, Stri
120
122
return queryString ;
121
123
}
122
124
123
- private static void load ()
124
- {
125
- String line ;
126
- InputStream is = null ;
127
- String defaultPath = SpecificImplementation .Application .getModelContext ().getHttpContext ().getDefaultPath ();
125
+ private static void load () {
126
+ if (com .genexus .ApplicationContext .getInstance ().isSpringBootApp ())
127
+ loadRewriteFilesSB ();
128
+ else
129
+ loadRewriteFiles ();
130
+ }
131
+
132
+ private static void loadRewriteFilesSB () {
133
+ PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver ();
134
+ try {
135
+ Resource [] resources = resolver .getResources ("./*.rewrite" );
136
+ for (Resource resource : resources ) {
137
+ loadRewriteInputStream (resource .getInputStream ());
138
+ }
139
+ }
140
+ catch (IOException e )
141
+ {
142
+ logger .error (e .toString (), e );
143
+ }
144
+ }
145
+
146
+ private static void loadRewriteFiles () {
128
147
String appPackage = SpecificImplementation .Application .getClientPreferences ().getPACKAGE ();
129
- if (!appPackage .equals ("" ))
148
+ if (!appPackage .equals ("" ))
130
149
appPackage = File .separatorChar + appPackage .replace ('.' , File .separatorChar );
150
+ InputStream is ;
151
+ String defaultPath = SpecificImplementation .Application .getModelContext ().getHttpContext ().getDefaultPath ();
131
152
String classesDirectoryPath = defaultPath + File .separator + "WEB-INF" + File .separatorChar + "classes" + appPackage ;
132
153
GXDirectory classesDirectory = new GXDirectory (classesDirectoryPath );
133
154
GXFileCollection rewriteFiles = classesDirectory .getFiles (".rewrite" );
@@ -137,37 +158,39 @@ private static void load()
137
158
{
138
159
serverRelative = true ;
139
160
AbstractGXFile rewriteFile = rewriteFiles .item (i );
140
- try
141
- {
142
- is = SpecificImplementation .Messages .getInputStream (rewriteFile .getName ());
161
+ is = SpecificImplementation .Messages .getInputStream (rewriteFile .getName ());
143
162
144
- if (is != null )
145
- {
146
- try (BufferedReader bufread = new BufferedReader (new InputStreamReader (is , "UTF8" ))) {
147
- line = bufread .readLine ();
148
- while (line != null ) {
149
- parseLine (line );
150
- line = bufread .readLine ();
151
- }
152
- }
153
- }
154
- }
155
- catch (UnsupportedEncodingException e )
163
+ if (is != null )
156
164
{
157
- logger .error (e .toString (), e );
158
- }
159
- catch (FileNotFoundException e )
160
- {
161
- logger .info ("There is no URLRouter file" );
162
- }
163
- catch (IOException e )
164
- {
165
- logger .error (e .toString (), e );
165
+ loadRewriteInputStream (is );
166
166
}
167
167
}
168
168
}
169
169
}
170
170
171
+ private static void loadRewriteInputStream (InputStream is ) {
172
+ String line ;
173
+ try (BufferedReader bufread = new BufferedReader (new InputStreamReader (is , "UTF8" ))) {
174
+ line = bufread .readLine ();
175
+ while (line != null ) {
176
+ parseLine (line );
177
+ line = bufread .readLine ();
178
+ }
179
+ }
180
+ catch (UnsupportedEncodingException e )
181
+ {
182
+ logger .error (e .toString (), e );
183
+ }
184
+ catch (FileNotFoundException e )
185
+ {
186
+ logger .info ("There is no URLRouter file" );
187
+ }
188
+ catch (IOException e )
189
+ {
190
+ logger .error (e .toString (), e );
191
+ }
192
+ }
193
+
171
194
private static void parseLine (String line )
172
195
{
173
196
int len = line .length ();
0 commit comments