Added missing CF target files

This commit is contained in:
nsingh
2017-01-07 13:57:05 -08:00
parent 3c021fc2ae
commit 8349540175
14 changed files with 142 additions and 17 deletions

View File

@@ -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;
/**

View File

@@ -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;

View File

@@ -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<CFBuildpack> 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<CFBuildpack> 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 + "]";
}
}

View File

@@ -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<CFClientTarget> getTargets() throws Exception {
List<CFClientParams> allParams = paramsFactory.getParams();
List<CFClientTarget> 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;
}
}
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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.

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;