diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.project b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.project deleted file mode 100644 index c1e1847f4ef..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - org.eclipse.core.filesystem.linux.aarch64 - - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - - diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.settings/org.eclipse.core.resources.prefs b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0203a..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.settings/org.eclipse.core.runtime.prefs b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.settings/org.eclipse.core.runtime.prefs deleted file mode 100644 index 5a0ad22d2a7..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/.settings/org.eclipse.core.runtime.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -line.separator=\n diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/META-INF/MANIFEST.MF b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/META-INF/MANIFEST.MF deleted file mode 100644 index 01b15598fab..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/META-INF/MANIFEST.MF +++ /dev/null @@ -1,9 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %fragmentName -Bundle-SymbolicName: org.eclipse.core.filesystem.linux.aarch64;singleton:=true -Bundle-Version: 1.4.200.qualifier -Bundle-Vendor: %providerName -Fragment-Host: org.eclipse.core.filesystem;bundle-version="[1.1.0,2.0.0)" -Bundle-Localization: fragment -Eclipse-PlatformFilter: (& (osgi.os=linux) (osgi.arch=aarch64)) diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/about.html b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/about.html deleted file mode 100644 index 164f781a8fd..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/about.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - -About - - -

About This Content

- -

November 30, 2017

-

License

- -

- The Eclipse Foundation makes available all content in this plug-in - ("Content"). Unless otherwise indicated below, the Content - is provided to you under the terms and conditions of the Eclipse - Public License Version 2.0 ("EPL"). A copy of the EPL is - available at http://www.eclipse.org/legal/epl-2.0. - For purposes of the EPL, "Program" will mean the Content. -

- -

- If you did not receive this Content directly from the Eclipse - Foundation, the Content is being redistributed by another party - ("Redistributor") and different terms and conditions may - apply to your use of any object code in the Content. Check the - Redistributor's license that was provided with the Content. If no such - license exists, contact the Redistributor. Unless otherwise indicated - below, the terms and conditions of the EPL still apply to any source - code in the Content and such source code may be obtained at http://www.eclipse.org. -

- - - \ No newline at end of file diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/build.properties b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/build.properties deleted file mode 100644 index ef62db2e802..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2014 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -bin.includes = META-INF/,\ - about.html,\ - os/,\ - fragment.properties -src.includes = about.html -generateSourceBundle=false diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/fragment.properties b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/fragment.properties deleted file mode 100644 index bd28b5c9cd2..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/fragment.properties +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# Copyright (c) 2014 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -fragmentName = Core File System for Linux Aarch64 bit -providerName = Eclipse.org diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/os/linux/aarch64/libunixfile_1_0_0.so b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/os/linux/aarch64/libunixfile_1_0_0.so deleted file mode 100755 index 0024dc1477c..00000000000 Binary files a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/os/linux/aarch64/libunixfile_1_0_0.so and /dev/null differ diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/pom.xml b/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/pom.xml deleted file mode 100644 index b4433e2e830..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.aarch64/pom.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - 4.0.0 - - org.eclipse.platform - eclipse.platform.resources - 4.42.0-SNAPSHOT - ../../ - - org.eclipse.core.filesystem.linux.aarch64 - 1.4.200-SNAPSHOT - eclipse-plugin - - - true - true - - - diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.project b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.project deleted file mode 100644 index f0f504d1ddc..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - org.eclipse.core.filesystem.linux.loongarch64 - - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - - diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.settings/org.eclipse.core.resources.prefs b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0203a..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.settings/org.eclipse.core.runtime.prefs b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.settings/org.eclipse.core.runtime.prefs deleted file mode 100644 index 5a0ad22d2a7..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/.settings/org.eclipse.core.runtime.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -line.separator=\n diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/META-INF/MANIFEST.MF b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/META-INF/MANIFEST.MF deleted file mode 100644 index 426347d06c0..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/META-INF/MANIFEST.MF +++ /dev/null @@ -1,9 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %fragmentName -Bundle-SymbolicName: org.eclipse.core.filesystem.linux.loongarch64;singleton:=true -Bundle-Version: 1.4.200.qualifier -Bundle-Vendor: %providerName -Fragment-Host: org.eclipse.core.filesystem;bundle-version="[1.1.0,2.0.0)" -Bundle-Localization: fragment -Eclipse-PlatformFilter: (& (osgi.os=linux) (osgi.arch=loongarch64)) diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/about.html b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/about.html deleted file mode 100644 index 164f781a8fd..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/about.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - -About - - -

About This Content

- -

November 30, 2017

-

License

- -

- The Eclipse Foundation makes available all content in this plug-in - ("Content"). Unless otherwise indicated below, the Content - is provided to you under the terms and conditions of the Eclipse - Public License Version 2.0 ("EPL"). A copy of the EPL is - available at http://www.eclipse.org/legal/epl-2.0. - For purposes of the EPL, "Program" will mean the Content. -

- -

- If you did not receive this Content directly from the Eclipse - Foundation, the Content is being redistributed by another party - ("Redistributor") and different terms and conditions may - apply to your use of any object code in the Content. Check the - Redistributor's license that was provided with the Content. If no such - license exists, contact the Redistributor. Unless otherwise indicated - below, the terms and conditions of the EPL still apply to any source - code in the Content and such source code may be obtained at http://www.eclipse.org. -

- - - \ No newline at end of file diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/build.properties b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/build.properties deleted file mode 100644 index f4b485d1368..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2022 Loongson Technology Co.Ltd and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# Loongson Technology Co.Ltd - initial API and implementation -############################################################################### -bin.includes = META-INF/,\ - about.html,\ - os/,\ - fragment.properties -src.includes = about.html -generateSourceBundle=false diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/fragment.properties b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/fragment.properties deleted file mode 100644 index f2b43db49db..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/fragment.properties +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# Copyright (c) 2022 Loongson Technology Co.Ltd and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# Loongson Technology Co.Ltd - initial API and implementation -############################################################################### -fragmentName = Core File System for Linux LoongArch64 bit -providerName = Eclipse.org diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/os/linux/loongarch64/libunixfile_1_0_0.so b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/os/linux/loongarch64/libunixfile_1_0_0.so deleted file mode 100755 index 6bb6746a381..00000000000 Binary files a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/os/linux/loongarch64/libunixfile_1_0_0.so and /dev/null differ diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/pom.xml b/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/pom.xml deleted file mode 100644 index 8d0e13015db..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.loongarch64/pom.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - 4.0.0 - - org.eclipse.platform - eclipse.platform.resources - 4.42.0-SNAPSHOT - ../../ - - org.eclipse.core.filesystem.linux.loongarch64 - 1.4.200-SNAPSHOT - eclipse-plugin - - - true - - - - - - - org.eclipse.tycho - target-platform-configuration - - - - linux - gtk - loongarch64 - - - - - - - diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.project b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.project deleted file mode 100644 index 5d122d3db83..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.project +++ /dev/null @@ -1,22 +0,0 @@ - - - org.eclipse.core.filesystem.linux.ppc64le - - - - - - org.eclipse.pde.ManifestBuilder - - - - - org.eclipse.pde.SchemaBuilder - - - - - - org.eclipse.pde.PluginNature - - diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.settings/org.eclipse.core.resources.prefs b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0203a..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.settings/org.eclipse.core.runtime.prefs b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.settings/org.eclipse.core.runtime.prefs deleted file mode 100644 index 5a0ad22d2a7..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/.settings/org.eclipse.core.runtime.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -line.separator=\n diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/META-INF/MANIFEST.MF b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/META-INF/MANIFEST.MF deleted file mode 100644 index 1a145170eb3..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/META-INF/MANIFEST.MF +++ /dev/null @@ -1,9 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %fragmentName -Bundle-SymbolicName: org.eclipse.core.filesystem.linux.ppc64le;singleton:=true -Bundle-Version: 1.4.200.qualifier -Bundle-Vendor: %providerName -Fragment-Host: org.eclipse.core.filesystem;bundle-version="[1.1.0,2.0.0)" -Bundle-Localization: fragment -Eclipse-PlatformFilter: (& (osgi.os=linux) (osgi.arch=ppc64le)) diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/about.html b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/about.html deleted file mode 100644 index 164f781a8fd..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/about.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - -About - - -

