Hi Team,
This is my java code which trying to connect to Capella instance using
SSL/TLs
ERROR:
1. The method connect(String, ClusterOptions) is undefined for the type
Cluster
2. The method queryIndexes() is undefined for the type Cluster
3. The method createPrimaryQueryIndexOptions() is undefined for the type
CoachbaseSecurity
JAVA CODE:
package cb;
import java.time.Duration;
import java.util.Collections;
import java.util.List;
import com.couchbase.client.core.error.DocumentNotFoundException;
import com.couchbase.client.java.Bucket;
//import com.couchbase.client.vbucket.config.Bucket;
import com.couchbase.client.java.Collection;
import com.couchbase.client.java.Scope;
import com.tibco.be.model.functions.BEPackage;
import com.couchbase.client.java.env.ClusterEnvironment;
import com.couchbase.client.java.json.JsonArray;
import com.couchbase.client.java.json.JsonObject;
import com.couchbase.client.java.query.QueryResult;
import com.couchbase.client.java.query.QueryScanConsistency;
import
com.couchbase.client.core.deps.io.netty.handler.ssl.util.InsecureTrustManagerFactory;
import com.couchbase.client.core.env.IoConfig;
import com.couchbase.client.core.env.SecurityConfig;
import com.couchbase.client.java.ClusterOptions;
import java.security.KeyStore;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import
com.couchbase.client.java.manager.query.CreatePrimaryQueryIndexOptions;
import com.couchbase.client.java.query.QueryOptions;
import static com.couchbase.client.java.query.QueryOptions.queryOptions;
@BEPackage(catalog = "VendorGatewayFunctions", category = "CB.Connect",
synopsis = "coachbase")
public class CoachbaseSecurity {
public static void main(String[] args) {
// Update these variables to point to your Couchbase Capella
instance and credentials.
String endpoint =
"couchbases://cb.dztziqcneqe9ilcn.cloud.couchbase.com";
String bucketname = "travel-sample";
String username = "tibcofinder";
String password = "Krish234$";
String tlsCertificate = "-----BEGIN CERTIFICATE-----\n"
+"MIIDFTCCAf2gAwIBAgIRANLVkgOvtaXiQJi0V6qeNtswDQYJKoZIhvcNAQELBQAwJDESMBAGA1UECgwJQ291Y2hiYXNlMQ4wDAYDVQQLDAVDbG91ZDAeFw0xOTEyMDYyMjEyNTlaFw0yOTEyMDYyMzEyNTlaMCQxEjAQBgNVBAoMCUNvdWNoYmFzZTEOMAwGA1UECwwFQ2xvdWQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfvOIienG4Dp+hJu9asdxEMRmH70hDyMXv5ZjBhbo39a42QwR59y/rC/sahLLQuNwqif85Fod1DkqgO6Ng3vecSAwyYVkj5NKdycQu5tzsZkghlpSDAyI0xlIPSQjoORA/pCOUWOpymA9dOjC1bo6rDyw0yWP2nFAI/KA4Z806XeqLREuB7292UnSsgFs4/5lqeil6rL3ooAw/i0uxr/TQSaxi1l8t4iMt4/gU+W52+8Yol0JbXBTFX6itg62ppb/EugmnmQRMgL67ccZs7cJ9/A0wlXencX2ohZQOR3mtknfol3FH4+glQFn27Q4xBCzVkY9jKQ20T1LgmGSngBInAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJQOBPvrkU2In1Sjoxt97Xy8+cKNMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEARgM6XwcXPLSpFdSf0w8PtpNGehmdWijPM3wHb7WZiS47iNen3oq8m2mm6V3Z57wbboPpfI+VEzbhiDcFfVnK1CXMC0tkF3fnOG1BDDvwt4jU95vBiNjYxdzlTP/Z+qr0cnVbGBSZ+fbXstSiRaaAVcqQyv3BRvBadKBkCyPwo+7svQnScQ5PJs7HEHKVms5tZTgKIw1fbmgR2XHleah1AcANB+MAPBCcTgqurqr5G7W2aPSBLLGAfRIiVzm7VFLc7kWbp7ENH39HVG6TZzKnfl9zJYeiklo5vQQhGSMhzBsO70z4RRziDPFAN/4qZAgD5q3AFNIq2WWADFQGSwVJhg=="+
"-----END CERTIFICATE-----";
// User Input ends here.
// Configure TLS
List<X509Certificate> cert =
SecurityConfig.decodeCertificates(Collections.singletonList(tlsCertificate));
SecurityConfig.Builder securityConfig = SecurityConfig
.enableTls(true) // Enable transport security
.trustCertificates(cert); // Configure the cloud certificate
// During development, if you want to trust all certificates you
can connect
// to your cloud like with the InsecureTrustManagerFactory. As
the name points
// out, this is INSECURE!
// .trustManagerFactory(InsecureTrustManagerFactory.INSTANCE)
// Build the environment with the TLS config
ClusterEnvironment env = ClusterEnvironment
.builder()
.securityConfig(securityConfig)
.build();
// Initialize the Connection
Cluster cluster = Cluster.connect(endpoint,
ClusterOptions.clusterOptions(username, password).environment(env));
Bucket bucket = cluster.bucket(bucketname);
bucket.waitUntilReady(Duration.parse("PT10S")) ;
Collection collection = bucket.defaultCollection();
// Create a JSON Document
JsonObject arthur = JsonObject.create()
.put("name", "Laxmi")
.put("email", "[email protected]")
.put("interests", JsonArray.from("Holy Grail", "African
Swallows"));
// Store the Document
collection.upsert("u:king_arthur", arthur);
// Load the Document and print it
// Prints Content and Metadata of the stored Document
System.out.println(collection.get("u:king_arthur"));
// Create a N1QL Primary Index
cluster.queryIndexes().createPrimaryIndex(
bucketname,
createPrimaryQueryIndexOptions().ignoreIfExists(true)
);
// Perform a N1QL Query
QueryResult result = cluster.query(
"SELECT name FROM " + bucketname + " WHERE $1 IN interests",
queryOptions()
.parameters(JsonArray.from("African Swallows"))
.scanConsistency(QueryScanConsistency.REQUEST_PLUS)
);
// Print each found Row
for (JsonObject row : result.rowsAsObject()) {
System.out.println("Query row: " + row);
}
}
Bucket bucket(String bucketName) {
// TODO Auto-generated method stub
return null;
}
}
--
You received this message because you are subscribed to the Google Groups
"Couchbase" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/couchbase/ebad1a4b-644c-47b2-9851-4b596b7731een%40googlegroups.com.