1212
1313import java .io .*;
1414import java .util .regex .Pattern ;
15+ import org .springframework .core .io .Resource ;
16+ import org .springframework .core .io .support .PathMatchingResourcePatternResolver ;
1517
1618
1719public class URLRouter
@@ -120,14 +122,33 @@ private static String convertParmsToQueryString(boolean useNamedParameters, Stri
120122 return queryString ;
121123 }
122124
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 () {
128147 String appPackage = SpecificImplementation .Application .getClientPreferences ().getPACKAGE ();
129- if (!appPackage .equals ("" ))
148+ if (!appPackage .equals ("" ))
130149 appPackage = File .separatorChar + appPackage .replace ('.' , File .separatorChar );
150+ InputStream is ;
151+ String defaultPath = SpecificImplementation .Application .getModelContext ().getHttpContext ().getDefaultPath ();
131152 String classesDirectoryPath = defaultPath + File .separator + "WEB-INF" + File .separatorChar + "classes" + appPackage ;
132153 GXDirectory classesDirectory = new GXDirectory (classesDirectoryPath );
133154 GXFileCollection rewriteFiles = classesDirectory .getFiles (".rewrite" );
@@ -137,37 +158,39 @@ private static void load()
137158 {
138159 serverRelative = true ;
139160 AbstractGXFile rewriteFile = rewriteFiles .item (i );
140- try
141- {
142- is = SpecificImplementation .Messages .getInputStream (rewriteFile .getName ());
161+ is = SpecificImplementation .Messages .getInputStream (rewriteFile .getName ());
143162
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 )
156164 {
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 );
166166 }
167167 }
168168 }
169169 }
170170
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+
171194 private static void parseLine (String line )
172195 {
173196 int len = line .length ();
0 commit comments