{"id":1965,"date":"2015-10-19T07:33:06","date_gmt":"2015-10-19T07:33:06","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1965"},"modified":"2024-09-12T01:02:46","modified_gmt":"2024-09-12T08:02:46","slug":"javasdk-2-2-ga","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/javasdk-2-2-ga\/","title":{"rendered":"Anuncio de la disponibilidad general de Java SDK 2.2"},"content":{"rendered":"<p>En nombre del equipo del SDK, tengo el gran placer de anunciar que la versi\u00f3n del SDK de Java <code>2.2<\/code> \u00a1ya es GA!<\/p>\n<p>Esta versi\u00f3n est\u00e1 repleta de mejoras y correcciones de errores. En primer lugar, ofrece compatibilidad con todas las novedades de nuestro nuevo <a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/t\/couchbase-server-4-0-is-now-ga\/5374\/\"><code>Servidor Couchbase 4.0<\/code><\/a> pone sobre la mesa.<\/p>\n<p>Gracias a los comentarios y despu\u00e9s de bastantes iteraciones (no hab\u00eda <a href=\"https:\/\/www.couchbase.com\/blog\/es\/javasdk-2.2-dp\/\">un<\/a> pero <a href=\"https:\/\/www.couchbase.com\/blog\/es\/java-sdk-2.2.0-developer-preview-refresh\/\">dos<\/a> Developer Previews para esta versi\u00f3n), ahora tenemos un amplio conjunto de mejoras para aprovechar al migrar de <code>2.0<\/code>\/<code>2.1<\/code> a <code>2.2<\/code>.<\/p>\n<p>V\u00e9ase el <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/java-2.2\/release-notes.html\">notas de la versi\u00f3n<\/a> para consultar la lista completa de cambios, pero aqu\u00ed tiene un resumen:<\/p>\n<ul>\n<li>Cambio de observables en caliente a <a href=\"#cold\">fr\u00edos<\/a><\/li>\n<li>Soporte ampliado para <a href=\"#mds\">N1QL y el escalado multidimensional<\/a> (MDS)<\/li>\n<li><a href=\"#durability\">Mayor durabilidad<\/a> soporte<\/li>\n<li>Mejoras de la compatibilidad con <a href=\"#metrics\">m\u00e9tricas<\/a><\/li>\n<li>Simple <a href=\"#odm\">ODM<\/a><\/li>\n<li>Sincronizaci\u00f3n y asincronizaci\u00f3n <a href=\"#api\">Mejoras de la API<\/a><\/li>\n<li><a href=\"#misc\">Varios<\/a> (cambios de nombres, actualizaciones de dependencias)<\/li>\n<\/ul>\n<p>Para obtener esta versi\u00f3n, s\u00f3lo tiene que actualizar su <code>pom.xml<\/code> (o descargar el <a href=\"https:\/\/packages.couchbase.com\/clients\/java\/2.2.0\/Couchbase-Java-Client-2.2.0.zip\" target=\"_blank\" rel=\"noopener noreferrer\">archivo<\/a>):<\/p>\n<pre><code>\r\n    \r\n        com.couchbase.client\r\n        java-client\r\n        2.2.0\r\n    \r\n\r\n<\/code><\/pre>\n<p>Tambi\u00e9n puede consultar <a href=\"https:\/\/docs.couchbase.com\/sdk-api\/couchbase-java-client-2.2.0\/\">javadocs<\/a> y <a href=\"https:\/\/developer.couchbase.com\/documentation\/server\/4.0\/sdks\/java-2.2\/java-intro.html\">Documentaci\u00f3n del SDK<\/a> para este comunicado.<\/p>\n<h2>Novedades<\/h2>\n<h3><a id=\"mds\" name=\"mds\"><\/a>Soporte N1QL y MDS<\/h3>\n<p>El SDK se ha ajustado para que funcione a la perfecci\u00f3n con <code>Servidor Couchbase 4.0<\/code>:<\/p>\n<ul>\n<li>Explora un DSL completo para trabajar con N1QL y realizar SELECT as\u00ed como trabajar con \u00edndices.<\/li>\n<li>Deje que el SDK y el servicio de consultas optimicen las consultas que ejecuta con frecuencia utilizando la funci\u00f3n <code>adhoc(false)<\/code> afinaci\u00f3n de <code>N1qlPar\u00e1metros<\/code> en ti <code>N1qlQuery<\/code>.<\/li>\n<li>Conf\u00ede en el SDK para conocer su <code>MDS<\/code> grupo (<code>Escalado multidimensional<\/code>la posibilidad de que los nodos tengan habilitados diferentes servicios, lo que permite escalar los nodos en funci\u00f3n de sus necesidades, por ejemplo, m\u00e1s RAM para los nodos de datos, m\u00e1s CPU para los nodos de consulta).<\/li>\n<\/ul>\n<p><strong>Acerca de la optimizaci\u00f3n de consultas<\/strong>: se trata de una sustituci\u00f3n del <code>prepare<\/code> API en previsualizaciones para desarrolladores. No es necesario aferrarse a una <code>Carga preparada<\/code> o <code>Plan de consulta<\/code>. Marcar una consulta para su optimizaci\u00f3n mediante <code>N1qlPar\u00e1metros<\/code>'s <code>adhoc(false)<\/code>\u00a0utilizar\u00e1 internamente la funci\u00f3n de sentencias preparadas del motor de consultas, almacenando en cach\u00e9 hasta 5000 planes de ejecuci\u00f3n para una ejecuci\u00f3n m\u00e1s r\u00e1pida.<\/p>\n<h3><a id=\"durability\" name=\"durability\"><\/a>Mayor durabilidad<\/h3>\n<p>Otra posibilidad introducida en <code>Servidor Couchbase 4.0<\/code> es la durabilidad mejorada. La idea es que, en lugar de utilizar CAS para comprobar la persistencia y replicaci\u00f3n correctas de los datos, se puede utilizar un algoritmo de granularidad m\u00e1s fina. <code>MutationToken<\/code> puede ser emitido por el servidor con cada mutaci\u00f3n y utilizado para la observaci\u00f3n de la durabilidad.<\/p>\n<p>Permite asegurar que una mutaci\u00f3n espec\u00edfica ha sido vista en una r\u00e9plica incluso si se realiza una nueva mutaci\u00f3n mientras tanto (cambiando de nuevo el CAS en el maestro y la r\u00e9plica). Tambi\u00e9n permite una detecci\u00f3n de estado m\u00e1s correcta si se ha desencadenado un hard failover en el cluster.<\/p>\n<p>Para activar esta funci\u00f3n en el <code>CouchbaseEnvironment<\/code> utilizar el <code>mutationTokensEnabled(true)<\/code> m\u00e9todo.<\/p>\n<p><strong>Nota<\/strong> Esto implica que el servidor env\u00eda bytes adicionales en cada respuesta de mutaci\u00f3n, por lo que conlleva una ligera sobrecarga y, por tanto, est\u00e1 desactivado por defecto.<\/p>\n<h3><a id=\"metrics\" name=\"metrics\"><\/a>M\u00e9tricas<\/h3>\n<p>\u00bfQu\u00e9 est\u00e1 pasando dentro del SDK? \u00bfCu\u00e1l es la salud de mi JVM? \u00bfEsas latencias se deben a los viajes de ida y vuelta de la red o est\u00e1n ocurriendo en el SDK?<\/p>\n<p>Todas estas preguntas y muchas m\u00e1s encuentran respuesta en la nueva funci\u00f3n M\u00e9tricas.<\/p>\n<p><code>Tiempo de ejecuci\u00f3n<\/code> y <code>Latencia<\/code> Las m\u00e9tricas se recopilan todo el tiempo y se vuelcan regularmente al <code>EventBus<\/code> (an <code>Observable<\/code> ), por defecto cada hora. Adem\u00e1s de cambiar el intervalo para el volcado, se puede configurar f\u00e1cilmente un consumidor para estos eventos m\u00e9tricos que los registre.<\/p>\n<p>Eche un vistazo a la documentaci\u00f3n para descubrir todos sus detalles :)<\/p>\n<h3><a id=\"odm\" name=\"odm\"><\/a>ODM simple con API de repositorio<\/h3>\n<p>Estamos explorando la ODM (<code>Correspondencia objeto-documento<\/code>) en forma de <code>Repositorio<\/code> que permite almacenar clases Entity directamente, siempre que sean lo suficientemente simples (por ejemplo, por ahora necesita un constructor vac\u00edo) y est\u00e9n anotadas con <code>@Documento<\/code>, <code>@Id<\/code> y <code>@Campo<\/code>.<\/p>\n<h2><a id=\"cold\" name=\"cold\"><\/a>De los observables calientes a los fr\u00edos<\/h2>\n<p>Esto supone un cambio importante en el comportamiento del <code>async<\/code> API. En <code>RxJava<\/code>, a <strong>caliente<\/strong> <code>Observable<\/code> emitir\u00e1 datos tanto si alguien est\u00e1 escuchando\/suscribi\u00e9ndose como si no, y siempre servir\u00e1 los mismos datos a los nuevos suscriptores.<\/p>\n<p>Este era el comportamiento de los Observables del SDK de Couchbase anteriormente. Esto significaba que si <strong>necesario<\/strong> nuevas suscripciones para desencadenar una nueva operaci\u00f3n en la base de datos (<em>por ejemplo en el contexto de <code>reintentar<\/code><\/em>), ten\u00eda que envolver su llamada en una llamada <code>Observable.defer()<\/code>.<\/p>\n<p>De lo contrario, todos los reintentos ver\u00edan el mismo primer resultado, por ejemplo un <code>TemporaryFailureException<\/code>.<\/p>\n<p>En <code>2.2<\/code> en adelante, el comportamiento por defecto es tener <strong>fr\u00edo<\/strong> <code>Observable<\/code>s, lo que significa que la envoltura en <code>aplazar<\/code> es ahora redundante. Todas las llamadas al SDK funcionar\u00e1n sin problemas con <code>RxJava<\/code>'s <code>reintentar<\/code> sem\u00e1ntica.<\/p>\n<p>A menos que expl\u00edcitamente <code>subscribe()<\/code> a un <code>Observable<\/code> devuelto por el SDK, no se activa ninguna interacci\u00f3n con la base de datos. Este es un enfoque m\u00e1s perezoso de \"no hacer nada hasta que sea necesario\" que tambi\u00e9n es beneficioso al declarar flujos de retorno (como con <code>Observable#onErrorReanudarSiguiente()<\/code>).<\/p>\n<h2><a id=\"api\" name=\"api\"><\/a>Mejoras de la API<\/h2>\n<h3><code>getFromReplica<\/code> iteraci\u00f3n<\/h3>\n<p>En la API de sincronizaci\u00f3n, ahora hay una sobrecarga de <code>getFromReplica<\/code> que devuelve un <code>Iterador<\/code>, lo que permite consumir f\u00e1cilmente s\u00f3lo una parte de las respuestas (por ejemplo, cuando s\u00f3lo interesa la respuesta m\u00e1s r\u00e1pida).<\/p>\n<h3><code>incluirDocs<\/code> en <code>ViewQuery<\/code><\/h3>\n<p>Todav\u00eda en la API de sincronizaci\u00f3n, si desea que su <code>ViewQuery<\/code> para recuperar eficazmente todo el contenido de los documentos en segundo plano, ahora puede utilizar la funci\u00f3n <code>incluirDocs<\/code> opci\u00f3n.<\/p>\n<h3>Contrasem\u00e1ntica<\/h3>\n<p>Anteriormente, <code>contador<\/code> inicializar\u00eda el documento contador con el valor por defecto de 0 si no hay ning\u00fan <code>initialValue<\/code> en la sobrecarga.<\/p>\n<p>Esto se ha cambiado para que, en su lugar, un <code>DocumentDoesNotExistException<\/code> con este tipo de sobrecargas (como en la generaci\u00f3n 1.4 del SDK). Para inicializar con 0 en lugar de lanzar un error, simplemente utilice una de las sobrecargas que aceptan un valor <code>initialValue<\/code>.<\/p>\n<h3>Requisito de durabilidad Apoyo a <code>contador<\/code>, <code>a\u00f1adir<\/code> y <code>anteponer<\/code><\/h3>\n<p>Anteriormente ninguna sobrecarga permit\u00eda establecer un <code>PersistTo<\/code> y\/o <code>ReplicateTo<\/code> requisito de durabilidad. Esto ya se ha aplicado.<\/p>\n<h3><code>CASMismatchException<\/code> en lugar de <code>CouchbaseException<\/code> para <code>a\u00f1adir<\/code> y <code>anteponer<\/code><\/h3>\n<p>Como el t\u00edtulo indica, en el caso de que ambos m\u00e9todos devolvieran simplemente un gen\u00e9rico <code>CouchbaseException<\/code><\/p>\n<h3>Opciones del documento de dise\u00f1o<\/h3>\n<p>Ahora puede especificar distintas opciones por documento de dise\u00f1o al crear o sustituir uno.<\/p>\n<h3>CouchbaseEnvironment: Evitar confusiones<\/h3>\n<p>En <code>CouchbaseEntorno.Builder<\/code> ya no implementa la interfaz, lo que le obliga a llamar a <code>construir()<\/code> para obtener el entorno real (y as\u00ed evitar confundir <code>NullPointerException<\/code> durante el uso).<\/p>\n<h2><a id=\"misc\" name=\"misc\"><\/a>Varios<\/h2>\n<h3>Cambios de nombre<\/h3>\n<p>Algunas clases relacionadas con <code>N1QL<\/code> se han renombrado para evitar confusiones y alinearse mejor con otras clases similares y\/o otros SDKs:<\/p>\n<ul>\n<li>M\u00e1s <code>Consulta<\/code> se ha antepuesto el prefijo <code>N1QL<\/code> (Ej. <code>AsyncQueryResult<\/code> se convierte en <code>AsyncN1qlQueryResultado<\/code>). Esto es m\u00e1s coherente con la nomenclatura, por ejemplo, para las vistas (<code>ViewQuery<\/code>, <code>N1qlQuery<\/code>).<\/li>\n<li><code>Par\u00e1metros de consulta<\/code> se convierte en <code>N1qlPar\u00e1metros<\/code> y <code>QueryMetrics<\/code> se convierte en <code>N1qlMetrics<\/code>.<\/li>\n<li>Las diversas instancias de la palabra <code>parametrizado<\/code> se han sustituido por <code>parametrizado<\/code> en la documentaci\u00f3n y los SDK. Por ejemplo, en <code>N1qlQuery.parameterized(Statement st, JsonObject paramValues)<\/code> m\u00e9todo de f\u00e1brica...<\/li>\n<\/ul>\n<h3>Actualizaciones de dependencia<\/h3>\n<p>Se ha actualizado la siguiente dependencia externa:<\/p>\n<ul>\n<li><code>RxJava<\/code> de <code>1.0.4<\/code> a <strong><code>1.0.14<\/code><\/strong><\/li>\n<\/ul>\n<p>Adem\u00e1s, tambi\u00e9n se han actualizado las dependencias internas:<\/p>\n<ul>\n<li><code>Netty<\/code> de <code>4.0.25.Final<\/code> a <strong><code>4.0.30.Final<\/code><\/strong><\/li>\n<li><code>Disruptor LMAX<\/code> <code>3.3.0<\/code> a <strong><code>3.3.2<\/code><\/strong><\/li>\n<li><code>Jackson<\/code> de <code>2.4.2<\/code> a <strong><code>2.6.1<\/code><\/strong><\/li>\n<li><code>LatencyUtils<\/code> nuevo en versi\u00f3n <strong><code>2.0.2<\/code><\/strong><\/li>\n<\/ul>\n<h2>Esperamos que disfrute de esta versi\u00f3n. \u00a1Feliz programaci\u00f3n!<\/h2>","protected":false},"excerpt":{"rendered":"<p>On behalf of the SDK Team, it is my great pleasure to announce that the Java SDK version 2.2 is now GA! This version is packed with enhancements and bugfixes. First and foremost it offers compatibility with all the new [&hellip;]<\/p>","protected":false},"author":48,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"ppma_author":[9022],"class_list":["post-1965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Announcing Java SDK 2.2 General Availability - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/javasdk-2-2-ga\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing Java SDK 2.2 General Availability\" \/>\n<meta property=\"og:description\" content=\"On behalf of the SDK Team, it is my great pleasure to announce that the Java SDK version 2.2 is now GA! This version is packed with enhancements and bugfixes. First and foremost it offers compatibility with all the new [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/javasdk-2-2-ga\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-10-19T07:33:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-12T08:02:46+00:00\" \/>\n<meta name=\"author\" content=\"Simon Basle, Software Engineer, Pivotal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon Basle, Software Engineer, Pivotal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/\"},\"author\":{\"name\":\"Simon Basle, Software Engineer, Pivotal\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/a4086d75b59570cc2e5ff66d98c5d1a1\"},\"headline\":\"Announcing Java SDK 2.2 General Availability\",\"datePublished\":\"2015-10-19T07:33:06+00:00\",\"dateModified\":\"2024-09-12T08:02:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/\"},\"wordCount\":1025,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/\",\"name\":\"Announcing Java SDK 2.2 General Availability - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2015-10-19T07:33:06+00:00\",\"dateModified\":\"2024-09-12T08:02:46+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing Java SDK 2.2 General Availability\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/a4086d75b59570cc2e5ff66d98c5d1a1\",\"name\":\"Simon Basle, Software Engineer, Pivotal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b2bcd169f85f21cee7b8a0e0c9e7854\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g\",\"caption\":\"Simon Basle, Software Engineer, Pivotal\"},\"description\":\"Simon Basl_ is a Paris-based Software Engineer working in the Spring team at Pivotal. Previously, he worked in the Couchbase Java SDK team. His interests span software design aspects (OOP, design patterns, software architecture), rich clients, what lies beyond code (continuous integration, (D)VCS, best practices), and reactive programming. He is also an editor for the French version of InfoQ.com.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/simon-basle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Announcing Java SDK 2.2 General Availability - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/javasdk-2-2-ga\/","og_locale":"es_MX","og_type":"article","og_title":"Announcing Java SDK 2.2 General Availability","og_description":"On behalf of the SDK Team, it is my great pleasure to announce that the Java SDK version 2.2 is now GA! This version is packed with enhancements and bugfixes. First and foremost it offers compatibility with all the new [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/javasdk-2-2-ga\/","og_site_name":"The Couchbase Blog","article_published_time":"2015-10-19T07:33:06+00:00","article_modified_time":"2024-09-12T08:02:46+00:00","author":"Simon Basle, Software Engineer, Pivotal","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon Basle, Software Engineer, Pivotal","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/"},"author":{"name":"Simon Basle, Software Engineer, Pivotal","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/a4086d75b59570cc2e5ff66d98c5d1a1"},"headline":"Announcing Java SDK 2.2 General Availability","datePublished":"2015-10-19T07:33:06+00:00","dateModified":"2024-09-12T08:02:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/"},"wordCount":1025,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/","url":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/","name":"Announcing Java SDK 2.2 General Availability - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2015-10-19T07:33:06+00:00","dateModified":"2024-09-12T08:02:46+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/javasdk-2-2-ga\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Announcing Java SDK 2.2 General Availability"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/a4086d75b59570cc2e5ff66d98c5d1a1","name":"Simon Basle, Ingeniero de Software, Pivotal","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b2bcd169f85f21cee7b8a0e0c9e7854","url":"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g","caption":"Simon Basle, Software Engineer, Pivotal"},"description":"Simon Basl_ es un Ingeniero de Software residente en Par\u00eds que trabaja en el equipo Spring de Pivotal. Anteriormente, trabaj\u00f3 en el equipo de Couchbase Java SDK. Sus intereses abarcan aspectos de dise\u00f1o de software (OOP, patrones de dise\u00f1o, arquitectura de software), clientes ricos, lo que hay m\u00e1s all\u00e1 del c\u00f3digo (integraci\u00f3n continua, (D)VCS, mejores pr\u00e1cticas) y programaci\u00f3n reactiva. Tambi\u00e9n es editor de la versi\u00f3n francesa de InfoQ.com.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/simon-basle\/"}]}},"authors":[{"term_id":9022,"user_id":48,"is_guest":0,"slug":"simon-basle","display_name":"Simon Basle, Software Engineer, Pivotal","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3c3aec94782fea5f0a199368c15e836198faf05c1591e0ae0b91178a59457781?s=96&d=mm&r=g","author_category":"","last_name":"Basle","first_name":"Simon","job_title":"","user_url":"","description":"Simon Basl_ es un Ingeniero de Software residente en Par\u00eds que trabaja en el equipo Spring de Pivotal. Anteriormente, trabaj\u00f3 en el equipo de Couchbase Java SDK. Sus intereses abarcan aspectos de dise\u00f1o de software (OOP, patrones de dise\u00f1o, arquitectura de software), clientes ricos, lo que hay m\u00e1s all\u00e1 del c\u00f3digo (integraci\u00f3n continua, (D)VCS, mejores pr\u00e1cticas) y programaci\u00f3n reactiva. Tambi\u00e9n es editor de la versi\u00f3n francesa de InfoQ.com."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1965"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=1965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1965"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}