About This Content

- -

November 30, 2017

-

License

- -

- The Eclipse Foundation makes available all content in this plug-in - ("Content"). Unless otherwise indicated below, the Content - is provided to you under the terms and conditions of the Eclipse - Public License Version 2.0 ("EPL"). A copy of the EPL is - available at http://www.eclipse.org/legal/epl-2.0. - For purposes of the EPL, "Program" will mean the Content. -

- -

- If you did not receive this Content directly from the Eclipse - Foundation, the Content is being redistributed by another party - ("Redistributor") and different terms and conditions may - apply to your use of any object code in the Content. Check the - Redistributor's license that was provided with the Content. If no such - license exists, contact the Redistributor. Unless otherwise indicated - below, the terms and conditions of the EPL still apply to any source - code in the Content and such source code may be obtained at http://www.eclipse.org. -

- - - \ No newline at end of file diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/build.properties b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/build.properties deleted file mode 100644 index ef62db2e802..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/build.properties +++ /dev/null @@ -1,19 +0,0 @@ -############################################################################### -# Copyright (c) 2014 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -bin.includes = META-INF/,\ - about.html,\ - os/,\ - fragment.properties -src.includes = about.html -generateSourceBundle=false diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/fragment.properties b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/fragment.properties deleted file mode 100644 index cef8e03e7ee..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/fragment.properties +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# Copyright (c) 2014 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -fragmentName = Core File System for Linux PPC 64 LE bit -providerName = Eclipse.org diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/os/linux/ppc64le/libunixfile_1_0_0.so b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/os/linux/ppc64le/libunixfile_1_0_0.so deleted file mode 100644 index 7d0ef31b370..00000000000 Binary files a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/os/linux/ppc64le/libunixfile_1_0_0.so and /dev/null differ diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/pom.xml b/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/pom.xml deleted file mode 100644 index c2588c81de3..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.linux.ppc64le/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - - org.eclipse.platform - eclipse.platform.resources - 4.42.0-SNAPSHOT - ../../ - - org.eclipse.core.filesystem.linux.ppc64le - 1.4.200-SNAPSHOT - eclipse-plugin - - - true - - - diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/META-INF/MANIFEST.MF b/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/META-INF/MANIFEST.MF index c87b4505a56..6931428e8f8 100644 --- a/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/META-INF/MANIFEST.MF +++ b/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %fragmentName Bundle-SymbolicName: org.eclipse.core.filesystem.linux.x86_64; singleton:=true -Bundle-Version: 1.2.500.qualifier +Bundle-Version: 1.2.600.qualifier Bundle-Vendor: %providerName Fragment-Host: org.eclipse.core.filesystem;bundle-version="[1.11.500,2.0.0)" Bundle-Localization: fragment diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/os/linux/x86_64/libunixfile_1_0_0.so b/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/os/linux/x86_64/libunixfile_1_0_0.so deleted file mode 100755 index 9067085dfac..00000000000 Binary files a/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/os/linux/x86_64/libunixfile_1_0_0.so and /dev/null differ diff --git a/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/pom.xml b/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/pom.xml index c44e07f8d4b..656c1f67019 100644 --- a/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/pom.xml +++ b/resources/bundles/org.eclipse.core.filesystem.linux.x86_64/pom.xml @@ -18,7 +18,7 @@ ../../ org.eclipse.core.filesystem.linux.x86_64 - 1.2.500-SNAPSHOT + 1.2.600-SNAPSHOT eclipse-plugin diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/.project b/resources/bundles/org.eclipse.core.filesystem.macosx/.project deleted file mode 100644 index 5c876866e22..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - org.eclipse.core.filesystem.macosx - - - - - - - - diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/.settings/org.eclipse.core.resources.prefs b/resources/bundles/org.eclipse.core.filesystem.macosx/.settings/org.eclipse.core.resources.prefs deleted file mode 100644 index 99f26c0203a..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/.settings/org.eclipse.core.resources.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -encoding/=UTF-8 diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/.settings/org.eclipse.core.runtime.prefs b/resources/bundles/org.eclipse.core.filesystem.macosx/.settings/org.eclipse.core.runtime.prefs deleted file mode 100644 index 5a0ad22d2a7..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/.settings/org.eclipse.core.runtime.prefs +++ /dev/null @@ -1,2 +0,0 @@ -eclipse.preferences.version=1 -line.separator=\n diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/BUILD_INFO.txt b/resources/bundles/org.eclipse.core.filesystem.macosx/BUILD_INFO.txt deleted file mode 100644 index d29a88b56d2..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/BUILD_INFO.txt +++ /dev/null @@ -1,9 +0,0 @@ -Native Build Info: ------------------- - -Platform: Jenkins Mac slave (b9h15-macos10.15) -OS Name: macOS -OS Version: 10.15.7 -Compiler version: Apple clang version 12.0.0 -Java version: jdk1.8.0_192 -Architecture: x86_64 and arm64 (universal binary) \ No newline at end of file diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/META-INF/MANIFEST.MF b/resources/bundles/org.eclipse.core.filesystem.macosx/META-INF/MANIFEST.MF deleted file mode 100644 index 1ea5e76d603..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/META-INF/MANIFEST.MF +++ /dev/null @@ -1,9 +0,0 @@ -Manifest-Version: 1.0 -Bundle-ManifestVersion: 2 -Bundle-Name: %fragmentName -Bundle-SymbolicName: org.eclipse.core.filesystem.macosx; singleton:=true -Bundle-Version: 1.3.400.qualifier -Bundle-Vendor: %providerName -Fragment-Host: org.eclipse.core.filesystem;bundle-version="[1.7.200,2.0.0)" -Bundle-Localization: fragment -Eclipse-PlatformFilter: (& (osgi.os=macosx) (|(osgi.arch=x86_64)(osgi.arch=aarch64)) ) diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/about.html b/resources/bundles/org.eclipse.core.filesystem.macosx/about.html deleted file mode 100644 index 164f781a8fd..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/about.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - -About - - -

About This Content

- -

November 30, 2017

-

License

- -

- The Eclipse Foundation makes available all content in this plug-in - ("Content"). Unless otherwise indicated below, the Content - is provided to you under the terms and conditions of the Eclipse - Public License Version 2.0 ("EPL"). A copy of the EPL is - available at http://www.eclipse.org/legal/epl-2.0. - For purposes of the EPL, "Program" will mean the Content. -

- -

- If you did not receive this Content directly from the Eclipse - Foundation, the Content is being redistributed by another party - ("Redistributor") and different terms and conditions may - apply to your use of any object code in the Content. Check the - Redistributor's license that was provided with the Content. If no such - license exists, contact the Redistributor. Unless otherwise indicated - below, the terms and conditions of the EPL still apply to any source - code in the Content and such source code may be obtained at http://www.eclipse.org. -

