JavaFX y Couchbase Mobile es un gran combo para crear aplicaciones de clase de escritorio con ricas interfaces de usuario y acceso rápido a datos. En este tutorial, aprenderás los siguientes conceptos básicos:
- Aprenda sobre replicación, seguridad y despliegue utilizando la muestra TodoLite
- Cómo iniciar un nuevo proyecto JavaFX con Couchbase Mobile como dependencia
No cubriremos TodoLite para Android en este post pero podrías tener ambas aplicaciones funcionando una al lado de la otra y replicando documentos y adjuntos vía Sync Gateway:
![]()
Puedes encontrar el código fuente de TodoLite JavaFX en github.
TodoLite JavaFX
Para acelerar las cosas, clonarás un código fuente con lo siguiente:
|
1 2 |
git clonar git@github.com:CouchbaseTutorials/todolite-javafx.git cd todolite-javafx |
Abra esta carpeta en IntelliJ y haga clic en el botón Ejecutar en la esquina superior derecha. Se abrirá una nueva ventana (por supuesto, la tuya no tendrá datos :D):

Sigue adelante y crea una nueva Lista y Tarea. En el momento de escribir esto, la versión JavaFX de TodoLite no implementa todas las características. Ahora mismo, estás logueado como el usuario con nombre wayne y la contraseña es pass. Así que si ejecutas la versión Android de TodoLite, puedes iniciar sesión con esas credenciales o crear un nuevo usuario en la página de registro y compartir listas con otros usuarios. Ambas aplicaciones se sincronizan con una instancia de Sync Gateway que se ejecuta en http://9cec7a6e-jamiltz.node.tutum.io:4984.
Modelo de datos
TodoLite tiene el siguiente modelo de datos. Observe cómo los documentos son de tamaño reducido y pueden hacer referencia a otros documentos. _id (pueden considerarse claves externas): 
Despliegue
El back-end de TodoLite está compuesto por Sync Gateway y un App Server para permitir a los usuarios registrarse. De nuevo, en el momento de escribir esto, las pantallas de Login y Sign Up no han sido implementadas para la versión JavaFX de TodoLite. Puedes seguir el README en el todolite-desarrollo para que ambos servidores funcionen localmente.
Cómo crear una nueva aplicación JavaFX + Couchbase Mobile
Abra IntelliJ IDEA y seleccione la opción Crear un nuevo proyecto menú. En el panel izquierdo, seleccione la opción JavaFX y establezca el SDK del proyecto en 1.8.
Dé a la aplicación el nombre que desee y haga clic en AcabadoEsto abrirá el proyecto recién creado en una nueva ventana. Antes de empezar a escribir código, hay que cambiar un par de parámetros de configuración. Seleccione la opción Editar configuraciones... en la esquina superior derecha, que abrirá una nueva ventana. Compruebe el Sólo una instancia para asegurarse de que el IDE no inicie una nueva instancia de la aplicación cada vez que pulse el botón Ejecutar.
Una vez hecho esto, vamos a añadir Couchbase Lite como dependencia del proyecto. Selecciona ArchivoEstructura del proyecto... de la barra de menús superior, se abrirá una nueva ventana y en la pestaña Módulos añadir una nueva biblioteca de Maven:
Aparecerá un campo de búsqueda en una ventana emergente, escriba com.couchbase.lite:couchbase-lite-java:1.1.0 y haga clic en OK. Esto descargará la librería y la añadirá al proyecto. A continuación, añadirá un archivo JAR que contenga la biblioteca nativa para la plataforma en la que esté ejecutando la aplicación (Windows, Mac...). Para usuarios de OS X, descarga este archivo JAR y añádelo en un nuevo directorio llamado bibliotecas en su proyecto. Devuelve el Módulos y añada este archivo JAR desde la ventana Añadir > JARs o directorios... menú:
Haga clic en OK y ejecute la aplicación. Debería ver una ventana en blanco con el mensaje Hola Mundo en la barra de estado: 
Abrir una nueva base de datos y guardar un documento
En su nuevo proyecto, abra Main.java y crear un nuevo método llamado startCouchbase con lo siguiente:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
privado void startCouchbase() { JavaContext contexto = nuevo JavaContext(); Director director = null; pruebe { director = nuevo Director(contexto, Director.OPCIONES_POR_DEFECTO); } captura (IOException e) { e.printStackTrace(); } Base de datos base de datos = null; pruebe { base de datos = director.getDatabase("myapp"); } captura (CouchbaseLiteException e) { e.printStackTrace(); } Mapa<Cadena, Objeto> propiedades = nuevo HashMap<Cadena, Objeto>(); propiedades.poner("sesión", "Couchbase Mobile"); propiedades.poner("conferencia", "JavaOne); Documento documento = base de datos.crearDocumento(); pruebe { documento.putProperties(propiedades); } captura (CouchbaseLiteException e) { e.printStackTrace(); } } |
Aquí, estás abriendo una nueva base de datos llamada myapp y persistiendo un nuevo documento con una sesión y un campo de conferencia. Puedes leer más sobre las diferentes APIs en la sección guías de documentación o consulte el TodoLite-JavaFX aplicación de ejemplo.
Llame al startCouchbase en el método iniciar método de Main.java
Pasarela de sincronización
La forma más rápida de empezar con la replicación es descargar la última versión de Sync Gateway:
http://www.couchbase.com/nosql-databases/downloads#Couchbase_Mobile
Y utilice una de las plantillas de configuración proporcionadas como argumento de línea de comandos al iniciar Sync Gateway:
|
1 |
$ ~/Descargas/couchbase-sincronizar-pasarela/papelera/sync_gateway básico-morsa-cubo.json |
El archivo de configuración especificado tiene lo siguiente:
|
1 2 3 4 5 6 7 8 9 |
{ "log": ["*"], "bases de datos": { "db": { "servidor": "morsa:", "usuarios": { "INVITADO": { "desactivado": falso, "admin_canales": ["*"] } } } } } |
Aquí, estás creando una base de datos llamada db y activar el INVITADO lo que significa que las solicitudes no autenticadas deben ser permitidas y procesadas.
Ya está. Ahora tiene una base de datos Sync Gateway funcionando en su máquina a la que se puede acceder en http://localhost:4984/db/.
Añadir sincronización
Vuelve a la aplicación JavaFX y añade un nuevo startReplications método:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
público void startReplications() { URL remoteURL = null; pruebe { remoteURL = nuevo URL(remoteDatabase); } captura (MalformedURLException e) { e.printStackTrace(); } Replicación tire de = base de datos.createPullReplication(remoteURL); Replicación pulse = base de datos.createPushReplication(remoteURL); tire de.setContinuous(verdadero); pulse.setContinuous(verdadero); tire de.iniciar(); pulse.iniciar(); } |
Llame al startReplications por debajo del startCouchbase y reinicie la aplicación. Ahora debería ver el documento que creó anteriormente en la interfaz de administración de Sync Gateway (http://localhost:4985/_admin/).
¿Qué hacer a partir de ahora?
¡Enhorabuena! Has construido tu primera aplicación JavaFX + Couchbase Mobile con replicación. Ahora estás listo para aprender los siguientes conceptos:
- En Función de sincronización definir normas de acceso
- Vistas de Couchbase Lite para escribir consultas personalizadas
No dudes en compartir tus opiniones, hallazgos o preguntas en los comentarios o en los foros. ¡Hasta pronto!