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) 
             {

Reply via email to