@@ -74,6 +74,52 @@ public boolean finished() {
7474 return finish ;
7575 }
7676
77+ @ Override
78+ public void finished (DiagnosticsHandler handler ) {
79+ if (!finished ()) {
80+ return ;
81+ }
82+ FilteringDependencyCollector dependencyCollector =
83+ new FilteringDependencyCollector (this .dependencyCollector );
84+ initializeInputDependencies (handler , dependencyCollector );
85+ dependencyCollector .setFiltering ();
86+ try (ZipOutputStream out =
87+ new ZipOutputStream (new BufferedOutputStream (Files .newOutputStream (archive )))) {
88+ for (ClassFileData classFile : classFiles ) {
89+ ZipUtils .addEntry (classFile .fileName , classFile .data , ZipEntry .STORED , out );
90+ new DesugaredClassFileDependencyCollector (classFile , dependencyCollector ).run ();
91+ }
92+ // Add dependency metadata if required.
93+ byte [] desugarDeps = dependencyCollector .toByteArray ();
94+ if (desugarDeps != null ) {
95+ ZipUtils .addEntry (Desugar .DESUGAR_DEPS_FILENAME , desugarDeps , ZipEntry .STORED , out );
96+ }
97+ ZipUtils .copyEntries (
98+ input ,
99+ out ,
100+ entryName ->
101+ ("module-info.class" .equals (entryName ) || entryName .startsWith ("META-INF/versions/" ))
102+ || ArchiveProgramResourceProvider .includeClassFileEntries (entryName )
103+ || (entryName .endsWith ("/" ) && flags == EXCLUDE_PATH_ENTRIES ),
104+ name -> {
105+ final String metainfServicesPrefix = "META-INF/services/" ;
106+ if (name .startsWith (metainfServicesPrefix )) {
107+ String serviceName = name .substring (metainfServicesPrefix .length ());
108+ if (serviceName .startsWith ("java.time." )) {
109+ name =
110+ metainfServicesPrefix
111+ + "j$.time."
112+ + serviceName .substring ("java.time." .length ());
113+ }
114+ }
115+ return name ;
116+ });
117+
118+ } catch (IOException e ) {
119+ handler .error (new ExceptionDiagnostic (e , origin ));
120+ }
121+ }
122+
77123 public void setFinish (boolean finish ) {
78124 this .finish = finish ;
79125 }
@@ -125,52 +171,6 @@ public void accept(ByteDataView data, String descriptor, DiagnosticsHandler hand
125171 DescriptorUtils .descriptorToClassFileName (descriptor ), data .copyByteData ()));
126172 }
127173
128- @ Override
129- public void finished (DiagnosticsHandler handler ) {
130- if (!finished ()) {
131- return ;
132- }
133- FilteringDependencyCollector dependencyCollector =
134- new FilteringDependencyCollector (this .dependencyCollector );
135- initializeInputDependencies (handler , dependencyCollector );
136- dependencyCollector .setFiltering ();
137- try (ZipOutputStream out =
138- new ZipOutputStream (new BufferedOutputStream (Files .newOutputStream (archive )))) {
139- for (ClassFileData classFile : classFiles ) {
140- ZipUtils .addEntry (classFile .fileName , classFile .data , ZipEntry .STORED , out );
141- new DesugaredClassFileDependencyCollector (classFile , dependencyCollector ).run ();
142- }
143- // Add dependency metadata if required.
144- byte [] desugarDeps = dependencyCollector .toByteArray ();
145- if (desugarDeps != null ) {
146- ZipUtils .addEntry (Desugar .DESUGAR_DEPS_FILENAME , desugarDeps , ZipEntry .STORED , out );
147- }
148- ZipUtils .copyEntries (
149- input ,
150- out ,
151- entryName ->
152- ("module-info.class" .equals (entryName ) || entryName .startsWith ("META-INF/versions/" ))
153- || ArchiveProgramResourceProvider .includeClassFileEntries (entryName )
154- || (entryName .endsWith ("/" ) && flags == EXCLUDE_PATH_ENTRIES ),
155- name -> {
156- final String metainfServicesPrefix = "META-INF/services/" ;
157- if (name .startsWith (metainfServicesPrefix )) {
158- String serviceName = name .substring (metainfServicesPrefix .length ());
159- if (serviceName .startsWith ("java.time." )) {
160- name =
161- metainfServicesPrefix
162- + "j$.time."
163- + serviceName .substring ("java.time." .length ());
164- }
165- }
166- return name ;
167- });
168-
169- } catch (IOException e ) {
170- handler .error (new ExceptionDiagnostic (e , origin ));
171- }
172- }
173-
174174 private void initializeInputDependencies (
175175 DiagnosticsHandler handler , FilteringDependencyCollector dependencyCollector ) {
176176 try (ZipFile zipFile = new ZipFile (input .toFile ())) {
0 commit comments