SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Jornada
“Mirando a Alfresco desde Minecraft”
Ponente: Angel Borroy (keensoft UST Global)
Fecha: 13 Febrero 2018
Lugar: Aula 1 del edificio Ada Byron
Agenda
• 12:00 – 12:45 Evolución de la Arquitectura Java de Alfresco
• 12:45 – 13:00 Breve historia de los Hack-a-thons
• 13:00 – 14:00 ContentCraft
– Taller de instalación, configuración y puesta en marcha
– Desarrollo de una extensión para el proyecto
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Presentación
keensoft + Alfresco
keensoft
keensoft es una empresa aragonesa fundada en 2007 por Santiago Navarro.
Desde un primer momento, el objetivo de la compañía ha sido proveer servicios
informáticos de calidad, construyendo para ello un equipo de desarrolladores
experimentados que han profesionalizado diferentes líneas de trabajo: archivo,
gestión documental, movilidad, big data y dirección de proyectos.
Por otra parte, su decidida apuesta por la innovación ha posicionado a la compañía
como referente a nivel nacional en diferentes tecnologías y productos.
En 2017 la compañía pasó a formar parte de la compañía multinacional UST Global
”Alfresco, como plataforma de gestión documental ECM, es una de las líneas de especialización de keensoft.
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Angel Borroy
Se graduó en Ingeniería Informática en el CPS de Zaragoza en 1999.
Su carrera profesional es variada:
• 1997-1998 Formación Becario
• 1999-2005 BPM Programador >> Jefe de proyecto
• 2005-2006 ERP Preventa técnico
• 2006-2007 SOA Arquitecto software
• 2008-2013 Firma Electrónica Gerente
• 2013-2018 ECM Desarrollador
Actualmente es uno de los miembros más activos de la Order of the
Bee, una organización que aglutina a muchos de los miembros de la
Comunidad de Alfresco.
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Angel Borroy
Ponente en conferencias internacionales:
• Alfresco Summit 2013 (Barcelona)
• Alfresco Summit 2014 (London)
• BeeCon 2016 (Bruselas)
• BeeCon 2017 (Zaragoza)
• Alfresco DevCon 2018 (Lisboa)
Creador de contenido en YouTube
• Alfresco Tech TalkLive #82
• Alfresco Tech TalkLive #85
• Alfresco Tech TalkLive #106
• Configuring LDAP in Alfresco
• Curso de Alfresco 5
https://www.youtube.com/watch?v=GU8r1VlR6NU&list=PLJn1eboRc1PbNCeBvldHO0vksTXhiN54g
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Angel Borroy
Twitter
@AngelBorroy
LinkedIn
https://www.linkedin.com/in/angelborroy/
GitHub
http://github.com/keensoft
http://github.com/angelborroy
Comunidad oficial de Alfresco
http://community.alfresco.com
Blogs
http://orderofthebee.org
http://angelborroy.wordpress.com
http://www.keensoft.es/blog
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Alfresco
Alfresco fue fundada en el año 2005
por John Newton, que provenía de
Documentum, y por John Powel, que
provenía de Business Objects.
Desde un primer momento, ambos se
concentraron en proveer un producto
Open Source que aportase diferentes
valores diferenciales al escenario de
plataformas de ECM existentes.
Por otra parte, su decidida apuesta por
la innovación ha posicionado a la
compañía en el cuadrante de
visionarios de los cuadros Gartner de
productos de ECM durante los últimos
años.
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Alfresco
Evolución de la Arquitectura Java
2008
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
AOP
2010
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
SCA
2011
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
JSRJCR
2012
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
REST
2013
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
AJAX
2014
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
M
obile
2015
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
JavaScript
2016
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Angular
Future
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
https://github.com/Alfresco/rgauss-devcon-2018
M
icroServicios
Evolución
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
• Spring : Anotaciones
• Hibernate > MyBatis : NoSQL / GraphDB
• Lucene > SOLR - Elastic
• MyFaces > Surf > Aikau > ADF (Angular)
• JSR-170 (SOAP) > CMIS > API REST (Swagger)
• On Premise > PaaS : Cloud
Hack-a-thons
Breve historia by Axel Faust
Hack-a-thon?
• Conference tradition (est. ~2012)
• Open-ended, anything* goes collaboration
– Documentation
– Maintenance
– addon dev
– „crazy hacks“
• Learn, network, socialize
• Have fun!
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Hack-a-thon 2018!
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Hack-a-thon 2018!
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Hack-a-thon 2018!
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Hack-a-thon : When / Where?
• 2x per year: conference + virtual
• Global Virtual Hack-a-thon
– ~36 hours follow-the-sun
– Hangout / Zoom, IRC, hacker rooms
• Follow:
https://community.alfresco.com/community/collaborate
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Global Virtual Hack-a-thon 2017
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Global Virtual Hack-a-thon 2017
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Hack-a-thon 2018 stats
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
• Biggest event yet
– ~50 participants
– ~5 losses to last minute slide hacks / work
– ~15 Alfresco Engineers +
– ~15 partners
– ~20 new faces
• 2017 BeeCon:
– ~24 total
Hack-a-thon 2018 stats
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
• ~19 project ideas (pre-conference)
• ~16 teams
• Project continuations
– Better Trash Management
– Healthy Repository Addon
– ContentCraft („project longevity champion“)
ContentCraft
Taller de instalación
Requisitos
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
• Desarrollo
– Java 8
– Maven 3
– Eclipse / IntelliJ
• Ejecución
– Servidor Alfresco 4.2 o superior (por ejemplo
201707)
– Cliente Minecraft 1.12.1
Arquitectura de ContentCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Comandos de ContentCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Autor de ContentCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Preparar Alfresco
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
http://localhost:8080/share
• Crear un nuevo sitio “Minecraft”
• Añadir miembros (Angel, Daniel…)
• Crear una jerarquía de carpetas y ficheros*
– Pisos
• Habitaciones
– Libros
* TemplateContents
Descargar ContentCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
https://github.com/rwetherall/ContentCraft/tree/devcon2018
Hay que parchearlo un poco…
1. Comentar el método “onEnable” de
org.alfresco.contentcraft.metadata.BlockMetaData.java
2. Establecer las credenciales de acceso en src/main/resources/cmis.json
{
"connection-url" : "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom",
"user" : "admin",
"password" : "admin”
}
Probar ContentCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Lanzar ContentCraft
$ mvn clean package
$ mvn clean install -Pstart-server
Lanzar el cliente de Minecraft 1.12.1
Añadir el servidor 127.0.0.1
Generar el edificio del Sitio “Minecraft”
T > /build site minecraft
Extender ContenCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Spawnear los miembros de un Sitio de Alfresco
como aldeanos.
• Alfresco no implementa el 100% de CMIS
• No expone las relaciones entre grupos y usuarios
• Es necesario acceder a la API REST nativa
Extender ContentCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
API
Añadir dependencias Maven
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
pom.xml
<!-- Alfresco Client API -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.1</version>
</dependency>
Crear las credenciales de acceso
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
src/main/resources/rest.json
{
"connection-url" : "http://localhost:8080/alfresco",
"user" : "admin",
"password" : "admin”
}
Desarrollar el cliente REST
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
org.alfresco.contentcraft.rest.REST.java
public class REST {
private static final String REST_CONFIG_FILE = "rest.json";
public static String getTicket() throws Exception {
}
public static List<String> getMembers(
String siteId, String alfrescoTicket) throws Exception {
}
}
Añadir spawner en SiteBuilder
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
org.alfresco.contentcraft.command.build.SiteBuilder.java
private void spawnSiteMembers(Player player, String siteName) {
try {
List<String> members = REST.getMembers(siteName, REST.getTicket());
int count = 1;
for (String member : members) {
Location startLocation =
player.getLocation().clone().add(VectorUtil.SOUTH.clone().multiply(2*count));
Villager other = (Villager) player.getWorld().
spawnEntity(startLocation, EntityType.VILLAGER);
other.setCustomName(ChatColor.GOLD + member);
other.setCustomNameVisible(true);
count++;
System.out.println("Villager " + member + " has been spawned at " +
startLocation.getX() + "," + startLocation.getY() + "," + startLocation.getZ());
}
} catch (Exception e) {
e.printStackTrace(System.out);
}
}
Guiar al Player
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
org.alfresco.contentcraft.command.build.SiteBuilder.java
public void build(Player player, Location start, Vector direction, String... args)
throws CommandUsageException {
spawnSiteMembers(player, siteName);
// build the root folders
buildRootFolders(start, siteRoot.getChildren());
}
org.alfresco.contentcraft.command.build.Builder.java
void build(Player player, Location start, Vector direction, String ... args)
throws CommandUsageException;
org.alfresco.contentcraft.command.build.BuildCommandExecuter.java
Probar ContentCraft
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
Lanzar ContentCraft
$ mvn clean -Pclean-server
$ mvn clean package
$ mvn clean install -Pstart-server
Lanzar el cliente de Minecraft 1.12.1
Añadir el servidor 127.0.0.1
Generar el edificio del Sitio “Minecraft”
T > /build site minecraft
Ahí están los Aldeanos!
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
https://github.com/angelborroy-ks/ContentCraft/tree/devcon2018
Desarrollar en Alfresco
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
• Java
• Maven
• Eclipse > IntelliJ IDEA (hype)
Recursos
https://docs.alfresco.com/community/concepts/dev-for-developers.html
https://community.alfresco.com/
https://github.com/Alfresco
Desarrollar con Bukkit (Minecraft)
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
• Java
• Maven / ANT
• Eclipse > IntelliJ IDEA (hype)
Recursos
https://hub.spigotmc.org/javadocs/bukkit/overview-summary.html
https://github.com/Bukkit/Bukkit
https://bukkit.gamepedia.com/Plugin_Tutorial
Mirando a Alfresco desde Minecraft
13 de Febrero de 2018
angel.borroy@keensoft.es
http://github.com/keensoft
@AngelBorroy
http://community.alfresco.com
http://orderofthebee.org
http://angelborroy.wordpress.com
http://www.keensoft.es/category/blog

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (12)

NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
Aws Elastic Beanstalk + Docker
Aws Elastic Beanstalk + DockerAws Elastic Beanstalk + Docker
Aws Elastic Beanstalk + Docker
 
Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017Workshop React + Firebase | T3chFest 2017
Workshop React + Firebase | T3chFest 2017
 
IoT y Dispositivos
IoT y DispositivosIoT y Dispositivos
IoT y Dispositivos
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
 
Todo sobre mis APIs
Todo sobre mis APIsTodo sobre mis APIs
Todo sobre mis APIs
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013
 
SpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsSpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con Grails
 
HTML5
HTML5HTML5
HTML5
 
Spring BlazeDS Integration + Flex 4
Spring BlazeDS Integration + Flex 4Spring BlazeDS Integration + Flex 4
Spring BlazeDS Integration + Flex 4
 
Aplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalRAplicaciones Real-Time con SignalR
Aplicaciones Real-Time con SignalR
 

Ähnlich wie Mirando a Alfresco desde Minecraft

Web browsers and semantic metadata
Web browsers and semantic metadataWeb browsers and semantic metadata
Web browsers and semantic metadataMartin Coronel
 
Scratch guiareferencia 2.0
Scratch guiareferencia 2.0Scratch guiareferencia 2.0
Scratch guiareferencia 2.0ie_macias
 
