diff --git a/.classpath b/.classpath index 18c3c02..7864efc 100644 --- a/.classpath +++ b/.classpath @@ -2,7 +2,7 @@ - + @@ -14,6 +14,6 @@ - + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba70776 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +bin/ + +unused/ + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..3367693 --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +# DistMaker + + +## Description +DistMaker provides a capability to enable developers to package a Java client application for any target platform (Linux, MacOS, and Windows). A DistMaker enabled package allows for easy distribution via its in-app update capability. + +Currently DistMaker is distributed in source form only, so it will need to be compiled. See the section: **Building DistMaker**. + + +## More details +DistMaker is a software toolkit which allows a software developer to develop applications that have a built-in update mechanism. + +The update mechanism can be manually triggered by an end user or through an auto update mechanism. + +DistMaker provides a capability to allow a software developer to deploy (or remove) updates to a deployment site. + + +## Usage +Please read the ./doc/QuickStartGuide.pdf for instructions on: + +- Source code changes to make the application DistMaker enabled +- Setting up the deploy site for the DistMaker application +- Deploying the DistMaker application + + +## Dependencies +A DistMaker enabled (Java) application has the following dependencies: + +- Java 17+ +- Apache Commons Compress 1.15+ +- Guava 18.0+ +- Glum 2.0.0+ +- MigLayout 3.7.2+ + +An additional dependency for DistMaker enabled applications on the Windows platform is: + +- Lanch4J 3.14 + +To package and distribute a DistMaker application the following are the software (server side) dependencies: + +- Java 17+ +- Python 3.6+ + + +Note the following: + +- In theory DistMaker should work with later versions of the above listed software. +- To allow for distribution of updates, you will need to have permissions to a web server. + + +## Building DistMaker +To build a DistMaker release from the console, run the following command: + +    ./tools/buildRelease + +The following sofware are dependencies for compiling DistMaker: + +- JDK 17+ +- Python 3.6+ +- Apache Ant 1.10.8+ + +Note, you will have to edit the script, ./tools/buildRelease, so that the variables antPath and jdkPath are relative to your system. + + +## Legal Notice +DistMaker utilizes a number of copyrighted products. + +A listing of all copyrights can be found in the folder: + +    ./doc/legal/ + +Each copyrighted product has a textual file with a naming convention of: + +    License.<aProductName>.txt + +Note that <aProductName> corresponds to the formal product name. + +  diff --git a/doc/ReadMe.txt b/doc/ReadMe.txt index 616f8e3..025ae98 100644 --- a/doc/ReadMe.txt +++ b/doc/ReadMe.txt @@ -1,11 +1,11 @@ Product: DistMaker -Version: 0.57 +Version: 0.70 Requires: -- Java 8 -- Python 2.7 +- Java 17 +- Python 3.6 diff --git a/lib/glum-2.0.0-RC3-src.jar b/lib/glum-2.0.0-RC3-src.jar deleted file mode 100644 index cba49ba..0000000 Binary files a/lib/glum-2.0.0-RC3-src.jar and /dev/null differ diff --git a/lib/glum-2.0.0-RC3.jar b/lib/glum-2.0.0-RC3.jar deleted file mode 100644 index 5fb92dd..0000000 Binary files a/lib/glum-2.0.0-RC3.jar and /dev/null differ diff --git a/lib/glum-2.0.0-src.jar b/lib/glum-2.0.0-src.jar new file mode 100644 index 0000000..11c3d79 Binary files /dev/null and b/lib/glum-2.0.0-src.jar differ diff --git a/lib/glum-2.0.0.jar b/lib/glum-2.0.0.jar new file mode 100644 index 0000000..fee8bde Binary files /dev/null and b/lib/glum-2.0.0.jar differ diff --git a/release/README.md b/release/README.md new file mode 100644 index 0000000..f92dbce --- /dev/null +++ b/release/README.md @@ -0,0 +1,11 @@ +# Purpose + +This folder is the destination where built releases of DistMaker are placed. + +Please do not remove this folder. + + +# Building DistMaker +To build a new release run: + + ./tools/buildRelease diff --git a/script/appleUtils.py b/script/appleUtils.py index 4ae38b0..47fea32 100644 --- a/script/appleUtils.py +++ b/script/appleUtils.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import copy import math import os @@ -283,7 +297,7 @@ def buildDistTree(aBuildPath, aRootPath, aArgs, aJreNode): # Update the .DS_Store file to reflect the new volume name srcPath = os.path.join(aRootPath, '.DS_Store') - classPath = appInstallRoot + '/lib/glum-2.0.0-RC3.jar:' + appInstallRoot + '/lib/distMaker-0.61.jar:' + appInstallRoot + '/lib/guava-18.0.jar' + classPath = appInstallRoot + '/lib/glum-2.0.0.jar:' + appInstallRoot + '/lib/distMaker-0.70.jar:' + appInstallRoot + '/lib/guava-18.0.jar' cmd = ['java', '-cp', classPath, 'dsstore.MainApp', srcPath, appName] proc = miscUtils.executeAndLog(cmd, "\t\tdsstore.MainApp: ") if proc.returncode != 0: diff --git a/script/buildDist.py b/script/buildDist.py index 9a2ce2c..dc2957b 100755 --- a/script/buildDist.py +++ b/script/buildDist.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import argparse import os import platform diff --git a/script/deployAppDist.py b/script/deployAppDist.py index 94673fd..94d1322 100755 --- a/script/deployAppDist.py +++ b/script/deployAppDist.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import argparse import getpass import math diff --git a/script/deployJreDist.py b/script/deployJreDist.py index ed359ba..18ffa0f 100755 --- a/script/deployJreDist.py +++ b/script/deployJreDist.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import argparse import collections import getpass diff --git a/script/jreUtils.py b/script/jreUtils.py index f2e7169..feb7ae8 100644 --- a/script/jreUtils.py +++ b/script/jreUtils.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import glob import os import re diff --git a/script/linuxUtils.py b/script/linuxUtils.py index abaddca..288dba0 100644 --- a/script/linuxUtils.py +++ b/script/linuxUtils.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import copy import os import shutil diff --git a/script/logUtils.py b/script/logUtils.py index 617e13b..fb76227 100644 --- a/script/logUtils.py +++ b/script/logUtils.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import hashlib import os import time diff --git a/script/miscUtils.py b/script/miscUtils.py index ed2750d..1479cd0 100644 --- a/script/miscUtils.py +++ b/script/miscUtils.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import argparse import hashlib import os diff --git a/script/windowsUtils.py b/script/windowsUtils.py index 21ca113..465aef2 100644 --- a/script/windowsUtils.py +++ b/script/windowsUtils.py @@ -1,5 +1,19 @@ #! /usr/bin/env python3 +# Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import copy import glob import os diff --git a/src/distMaker/DistApp.java b/src/distMaker/DistApp.java index 26d626b..0261cab 100644 --- a/src/distMaker/DistApp.java +++ b/src/distMaker/DistApp.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; import glum.version.PlainVersion; @@ -15,7 +28,7 @@ import glum.version.Version; public class DistApp { /** The DistMaker version is defined here. */ - public static final Version version = new PlainVersion(0, 61, 0); + public static final Version version = new PlainVersion(0, 70, 0); /** * Main entry point that will print out the version of DistMaker to stdout. diff --git a/src/distMaker/DistMakerEngine.java b/src/distMaker/DistMakerEngine.java index 43c1139..ee698a4 100644 --- a/src/distMaker/DistMakerEngine.java +++ b/src/distMaker/DistMakerEngine.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; import java.awt.event.ComponentAdapter; @@ -141,14 +154,12 @@ public class DistMakerEngine public UpdateStatus isUpToDate() { var task = new BufferTask(); -// LoggingTask task = new LoggingTask(); String appName = currRelease.getName(); List unsortedReleaseL = DistUtils.getAvailableAppReleases(task, updateSiteUrl, appName, refCredential); if (unsortedReleaseL == null) { // The update check failed, so return a status of false with a message about the problem -// String msg = Joiner.on("; ").join(task.getMessages()); var msg = task.getBuffer(); return new UpdateStatus(msg); } diff --git a/src/distMaker/DistUtils.java b/src/distMaker/DistUtils.java index a41cd45..f068fbe 100644 --- a/src/distMaker/DistUtils.java +++ b/src/distMaker/DistUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; import java.io.*; diff --git a/src/distMaker/ErrorDM.java b/src/distMaker/ErrorDM.java index 4186ca8..f0c1981 100644 --- a/src/distMaker/ErrorDM.java +++ b/src/distMaker/ErrorDM.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; /** diff --git a/src/distMaker/ErrorMsg.java b/src/distMaker/ErrorMsg.java index dbb15ce..99e6030 100644 --- a/src/distMaker/ErrorMsg.java +++ b/src/distMaker/ErrorMsg.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; /** diff --git a/src/distMaker/LookUp.java b/src/distMaker/LookUp.java index 3b77e27..ad5f68b 100644 --- a/src/distMaker/LookUp.java +++ b/src/distMaker/LookUp.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; public enum LookUp diff --git a/src/distMaker/MiscUtils.java b/src/distMaker/MiscUtils.java index 85f7c36..bfa3965 100644 --- a/src/distMaker/MiscUtils.java +++ b/src/distMaker/MiscUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; import java.io.*; diff --git a/src/distMaker/UpdateCheckListener.java b/src/distMaker/UpdateCheckListener.java index 0c90abd..0c72bf6 100644 --- a/src/distMaker/UpdateCheckListener.java +++ b/src/distMaker/UpdateCheckListener.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; /** diff --git a/src/distMaker/UpdateStatus.java b/src/distMaker/UpdateStatus.java index 8401711..8efb621 100644 --- a/src/distMaker/UpdateStatus.java +++ b/src/distMaker/UpdateStatus.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker; public class UpdateStatus diff --git a/src/distMaker/gui/MemoryConfigPanel.java b/src/distMaker/gui/MemoryConfigPanel.java index 5fb40f9..29af1c6 100644 --- a/src/distMaker/gui/MemoryConfigPanel.java +++ b/src/distMaker/gui/MemoryConfigPanel.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.gui; import static distMaker.platform.MemUtils.GB_SIZE; diff --git a/src/distMaker/gui/PickReleasePanel.java b/src/distMaker/gui/PickReleasePanel.java index 1ae9e45..02252b3 100644 --- a/src/distMaker/gui/PickReleasePanel.java +++ b/src/distMaker/gui/PickReleasePanel.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.gui; import java.awt.*; diff --git a/src/distMaker/jre/AppLauncherRelease.java b/src/distMaker/jre/AppLauncherRelease.java index c4b0826..b63ad95 100644 --- a/src/distMaker/jre/AppLauncherRelease.java +++ b/src/distMaker/jre/AppLauncherRelease.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.jre; import glum.digest.Digest; diff --git a/src/distMaker/jre/AppLauncherUtils.java b/src/distMaker/jre/AppLauncherUtils.java index 38add77..2e2c2a4 100644 --- a/src/distMaker/jre/AppLauncherUtils.java +++ b/src/distMaker/jre/AppLauncherUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.jre; import java.io.*; diff --git a/src/distMaker/jre/JreRelease.java b/src/distMaker/jre/JreRelease.java index f8586c9..705e2f3 100644 --- a/src/distMaker/jre/JreRelease.java +++ b/src/distMaker/jre/JreRelease.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.jre; import distMaker.platform.Architecture; diff --git a/src/distMaker/jre/JreUtils.java b/src/distMaker/jre/JreUtils.java index bc29ab0..0c871e1 100644 --- a/src/distMaker/jre/JreUtils.java +++ b/src/distMaker/jre/JreUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.jre; import java.io.*; diff --git a/src/distMaker/jre/JreVersion.java b/src/distMaker/jre/JreVersion.java index dbb2d53..1acf726 100644 --- a/src/distMaker/jre/JreVersion.java +++ b/src/distMaker/jre/JreVersion.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.jre; import java.util.ArrayList; diff --git a/src/distMaker/node/AppCatalog.java b/src/distMaker/node/AppCatalog.java index 886ed78..2fdb76b 100644 --- a/src/distMaker/node/AppCatalog.java +++ b/src/distMaker/node/AppCatalog.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.node; import java.util.*; diff --git a/src/distMaker/node/AppRelease.java b/src/distMaker/node/AppRelease.java index 9f9b717..9722c1c 100644 --- a/src/distMaker/node/AppRelease.java +++ b/src/distMaker/node/AppRelease.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.node; import distMaker.LookUp; diff --git a/src/distMaker/node/FileNode.java b/src/distMaker/node/FileNode.java index 5f1ac62..f357590 100644 --- a/src/distMaker/node/FileNode.java +++ b/src/distMaker/node/FileNode.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.node; import java.io.File; diff --git a/src/distMaker/node/Node.java b/src/distMaker/node/Node.java index 22ced2c..717d79b 100644 --- a/src/distMaker/node/Node.java +++ b/src/distMaker/node/Node.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.node; import java.io.File; diff --git a/src/distMaker/node/PathNode.java b/src/distMaker/node/PathNode.java index 69cfedb..6a09ef1 100644 --- a/src/distMaker/node/PathNode.java +++ b/src/distMaker/node/PathNode.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.node; import java.io.File; diff --git a/src/distMaker/platform/AppleUtils.java b/src/distMaker/platform/AppleUtils.java index 24e7b29..1acbde2 100644 --- a/src/distMaker/platform/AppleUtils.java +++ b/src/distMaker/platform/AppleUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; import java.io.*; diff --git a/src/distMaker/platform/Architecture.java b/src/distMaker/platform/Architecture.java index e6abd4e..ff52cda 100644 --- a/src/distMaker/platform/Architecture.java +++ b/src/distMaker/platform/Architecture.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; /** diff --git a/src/distMaker/platform/ArchitectureUtils.java b/src/distMaker/platform/ArchitectureUtils.java index bf1a7ec..8565218 100644 --- a/src/distMaker/platform/ArchitectureUtils.java +++ b/src/distMaker/platform/ArchitectureUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; /** diff --git a/src/distMaker/platform/LinuxUtils.java b/src/distMaker/platform/LinuxUtils.java index b165a25..ec10a60 100644 --- a/src/distMaker/platform/LinuxUtils.java +++ b/src/distMaker/platform/LinuxUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; import java.io.*; diff --git a/src/distMaker/platform/MemUtils.java b/src/distMaker/platform/MemUtils.java index e5ec9b9..e90d13f 100644 --- a/src/distMaker/platform/MemUtils.java +++ b/src/distMaker/platform/MemUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; import java.lang.management.ManagementFactory; diff --git a/src/distMaker/platform/Platform.java b/src/distMaker/platform/Platform.java index c3636c2..1cb7804 100644 --- a/src/distMaker/platform/Platform.java +++ b/src/distMaker/platform/Platform.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; /** diff --git a/src/distMaker/platform/PlatformUtils.java b/src/distMaker/platform/PlatformUtils.java index 53db47c..c3db9cb 100644 --- a/src/distMaker/platform/PlatformUtils.java +++ b/src/distMaker/platform/PlatformUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; import java.io.File; diff --git a/src/distMaker/platform/WindowsUtils.java b/src/distMaker/platform/WindowsUtils.java index 0b66d1e..d585622 100644 --- a/src/distMaker/platform/WindowsUtils.java +++ b/src/distMaker/platform/WindowsUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.platform; import java.io.*; diff --git a/src/distMaker/utils/DeployUtils.java b/src/distMaker/utils/DeployUtils.java index 26565d7..9b5e8b1 100644 --- a/src/distMaker/utils/DeployUtils.java +++ b/src/distMaker/utils/DeployUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.utils; import java.awt.event.ActionEvent; diff --git a/src/distMaker/utils/ParseUtils.java b/src/distMaker/utils/ParseUtils.java index bbcb79b..ce063f9 100644 --- a/src/distMaker/utils/ParseUtils.java +++ b/src/distMaker/utils/ParseUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package distMaker.utils; import distMaker.DistUtils; diff --git a/src/dsstore/AliasRecord.java b/src/dsstore/AliasRecord.java index d84b1bc..f10f072 100644 --- a/src/dsstore/AliasRecord.java +++ b/src/dsstore/AliasRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore; import java.nio.ByteBuffer; diff --git a/src/dsstore/BlockDir.java b/src/dsstore/BlockDir.java index 61b8766..6a9cb57 100644 --- a/src/dsstore/BlockDir.java +++ b/src/dsstore/BlockDir.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore; import java.nio.ByteBuffer; diff --git a/src/dsstore/BufUtils.java b/src/dsstore/BufUtils.java index ca08d2a..a41738c 100644 --- a/src/dsstore/BufUtils.java +++ b/src/dsstore/BufUtils.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore; import java.nio.ByteBuffer; diff --git a/src/dsstore/MainApp.java b/src/dsstore/MainApp.java index 1a8d6f5..afb5c5c 100644 --- a/src/dsstore/MainApp.java +++ b/src/dsstore/MainApp.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore; import glum.task.*; @@ -12,9 +25,9 @@ import java.util.*; import dsstore.record.*; /** - * Most of the decoding of the .DS_store is described in the following source. + * Most of the decoding of the .DS_store is described in the following source. * Source: - * http://search.cpan.org/~wiml/Mac-Finder-DSStore/DSStoreFormat.pod#FILE_FORMAT + * http://search.cpan.org/~wiml/Mac-Finder-DSStore/DSStoreFormat.pod#FILE_FORMAT */ public class MainApp { @@ -42,7 +55,7 @@ public class MainApp volumeName = aVolumeName; } - + public void writeStore(File aFile) { // Ensure we have a valid dataBuf @@ -68,7 +81,7 @@ public class MainApp /** * Method to read the actual store contents. - * + * * @return True if we successfully read the store */ public boolean readStore(File aFile) @@ -79,7 +92,7 @@ public class MainApp System.err.println("File does note exist: " + aFile); return false; } - + dataBuf = null; try (FileZinStream iStream = new FileZinStream(aFile)) { @@ -87,12 +100,12 @@ public class MainApp List blockDirL; String dmgMagicKey; int fileMagicKey; -int allocBlockOffset1, allocBlockOffset2, allocBlockSize; -int blockCnt, tmpSize, seekDiff, dirCnt; +int allocBlockOffset1, allocBlockOffset2, allocBlockSize; +int blockCnt, tmpSize, seekDiff, dirCnt; int blockAddrArr[]; - + int fileSize = (int)aFile.length(); - + // DS_Store magic key: 0x0001 fileMagicKey = iStream.readInt(); if (fileMagicKey != 0x0001) @@ -110,79 +123,79 @@ int blockAddrArr[]; allocBlockOffset1 = dataBuf.getInt(); allocBlockSize = dataBuf.getInt(); allocBlockOffset2 = dataBuf.getInt(); - + // Check the header block validity if (dmgMagicKey.equals("Bud1") == false) throw new RuntimeException("Header magic key does not equal: 'Bud1' Found: '" + dmgMagicKey + "'"); - + if (allocBlockOffset1 != allocBlockOffset2) throw new RuntimeException("Allocator block offset mismatch: " + allocBlockOffset1 + " != " + allocBlockOffset2); - - - + + + // Advance to the allocator section dataBuf.position(allocBlockOffset1); - + blockCnt = dataBuf.getInt(); dataBuf.getInt(); // Unknown - + blockAddrArr = new int[blockCnt]; for (int c1 = 0; c1 < blockCnt; c1++) { blockAddrArr[c1] = dataBuf.getInt(); - -int blkLen, blkPos; -blkLen = 1 << (blockAddrArr[c1] & 0x1F); -blkPos = (blockAddrArr[c1] >> 5) * 32; -refTask.logRegln("BlockAddr[" + c1 + "] -> Size: " + blkLen + " Offset: " + blkPos); -//The entries in the block address table are what I call block addresses. Each address is a packed offset+size. -//The least-significant 5 bits of the number indicate the block's size, as a power of 2 (from 2^5 to 2^31). If those bits are masked off, the result -//is the starting offset of the block (keeping in mind the 4-byte fudge factor). Since the lower 5 bits are unusable to store an offset, blocks must be +int blkLen, blkPos; +blkLen = 1 << (blockAddrArr[c1] & 0x1F); +blkPos = (blockAddrArr[c1] >> 5) * 32; +refTask.logRegln("BlockAddr[" + c1 + "] -> Size: " + blkLen + " Offset: " + blkPos); + +//The entries in the block address table are what I call block addresses. Each address is a packed offset+size. +//The least-significant 5 bits of the number indicate the block's size, as a power of 2 (from 2^5 to 2^31). If those bits are masked off, the result +//is the starting offset of the block (keeping in mind the 4-byte fudge factor). Since the lower 5 bits are unusable to store an offset, blocks must be //allocated on 32-byte boundaries, and as a side effect the minimum block size is 32 bytes (in which case the least significant 5 bits are equal to 0x05). } - + // Seek to the end of %256 items (which are unused) seekDiff = 0; if (blockCnt % 256 != 0) seekDiff = (256 - blockCnt%256) * 4; - + dataBuf.position(dataBuf.position() + seekDiff); - + // Read the block directories dirCnt = dataBuf.getInt(); refTask.logRegln("Block directory count: " + dirCnt); - + blockDirL = new ArrayList<>(dirCnt); for (int c1 = 0; c1 < dirCnt; c1++) blockDirL.add(new BlockDir(dataBuf)); - - + + // Read the free lists -int freeCnt; +int freeCnt; refTask.logRegln("Reading freelists..."); for (int c1 = 0; c1 < 32; c1++) { freeCnt = dataBuf.getInt(); - refTask.logReg("[" + c1 + "]: " + freeCnt + " Offsets: "); + refTask.logReg("[" + c1 + "]: " + freeCnt + " Offsets: "); for (int c2 = 0; c2 < freeCnt; c2++) refTask.logReg(dataBuf.getInt() + ","); refTask.logRegln(""); } - - - + + + // Read the DSDB structure -// TODO: Remove hard coded value +// TODO: Remove hard coded value dataBuf.position(64); readDsdbNode(dataBuf); - -// TODO: Remove hard coded value + +// TODO: Remove hard coded value dataBuf.position(4096); readRecords(dataBuf); - + // The 32-byte header has the following fields: // // Magic number Bud1 (42 75 64 31) @@ -196,16 +209,16 @@ refTask.logRegln("Reading freelists..."); aExp.printStackTrace(); return false; } - + return true; } - - + + public void readRecords(ByteBuffer aBuf) { - List recordL; + List recordL; BKGDRecord bkgdRecord; - Record tmpRecord; + dsstore.record.Record tmpRecord; int pCode, numRecords; String name, id, type; int begPos; @@ -214,17 +227,17 @@ refTask.logRegln("Reading freelists..."); begPos = aBuf.position(); pCode = aBuf.getInt(); numRecords = aBuf.getInt(); - + bkgdRecord = null; recordL = new ArrayList<>(numRecords); for (int c1 = 0; c1 < numRecords; c1++) { BufUtils.seek(aBuf, 2); // empty name = BufUtils.readStringUtf16(aBuf); - + id = BufUtils.readRawAsciiStr(aBuf, 4); type = BufUtils.readRawAsciiStr(aBuf, 4); - + // Read the Records if (id.equals("pict") == true && type.equals(DT_blob) == true) { @@ -248,41 +261,41 @@ refTask.logRegln("Reading freelists..."); tmpRecord = new LongRecord(name, id, type); else tmpRecord = new ShorRecord(name, id, type); - + tmpRecord.readPayload(aBuf); recordL.add(tmpRecord); refTask.logRegln("Found Name: <" + name + "> recordId: " + id + " dataType: " + type + " payloadSize: " + tmpRecord.getSize()); } - - + + // TODO: This should not be in the read method... // Update the records to reflect the new volumeName if (volumeName != null) { - for (Record aRecord : recordL) + for (var aRecord : recordL) { if (aRecord instanceof PictRecord) ((PictRecord)aRecord).getAliasRecord().setVolumeName(volumeName); - -// if (aRecord.getName().equals(" ") == false && aRecord.getId().equals("Iloc") == true) + +// if (aRecord.getName().equals(" ") == false && aRecord.getId().equals("Iloc") == true) if (aRecord.getName().endsWith(".app") == true && aRecord.getId().equals("Iloc") == true) aRecord.setName(volumeName + ".app"); else if (aRecord.getName().equals(" ") == true && aRecord.getId().equals("Iloc") == true) aRecord.setName("Applications"); } - + // Sort the list alphabetically Collections.sort(recordL); - - + + // Output back to the ByteBuf aBuf.position(begPos); - + aBuf.putInt(pCode); aBuf.putInt(numRecords); - - for (Record aRecord : recordL) + + for (var aRecord : recordL) { aBuf.putShort((short)0); aRecord.writeHeader(aBuf); @@ -290,9 +303,9 @@ refTask.logRegln("Reading freelists..."); } } } - - - + + + @@ -322,8 +335,8 @@ refTask.logRegln("Reading freelists..."); refTask.logRegln("rootNodes: " + numNodes); refTask.logRegln("valConst: " + valConst); } - - + + /** * Application main entry point */ diff --git a/src/dsstore/ext/ExtInfo.java b/src/dsstore/ext/ExtInfo.java index 567874f..518eefe 100644 --- a/src/dsstore/ext/ExtInfo.java +++ b/src/dsstore/ext/ExtInfo.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.ext; import java.nio.ByteBuffer; diff --git a/src/dsstore/ext/RawExtInfo.java b/src/dsstore/ext/RawExtInfo.java index f33552f..17e6f53 100644 --- a/src/dsstore/ext/RawExtInfo.java +++ b/src/dsstore/ext/RawExtInfo.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.ext; import java.nio.ByteBuffer; diff --git a/src/dsstore/ext/StrExtInfo.java b/src/dsstore/ext/StrExtInfo.java index 726fcef..5fbe53b 100644 --- a/src/dsstore/ext/StrExtInfo.java +++ b/src/dsstore/ext/StrExtInfo.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.ext; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/BKGDRecord.java b/src/dsstore/record/BKGDRecord.java index 196871f..22c76bf 100644 --- a/src/dsstore/record/BKGDRecord.java +++ b/src/dsstore/record/BKGDRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/BlobRecord.java b/src/dsstore/record/BlobRecord.java index d98e0cd..ab822df 100644 --- a/src/dsstore/record/BlobRecord.java +++ b/src/dsstore/record/BlobRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/BoolRecord.java b/src/dsstore/record/BoolRecord.java index 8f95ea0..c13bfb3 100644 --- a/src/dsstore/record/BoolRecord.java +++ b/src/dsstore/record/BoolRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/IlocRecord.java b/src/dsstore/record/IlocRecord.java index 87e2ad8..6b36ffc 100644 --- a/src/dsstore/record/IlocRecord.java +++ b/src/dsstore/record/IlocRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/LongRecord.java b/src/dsstore/record/LongRecord.java index 0832e3c..398102c 100644 --- a/src/dsstore/record/LongRecord.java +++ b/src/dsstore/record/LongRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/PictRecord.java b/src/dsstore/record/PictRecord.java index cc93e60..2a5775c 100644 --- a/src/dsstore/record/PictRecord.java +++ b/src/dsstore/record/PictRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/Record.java b/src/dsstore/record/Record.java index 2c4efae..841bd6e 100644 --- a/src/dsstore/record/Record.java +++ b/src/dsstore/record/Record.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/ShorRecord.java b/src/dsstore/record/ShorRecord.java index 25ae020..5185700 100644 --- a/src/dsstore/record/ShorRecord.java +++ b/src/dsstore/record/ShorRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/src/dsstore/record/UstrRecord.java b/src/dsstore/record/UstrRecord.java index b7abd1b..f493172 100644 --- a/src/dsstore/record/UstrRecord.java +++ b/src/dsstore/record/UstrRecord.java @@ -1,3 +1,16 @@ +// Copyright (C) 2024 The Johns Hopkins University Applied Physics Laboratory LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package dsstore.record; import java.nio.ByteBuffer; diff --git a/tools/build.xml b/tools/build.xml index cd309b8..5e238c1 100644 --- a/tools/build.xml +++ b/tools/build.xml @@ -20,7 +20,7 @@ - + @@ -32,7 +32,7 @@ - + diff --git a/tools/buildRelease b/tools/buildRelease index 7828e03..bdb9652 100755 --- a/tools/buildRelease +++ b/tools/buildRelease @@ -11,20 +11,20 @@ import traceback # Define the (baseline) version -baseVersion = "0.61" +baseVersion = "0.70" # Define relevant base names appBaseName = 'DistMaker' libBaseName = 'distMaker' # Define the libraries DistMaker depends on -libList = ['glum-2.0.0-RC3.jar', 'guava-18.0.jar'] +libList = ['glum-2.0.0.jar', 'guava-18.0.jar'] #libList += ['commons-compress-1.15.jar'] # Define the paths to various executables antPath = '/spare/apache/apache-ant-1.10.8' antExe = os.path.join(antPath, 'bin/ant') -jdkPath = '/spare/jdk-11' +jdkPath = '/spare/jdk-17' jarExe = os.path.join(jdkPath, 'bin/jar') javaExe = os.path.join(jdkPath, 'bin/java')