JSF com telas customizadas/novas telas por terceiros

Bom dia!

Sempre desenvolvi com desktop e agora estou iniciando um projeto utilizando JSF.
Tenho uma dúvida e gostaria de saber qual a melhor forma de solucioná-la, ou de que jeito vocês solucionam esse problema ou problemas desse tipo.
Preciso construir uma aplicação, onde as telas poderão depois ser customizadas.EX:
Tenho um produto padrão, e cada cliente que comprar a aplicação poderá customizar telas do produto além de criar novas telas.Essas
novas telas nem sempre serão desenvolvidas por minha equipe, portanto, preciso bolar um jeito de que seja possível customizar a aplicação toda
sem ter acesso ao projeto original pois como terceiros poderão fazer isso, não poderei distribuir todo o código da minha aplicação para eles.
Acredito que o segredo todo está no faces-config.xml.Pensei em criar um projeto contendo apenas o faces-config e um projeto com minha aplicação.
Aí eu distribuo o projeto do faces-config com o jar do projeto da minha aplicação, e o terceiro cria um novo projeto e faz as alterações que ele quiser no faces-config.
Não sei se isso iria funcionar, e se existe um jeito melhor de fazer isso…
Espero não ter sido muito confuso, esse mundo web é um pouco novo para mim!
Alguém tem alguma sugestão?

Olá!

Você vai conseguir alterar as telas da aplicação no faces-config mas de qualquer forma, elas não serão dinâmicas.
Se entendi bem, acho que a limitação da sua aplicação estará no “quanto as telas poderão ser customizadas”.
Se não for algo muito complexo, você poderá deixar algumas telas prontas, utilizar Ajax4JSF para permitir alguma dinâmica asíncrona nas suas páginas e criar uma forma de incluí-las ou excluí-las de outras páginas.
Se isso não for suficiente, talvez você tenha que criar algum módulo gerador de código.
Mas sinceramente, talvez você possa juntar o útil com o agradável: já que tem experiência com desktop, porque não monta uma aplicação com JavaFX?
Talvez seja mais fácil para criar algo customizável…

Espero ter contribuído com algo.

Aew!!!
Se eu entendi oque você esta querendo dizer… eu acho que você pode usar template para fazer isso…
como o facelets aih quando você quiser mandar para outro cliente a mesma aplicação… basta mudar o template.
Quanto a texto você pode fazer um .properties para isso…

Flw… espero ter ajudado!!!

Putz cara, vc podia dar algum exemplo de aplicação deste tipo?
Seria algo como o igoogle( www.google.com/ig)? Ou seria algo como um sistema gerenciador de conteúdo?
Se for um CMS, dá uma olhada no JBoss Portal.

Srs,

JavaFX é interessante, mas por eu conhecer pouco sobre o assunto, não sei se futuramente teria problemas que hoje eu não consigo imaginar… mas vou dar uma olhada.
Sobre os templates, realmente não tinha pensado nisso, pode ser uma opção interessante mesmo.
Vou dar um exemplo de aplicação, acho que é mais simples do que estão imaginando:

Imaginem um sistema de controle de estoque!
Nesse sistema eu tenho diversas telas que cadastram meus produtos, tipos de produtos e etc…(Esse seria meu sistema padrão).
Imaginem que eu irei vender meu sistema desse jeito, mas a maioria dos usuários irá querer criar novas telas de acordo com a empresa deles.Não
se trata somente de imagens personalizadas, mas sim de novas telas específicas que atendam as necessidades deles, como campos que cadastram
alguma coisa no banco de dados e regras de negócios próprias.
Até aí não é tão complexo, o problema, é alterar alguma coisa nas telas ja existentes.Imaginem que eles queiram adicionar um campo na minha tela de
cadastro de produto(sistema padrão), como eu possibilitaria isso sem distribuir meu código fonte para eles.
Eu não preciso que seja feito dinamicamente, somente que seja possível! Acho que criar um projeto no eclipse, contendo apenas as configurações
faces-config.xml, arquivos properties… e criar um outro projeto contendo toda a minha aplicação padrão resolve meu problema.
Aí para que terceiros desenvolvam em cima de minha aplicação, eu preciso apenas disponibilizar meu projeto de configuração(contendo o faces-config.xml) e um ear ou war contendo meu código fonte.
Caso alguém queira alterar alguma tela do sistema, basta alterar no faces-config!

Eu pretendo dar uma olhada também n jboss-portal pois não conheço exatamente como funciona.
Alguém sabe se o jboss seam iria facilitar também a minha vida?

Agradeço pela ajuda!

velhosafado,

você encontrou alguma alternativa para esta questão?

Tenho uma situação parecida com a sua. Temos um produto, com possibilidade de customização. Até então temos um framework que controla telas armazenadas no banco de dados (para as telas customizadas), mas traz problemas de produtividade.

Então gostaria de unir as duas coisas. A flexibilidade/possibilidade de customização com o uso de frameworks de mercado (JSF, JPA, etc).

Abs,
Fabio