cancel
Showing results for 
Search instead for 
Did you mean: 

Crear espacios desde Bean

fstnboy
Champ on-the-rise
Champ on-the-rise
Buenas a todos,

Tengo implementado un face (.jsp) que hace uso de un Bean. Lo que quiero es que un método de este Bean crea un espacio utilizando el usuario actual.

Lo que ya tengo hecho es crear espacios desde una aplicación fuera de alfresco y lo que he supuesto más fácil es hacerlo de la misma forma que lo hace, como en el articulo de Jeff Potts http://www.ecmarchitect.com

La única pega que encuentro es que se authentica…


AuthenticationUtils.startSession(userName, password);

AuthenticationUtils.endSession();

Y cada vez que creo un espacio como hago un "endSession" se me desconecta el usuario….

¿Alguna otra forma de hacerlo?
5 REPLIES 5

fstnboy
Champ on-the-rise
Champ on-the-rise
Ya he conseguido crear un espacio de un tipo determinado haciendo uso del FileInfoService, pero no consigo que las propiedades tomen el valor que quiero…

Cómo podría hacerlo

ajv
Champ in-the-making
Champ in-the-making
Hola fstnboy,

Exacto, para crear un espacio puedes hacer uso del FileFolderService. Algo así como esto:
FileInfo fileInfo = getServiceRegistry().getFileFolderService().create(getPath(), uid, ContentModel.TYPE_FOLDER);
Después para darle propiedades específicas puedes hacer uso del nodeService:
nodeService.setProperty(fileInfo.getNodeRef(), ContentModel.PROP_DESCRIPTION, "Descripcion"); 
NodeService tiene un método (setProperty) que indicando el nodeRef, el QName de la propiedad y el valor, pues lo establece para ese nodo…creo que con eso te irá perfecto.  Smiley Very Happy
Saludos!!

fstnboy
Champ on-the-rise
Champ on-the-rise
Pongo el código de cómo lo hago hasta ahora…. lo que me falta es que me guarde los datos de las properties


ServiceRegistry serviceRegistry = Repository.getServiceRegistry(FacesContext.getCurrentInstance());

FileFolderService ffService = serviceRegistry.getFileFolderService();

FileInfo fileInfo = ffService.create(navigationBean.getCurrentNode().getNodeRef(), this.inputText.getValue().toString(), QName.createQName(qName));

Node node = new Node(fileInfo.getNodeRef());

Map<String, Object> properties = node.getProperties();
//Doy valores a las propiedades
properties.put("…", …);
….

ajv
Champ in-the-making
Champ in-the-making
Buenas,

Viendo tu código completo la respuesta  Smiley Very Happy
El NodeService también dispone del siguiente método:
setProperties(NodeRef nodeRef, java.util.Map properties)
Por tanto, basta con que le pases por parámetro el Map properties que has estado creando.

Saludos!!

fstnboy
Champ on-the-rise
Champ on-the-rise
Hola fstnboy,

Exacto, para crear un espacio puedes hacer uso del FileFolderService. Algo así como esto:
FileInfo fileInfo = getServiceRegistry().getFileFolderService().create(getPath(), uid, ContentModel.TYPE_FOLDER);
Después para darle propiedades específicas puedes hacer uso del nodeService:
nodeService.setProperty(fileInfo.getNodeRef(), ContentModel.PROP_DESCRIPTION, "Descripcion"); 
NodeService tiene un método (setProperty) que indicando el nodeRef, el QName de la propiedad y el valor, pues lo establece para ese nodo…creo que con eso te irá perfecto.  Smiley Very Happy
Saludos!!

Gracias!!!!!!!! Enhorabuena y suerte con las siguientes fases