Material para la sesión en la Universidad de Zaragoza: https://diis.unizar.es/noticias/seminario-del-grado-de-informatica-mirando-alfresco-desde-minecraft
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
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
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
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
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