This is an automated email from the ASF dual-hosted git repository. thiagohp pushed a commit to branch better-page-invalidation in repository https://gitbox.apache.org/repos/asf/tapestry-5.git
commit 6becbe2ecb7450acb5bba2c67e3ae460c97e775c Author: Thiago H. de Paula Figueiredo <thi...@arsmachina.com.br> AuthorDate: Fri Jun 9 20:51:34 2023 -0300 TAP5-2742: fixing dependency file saving and loading --- .../services/ComponentDependencyRegistryImpl.java | 47 +++++++++++++--------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java index 5231ff8a0..ec6d61cb6 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentDependencyRegistryImpl.java @@ -53,6 +53,7 @@ import org.apache.tapestry5.ioc.Orderable; import org.apache.tapestry5.ioc.internal.util.ClasspathResource; import org.apache.tapestry5.ioc.internal.util.InternalUtils; import org.apache.tapestry5.ioc.services.PerthreadManager; +import org.apache.tapestry5.json.JSONArray; import org.apache.tapestry5.json.JSONObject; import org.apache.tapestry5.model.ComponentModel; import org.apache.tapestry5.model.EmbeddedComponentModel; @@ -128,26 +129,22 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis builder.append(line); line = reader.readLine(); } - JSONObject jsonObject = new JSONObject(builder.toString()); - for (String className : jsonObject.keySet()) + JSONArray jsonArray = new JSONArray(builder.toString()); + for (int i = 0; i < jsonArray.size(); i++) { - final Set<String> dependencies = jsonObject.getJSONArray(className) - .stream() - .map(o -> (String) o) - .collect(Collectors.toSet()); - for (String dependency : dependencies) - { - - // TODO: fix storing and reading dependency file -// add(className, dependency); - alreadyProcessed.add(dependency); - } + final JSONObject jsonObject = jsonArray.getJSONObject(i); + final String className = jsonObject.getString("class"); + final DependencyType dependencyType = DependencyType.valueOf(jsonObject.getString("type")); + final String dependency = jsonObject.getString("dependency"); + add(className, dependency, dependencyType); + alreadyProcessed.add(dependency); alreadyProcessed.add(className); } } catch (IOException e) { throw new TapestryException("Exception trying to read " + FILENAME, e); } + } storedDependencyInformationPresent = !map.isEmpty(); @@ -637,14 +634,26 @@ public class ComponentDependencyRegistryImpl implements ComponentDependencyRegis try (FileWriter fileWriter = new FileWriter(storedDependencies); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter)) { - JSONObject jsonObject = new JSONObject(); - for (String className : map.keySet()) + Set<String> classNames = new HashSet<>(alreadyProcessed.size()); + classNames.addAll(map.keySet()); + classNames.addAll(alreadyProcessed); + JSONArray jsonArray = new JSONArray(); + for (String className : classNames) { - // TODO: rewrite this -// final Set<String> dependencies = getDependencies(className); -// jsonObject.put(className, JSONArray.from(dependencies)); + for (DependencyType dependencyType : DependencyType.values()) + { + final Set<String> dependencies = getDependencies(className, dependencyType); + for (String dependency : dependencies) + { + JSONObject object = new JSONObject(); + object.put("class", className); + object.put("type", dependencyType.name()); + object.put("dependency", dependency); + jsonArray.add(object); + } + } } - bufferedWriter.write(jsonObject.toString()); + bufferedWriter.write(jsonArray.toString()); } catch (IOException e) {