- - - \ No newline at end of file diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/build.properties b/resources/bundles/org.eclipse.core.filesystem.macosx/build.properties deleted file mode 100644 index 1f31a571591..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/build.properties +++ /dev/null @@ -1,20 +0,0 @@ -############################################################################### -# Copyright (c) 2005, 2007 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -bin.includes = os/,\ - fragment.properties,\ - .,\ - META-INF/,\ - about.html -src.includes = about.html -generateSourceBundle=false diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/fragment.properties b/resources/bundles/org.eclipse.core.filesystem.macosx/fragment.properties deleted file mode 100644 index 832993c6a65..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/fragment.properties +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# Copyright (c) 2005, 2006 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -############################################################################### -fragmentName = Core File System for Macintosh -providerName = Eclipse.org diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/os/macosx/libunixfile_1_0_0.jnilib b/resources/bundles/org.eclipse.core.filesystem.macosx/os/macosx/libunixfile_1_0_0.jnilib deleted file mode 100644 index 5a9647b7029..00000000000 Binary files a/resources/bundles/org.eclipse.core.filesystem.macosx/os/macosx/libunixfile_1_0_0.jnilib and /dev/null differ diff --git a/resources/bundles/org.eclipse.core.filesystem.macosx/pom.xml b/resources/bundles/org.eclipse.core.filesystem.macosx/pom.xml deleted file mode 100644 index cb864c91d0a..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem.macosx/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - - eclipse.platform.resources - org.eclipse.platform - 4.42.0-SNAPSHOT - ../../ - - org.eclipse.core.filesystem.macosx - 1.3.400-SNAPSHOT - eclipse-plugin - - - true - - - diff --git a/resources/bundles/org.eclipse.core.filesystem/META-INF/MANIFEST.MF b/resources/bundles/org.eclipse.core.filesystem/META-INF/MANIFEST.MF index 070532a6598..5deeccf1075 100644 --- a/resources/bundles/org.eclipse.core.filesystem/META-INF/MANIFEST.MF +++ b/resources/bundles/org.eclipse.core.filesystem/META-INF/MANIFEST.MF @@ -8,8 +8,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)" Export-Package: org.eclipse.core.filesystem;uses:="org.eclipse.core.runtime", org.eclipse.core.filesystem.provider;uses:="org.eclipse.core.filesystem,org.eclipse.core.runtime", org.eclipse.core.internal.filesystem;x-internal:=true, - org.eclipse.core.internal.filesystem.local;x-internal:=true, - org.eclipse.core.internal.filesystem.local.unix;x-internal:=true + org.eclipse.core.internal.filesystem.local;x-internal:=true Bundle-Vendor: %providerName Bundle-RequiredExecutionEnvironment: JavaSE-25 Bundle-ActivationPolicy: lazy diff --git a/resources/bundles/org.eclipse.core.filesystem/natives/unix/README.TXT b/resources/bundles/org.eclipse.core.filesystem/natives/unix/README.TXT index 08b5d604ee0..cbd8be823bc 100644 --- a/resources/bundles/org.eclipse.core.filesystem/natives/unix/README.TXT +++ b/resources/bundles/org.eclipse.core.filesystem/natives/unix/README.TXT @@ -2,12 +2,7 @@ This directory contains the source code for Unix-based platforms, including Linux and Mac OS X. These platforms all share the same C source, but have different makefiles. -The macOS library in the macosx fragment is a Mach-O universal binary with -2 architectures: [x86_64:Mach-O 64-bit bundle x86_64] [arm64:Mach-O 64-bit bundle arm64] -XCode 12.2 or newer is required to build this. - Command to build the native library: make -f Makefile clean install Don't commit the library that was locally built on the developer machine. -Use the Jenkins job to build the library, sign it and commit it to the repo. diff --git a/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.c b/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.c index 6bc4238134a..96d68f744f8 100644 --- a/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.c +++ b/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.c @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 IBM Corporation and others. + * Copyright (c) 2010, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -133,96 +133,6 @@ jint convertStatToObject(JNIEnv *env, struct stat info, int errnoValue, jobject return 0; } -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: chmod - * Signature: ([BI)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_chmod - (JNIEnv *env, jclass clazz, jbyteArray path, jint mode) -{ - int code; - char *name; - - name = (char*) getByteArray(env, path); - if (name == NULL) { - return -1; - } - code = chmod(name, mode); - free(name); - return code; -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: stat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/linux/LinuxStructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_stat - (JNIEnv *env, jclass clazz, jbyteArray path, jobject buf) -{ - jint code; - char *name; - struct stat info = {0}; - - name = (char*) getByteArray(env, path); - if (name == NULL) { - return -1; - } - code = fstatat(AT_FDCWD, name, &info, 0); - free(name); - return convertStatToObject(env, info, code == 0 ? 0 : errno, buf); -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: lstat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/linux/LinuxStructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_lstat - (JNIEnv *env, jclass clazz, jbyteArray path, jobject buf) -{ - jint code; - char *name; - struct stat info = {0}; - - name = (char*) getByteArray(env, path); - if (name == NULL) { - return -1; - } - code = fstatat(AT_FDCWD, name, &info, AT_SYMLINK_NOFOLLOW); - free(name); - return convertStatToObject(env, info, code == 0 ? 0 : errno, buf); -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: readlink - * Signature: ([B[BJ)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_readlink - (JNIEnv *env, jclass clazz, jbyteArray path, jbyteArray buf, jlong bufsiz) { - jbyte *name; - int len; - char temp[PATH_MAX+1]; - - name = getByteArray(env, path); - if (name == NULL) { - return -1; - } - len = readlink((const char*)name, temp, PATH_MAX); - free(name); - if (len > 0) { - temp[len] = 0; - (*env)->SetByteArrayRegion(env, buf, 0, len, (jbyte*) temp); - } - else { - temp[0] = 0; - (*env)->SetByteArrayRegion(env, buf, 0, 0, (jbyte*) temp); - } - return len; -} - /* * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives * Method: getflag diff --git a/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.h b/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.h index ab59f9e5e85..f528673e16e 100644 --- a/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.h +++ b/resources/bundles/org.eclipse.core.filesystem/natives/unix/fastlinux/fastlinuxfile.h @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 IBM Corporation and others. + * Copyright (c) 2010, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -43,38 +43,6 @@ extern "C" { JNIEXPORT void JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_initializeLinuxStructStatFieldIDs (JNIEnv *, jclass); -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: chmod - * Signature: ([BI)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_chmod - (JNIEnv *, jclass, jbyteArray, jint); - -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: stat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/linux/LinuxStructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_stat - (JNIEnv *, jclass, jbyteArray, jobject); - -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: lstat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/linux/LinuxStructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_lstat - (JNIEnv *, jclass, jbyteArray, jobject); - -/* - * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives - * Method: readlink - * Signature: ([B[BJ)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives_readlink - (JNIEnv *, jclass, jbyteArray, jbyteArray, jlong); - /* * Class: org_eclipse_core_internal_filesystem_local_linux_LinuxFileNatives * Method: getflag diff --git a/resources/bundles/org.eclipse.core.filesystem/natives/unix/linux/Makefile b/resources/bundles/org.eclipse.core.filesystem/natives/unix/linux/Makefile deleted file mode 100644 index 5fd8afa51a8..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/natives/unix/linux/Makefile +++ /dev/null @@ -1,42 +0,0 @@ -#****************************************************************************** -# Copyright (c) 2010 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -#******************************************************************************/ -# -# makefile for libunixfile_1_0_0.so - -CORE.C = ../unixfile.c -CORE.O = unixfile.o -LIB_NAME = libunixfile.so -LIB_NAME_FULL = libunixfile_1_0_0.so - -#Set this to be your OS type -OS_TYPE = linux - -#Set this to be the location of your JRE -ifeq (${JAVA_HOME},) - JAVA_HOME = /usr/lib/jvm/java-1.5.0-ibm-1.5.0.9/ -endif - -JDK_INCLUDE = -I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/${OS_TYPE} -OPT_FLAGS=-O2 -g -s -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - -core: - gcc $(OPT_FLAGS) -fPIC -c $(JDK_INCLUDE) -o $(CORE.O) $(CORE.C) - gcc $(OPT_FLAGS) -shared -Wl,-soname,$(LIB_NAME) -o $(LIB_NAME_FULL) $(CORE.O) -lc - -clean: - rm -f $(CORE.O) $(LIB_NAME_FULL) - -install: core - rm -f ../../../../org.eclipse.core.filesystem.linux.x86/os/linux/x86/libunixfile_1_0_0.so - mv libunixfile_1_0_0.so ../../../../org.eclipse.core.filesystem.linux.x86/os/linux/x86/ diff --git a/resources/bundles/org.eclipse.core.filesystem/natives/unix/macosx/Makefile b/resources/bundles/org.eclipse.core.filesystem/natives/unix/macosx/Makefile deleted file mode 100755 index e996bb6bd22..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/natives/unix/macosx/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -#****************************************************************************** -# Copyright (c) 2010 IBM Corporation and others. -# -# This program and the accompanying materials -# are made available under the terms of the Eclipse Public License 2.0 -# which accompanies this distribution, and is available at -# https://www.eclipse.org/legal/epl-2.0/ -# -# SPDX-License-Identifier: EPL-2.0 -# -# Contributors: -# IBM Corporation - initial API and implementation -#******************************************************************************/ -# -# makefile for libunixfile_1_0_0.jnilib - -CORE.C=../unixfile.c -LIB_NAME_FULL=libunixfile_1_0_0.jnilib - -JAVA_HOME=$(shell /usr/libexec/java_home) - -$(info JAVA_HOME is $(JAVA_HOME)) - -JDK_INCLUDE=-I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/darwin -MACOSX_DEPLOYMENT_TARGET=10.10 - -FRAMEWORKS=-framework CoreServices -# define MACOSX to include Mac OS X specific code -CC_FLAGS=-arch x86_64 -arch arm64 -mmacosx-version-min=10.10 -DMACOSX - -core: - cc $(JDK_INCLUDE) $(CORE.C) -o $(LIB_NAME_FULL) -bundle $(FRAMEWORKS) $(CC_FLAGS) - -clean: - rm -f $(LIB_NAME_FULL) - -install: core - rm -f ../../../../org.eclipse.core.filesystem.macosx/os/macosx/$(LIB_NAME_FULL) - mv $(LIB_NAME_FULL) ../../../../org.eclipse.core.filesystem.macosx/os/macosx/ diff --git a/resources/bundles/org.eclipse.core.filesystem/natives/unix/unixfile.c b/resources/bundles/org.eclipse.core.filesystem/natives/unix/unixfile.c deleted file mode 100644 index a23a89aa67a..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/natives/unix/unixfile.c +++ /dev/null @@ -1,331 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined MACOSX -#include -#endif - -#include "unixfile.h" - -/* The lstat stat field st_mode. */ -static jfieldID attrs_st_mode; -/* The lstat stat field st_size. */ -static jfieldID attrs_st_size; -/* The lstat stat field st_mtime_sec. */ -static jfieldID attrs_st_mtime; -/* The lstat stat field st_mtime_nsec divided by 1 000 000. Only filled on Linux based operating systems. */ -static jfieldID attrs_st_mtime_msec; -/* Only filled on MACOSX. */ -static jfieldID attrs_st_flags; - -/* - * Class: Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_initializeStructStatFieldIDs - * Method: initializeStructStatFieldIDs - * Signature: ()V - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_initializeStructStatFieldIDs - (JNIEnv *env, jclass clazz) -{ - jclass structStatClass = (*env)->FindClass(env, "org/eclipse/core/internal/filesystem/local/unix/StructStat"); - - attrs_st_mode = (*env)->GetFieldID(env, structStatClass, "st_mode", "I"); - attrs_st_size = (*env)->GetFieldID(env, structStatClass, "st_size", "J"); - attrs_st_mtime = (*env)->GetFieldID(env, structStatClass, "st_mtime", "J"); - -#ifdef MACOSX - attrs_st_flags = (*env)->GetFieldID(env, structStatClass, "st_flags", "J"); -#endif - -#ifndef MACOSX - attrs_st_mtime_msec = (*env)->GetFieldID(env, structStatClass, "st_mtime_msec", "J"); -#endif -} - -/* - * Get a null-terminated byte array from a java byte array. The returned bytearray - * needs to be freed when not used anymore. Use free(result) to do that. - */ -jbyte* getByteArray(JNIEnv *env, jbyteArray target) -{ - unsigned int len; - jbyte *temp, *result; - - temp = (*env)->GetByteArrayElements(env, target, 0); - len = (*env)->GetArrayLength(env, target); - result = malloc((len + 1) * sizeof(jbyte)); - memcpy(result, temp, len * sizeof(jbyte)); - result[len] = '\0'; - (*env)->ReleaseByteArrayElements(env, target, temp, 0); - return result; -} - -/* - * Fills StructStat object with data from struct stat. - */ -jint convertStatToObject(JNIEnv *env, struct stat info, jobject stat_object) -{ - jclass cls; - jfieldID fid; - jboolean readOnly; - - cls = (*env)->GetObjectClass(env, stat_object); - if (cls == 0) return -1; - - if (attrs_st_mode == 0) return -1; - (*env)->SetIntField(env, stat_object, attrs_st_mode, info.st_mode); - - if (attrs_st_size == 0) return -1; - (*env)->SetLongField(env, stat_object, attrs_st_size, info.st_size); - - if (attrs_st_mtime == 0) return -1; - (*env)->SetLongField(env, stat_object, attrs_st_mtime, info.st_mtime); - -#ifndef MACOSX - if (attrs_st_mtime_msec == 0) return -1; - (*env)->SetLongField(env, stat_object, attrs_st_mtime_msec, (info.st_mtim.tv_nsec / (1000 * 1000))); -#endif - - -#ifdef MACOSX - if (attrs_st_flags == 0) return -1; - (*env)->SetLongField(env, stat_object, attrs_st_flags, info.st_flags); -#endif - - return 0; -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: chmod - * Signature: ([BI)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_chmod - (JNIEnv *env, jclass clazz, jbyteArray path, jint mode) -{ - int code; - char *name; - - name = (char*) getByteArray(env, path); - code = chmod(name, mode); - free(name); - return code; -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: chflags - * Signature: ([BI)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_chflags - (JNIEnv *env, jclass clazz, jbyteArray path, jint flags) -{ -#ifdef MACOSX - int code; - char *name; - - name = (char*) getByteArray(env, path); - code = chflags(name, flags); - free(name); - return code; -#else - return -1; -#endif -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: stat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/unix/StructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_stat - (JNIEnv *env, jclass clazz, jbyteArray path, jobject buf) -{ - jint code; - char *name; - struct stat info; - - name = (char*) getByteArray(env, path); - code = stat(name, &info); - free(name); - if (code != -1) - return convertStatToObject(env, info, buf); - else - return code; -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: lstat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/unix/StructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_lstat - (JNIEnv *env, jclass clazz, jbyteArray path, jobject buf) -{ - jint code; - char *name; - struct stat info; - - name = (char*) getByteArray(env, path); - code = lstat(name, &info); - free(name); - if (code != -1) - return convertStatToObject(env, info, buf); - else - return code; -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: readlink - * Signature: ([B[BJ)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_readlink - (JNIEnv *env, jclass clazz, jbyteArray path, jbyteArray buf, jlong bufsiz) { - jint code; - jbyte *name; - int len; - char temp[PATH_MAX+1]; - jstring linkTarget = NULL; - - name = getByteArray(env, path); - len = readlink((const char*)name, temp, PATH_MAX); - free(name); - if (len > 0) { - temp[len] = 0; - (*env)->SetByteArrayRegion(env, buf, 0, len, (jbyte*) temp); - } - else { - temp[0] = 0; - (*env)->SetByteArrayRegion(env, buf, 0, 0, (jbyte*) temp); - } - return len; -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: errno - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_errno - (JNIEnv *env, jclass clazz) -{ - return errno; -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: libattr - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_libattr - (JNIEnv *env, jclass clazz) -{ -#ifdef MACOSX - return UNICODE_SUPPORTED | CHFLAGS_SUPPORTED; -#else - return 0; -#endif -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: tounicode - * Signature: ([C)[B - */ -JNIEXPORT jbyteArray JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_tounicode - (JNIEnv *env, jclass clazz, jcharArray buf) -{ -#ifdef MACOSX - jchar *temp; - jsize length; - CFStringRef str_ref; - CFIndex str_size; - jbyte *unicode_bytes; - jbyteArray ret; - - temp = (*env)->GetCharArrayElements(env, buf, 0); - length = (*env)->GetArrayLength(env, buf); - str_ref = CFStringCreateWithCharacters(kCFAllocatorDefault, temp, length); - str_size = CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8) + 1; - unicode_bytes = (jbyte*) calloc(str_size, sizeof(jbyte)); - CFStringGetCString(str_ref, (char*) unicode_bytes, str_size, kCFStringEncodingUTF8); - ret = (*env)->NewByteArray(env, str_size); - if (ret == NULL) - return NULL; - (*env)->SetByteArrayRegion(env, ret, 0, str_size, unicode_bytes); - CFRelease(str_ref); - (*env)->ReleaseCharArrayElements(env, buf, temp, 0); - free(unicode_bytes); - return ret; -#else - return NULL; -#endif -} - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: getflag - * Signature: ([B)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_getflag - (JNIEnv *env, jclass clazz, jbyteArray buf) -{ - char *flag; - jint ret = -1; - - flag = (char*) getByteArray(env, buf); - if (strcmp(flag, "PATH_MAX") == 0) - ret = PATH_MAX; - else if (strcmp(flag, "S_IFMT") == 0) - ret = S_IFMT; - else if (strcmp(flag, "S_IFLNK") == 0) - ret = S_IFLNK; - else if (strcmp(flag, "S_IFDIR") == 0) - ret = S_IFDIR; - else if (strcmp(flag, "S_IRUSR") == 0) - ret = S_IRUSR; - else if (strcmp(flag, "S_IWUSR") == 0) - ret = S_IWUSR; - else if (strcmp(flag, "S_IXUSR") == 0) - ret = S_IXUSR; - else if (strcmp(flag, "S_IRGRP") == 0) - ret = S_IRGRP; - else if (strcmp(flag, "S_IWGRP") == 0) - ret = S_IWGRP; - else if (strcmp(flag, "S_IXGRP") == 0) - ret = S_IXGRP; - else if (strcmp(flag, "S_IROTH") == 0) - ret = S_IROTH; - else if (strcmp(flag, "S_IWOTH") == 0) - ret = S_IWOTH; - else if (strcmp(flag, "S_IXOTH") == 0) - ret = S_IXOTH; -#ifdef MACOSX - else if (strcmp(flag, "UF_IMMUTABLE") == 0) - ret = UF_IMMUTABLE; - else if (strcmp(flag, "SF_IMMUTABLE") == 0) - ret = SF_IMMUTABLE; -#endif - free(flag); - return ret; -} diff --git a/resources/bundles/org.eclipse.core.filesystem/natives/unix/unixfile.h b/resources/bundles/org.eclipse.core.filesystem/natives/unix/unixfile.h deleted file mode 100644 index 8fc4a836457..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/natives/unix/unixfile.h +++ /dev/null @@ -1,125 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -#include - -#undef UNICODE_SUPPORTED -#define UNICODE_SUPPORTED 1L -#undef CHFLAGS_SUPPORTED -#define CHFLAGS_SUPPORTED 2L - -/* - * Get a null-terminated byte array from a java byte array. The returned bytearray - * needs to be freed when not used anymore. Use free(result) to do that. - */ -jbyte* getByteArray(JNIEnv *, jbyteArray); - -/* - * Fills StructStat object with data from struct stat. - */ -jint convertStatToObject(JNIEnv *, struct stat, jobject); - -/* DO NOT EDIT THIS FILE - it is machine generated */ - -/* Header for class org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives */ - -#ifndef _Included_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives -#define _Included_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Class: Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_initializeStructStatFieldIDs - * Method: initializeStructStatFieldIDs - * Signature: ()V - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_initializeStructStatFieldIDs - (JNIEnv *env, jclass clazz); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: chmod - * Signature: ([BI)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_chmod - (JNIEnv *, jclass, jbyteArray, jint); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: chflags - * Signature: ([BI)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_chflags - (JNIEnv *, jclass, jbyteArray, jint); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: stat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/unix/StructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_stat - (JNIEnv *, jclass, jbyteArray, jobject); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: lstat - * Signature: ([BLorg/eclipse/core/internal/filesystem/local/unix/StructStat;)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_lstat - (JNIEnv *, jclass, jbyteArray, jobject); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: readlink - * Signature: ([B[BJ)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_readlink - (JNIEnv *, jclass, jbyteArray, jbyteArray, jlong); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: errno - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_errno - (JNIEnv *, jclass); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: libattr - * Signature: ()I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_libattr - (JNIEnv *, jclass); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: tounicode - * Signature: ([C)[B - */ -JNIEXPORT jbyteArray JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_tounicode - (JNIEnv *, jclass, jcharArray); - -/* - * Class: org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives - * Method: getflag - * Signature: ([B)I - */ -JNIEXPORT jint JNICALL Java_org_eclipse_core_internal_filesystem_local_unix_UnixFileNatives_getflag - (JNIEnv *, jclass, jbyteArray); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileNativesManager.java b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileNativesManager.java index 8a9fe40831f..6fdd02ef667 100644 --- a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileNativesManager.java +++ b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/LocalFileNativesManager.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2016 IBM Corporation and others. + * Copyright (c) 2010, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -22,21 +22,11 @@ import org.eclipse.core.internal.filesystem.local.linux.LinuxFileNatives; import org.eclipse.core.internal.filesystem.local.nio.DefaultHandler; import org.eclipse.core.internal.filesystem.local.nio.PosixHandler; -import org.eclipse.core.internal.filesystem.local.unix.UnixFileHandler; -import org.eclipse.core.internal.filesystem.local.unix.UnixFileNatives; import org.eclipse.core.runtime.Platform; /** *

