From 8349540175a8ae89ff908bf20f11e357c3def3b9 Mon Sep 17 00:00:00 2001 From: nsingh Date: Sat, 7 Jan 2017 13:57:05 -0800 Subject: [PATCH] Added missing CF target files --- .../{target => cftarget}/CFClientParams.java | 4 +- .../CFClientParamsFactory.java | 2 +- .../client/cftarget/CFClientTarget.java | 68 +++++++++++++++++++ .../client/cftarget/CFClientTargets.java | 57 ++++++++++++++++ .../{target => cftarget}/CFCredentials.java | 2 +- .../CfCliParamsProvider.java | 2 +- .../client/v2/CloudFoundryClientCache.java | 2 +- .../client/v2/CloudFoundryClientFactory.java | 2 +- .../client/v2/DefaultClientRequestsV2.java | 2 +- .../DefaultCloudFoundryClientFactoryV2.java | 2 +- .../cloudfoundry/client/CFClientTest.java | 6 +- .../ManifestYamlCFBuildpacksProvider.java | 2 +- .../yaml/ManifestYamlCFServicesProvider.java | 2 +- .../yaml/ManifestYamlLanguageServer.java | 6 +- 14 files changed, 142 insertions(+), 17 deletions(-) rename vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/{target => cftarget}/CFClientParams.java (98%) rename vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/{target => cftarget}/CFClientParamsFactory.java (99%) create mode 100644 vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTarget.java create mode 100644 vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTargets.java rename vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/{target => cftarget}/CFCredentials.java (99%) rename vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/{target => cftarget}/CfCliParamsProvider.java (99%) diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFClientParams.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientParams.java similarity index 98% rename from vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFClientParams.java rename to vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientParams.java index 479f7b65b..898475647 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFClientParams.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientParams.java @@ -8,13 +8,13 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.ide.vscode.commons.cloudfoundry.client.target; +package org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget; import java.net.URI; import java.util.logging.Level; import java.util.logging.Logger; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFCredentials.CFCredentialType; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFCredentials.CFCredentialType; import org.springframework.ide.vscode.commons.util.Assert; /** diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFClientParamsFactory.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientParamsFactory.java similarity index 99% rename from vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFClientParamsFactory.java rename to vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientParamsFactory.java index ecbecbd9e..29a1f9a5d 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFClientParamsFactory.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientParamsFactory.java @@ -8,7 +8,7 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.ide.vscode.commons.cloudfoundry.client.target; +package org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget; import java.util.ArrayList; import java.util.List; diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTarget.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTarget.java new file mode 100644 index 000000000..e8c16c20d --- /dev/null +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTarget.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * Copyright (c) 2017 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget; + +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.springframework.ide.vscode.commons.cloudfoundry.client.CFBuildpack; +import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.ClientRequests; + +public class CFClientTarget { + + private final CFClientParams params; + private final ClientRequests requests; + private final String targetName; + + /* + * Cached information + */ + private List buildpacks; + private final static Logger logger = Logger.getLogger(CFClientTarget.class.getName()); + + public CFClientTarget(CFClientParams params, ClientRequests requests, String targetName) { + this.params = params; + this.requests = requests; + this.targetName = targetName; + } + + public CFClientParams getParams() { + return params; + } + + + public List getBuildpacks() { + if (buildpacks == null) { + try { + buildpacks=getClientRequests().getBuildpacks(); + } catch (Exception e) { + logger .log(Level.SEVERE, e.getMessage(), e); + } + } + return buildpacks; + } + + public ClientRequests getClientRequests() { + return requests; + } + + public String getName() { + return this.targetName; + } + + @Override + public String toString() { + return "CFClientTarget [params=" + params + ", targetName=" + targetName + "]"; + } + + +} diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTargets.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTargets.java new file mode 100644 index 000000000..9ad097426 --- /dev/null +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFClientTargets.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * Copyright (c) 2017 Pivotal, Inc. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Pivotal, Inc. - initial API and implementation + *******************************************************************************/ +package org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.ClientRequests; +import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.CloudFoundryClientFactory; + +public class CFClientTargets { + + private final CFClientParamsFactory paramsFactory; + private final CloudFoundryClientFactory clientFactory; + + public CFClientTargets(CFClientParamsFactory paramsFactory, CloudFoundryClientFactory clientFactory) { + this.paramsFactory = paramsFactory; + this.clientFactory = clientFactory; + } + + public List getTargets() throws Exception { + List allParams = paramsFactory.getParams(); + List targets = new ArrayList<>(); + if (allParams != null) { + for (CFClientParams parameters : allParams) { + ClientRequests requests = clientFactory.getClient(parameters); + if (requests != null) { + targets.add(new CFClientTarget(parameters, requests, getTargetName(parameters))); + } + } + } + return targets; + } + + protected String getTargetName(CFClientParams params) { + return labelFromCfApi(params.getApiUrl()); + } + + public static String labelFromCfApi(String cfApiUrl) { + if (cfApiUrl.startsWith("https://")) { + return cfApiUrl.substring("https://".length()); + } else if (cfApiUrl.startsWith("http://")) { + return cfApiUrl.substring("http://".length()); + } else { + return cfApiUrl; + } + } + +} diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFCredentials.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFCredentials.java similarity index 99% rename from vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFCredentials.java rename to vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFCredentials.java index 7ed2be42c..ad6ab118f 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CFCredentials.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CFCredentials.java @@ -8,7 +8,7 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.ide.vscode.commons.cloudfoundry.client.target; +package org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget; import org.springframework.ide.vscode.commons.cloudfoundry.client.LoginMethod; import org.springframework.ide.vscode.commons.util.Assert; diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CfCliParamsProvider.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CfCliParamsProvider.java similarity index 99% rename from vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CfCliParamsProvider.java rename to vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CfCliParamsProvider.java index c56a8b36a..d12b12a0b 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/target/CfCliParamsProvider.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/cftarget/CfCliParamsProvider.java @@ -8,7 +8,7 @@ * Contributors: * Pivotal, Inc. - initial API and implementation *******************************************************************************/ -package org.springframework.ide.vscode.commons.cloudfoundry.client.target; +package org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget; import java.io.File; import java.io.IOException; diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientCache.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientCache.java index e12b171b8..c6ef40ef7 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientCache.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientCache.java @@ -26,7 +26,7 @@ import org.cloudfoundry.reactor.tokenprovider.OneTimePasscodeTokenProvider; import org.cloudfoundry.reactor.tokenprovider.PasswordGrantTokenProvider; import org.cloudfoundry.reactor.tokenprovider.RefreshTokenGrantTokenProvider; import org.cloudfoundry.reactor.uaa.ReactorUaaClient; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFCredentials; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFCredentials; /** * TODO: Remove this class when the 'thread leak bug' in V2 client is fixed. diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientFactory.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientFactory.java index f54a993ae..89e5a9d68 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientFactory.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/CloudFoundryClientFactory.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.springframework.ide.vscode.commons.cloudfoundry.client.v2; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientParams; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientParams; public interface CloudFoundryClientFactory { diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultClientRequestsV2.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultClientRequestsV2.java index 57c7474db..c5029df97 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultClientRequestsV2.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultClientRequestsV2.java @@ -78,7 +78,7 @@ import org.springframework.ide.vscode.commons.cloudfoundry.client.CFSpace; import org.springframework.ide.vscode.commons.cloudfoundry.client.CFStack; import org.springframework.ide.vscode.commons.cloudfoundry.client.SshClientSupport; import org.springframework.ide.vscode.commons.cloudfoundry.client.SshHost; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientParams; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientParams; import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.CancelationTokens.CancelationToken; import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.CloudFoundryClientCache.CFClientProvider; import org.springframework.ide.vscode.commons.util.ExceptionUtil; diff --git a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultCloudFoundryClientFactoryV2.java b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultCloudFoundryClientFactoryV2.java index 312f69f0a..5eb6f09c6 100644 --- a/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultCloudFoundryClientFactoryV2.java +++ b/vscode-extensions/commons/commons-cf/src/main/java/org/springframework/ide/vscode/commons/cloudfoundry/client/v2/DefaultCloudFoundryClientFactoryV2.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.springframework.ide.vscode.commons.cloudfoundry.client.v2; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientParams; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientParams; public class DefaultCloudFoundryClientFactoryV2 implements CloudFoundryClientFactory { diff --git a/vscode-extensions/commons/commons-cf/src/test/java/org/springframework/ide/vscode/commons/cloudfoundry/client/CFClientTest.java b/vscode-extensions/commons/commons-cf/src/test/java/org/springframework/ide/vscode/commons/cloudfoundry/client/CFClientTest.java index 7e2982a7d..e97ba8edc 100644 --- a/vscode-extensions/commons/commons-cf/src/test/java/org/springframework/ide/vscode/commons/cloudfoundry/client/CFClientTest.java +++ b/vscode-extensions/commons/commons-cf/src/test/java/org/springframework/ide/vscode/commons/cloudfoundry/client/CFClientTest.java @@ -16,9 +16,9 @@ import java.util.List; import org.junit.Ignore; import org.junit.Test; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientParamsFactory; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientTarget; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientTargets; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientParamsFactory; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientTarget; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientTargets; import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.CloudFoundryClientFactory; import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.DefaultCloudFoundryClientFactoryV2; diff --git a/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFBuildpacksProvider.java b/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFBuildpacksProvider.java index 21ebd3e3c..881257a7c 100644 --- a/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFBuildpacksProvider.java +++ b/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFBuildpacksProvider.java @@ -19,7 +19,7 @@ import java.util.logging.Logger; import javax.inject.Provider; import org.springframework.ide.vscode.commons.cloudfoundry.client.CFBuildpack; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientTarget; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientTarget; import org.springframework.ide.vscode.commons.yaml.schema.BasicYValueHint; import org.springframework.ide.vscode.commons.yaml.schema.YValueHint; diff --git a/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java b/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java index b80b1377b..47f448a20 100644 --- a/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java +++ b/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlCFServicesProvider.java @@ -19,7 +19,7 @@ import java.util.logging.Logger; import javax.inject.Provider; import org.springframework.ide.vscode.commons.cloudfoundry.client.CFServiceInstance; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientTarget; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientTarget; import org.springframework.ide.vscode.commons.yaml.schema.BasicYValueHint; import org.springframework.ide.vscode.commons.yaml.schema.YValueHint; diff --git a/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java b/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java index c52d606cc..0ba971359 100644 --- a/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java +++ b/vscode-extensions/vscode-manifest-yaml/src/main/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlLanguageServer.java @@ -10,9 +10,9 @@ import javax.inject.Provider; import org.eclipse.lsp4j.CompletionOptions; import org.eclipse.lsp4j.ServerCapabilities; import org.eclipse.lsp4j.TextDocumentSyncKind; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientParamsFactory; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientTarget; -import org.springframework.ide.vscode.commons.cloudfoundry.client.target.CFClientTargets; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientParamsFactory; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientTarget; +import org.springframework.ide.vscode.commons.cloudfoundry.client.cftarget.CFClientTargets; import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.CloudFoundryClientFactory; import org.springframework.ide.vscode.commons.cloudfoundry.client.v2.DefaultCloudFoundryClientFactoryV2; import org.springframework.ide.vscode.commons.languageserver.completion.VscodeCompletionEngine;