Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.egit.core/src/org/eclipse')
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/AdapterUtils.java38
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java3
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/SshPreferencesMirror.java18
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/Utils.java33
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties2
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/storage/GitFileHistory.java42
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/internal/util/ResourceUtil.java3
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java4
-rw-r--r--org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitSecureStore.java2
9 files changed, 46 insertions, 99 deletions
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/AdapterUtils.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/AdapterUtils.java
index d79d66cad8..d9cf678ac7 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/AdapterUtils.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/AdapterUtils.java
@@ -16,10 +16,8 @@ import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.Adapters;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.PlatformObject;
-import org.eclipse.egit.core.internal.Utils;
import org.eclipse.jgit.annotations.Nullable;
/**
@@ -32,32 +30,6 @@ public class AdapterUtils {
}
/**
- * Adapt object to given target class type
- *
- * @param object
- * @param target
- * @param <V> type of target
- * @return adapted
- */
- @Nullable
- public static <V> V adapt(Object object, Class<V> target) {
- if (object == null) {
- return null;
- }
- if (target.isInstance(object)) {
- return target.cast(object);
- }
- if (object instanceof IAdaptable) {
- V adapter = Utils.getAdapter(((IAdaptable) object), target);
- if (adapter != null || object instanceof PlatformObject) {
- return adapter;
- }
- }
- Object adapted = Platform.getAdapterManager().getAdapter(object, target);
- return target.cast(adapted);
- }
-
- /**
* Adapt object to one interface from list: {@link IResource},
* {@link IContainer}, {@link IFile} or {@link IProject}.
*
@@ -69,19 +41,19 @@ public class AdapterUtils {
if (object == null) {
return null;
}
- IResource resource = adapt(object, IResource.class);
+ IResource resource = Adapters.adapt(object, IResource.class);
if (resource != null) {
return resource;
}
- resource = adapt(object, IFile.class);
+ resource = Adapters.adapt(object, IFile.class);
if (resource != null) {
return resource;
}
- resource = adapt(object, IProject.class);
+ resource = Adapters.adapt(object, IProject.class);
if (resource != null) {
return resource;
}
- resource = adapt(object, IContainer.class);
+ resource = Adapters.adapt(object, IContainer.class);
if (resource != null) {
return resource;
}
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java
index 34246c7a72..ca62bc8392 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/CoreText.java
@@ -502,9 +502,6 @@ public class CoreText extends NLS {
public static String SubmoduleUpdateOperation_cloning;
/** */
- public static String Utils_InvalidAdapterError;
-
- /** */
public static String ValidationUtils_CanNotResolveRefMessage;
/** */
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/SshPreferencesMirror.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/SshPreferencesMirror.java
index dcfafbca3e..8c73aab60e 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/SshPreferencesMirror.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/SshPreferencesMirror.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (C) 2018, Thomas Wolf <thomas.wolf@paranor.ch>
+ * Copyright (C) 2018, 2019 Thomas Wolf <thomas.wolf@paranor.ch>
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -58,12 +58,18 @@ public class SshPreferencesMirror {
private String defaultMechanisms;
+ private boolean started;
+
private SshPreferencesMirror() {
// This is a singleton.
}
/** Starts mirroring the ssh preferences. */
public void start() {
+ if (started) {
+ return;
+ }
+ started = true;
preferences = InstanceScope.INSTANCE.getNode(PREFERENCES_NODE);
if (preferences != null) {
preferences.addPreferenceChangeListener(listener);
@@ -73,6 +79,7 @@ public class SshPreferencesMirror {
/** Stops mirroring the ssh preferences. */
public void stop() {
+ started = false;
if (preferences != null) {
preferences.removePreferenceChangeListener(listener);
}
@@ -168,8 +175,13 @@ public class SshPreferencesMirror {
return null;
}
return defaultIdentities.stream()
- .map(s -> new File(sshDir, s).toPath())
- .filter(Files::exists).collect(Collectors.toList());
+ .map(s -> {
+ File f = new File(s);
+ if (!f.isAbsolute()) {
+ f = new File(sshDir, s);
+ }
+ return f.toPath();
+ }).filter(Files::exists).collect(Collectors.toList());
}
}
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/Utils.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/Utils.java
index 82abd31c28..afbfab3dc6 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/Utils.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/Utils.java
@@ -17,7 +17,6 @@ import java.io.IOException;
import java.text.MessageFormat;
import java.util.Collection;
-import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.egit.core.Activator;
import org.eclipse.jgit.annotations.NonNull;
@@ -96,38 +95,6 @@ public class Utils {
}
/**
- * Returns the adapter corresponding to the given adapter class.
- * <p>
- * Workaround for "Unnecessary cast" errors, see bug 460685. Can be removed
- * when EGit depends on Eclipse 4.5 or higher.
- *
- * @param adaptable
- * the adaptable
- * @param adapterClass
- * the adapter class to look up
- * @return a object of the given class, or <code>null</code> if this object
- * does not have an adapter for the given class
- */
- public static <T> T getAdapter(IAdaptable adaptable, Class<T> adapterClass) {
- Object adapter = adaptable.getAdapter(adapterClass);
- if (adapter == null) {
- return null;
- }
- // Guard against misbehaving IAdaptables...
- if (adapterClass.isInstance(adapter)) {
- return adapterClass.cast(adapter);
- } else {
- Activator.logError(
- MessageFormat.format(CoreText.Utils_InvalidAdapterError,
- adaptable.getClass().getName(),
- adapterClass.getName(),
- adapter.getClass().getName()),
- new IllegalStateException());
- return null;
- }
- }
-
- /**
* Validates a given ref name, including testing whether a ref with that
* name already exists, or if the name conflicts with an already existing
* ref.
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties
index 432624ae0a..6a8251df47 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/coretext.properties
@@ -204,8 +204,6 @@ MergeStrategy_ReservedName=The strategy name {0} is reserved by JGit for class {
SubmoduleUpdateOperation_updating=Updating submodules in {0}
SubmoduleUpdateOperation_cloning=Updating submodules in {0}: cloning submodule {1}
-Utils_InvalidAdapterError={0}.getAdapter({1}.class) returned an object of type {2}, which is not of the requested type. Please ask the provider of {0} to fix this bug in their code.
-
ValidationUtils_CanNotResolveRefMessage=Cannot resolve {0}
ValidationUtils_InvalidRefNameMessage={0} is not a valid name for a ref
ValidationUtils_InvalidRevision=Invalid revision {0}
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/storage/GitFileHistory.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/storage/GitFileHistory.java
index a076b542b9..842a2f3ca8 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/storage/GitFileHistory.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/storage/GitFileHistory.java
@@ -18,11 +18,11 @@ import java.util.Collections;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.Adapters;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.egit.core.Activator;
import org.eclipse.egit.core.internal.CoreText;
-import org.eclipse.egit.core.internal.Utils;
import org.eclipse.egit.core.project.RepositoryMapping;
import org.eclipse.egit.core.synchronize.GitRemoteResource;
import org.eclipse.jgit.errors.IncorrectObjectTypeException;
@@ -211,33 +211,35 @@ class GitFileHistory extends FileHistory implements IAdaptable {
}
private String getGitPath(IFileRevision revision) {
- if (revision instanceof CommitFileRevision)
+ if (revision instanceof CommitFileRevision) {
return ((CommitFileRevision) revision).getGitPath();
- else if (revision instanceof IAdaptable) {
- final IResourceVariant variant = Utils.getAdapter(((IAdaptable) revision), IResourceVariant.class);
-
- if (variant instanceof GitRemoteResource)
- return ((GitRemoteResource) variant).getPath();
}
+ IResourceVariant variant = Adapters.adapt(revision,
+ IResourceVariant.class);
+ if (variant instanceof GitRemoteResource) {
+ return ((GitRemoteResource) variant).getPath();
+ }
return null;
}
private RevCommit getRevCommit(IFileRevision revision) {
- if (revision instanceof CommitFileRevision)
+ if (revision instanceof CommitFileRevision) {
return ((CommitFileRevision) revision).getRevCommit();
- else if (revision instanceof IAdaptable) {
- final IResourceVariant variant = Utils.getAdapter(((IAdaptable) revision), IResourceVariant.class);
- if (variant instanceof GitRemoteResource) {
- final RevCommit commit = ((GitRemoteResource) variant)
- .getCommitId();
- try {
- return walk.parseCommit(commit);
- } catch (IOException e) {
- Activator.logError(NLS.bind(
- CoreText.GitFileHistory_invalidCommit,
- commit.getName(), resource.getName()), e);
- }
+ }
+ IResourceVariant variant = Adapters.adapt(revision,
+ IResourceVariant.class);
+ if (variant instanceof GitRemoteResource) {
+ final RevCommit commit = ((GitRemoteResource) variant)
+ .getCommitId();
+ try {
+ return walk.parseCommit(commit);
+ } catch (IOException e) {
+ Activator
+ .logError(
+ NLS.bind(CoreText.GitFileHistory_invalidCommit,
+ commit.getName(), resource.getName()),
+ e);
}
}
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/util/ResourceUtil.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/util/ResourceUtil.java
index 3172693260..e2a62e6fcc 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/util/ResourceUtil.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/internal/util/ResourceUtil.java
@@ -648,8 +648,7 @@ public class ResourceUtil {
}
final ResourceMapping[] modelMappings = model.getMappings(
resource, context, new NullProgressMonitor());
- for (ResourceMapping mapping : modelMappings)
- mappings.add(mapping);
+ mappings.addAll(Arrays.asList(modelMappings));
}
} catch (CoreException e) {
Activator.logError(e.getMessage(), e);
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java
index 56f7f8096d..425ab69850 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/project/GitProjectData.java
@@ -38,6 +38,7 @@ import org.eclipse.core.resources.IResourceChangeListener;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.resources.IResourceDeltaVisitor;
import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Adapters;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -52,7 +53,6 @@ import org.eclipse.egit.core.Activator;
import org.eclipse.egit.core.GitCorePreferences;
import org.eclipse.egit.core.JobFamilies;
import org.eclipse.egit.core.internal.CoreText;
-import org.eclipse.egit.core.internal.Utils;
import org.eclipse.egit.core.internal.trace.GitTraceLocation;
import org.eclipse.egit.core.internal.util.ResourceUtil;
import org.eclipse.jgit.annotations.NonNull;
@@ -667,7 +667,7 @@ public class GitProjectData {
if (r instanceof IContainer) {
c = (IContainer) r;
} else if (r != null) {
- c = Utils.getAdapter(r, IContainer.class);
+ c = Adapters.adapt(r, IContainer.class);
}
if (c == null) {
diff --git a/org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitSecureStore.java b/org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitSecureStore.java
index 38995c2173..9c50d46937 100644
--- a/org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitSecureStore.java
+++ b/org.eclipse.egit.core/src/org/eclipse/egit/core/securestorage/EGitSecureStore.java
@@ -120,7 +120,7 @@ public class EGitSecureStore {
return;
ISecurePreferences node = preferences.node(pathName);
node.removeNode();
- node.flush();
+ preferences.flush();
}
}

Back to the top