Dispatches methods backed by native code to the appropriate platform specific - * implementation depending on a library provided by a fragment. Failing this it tries - * to use Java 7 NIO/2 API's.

- * - *

Use of native libraries can be disabled by adding -Declipse.filesystem.useNatives=false - * to VM arguments.

- * - *

Please notice that the native implementation is significantly faster than the non-native - * one. The BenchFileStore test runs 3.1 times faster on Linux with the native code than - * without it.

+ * implementation.

*/ public class LocalFileNativesManager { public static final boolean PROPERTY_USE_NATIVE_DEFAULT = true; @@ -67,9 +57,6 @@ public static boolean setUsingNative(boolean useNatives, boolean useFastLinuxNat // Linux x86_64 architecture supports faster (bulk) file info fetching. HANDLER = new LinuxFileHandler(); nativesAreUsed = true; - } else if (useNatives && !Platform.OS.isWindows() && UnixFileNatives.isUsingNatives()) { - HANDLER = new UnixFileHandler(); - nativesAreUsed = true; } else { nativesAreUsed = false; Set views = FileSystems.getDefault().supportedFileAttributeViews(); diff --git a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileHandler.java b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileHandler.java index d739286efcd..575d7aa91be 100644 --- a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileHandler.java +++ b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileHandler.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2012, 2015 IBM Corporation and others. + * Copyright (c) 2012, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -16,24 +16,27 @@ import org.eclipse.core.filesystem.IFileInfo; import org.eclipse.core.filesystem.provider.FileInfo; import org.eclipse.core.internal.filesystem.local.NativeHandler; +import org.eclipse.core.internal.filesystem.local.nio.PosixHandler; /** * Native handler that delegates to LinuxFileNatives */ public class LinuxFileHandler extends NativeHandler { + private final PosixHandler posixHandler = new PosixHandler(); + @Override public int getSupportedAttributes() { - return LinuxFileNatives.getSupportedAttributes(); + return posixHandler.getSupportedAttributes(); } @Override public FileInfo fetchFileInfo(String fileName) { - return LinuxFileNatives.fetchFileInfo(fileName); + return posixHandler.fetchFileInfo(fileName); } @Override public boolean putFileInfo(String fileName, IFileInfo info, int options) { - return LinuxFileNatives.putFileInfo(fileName, info, options); + return posixHandler.putFileInfo(fileName, info, options); } @Override diff --git a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileNatives.java b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileNatives.java index a50462736e2..4843eef9bd4 100644 --- a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileNatives.java +++ b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/linux/LinuxFileNatives.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2017 IBM Corporation and others. + * Copyright (c) 2010, 2026 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -14,26 +14,11 @@ *******************************************************************************/ package org.eclipse.core.internal.filesystem.local.linux; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.PATH_MAX; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IFLNK; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IFMT; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IRGRP; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IROTH; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IRUSR; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IWGRP; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IWOTH; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IWUSR; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IXGRP; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IXOTH; -import static org.eclipse.core.internal.filesystem.local.linux.LinuxFileFlags.S_IXUSR; - -import java.io.File; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.Enumeration; import org.eclipse.core.filesystem.EFS; import org.eclipse.core.filesystem.IFileInfo; -import org.eclipse.core.filesystem.provider.FileInfo; import org.eclipse.core.internal.filesystem.FileSystemAccess; import org.eclipse.core.internal.filesystem.Messages; import org.eclipse.core.internal.filesystem.Policy; @@ -111,91 +96,6 @@ public static IFileInfo[] listDirectoryAndGetFileInfos(String pathName) { return infos; } - public static FileInfo fetchFileInfo(String fileName) { - FileInfo info = null; - byte[] name = fileNameToBytes(fileName); - LinuxStructStat stat = new LinuxStructStat(); - if (lstat(name, stat) == 0 || stat.errno == ENOENT) { // lstat fills errno even on failure - if (stat.errno == ENOENT) { - // file does not exist - info = new FileInfo(); - } else if ((stat.st_mode & S_IFMT) == S_IFLNK) { // it's a link! - LinuxStructStat targetStat = new LinuxStructStat(); - if (stat(name, targetStat) == 0) { // get the information about the file the link points to - info = targetStat.toFileInfo(); // store the target file stats in info - } else { // invalid link target - info = new FileInfo(); - if (targetStat.errno != ENOENT) { - info.setError(IFileInfo.IO_ERROR); - } - } - info.setAttribute(EFS.ATTRIBUTE_SYMLINK, true); // set symlink attribute - byte target[] = new byte[PATH_MAX]; - int length = readlink(name, target, target.length); - if (length > 0) { // set target of the link - info.setStringAttribute(EFS.ATTRIBUTE_LINK_TARGET, bytesToFileName(target, length)); - } - } else { // regular file or directory - info = stat.toFileInfo(); - } - } else { - info = new FileInfo(); - if (stat.errno != ENOENT) { - info.setError(IFileInfo.IO_ERROR); - } - } - - if (info.getName().isEmpty()) { - // If the file system is case insensitive, we don't know the real name of the file. - // Since obtaining the real name in such situation is pretty expensive, we use the name - // passed as a parameter, which may differ by case from the real name of the file - // if the file system is case insensitive. - info.setName(new File(fileName).getName()); - } - return info; - } - - public static boolean putFileInfo(String fileName, IFileInfo info, int options) { - int code = 0; - byte[] name = fileNameToBytes(fileName); - if (name == null) { - return false; - } - - // Change permissions - int mode = 0; - if (info.getAttribute(EFS.ATTRIBUTE_OWNER_READ)) { - mode |= S_IRUSR; - } - if (info.getAttribute(EFS.ATTRIBUTE_OWNER_WRITE)) { - mode |= S_IWUSR; - } - if (info.getAttribute(EFS.ATTRIBUTE_OWNER_EXECUTE)) { - mode |= S_IXUSR; - } - if (info.getAttribute(EFS.ATTRIBUTE_GROUP_READ)) { - mode |= S_IRGRP; - } - if (info.getAttribute(EFS.ATTRIBUTE_GROUP_WRITE)) { - mode |= S_IWGRP; - } - if (info.getAttribute(EFS.ATTRIBUTE_GROUP_EXECUTE)) { - mode |= S_IXGRP; - } - if (info.getAttribute(EFS.ATTRIBUTE_OTHER_READ)) { - mode |= S_IROTH; - } - if (info.getAttribute(EFS.ATTRIBUTE_OTHER_WRITE)) { - mode |= S_IWOTH; - } - if (info.getAttribute(EFS.ATTRIBUTE_OTHER_EXECUTE)) { - mode |= S_IXOTH; - } - code |= chmod(name, mode); - - return code == 0; - } - public static boolean isUsingNatives() { return usingNatives; } @@ -217,14 +117,6 @@ private static String bytesToFileName(byte[] buf, int length) { private static final native void initializeLinuxStructStatFieldIDs(); - private static final native int chmod(byte[] path, int mode); - - private static final native int stat(byte[] path, LinuxStructStat buf); - - private static final native int lstat(byte[] path, LinuxStructStat buf); - - private static final native int readlink(byte[] path, byte[] buf, long bufsiz); - private static final native int getflag(byte[] buf); private static final native byte[][] listDir(byte[] path); diff --git a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/StructStat.java b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/StructStat.java deleted file mode 100644 index 22dbf3573d7..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/StructStat.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.filesystem.local.unix; - -import org.eclipse.core.filesystem.EFS; -import org.eclipse.core.filesystem.provider.FileInfo; - -/** - * This class mirrors relevant fields of native struct stat - * and is used by JNI calls wrapping OS file related functions. - */ -public class StructStat { - /** errno value for "No such file or directory" */ - public static final int ENOENT = 2; - - private static final boolean USE_MILLISECOND_RESOLUTION = Boolean.parseBoolean(System.getProperty("eclipse.filesystem.useNatives.modificationTimestampMillisecondsResolution", "true")); //$NON-NLS-1$ //$NON-NLS-2$ - - public int st_mode; - public long st_size; - public long st_mtime; - public long st_mtime_msec; // millisecond component of the file timestamp, filled on Linux systems - public long st_flags; // Filled only on Mac OS X - - public FileInfo toFileInfo() { - FileInfo info = new FileInfo(); - info.setExists(true); - info.setLength(st_size); - long lastModified = (st_mtime * 1_000); - if (USE_MILLISECOND_RESOLUTION) { - lastModified += st_mtime_msec; - } - info.setLastModified(lastModified); - if ((st_mode & UnixFileFlags.S_IFMT) == UnixFileFlags.S_IFDIR) { - info.setDirectory(true); - } - if ((st_flags & (UnixFileFlags.UF_IMMUTABLE | UnixFileFlags.SF_IMMUTABLE)) != 0) { - info.setAttribute(EFS.ATTRIBUTE_IMMUTABLE, true); - } - if ((st_mode & UnixFileFlags.S_IRUSR) == 0) { // Set to true in FileInfo constructor - info.setAttribute(EFS.ATTRIBUTE_OWNER_READ, false); - } - if ((st_mode & UnixFileFlags.S_IWUSR) == 0) { // Set to true in FileInfo constructor - info.setAttribute(EFS.ATTRIBUTE_OWNER_WRITE, false); - } - if ((st_mode & UnixFileFlags.S_IXUSR) != 0) { - info.setAttribute(EFS.ATTRIBUTE_OWNER_EXECUTE, true); - } - if ((st_mode & UnixFileFlags.S_IRGRP) != 0) { - info.setAttribute(EFS.ATTRIBUTE_GROUP_READ, true); - } - if ((st_mode & UnixFileFlags.S_IWGRP) != 0) { - info.setAttribute(EFS.ATTRIBUTE_GROUP_WRITE, true); - } - if ((st_mode & UnixFileFlags.S_IXGRP) != 0) { - info.setAttribute(EFS.ATTRIBUTE_GROUP_EXECUTE, true); - } - if ((st_mode & UnixFileFlags.S_IROTH) != 0) { - info.setAttribute(EFS.ATTRIBUTE_OTHER_READ, true); - } - if ((st_mode & UnixFileFlags.S_IWOTH) != 0) { - info.setAttribute(EFS.ATTRIBUTE_OTHER_WRITE, true); - } - if ((st_mode & UnixFileFlags.S_IXOTH) != 0) { - info.setAttribute(EFS.ATTRIBUTE_OTHER_EXECUTE, true); - } - return info; - } - -} diff --git a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileFlags.java b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileFlags.java deleted file mode 100644 index 5f834436f9e..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileFlags.java +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.filesystem.local.unix; - -public class UnixFileFlags { - - static { - PATH_MAX = UnixFileNatives.getFlag("PATH_MAX"); //$NON-NLS-1$ - S_IFMT = UnixFileNatives.getFlag("S_IFMT"); //$NON-NLS-1$ - S_IFLNK = UnixFileNatives.getFlag("S_IFLNK"); //$NON-NLS-1$ - S_IFDIR = UnixFileNatives.getFlag("S_IFDIR"); //$NON-NLS-1$ - S_IRUSR = UnixFileNatives.getFlag("S_IRUSR"); //$NON-NLS-1$ - S_IWUSR = UnixFileNatives.getFlag("S_IWUSR"); //$NON-NLS-1$ - S_IXUSR = UnixFileNatives.getFlag("S_IXUSR"); //$NON-NLS-1$ - S_IRGRP = UnixFileNatives.getFlag("S_IRGRP"); //$NON-NLS-1$ - S_IWGRP = UnixFileNatives.getFlag("S_IWGRP"); //$NON-NLS-1$ - S_IXGRP = UnixFileNatives.getFlag("S_IXGRP"); //$NON-NLS-1$ - S_IROTH = UnixFileNatives.getFlag("S_IROTH"); //$NON-NLS-1$ - S_IWOTH = UnixFileNatives.getFlag("S_IWOTH"); //$NON-NLS-1$ - S_IXOTH = UnixFileNatives.getFlag("S_IXOTH"); //$NON-NLS-1$ - UF_IMMUTABLE = UnixFileNatives.getFlag("UF_IMMUTABLE"); //$NON-NLS-1$ - SF_IMMUTABLE = UnixFileNatives.getFlag("SF_IMMUTABLE"); //$NON-NLS-1$ - } - - /** - * chars in a path name including nul - */ - public static final int PATH_MAX; - - /** - * bitmask for the file type bitfields - */ - public static final int S_IFMT; - /** - * symbolic link - */ - public static final int S_IFLNK; - /** - * directory - */ - public static final int S_IFDIR; - /** - * owner has read permission - */ - public static final int S_IRUSR; - /** - * owner has write permission - */ - public static final int S_IWUSR; - /** - * owner has execute permission - */ - public static final int S_IXUSR; - /** - * group has read permission - */ - public static final int S_IRGRP; - /** - * group has write permission - */ - public static final int S_IWGRP; - /** - * group has execute permission - */ - public static final int S_IXGRP; - /** - * others have read permission - */ - public static final int S_IROTH; - /** - * others have write permission - */ - public static final int S_IWOTH; - /** - * others have execute permission - */ - public static final int S_IXOTH; - - /** - * the file may not be changed - */ - public static final int UF_IMMUTABLE; - /** - * the file may not be changed - */ - public static final int SF_IMMUTABLE; - -} diff --git a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileHandler.java b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileHandler.java deleted file mode 100644 index c13ae00f851..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2012, 2015 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.core.internal.filesystem.local.unix; - -import org.eclipse.core.filesystem.IFileInfo; -import org.eclipse.core.filesystem.provider.FileInfo; -import org.eclipse.core.internal.filesystem.local.NativeHandler; - -/** - * Native handler that delegates to UnixFileNatives - */ -public class UnixFileHandler extends NativeHandler { - @Override - public int getSupportedAttributes() { - return UnixFileNatives.getSupportedAttributes(); - } - - @Override - public FileInfo fetchFileInfo(String fileName) { - return UnixFileNatives.fetchFileInfo(fileName); - } - - @Override - public boolean putFileInfo(String fileName, IFileInfo info, int options) { - return UnixFileNatives.putFileInfo(fileName, info, options); - } -} diff --git a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileNatives.java b/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileNatives.java deleted file mode 100644 index c69c79b2421..00000000000 --- a/resources/bundles/org.eclipse.core.filesystem/src/org/eclipse/core/internal/filesystem/local/unix/UnixFileNatives.java +++ /dev/null @@ -1,251 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2010, 2017 IBM Corporation and others. - * - * This program and the accompanying materials - * are made available under the terms of the Eclipse Public License 2.0 - * which accompanies this distribution, and is available at - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * IBM Corporation - initial API and implementation - * Sergey Prigogin (Google) - ongoing development - *******************************************************************************/ -package org.eclipse.core.internal.filesystem.local.unix; - -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.PATH_MAX; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.SF_IMMUTABLE; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IFLNK; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IFMT; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IRGRP; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IROTH; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IRUSR; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IWGRP; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IWOTH; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IWUSR; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IXGRP; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IXOTH; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.S_IXUSR; -import static org.eclipse.core.internal.filesystem.local.unix.UnixFileFlags.UF_IMMUTABLE; - -import java.io.File; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.Enumeration; -import org.eclipse.core.filesystem.EFS; -import org.eclipse.core.filesystem.IFileInfo; -import org.eclipse.core.filesystem.provider.FileInfo; -import org.eclipse.core.internal.filesystem.FileSystemAccess; -import org.eclipse.core.internal.filesystem.Messages; -import org.eclipse.core.internal.filesystem.Policy; -import org.eclipse.core.internal.filesystem.local.Convert; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.osgi.util.NLS; - -public abstract class UnixFileNatives { - private static final String LIBRARY_NAME = "unixfile_1_0_0"; //$NON-NLS-1$ - private static final int UNICODE_SUPPORTED = 1 << 0; - private static final int CHFLAGS_SUPPORTED = 1 << 1; - private static final int ENOENT = StructStat.ENOENT; // errno value for "No such file or directory" - - private static final boolean usingNatives; - private static final int libattr; - - static { - boolean _usingNatives = false; - int _libattr = 0; - try { - System.loadLibrary(LIBRARY_NAME); - _usingNatives = true; - initializeStructStatFieldIDs(); - _libattr = libattr(); - } catch (UnsatisfiedLinkError e) { - if (isLibraryPresent()) { - logMissingNativeLibrary(e); - } - } finally { - usingNatives = _usingNatives; - libattr = _libattr; - } - } - - private static boolean isLibraryPresent() { - String libName = System.mapLibraryName(LIBRARY_NAME); - Enumeration entries = FileSystemAccess.findEntries("/", libName, true); //$NON-NLS-1$ - return entries != null && entries.hasMoreElements(); - } - - private static void logMissingNativeLibrary(UnsatisfiedLinkError e) { - String libName = System.mapLibraryName(LIBRARY_NAME); - String message = NLS.bind(Messages.couldNotLoadLibrary, libName); - Policy.log(IStatus.INFO, message, e); - } - - public static int getSupportedAttributes() { - if (!usingNatives) { - return -1; - } - int ret = EFS.ATTRIBUTE_READ_ONLY | EFS.ATTRIBUTE_EXECUTABLE | EFS.ATTRIBUTE_SYMLINK | EFS.ATTRIBUTE_LINK_TARGET | EFS.ATTRIBUTE_OWNER_READ | EFS.ATTRIBUTE_OWNER_WRITE | EFS.ATTRIBUTE_OWNER_EXECUTE | EFS.ATTRIBUTE_GROUP_READ | EFS.ATTRIBUTE_GROUP_WRITE | EFS.ATTRIBUTE_GROUP_EXECUTE | EFS.ATTRIBUTE_OTHER_READ | EFS.ATTRIBUTE_OTHER_WRITE | EFS.ATTRIBUTE_OTHER_EXECUTE; - if (isSupported(CHFLAGS_SUPPORTED)) { - ret |= EFS.ATTRIBUTE_IMMUTABLE; - } - return ret; - } - - public static FileInfo fetchFileInfo(String fileName) { - FileInfo info = null; - byte[] name = fileNameToBytes(fileName); - StructStat stat = new StructStat(); - if (lstat(name, stat) == 0) { // return information about the link itself if the file is a symbolic link - if ((stat.st_mode & S_IFMT) == S_IFLNK) { // it a link! - if (stat(name, stat) == 0) { // get the information about the file the link points to - info = stat.toFileInfo(); // store the target file stats in info - } else { // invalid link target! - info = new FileInfo(); - if (getErrno() != ENOENT) { - info.setError(IFileInfo.IO_ERROR); - } - } - info.setAttribute(EFS.ATTRIBUTE_SYMLINK, true); // set symlink attribute - byte target[] = new byte[PATH_MAX]; - int length = readlink(name, target, target.length); - if (length > 0) { // set target of the link - info.setStringAttribute(EFS.ATTRIBUTE_LINK_TARGET, bytesToFileName(target, length)); - } - } else { // regular file or directory - info = stat.toFileInfo(); - } - } else { - info = new FileInfo(); - if (getErrno() != ENOENT) { - info.setError(IFileInfo.IO_ERROR); - } - } - - if (info.getName().isEmpty()) { - // If the file system is case insensitive, we don't know the real name of the file. - // Since obtaining the real name in such situation is pretty expensive, we use the name - // passed as a parameter, which may differ by case from the real name of the file - // if the file system is case insensitive. - File file = new File(fileName); - info.setName(file.getName()); - } - return info; - } - - public static boolean putFileInfo(String fileName, IFileInfo info, int options) { - int code = 0; - byte[] name = fileNameToBytes(fileName); - if (name == null) { - return false; - } - - // In case uchg flag is to be removed do it before calling chmod - if (!info.getAttribute(EFS.ATTRIBUTE_IMMUTABLE) && isSupported(CHFLAGS_SUPPORTED)) { - StructStat stat = new StructStat(); - if (stat(name, stat) == 0) { - long flags = stat.st_flags; - flags &= ~SF_IMMUTABLE; - flags &= ~UF_IMMUTABLE; - code |= chflags(name, (int) flags); - } - } - - // Change permissions - int mode = 0; - if (info.getAttribute(EFS.ATTRIBUTE_OWNER_READ)) { - mode |= S_IRUSR; - } - if (info.getAttribute(EFS.ATTRIBUTE_OWNER_WRITE)) { - mode |= S_IWUSR; - } - if (info.getAttribute(EFS.ATTRIBUTE_OWNER_EXECUTE)) { - mode |= S_IXUSR; - } - if (info.getAttribute(EFS.ATTRIBUTE_GROUP_READ)) { - mode |= S_IRGRP; - } - if (info.getAttribute(EFS.ATTRIBUTE_GROUP_WRITE)) { - mode |= S_IWGRP; - } - if (info.getAttribute(EFS.ATTRIBUTE_GROUP_EXECUTE)) { - mode |= S_IXGRP; - } - if (info.getAttribute(EFS.ATTRIBUTE_OTHER_READ)) { - mode |= S_IROTH; - } - if (info.getAttribute(EFS.ATTRIBUTE_OTHER_WRITE)) { - mode |= S_IWOTH; - } - if (info.getAttribute(EFS.ATTRIBUTE_OTHER_EXECUTE)) { - mode |= S_IXOTH; - } - code |= chmod(name, mode); - - // In case uchg flag is to be added do it after calling chmod - if (info.getAttribute(EFS.ATTRIBUTE_IMMUTABLE) && isSupported(CHFLAGS_SUPPORTED)) { - StructStat stat = new StructStat(); - if (stat(name, stat) == 0) { - long flags = stat.st_flags; - flags |= UF_IMMUTABLE; - code |= chflags(name, (int) flags); - } - } - return code == 0; - } - - public static boolean isUsingNatives() { - return usingNatives; - } - - public static int getErrno() { - return errno(); - } - - public static int getFlag(String flag) { - if (!usingNatives) { - return -1; - } - return getflag(flag.getBytes(StandardCharsets.US_ASCII)); - } - - private static byte[] fileNameToBytes(String fileName) { - if (isSupported(UNICODE_SUPPORTED)) { - return tounicode(fileName.toCharArray()); - } - return Convert.toPlatformBytes(fileName); - } - - private static String bytesToFileName(byte[] buf, int length) { - if (isSupported(UNICODE_SUPPORTED)) { - return new String(buf, 0, length); - } - return Convert.fromPlatformBytes(buf, length); - } - - private static boolean isSupported(int attr) { - return (libattr & attr) != 0; - } - - private static final native void initializeStructStatFieldIDs(); - - private static final native int chmod(byte[] path, int mode); - - private static final native int chflags(byte[] path, int flags); - - private static final native int stat(byte[] path, StructStat buf); - - private static final native int lstat(byte[] path, StructStat buf); - - private static final native int readlink(byte[] path, byte[] buf, long bufsiz); - - private static final native int errno(); - - private static final native int libattr(); - - private static final native byte[] tounicode(char[] buf); - - private static final native int getflag(byte[] buf); - -} diff --git a/resources/tests/org.eclipse.core.tests.filesystem.feature/feature.xml b/resources/tests/org.eclipse.core.tests.filesystem.feature/feature.xml index 1e9534590fd..3112e159e4e 100644 --- a/resources/tests/org.eclipse.core.tests.filesystem.feature/feature.xml +++ b/resources/tests/org.eclipse.core.tests.filesystem.feature/feature.xml @@ -25,9 +25,4 @@ arch="x86_64" version="0.0.0"/> - -