Usar apenas Xwork

É possivel usar apenas o XWork num projeto deixando o WebWork de lado?! Eu queria aproveitar a implementação do command e tambem a possibilidade de usar interceptors e configuração em XML. Ele parece perfeito para um projeto que irei começar, então gostaria de saber sobre as complicações ou facilidades de usa-lo.

Até.

O XWork eh totalmente separado do WebWork, voce pode pegar os jars dele e mandar ver. De uma olhada nos JavaDocs e nos testcases, eles te dao uma nocao otima de como fazer o que, e quando :slight_smile:

Vai em frente … o povo do OpenSymphony é doido pra ver alguem usando pesado o XWork sem nada de Webwork, ele fizeram pensando nisso mas até agora so uns 2 ou 3 estão realmente brincando com isso a sério :shock:

É tranquilex, ele é todo baseado em configurações e um punhado de mapa de um lado pro outro (os parâmetros) …

Bom, sobre o uso de interceptors, acabei ficando com uma duvida: pelo que entendi eles arrumam a casa antes e depois de executar a action. Então dá para compartilhar objetos entre os interceptors e a classe que executa um comando?! Como fazer isso?! Usando um ThreadLocal ou já existe algum mecanismo no XWork?!

Até.

Use o mecanismo de IoC do XWork (implementando uma interface *Aware na Action e tudo mais). Mais info la no site do XW, ou encha o saco do smota :wink:

Pelo que entendi não seria o caso de componentes … Os componentes são criados pelo próprio Xwork (ou se preferir taca um Pico lá que fica bem melhor) e “atachados” na sua Action por um interceptor quando ele acha a interface *Aware. Não sei ao certo como seria o controle do contexto que é na verdade controlado pelo Webwork (request, session ou application) entonces deve ser controlado pela sua aplicação.

Eu acredito que a sua dúvida tá mais pro contexto da action … nos seus próprios interceptors você vai passando os componentes & cia, não é isso? Veja a API e confira o ActionContext.

será que falei besteira? :shock:

Falou besteira nao, smota, acho que eh isso mesmo. Fica aqui a diquinha de sempre, no entanto: fuja de ThreadLocals se vc quiser manter sua sanidade quando estiver escrevendo os testcases :wink:

Ah … e no XWork se você fizer a lição de casa direito não precisa se preocupar com threads & cia.
Toda a configuração dele e os recursos são thread-safe. (só usam um punhado de singletons e o resto é tudo na própria thread, nada de static envolvendo o processamento da action. Siga o exemplo do Webwork que cria um Action & correlatos por requisição HTTP e seja feliz :wink: )

“smota” por acaso vc ñ teria um exemplinho bobo da utilização (configuração) do XWork com Swing??? :smiley:

Estou apanhando um pouco pra fazer uma aplicação desktop-Swing utilizado como framework MVC o XWork!!! :wink:

Assim, qualquer ajuda será muito bem-vida…

Obrigadooo.

Opa … tenho não, nada de exemplo, minha praia com o XWork é só na web mesmo (seu dependesse do Swing pra comer eu morria de fome :smiley: )

Mas alertando (já que você deve estar pensando isso mesmo, só pra registrar): O Xwork não é nenhuma camada do MVC, ele é apenas um Command Framework (implementa o Command Pattern muito bem implementado).

Ele seria o framework responsável por suportar a execução das ações da sua aplicação adicionando um monte de serviços bacanas (IoC e outras coisitas) mas você tem que escrever o controler que será o ponto de junção entre as telas da aplicação e as ações.
(basicamente o controler sabe ler os dados da tela, montar um mapa com os dados e dizer ao Xwork qual ação será executada, ai o Xwork executa a ação (que incrivelmente será desacoplada da tela e muito facil de testar :wink: ) e retorna pro controler dizendo como a ação terminou (o retorno é baseado em Strings)).

Eu recomendo (muito) uma bisbilhotada no código do Webwork porque ele é o controler, praticamente tudo que ele faz você terá que fazer (ignore a parte das tags e results pra simplificar) … mas adiantando também, eu acho que será muito mais simples 8)

Eita to falando muito, um dia eu sento a bunda e tento fazer tudo isso que eu falei :shock:

Poste códigos e dúvidas que nós vamos tentando ajudar …

Valeu “smota” pela explicação e dicas!!

Vou sim dar uma olhada no WebWork e, desta forma ( :wink: tentar) criar um um controler para minha aplicação.

Qualquer nova dúvida, descrevo-a aqui… hehehheeh 8)

Obrigadoooo! :smiley:

[quote=“smota”]Pelo que entendi não seria o caso de componentes … Os componentes são criados pelo próprio Xwork (ou se preferir taca um Pico lá que fica bem melhor) e “atachados” na sua Action por um interceptor quando ele acha a interface *Aware. Não sei ao certo como seria o controle do contexto que é na verdade controlado pelo Webwork (request, session ou application) entonces deve ser controlado pela sua aplicação.

Eu acredito que a sua dúvida tá mais pro contexto da action … nos seus próprios interceptors você vai passando os componentes & cia, não é isso? Veja a API e confira o ActionContext.

será que falei besteira? :shock:[/quote]

Ainda não peguei legal esse esquema de Aware’s. Eu coloquei umas classes lá no components.xml, mas alguns não tá setando na action… será que cê poderia dar uma esplicação sobre como funciona esse mecanismo?

Eu nunca tinha feito nada com WebWork até que li um tutorial que você publicou aqui no Guj. Até que estou indo bem, mas tô com essa dificuldade.

Agradeço!

<só para encher o saco>
não curto muito estes esquemas de IoC via interfaces :slight_smile:
acho que o Spring Framework resolvia bem melhor o esquema de utilizar standalone do que o XWork :slight_smile:
</só para encher o saco>