npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

generator-demoiselle

v3.0.0

Published

Gerador Demoiselle 3.0 JEE7 com Angular2

Downloads

51

Readme

generator-demoiselle NPM version Join the chat at https://gitter.im/demoiselle Build Status

Gerador para Demoiselle 3.0

Versões do Gerador (Compatibilidade com Demoiselle Frontend https://github.com/demoiselle/frontend/)

  • 3.x.x para Angular 6 (Node 8+, Angular CLI 6, Demoiselle Frontend 3.x)
  • 2.x.x para Angular 5 com Angular CLI (Demoiselle Frontend 2.x)
  • 1.1.X para Angular 4 (Demoiselle Frontend 1.x)
  • 1.0.X para Angular 2.3.0 (Demoiselle Frontend 1.x)

Utilitário para a criação da estrutura básica de um projeto, arquivos e estrutura de pastas, utilizando os padrões:

  • Demoiselle 3.0
  • Angular
  • Swagger Spec - OpenApis

Requisitos

Para executar apenas o generator, você precisará da ferramenta de execução de scripts Javascript Node JS, do gerenciador de pacotes e dependêncas npm e a ferramenta de apoio para a construção de projetos yo: node, npm e yo.

A execução de projetos em Demoiselle 3.0, depende das seguintes ferramentas de software:

  • para o backend: Java8, mvn
  • para o frontend: node, nvm

Instalação

O NodeJs e o npm estão disponíveis para os sistemas operacionais Linux, macOS e Windows e podem ser obtido no site https://nodejs.org/en/, ambos são instalados com o pacote de instalação do NodeJs.

Nas distribuições Linux baseadas em Debian a instalação pode ser feita com o comando


curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

# Você deve fechar o terminal e abrir novamente

nvm install stable

npm install -g yo generator-demoiselle @angular/cli

Execução

#Crie uma nova pasta onde serão mantidos os arquivos do seu novo projeto
mkdir Noticias
#Torne a nova pasta como caminho ativo do projeto
cd Noticias
# Para criar um novo projeto:
yo demoiselle

Eventualmente pode ser apresentada uma mesagem questionando se você deseja contibuir anonimamente com informações, caso concorde algumas informações estatísticas sobre o desempenho da ferramenta poderão ser enviadas para os desenvolvedores da aplicação aprimorarem a ferramenta.

O script de instalação apresentará questionamentos sobre as caracterisitica do seu projeto conforme os seguintes passos

  • Dê um nome para o seu projeto: (Informar o nome do projeto por ex: Noticias)
  • Informe o package do backend: (Utilizar o padrão java para estrutura de arquivos)
  • Dê um prefixo para os seus componentes: (Informar o prefixo que será usado pelos componentes Angular da sua app)
  • Você quer gerar arquivos para: (Utilize as teclas de setas para alternar entre as opções, espaço para selecionar, e enter para confirmar)
  • Deseja instalar as dependências (isso pode demorar alguns minutos)? (Tem que confirmar para fazer a instalação ou rodar npm install posteriormente)

Serão criados dois diretórios na pasta corrente:

  • backend (contém os arquivos para o servidor de aplicação java)
  • frontend (arquivos para a interface cliente)

Executando

Você poderá executar a aplicação criada neste exemplo diretamente pelo console executando os seguintes comandos:

Backend

cd backend
#Comando que compila a aplicação e empacota para ser executada com o servidor Wildfly
mvn clean package -Pwildfly-swarm
java -jar -Xmx128m target/SEU_PACOTE-swarm.jar

Se tudo ocorreu adequadamente ao acessar o endereço http://localhost:8080/ pelo seu navegador será exibida a página com informações sobre a configuração e funcionalidades do sistema

Frontend

cd frontend
# Instalar os módulos dependentes
npm install
# Inicia a aplicação (frontend)
npm start

Após os comandos será inciado um servidor http na porta 7070 e pode ser acessada utilizando o endereço http://localhost:7070/ no navegador.

Utilizando o Eclipse

Use a opção Import do menu, selecione Maven->Existing Maven Project e clique em Next. Clique no botão Browse e localize a pasta backend criada nos passos anteriores, selecione o arquivo pom.xml identificado e clique em Finish.

No eclipse é possível que apareça o seguinte erro "No generator named "uuid" is defined in the persistence unit" nos arquivos de mapeamento objeto relacional. Para resolver o problema clique em Window na bara de menu, selecione o item Preferences. Na janela que será aberta procure pos Java Persistênce->JPA->Errors/Warnings e altere o valor do item "Generator is not defined in the persistence unit" para Info ou Ignore.

Funcionalidades

  • [x] yo demoiselle - gera novos projetos
  • [x] yo demoiselle:add - gera partes da aplicação
  • [x] yo demoiselle:fromSwagger - gera partes da aplicação usando especificação Swagger
  • [x] yo demoiselle:fromEntity - gera partes da aplicação usando as entidades java pré-existentes
# Para adicionar funcionalidades em um projeto:
yo demoiselle:add crud nome_da_nova_funcionalidade

# Para gerar entidades a partir de uma especificação Swagger
yo demoiselle:fromSwagger

# Para gerar entidades a partir da pasta de entidades java
yo demoiselle:fromEntity

Adicionando um novo CRUD

No momento o comando add do gerador de código pode ser utilizado apenas para a geração de objetos necessários em funcionalidades de mapeamento objeto-relacional. Ao executar o comando yo demoiselle:add

yo demoiselle:add
#Alternativamente é possível passar o nome da nova funcionalidade por parâmetro
#yo demoiselle:add crud nome_da_nova_funcionalidade

Criando funcionalidades a partir de classes de mapeamento objeto-relacional

Ao criar uma nova classe para mapeamento de objeto de banco de dados é o gerador de código provê uma instrução que facilita a construção dos elementos utilizados pela aplicação como a exposição de serviços e interfaces. Caso exista uma nova classe no pacote entity do seu projeto execute o comando:

yo demoiselle:fromEntity

Serão listadas todas as classes responsáveis pelas funcionalidades de mapeamento objeto-relacional. Informe se você deseja criar os arquivos para frontend, backend ou ambos e confirme com a tecla enter. Selecione as classes para as quais deseja gerara os arquivos necessários para uma aplicação

Criando funcionalidades a partir de classes de um serviço existente

O projeto Swagger oferece funcionalidades de apresentação dos serviços disponibilizados, utilizando a notação JSON em uma implementação RESTfull. Utilizando esta estratégia a implementação de uma ferramente de consumo de serviços pode ser implementada sem a necessidade de conhecimentos prévios da implementação no servidor, bastando conhecer a descrição das funcionalidades do mesmo fornecidas por um documento JSON. O papel do Swagger é semelhante ao desempenhado pela WSDL em um servidor SOAP.

Para gerar os arquivos baseados em um documento JSON com as descrições dos serviços oferecidos basta colocar o arquivo na pasta raiz ou subdiretório da aplicação e executar o comando:

# serão apresentados todos os arquivos nas pastas da aplicação, selecione os que deseja implementar
yo demoiselle:fromSwagger

Serão gerados os arquivos necessários para a implementação de uma aplicação, tanto no frontend quanto no backend, a partir da descrição fornecida pelo arquivo JSON.

Frontend

Criando uma distribuição da interface para ser instalada em servidor web

npm run build

Roadmap

Acompanhe pelos milestones do projeto.

License

LGPL3 © SERPRO