Scratch guiareferencia
Scratch guiareferenciaScratch guiareferencia
Scratch guiareferenciaportuguesa80
 
Scratch guiareferencia
Scratch guiareferenciaScratch guiareferencia
Scratch guiareferenciacarmen_torrano
 
Scratch guía referencia 2013
Scratch guía referencia  2013Scratch guía referencia  2013
Scratch guía referencia 2013luz deluna
 
Web scraping, Codeando México
Web scraping, Codeando MéxicoWeb scraping, Codeando México
Web scraping, Codeando MéxicoBraulio Chavez
 
DukeScript: HTML5 y JavaScript desde Java
DukeScript: HTML5 y JavaScript desde JavaDukeScript: HTML5 y JavaScript desde Java
DukeScript: HTML5 y JavaScript desde JavaSoftware Guru
 
Aplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.ioAplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.ioFrancisco Javier Barrena
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Leonardo J. Caballero G.
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónFutura Networks
 
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Rolando Carrasco
 
Javascript y diseño web
Javascript y diseño webJavascript y diseño web
Javascript y diseño webYoungle
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoBig Data Spain
 
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Software Guru
 
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & FlexSesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & FlexBiz Partner
 

Ähnlich wie Mirando a Alfresco desde Minecraft (20)

Web browsers and semantic metadata
Web browsers and semantic metadataWeb browsers and semantic metadata
Web browsers and semantic metadata
 
