Criando um site no WCM com JSP
Autor: Bernardo | Publicado: 2011-08-12T13:54:00-07:00

O WCM (1) define e (2) acessa uma estrutura lógica hierárquica expressa da seguinte forma:




O Repositório é um cenário em um momento, onde existem usuários com sessões estabelecidas e transações ativas. Usaremos o termo transação apesar de não ser muito apropriado para Gerenciamento de Conteúdo. Cada transação estabelece uma Workspace usando um usuário e senha, e várias podem ser estabelecidas por usuário (pelo menos ao nível da API).

O Site

O site não está em uma Workspace; ele reside em uma Biblioteca das várias que podem existir de Documentos (Document Library) mas é manipulado &nbsp;em uma Workspace. Em outras palavras, a Workspace é uma situação ativa que modifica uma Biblioteca de Documentos do WCM. Portanto, a figura anterior é um "retrato" de algo acontecendo no WCM.

Criando uma área de site no WCM com JSP

Existem algumas bibliotecas necessárias para que um site seja criado em uma Biblioteca:


&lt;%@page import="java.util.*,
	java.security.*,
	java.io.*,
	java.net.*,
	java.text.*,
	javax.servlet.http.*"%&gt;
&lt;%@page import="com.ibm.workplace.wcm.api.*,
	com.ibm.workplace.wcm.api.exceptions.*"%&gt;

As primeiras são do "mínimo de java" para manipular servlets. O segundo grupo são também "o mínimo de bibliotecas" WCM utilizadas para criar o site.

Coletando dados do usuário

	// Usuário autenticado
	String sNome = session.getAttribute("Nome").toString();
	String sSenha = session.getAttribute("Senha").toString();&nbsp;

Estas são variáveis de sessão, à semelhança do ASP, espécie de cookies, com o usuário e a senha, para que o WCM saiba que quem entrou está autorizado a criar Workspaces.

Coletando dados do site


	// Parâmetros para o novo site
	String sNomeSite = request.getParameter("NomeSite");
	String sTituloSite = request.getParameter("TituloSite");
	String sDescricaoSite = request.getParameter("DescricaoSite");
	String Biblioteca = request.getParameter("Bib");

Um site deve ter um nome, um título, uma descrição, e pertencer a uma Biblioteca. O site é de uma Biblioteca e não do Workspace.

Configurando um Workspace

	// Configura workspace
	Workspace ws = WCM_API.getRepository().getWorkspace(sNome,sSenha);
	Workspace workspace = ws;

Confirmamos, com os comandos acima, o que dissemos sobre Workspace: Ela é um espaço intermediário para poder manipular os documentos das bibliotecas. É uma transação no sentido meio torto do termo.

Entrando no nível das Bibliotecas


	// Acessa a Biblioteca de documentos
	DocumentLibrary dl = ws.getDocumentLibrary(Biblioteca);
	ws.setCurrentDocumentLibrary(dl);


Os documentos da Biblioteca apontada nos parâmetros para o novo site são referenciados por um ponteiro (dl).

Configurando as propriedades do objeto para criação do site


	// Cria o SCHEMA do site
	Site siteCriado = ws.createSite();
	siteCriado.setName(sNomeSite);
	siteCriado.setTitle(sTituloSite);
	siteCriado.setDescription(sDescricaoSite);

Como tudo no WCM funciona a base de manipulação de objetos através da sua API, basta alimentar os parâmetros para o método createSite desta mesma API.

Concluindo a transação


	// Grava o SCHEMA no WCM
	String[] saveErrors = ws.save(siteCriado);
	// Dá o logoff
	ws.logout();