Scratch guiareferencia 2.0
Scratch guiareferencia 2.0Scratch guiareferencia 2.0
Scratch guiareferencia 2.0
 
Scratch guiareferencia
Scratch guiareferenciaScratch guiareferencia
Scratch guiareferencia
 
Scratch guiareferencia
Scratch guiareferenciaScratch guiareferencia
Scratch guiareferencia
 
Scratch guía referencia 2013
Scratch guía referencia  2013Scratch guía referencia  2013
Scratch guía referencia 2013
 
Scratch guiareferencia
Scratch guiareferenciaScratch guiareferencia
Scratch guiareferencia
 
Scratch guiareferencia
Scratch guiareferenciaScratch guiareferencia
Scratch guiareferencia
 
Web scraping, Codeando México
Web scraping, Codeando MéxicoWeb scraping, Codeando México
Web scraping, Codeando México
 
DukeScript: HTML5 y JavaScript desde Java
DukeScript: HTML5 y JavaScript desde JavaDukeScript: HTML5 y JavaScript desde Java
DukeScript: HTML5 y JavaScript desde Java
 
Aplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.ioAplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.io
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
DSpace Workshop
DSpace Workshop DSpace Workshop
DSpace Workshop
 
Python para desarrollo web de ultima generación
Python para desarrollo web de ultima generaciónPython para desarrollo web de ultima generación
Python para desarrollo web de ultima generación
 
Atix30
Atix30Atix30
Atix30
 
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
Oracle Developer Tour Santiago, Chile. Oracle Intelligent Bot Introduction.
 
Javascript y diseño web
Javascript y diseño webJavascript y diseño web
Javascript y diseño web
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén Casado
 
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
 
Dinamicas
DinamicasDinamicas
Dinamicas
 
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & FlexSesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
 

Mehr von Angel Borroy López

Transitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearchTransitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearchAngel Borroy López
 
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 EuropeAlfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 EuropeAngel Borroy López
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Using Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms togetherUsing Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms togetherAngel Borroy López
 
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...Angel Borroy López
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1Angel Borroy López
 
Docker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoDocker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoAngel Borroy López
 
Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0Angel Borroy López
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseAngel Borroy López
 
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeAngel Borroy López
 
Alfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAlfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAngel Borroy López
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoAngel Borroy López
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para DockerAngel Borroy López
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfAngel Borroy López
 
Deploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP PlatformsDeploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP PlatformsAngel Borroy López
 

Mehr von Angel Borroy López (20)

Transitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearchTransitioning from Customized Solr to Out-of-the-Box OpenSearch
Transitioning from Customized Solr to Out-of-the-Box OpenSearch
 
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 EuropeAlfresco integration with OpenSearch - OpenSearchCon 2024 Europe
Alfresco integration with OpenSearch - OpenSearchCon 2024 Europe
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Using Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms togetherUsing Generative AI and Content Service Platforms together
Using Generative AI and Content Service Platforms together
 
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
Enhancing Document-Centric Features with On-Premise Generative AI for Alfresc...
 
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
 
Docker Init with Templates for Alfresco
Docker Init with Templates for AlfrescoDocker Init with Templates for Alfresco
Docker Init with Templates for Alfresco
 
Before & After Docker Init
Before & After Docker InitBefore & After Docker Init
Before & After Docker Init
 
Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0Alfresco Transform Services 4.0.0
Alfresco Transform Services 4.0.0
 
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterpriseHow to migrate from Alfresco Search Services to Alfresco SearchEnterprise
How to migrate from Alfresco Search Services to Alfresco SearchEnterprise
 
Using Podman with Alfresco
Using Podman with AlfrescoUsing Podman with Alfresco
Using Podman with Alfresco
 
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud NativeCSP: Evolución de servicios de código abierto en un mundo Cloud Native
CSP: Evolución de servicios de código abierto en un mundo Cloud Native
 
Alfresco Embedded Activiti Engine
Alfresco Embedded Activiti EngineAlfresco Embedded Activiti Engine
Alfresco Embedded Activiti Engine
 
Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0Alfresco Transform Core 3.0.0
Alfresco Transform Core 3.0.0
 
Collaborative Editing Tools for Alfresco
Collaborative Editing Tools for AlfrescoCollaborative Editing Tools for Alfresco
Collaborative Editing Tools for Alfresco
 
Desarrollando una Extensión para Docker
Desarrollando una Extensión para DockerDesarrollando una Extensión para Docker
Desarrollando una Extensión para Docker
 
DockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdfDockerCon 2022 Spanish Room-ONBOARDING.pdf
DockerCon 2022 Spanish Room-ONBOARDING.pdf
 
Deploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP PlatformsDeploying Containerised Open-Source CSP Platforms
Deploying Containerised Open-Source CSP Platforms
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWS
 
Alfresco Certificates
Alfresco Certificates Alfresco Certificates
Alfresco Certificates
 

Mirando a Alfresco desde Minecraft

  • 1. Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 2. Jornada “Mirando a Alfresco desde Minecraft” Ponente: Angel Borroy (keensoft UST Global) Fecha: 13 Febrero 2018 Lugar: Aula 1 del edificio Ada Byron Agenda • 12:00 – 12:45 Evolución de la Arquitectura Java de Alfresco • 12:45 – 13:00 Breve historia de los Hack-a-thons • 13:00 – 14:00 ContentCraft – Taller de instalación, configuración y puesta en marcha – Desarrollo de una extensión para el proyecto Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 4. keensoft keensoft es una empresa aragonesa fundada en 2007 por Santiago Navarro. Desde un primer momento, el objetivo de la compañía ha sido proveer servicios informáticos de calidad, construyendo para ello un equipo de desarrolladores experimentados que han profesionalizado diferentes líneas de trabajo: archivo, gestión documental, movilidad, big data y dirección de proyectos. Por otra parte, su decidida apuesta por la innovación ha posicionado a la compañía como referente a nivel nacional en diferentes tecnologías y productos. En 2017 la compañía pasó a formar parte de la compañía multinacional UST Global ”Alfresco, como plataforma de gestión documental ECM, es una de las líneas de especialización de keensoft. Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 5. Angel Borroy Se graduó en Ingeniería Informática en el CPS de Zaragoza en 1999. Su carrera profesional es variada: • 1997-1998 Formación Becario • 1999-2005 BPM Programador >> Jefe de proyecto • 2005-2006 ERP Preventa técnico • 2006-2007 SOA Arquitecto software • 2008-2013 Firma Electrónica Gerente • 2013-2018 ECM Desarrollador Actualmente es uno de los miembros más activos de la Order of the Bee, una organización que aglutina a muchos de los miembros de la Comunidad de Alfresco. Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 6. Angel Borroy Ponente en conferencias internacionales: • Alfresco Summit 2013 (Barcelona) • Alfresco Summit 2014 (London) • BeeCon 2016 (Bruselas) • BeeCon 2017 (Zaragoza) • Alfresco DevCon 2018 (Lisboa) Creador de contenido en YouTube • Alfresco Tech TalkLive #82 • Alfresco Tech TalkLive #85 • Alfresco Tech TalkLive #106 • Configuring LDAP in Alfresco • Curso de Alfresco 5 https://www.youtube.com/watch?v=GU8r1VlR6NU&list=PLJn1eboRc1PbNCeBvldHO0vksTXhiN54g Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 7. Angel Borroy Twitter @AngelBorroy LinkedIn https://www.linkedin.com/in/angelborroy/ GitHub http://github.com/keensoft http://github.com/angelborroy Comunidad oficial de Alfresco http://community.alfresco.com Blogs http://orderofthebee.org http://angelborroy.wordpress.com http://www.keensoft.es/blog Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 8. Alfresco Alfresco fue fundada en el año 2005 por John Newton, que provenía de Documentum, y por John Powel, que provenía de Business Objects. Desde un primer momento, ambos se concentraron en proveer un producto Open Source que aportase diferentes valores diferenciales al escenario de plataformas de ECM existentes. Por otra parte, su decidida apuesta por la innovación ha posicionado a la compañía en el cuadrante de visionarios de los cuadros Gartner de productos de ECM durante los últimos años. Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 9. Alfresco Evolución de la Arquitectura Java
  • 10. 2008 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 AOP
  • 11. 2010 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 SCA
  • 12. 2011 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 JSRJCR
  • 13. 2012 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 REST
  • 14. 2013 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 AJAX
  • 15. 2014 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 M obile
  • 16. 2015 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 JavaScript
  • 17. 2016 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 Angular
  • 18. Future Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 https://github.com/Alfresco/rgauss-devcon-2018 M icroServicios
  • 19. Evolución Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 • Spring : Anotaciones • Hibernate > MyBatis : NoSQL / GraphDB • Lucene > SOLR - Elastic • MyFaces > Surf > Aikau > ADF (Angular) • JSR-170 (SOAP) > CMIS > API REST (Swagger) • On Premise > PaaS : Cloud
  • 21. Hack-a-thon? • Conference tradition (est. ~2012) • Open-ended, anything* goes collaboration – Documentation – Maintenance – addon dev – „crazy hacks“ • Learn, network, socialize • Have fun! Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 22. Hack-a-thon 2018! Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 23. Hack-a-thon 2018! Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 24. Hack-a-thon 2018! Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 25. Hack-a-thon : When / Where? • 2x per year: conference + virtual • Global Virtual Hack-a-thon – ~36 hours follow-the-sun – Hangout / Zoom, IRC, hacker rooms • Follow: https://community.alfresco.com/community/collaborate Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 26. Global Virtual Hack-a-thon 2017 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 27. Global Virtual Hack-a-thon 2017 Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 28. Hack-a-thon 2018 stats Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 • Biggest event yet – ~50 participants – ~5 losses to last minute slide hacks / work – ~15 Alfresco Engineers + – ~15 partners – ~20 new faces • 2017 BeeCon: – ~24 total
  • 29. Hack-a-thon 2018 stats Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 • ~19 project ideas (pre-conference) • ~16 teams • Project continuations – Better Trash Management – Healthy Repository Addon – ContentCraft („project longevity champion“)
  • 31. Requisitos Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 • Desarrollo – Java 8 – Maven 3 – Eclipse / IntelliJ • Ejecución – Servidor Alfresco 4.2 o superior (por ejemplo 201707) – Cliente Minecraft 1.12.1
  • 32. Arquitectura de ContentCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 33. Comandos de ContentCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 34. Autor de ContentCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018
  • 35. Preparar Alfresco Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 http://localhost:8080/share • Crear un nuevo sitio “Minecraft” • Añadir miembros (Angel, Daniel…) • Crear una jerarquía de carpetas y ficheros* – Pisos • Habitaciones – Libros * TemplateContents
  • 36. Descargar ContentCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 https://github.com/rwetherall/ContentCraft/tree/devcon2018 Hay que parchearlo un poco… 1. Comentar el método “onEnable” de org.alfresco.contentcraft.metadata.BlockMetaData.java 2. Establecer las credenciales de acceso en src/main/resources/cmis.json { "connection-url" : "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom", "user" : "admin", "password" : "admin” }
  • 37. Probar ContentCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 Lanzar ContentCraft $ mvn clean package $ mvn clean install -Pstart-server Lanzar el cliente de Minecraft 1.12.1 Añadir el servidor 127.0.0.1 Generar el edificio del Sitio “Minecraft” T > /build site minecraft
  • 38. Extender ContenCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 Spawnear los miembros de un Sitio de Alfresco como aldeanos. • Alfresco no implementa el 100% de CMIS • No expone las relaciones entre grupos y usuarios • Es necesario acceder a la API REST nativa
  • 39. Extender ContentCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 API
  • 40. Añadir dependencias Maven Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 pom.xml <!-- Alfresco Client API --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.1</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.1</version> </dependency>
  • 41. Crear las credenciales de acceso Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 src/main/resources/rest.json { "connection-url" : "http://localhost:8080/alfresco", "user" : "admin", "password" : "admin” }
  • 42. Desarrollar el cliente REST Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 org.alfresco.contentcraft.rest.REST.java public class REST { private static final String REST_CONFIG_FILE = "rest.json"; public static String getTicket() throws Exception { } public static List<String> getMembers( String siteId, String alfrescoTicket) throws Exception { } }
  • 43. Añadir spawner en SiteBuilder Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 org.alfresco.contentcraft.command.build.SiteBuilder.java private void spawnSiteMembers(Player player, String siteName) { try { List<String> members = REST.getMembers(siteName, REST.getTicket()); int count = 1; for (String member : members) { Location startLocation = player.getLocation().clone().add(VectorUtil.SOUTH.clone().multiply(2*count)); Villager other = (Villager) player.getWorld(). spawnEntity(startLocation, EntityType.VILLAGER); other.setCustomName(ChatColor.GOLD + member); other.setCustomNameVisible(true); count++; System.out.println("Villager " + member + " has been spawned at " + startLocation.getX() + "," + startLocation.getY() + "," + startLocation.getZ()); } } catch (Exception e) { e.printStackTrace(System.out); } }
  • 44. Guiar al Player Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 org.alfresco.contentcraft.command.build.SiteBuilder.java public void build(Player player, Location start, Vector direction, String... args) throws CommandUsageException { spawnSiteMembers(player, siteName); // build the root folders buildRootFolders(start, siteRoot.getChildren()); } org.alfresco.contentcraft.command.build.Builder.java void build(Player player, Location start, Vector direction, String ... args) throws CommandUsageException; org.alfresco.contentcraft.command.build.BuildCommandExecuter.java
  • 45. Probar ContentCraft Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 Lanzar ContentCraft $ mvn clean -Pclean-server $ mvn clean package $ mvn clean install -Pstart-server Lanzar el cliente de Minecraft 1.12.1 Añadir el servidor 127.0.0.1 Generar el edificio del Sitio “Minecraft” T > /build site minecraft
  • 46. Ahí están los Aldeanos! Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 https://github.com/angelborroy-ks/ContentCraft/tree/devcon2018
  • 47. Desarrollar en Alfresco Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 • Java • Maven • Eclipse > IntelliJ IDEA (hype) Recursos https://docs.alfresco.com/community/concepts/dev-for-developers.html https://community.alfresco.com/ https://github.com/Alfresco
  • 48. Desarrollar con Bukkit (Minecraft) Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 • Java • Maven / ANT • Eclipse > IntelliJ IDEA (hype) Recursos https://hub.spigotmc.org/javadocs/bukkit/overview-summary.html https://github.com/Bukkit/Bukkit https://bukkit.gamepedia.com/Plugin_Tutorial
  • 49. Mirando a Alfresco desde Minecraft 13 de Febrero de 2018 angel.borroy@keensoft.es http://github.com/keensoft @AngelBorroy http://community.alfresco.com http://orderofthebee.org http://angelborroy.wordpress.com http://www.keensoft.es/category/blog