Coder Social home page Coder Social logo

jaxio / celerio-angular-quickstart Goto Github PK

View Code? Open in Web Editor NEW
480.0 62.0 137.0 1.77 MB

Generate an Angular 5 CRUD application from an existing database schema (we provide a sample one)

License: Apache License 2.0

TypeScript 36.52% JavaScript 0.33% CSS 0.32% Java 50.43% HTML 11.92% Shell 0.49%
angular code-generator crud-generator crud-application reverse-engineering spring-boot primeng typescript spring-data celerio

celerio-angular-quickstart's Introduction

Celerio Angular Quickstart

Build Status

This Angular quickstart uses Angular Cli to create an application skeleton and Celerio to reverse your relational database schema and generate the Angular + Spring Boot code to access your database content. The generated code covers much more areas than a simple Hello World app (search, pagination, validation, auto-complete, etc.)

To generate an application from our sample database, follow the instructions from the quickstart folder.

Take a look at the generated code for yourself. Out of this sample SQL schema and this Celerio configuration, we generate this code, thanks to these templates.

By default we use a sample H2 database schema. Using your own database schema and database engine is just a matter of configuration. Check as an example our instructions to use MySQL instead of H2.

What to expect?

To see it in action with no effort you may run our sample docker image or watch a screencast. Remember, this is just a generated sample, the idea is to generate your own application using a more realistic database schema.

Sample Docker image

To run the docker image of the sample generated webapp:

docker run -p 8080:8080 nromanetti/celerio-angular-quickstart

Then access it at localhost:8080

Screencast

The following screencast shows you what to expect.

About the project

Our goal is to provide solid code generation templates for advanced Angular CRUD web applications.

Code generation templates are written in Velocity and interpreted by Celerio, an Open Source code generator tool for data-oriented applications.

Here is the folder organization:

  • pack-angular folder contains the Celerio code generation templates that are interpreted/copied by Celerio.
  • quickstart-conf folder contains the minimal configuration that Celerio needs to generate this quickstart.
  • quickstart folder is where you can generate the quickstart.
  • quickstart-generated: folder is an already generated quickstart provided here so you can browse the source code even from your phone :)

About the generated code

The generated Angular CRUD web app uses the following technologies/frameworks:

  • Angular Cli a command line interface for Angular
  • Angular 5 web framework: we try to always use the most recent version
  • TypeScript: much easier than JavaScript...
  • PrimeNG: Angular components library, we leverage file upload, auto-complete, calendar, tri-state checkbox, server-side pagination, etc.
  • Angular Material: Material Design components for Angular apps
  • Spring Boot: Java app backend, made easy, we generate REST endpoints, etc.
  • Spring Security: basic security by default
  • Spring Data JPA: leverage query by example, etc.

Contribute

You may contribute in several ways:

  • By reviewing the generated code, are PrimeNG, Angular, Spring Data, Spring Boot, etc. properly used ?
  • By trying to generate a project using your own database schema
  • By using the generated app and trying to find its limits

You may of course report issues and/or submit pull requests.

celerio-angular-quickstart's People

Contributors

framiere avatar jeanlouisboudart avatar lsf0 avatar nromanetti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

celerio-angular-quickstart's Issues

Joined strategy inheritance doesn't work

Hi!
I try to generate project with joined strategy inheritance
I just add sql code and config from documentation (http://www.jaxio.com/documentation/celerio/configuration.html)

sql:
\celerio-angular-quickstart\quickstart-conf\01-create.sql

CREATE TABLE ACCOUNT (
account_id char(32) not null,
login varchar(255) not null,
password varchar(255) not null,
email varchar(255) not null,
is_enabled bool,
civility char(2),
first_name varchar(255),
last_name varchar(255),
version smallint default 0,

constraint account_unique_1 unique (login),
constraint account_unique_2 unique (email),
primary key (account_id)

);

CREATE TABLE ADMINISTRATIVE_ACCOUNT (
account_id char(32) not null,
fax varchar(255) not null,
country varchar(255) not null,
city varchar(255),
primary key (account_id)
);

CREATE TABLE ENTERPRISE_ACCOUNT (
account_id char(32) not null,
company_name varchar(255) not null,
inception_date timestamp not null,
revenue integer not null,
dummy integer,
is_ethical bool not null,
primary key (account_id)
);

and config

<entityConfig tableName="ADMINISTRATIVE_ACCOUNT" entityName="AdminAccount">
	<inheritance parentEntityName="Account" />
	<columnConfigs>
		<!-- We do not mention all columns on purpose, we expect Celerio to add missing columns... -->
		<columnConfig columnName="fax" fieldName="faxNumber" />
	</columnConfigs>
</entityConfig>

<entityConfig tableName="ENTERPRISE_ACCOUNT">
	<inheritance parentEntityName="AdminAccount" />
	<columnConfigs>
		<!-- We do not mention all columns on purpose, we expect Celerio to add missing columns... -->
		<columnConfig columnName="revenue" fieldName="revenuePerYear" />
	</columnConfigs>
</entityConfig>
to

If I run mvn -Pdb,metadata,gen generate-sources. I get error -
[INFO] Date Mapping match for USE_CASE_1.ID1 jdbcType=TIMESTAMP => DateMapping: mappedType=M_LOCALDATETIME columnJdbcType=TIMESTAMP columnNameRegExp=null
[ERROR] In pack-angular:src\main\java\rest\EntityResource.java.e.vm method [getType] has not been set
java.lang.IllegalStateException: [AdminAccount] You probably have entity.primaryKey.var in your code, you should use entity.root.primaryKey.var
at com.jaxio.celerio.model.primarykey.NoPrimaryKey.throwException(NoPrimaryKey.java:191)
at com.jaxio.celerio.model.primarykey.NoPrimaryKey.getType(NoPrimaryKey.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.velocity.runtime.parser.node.PropertyExecutor.execute(PropertyExecutor.java:142)
at org.apache.velocity.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:533)
at org.apache.velocity.runtime.parser.node.ASTIdentifier.execute(ASTIdentifier.java:198)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:332)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)
at org.apache.velocity.runtime.RuntimeInstance.render(RuntimeInstance.java:1277)
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1216)
at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1165)
at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:219)
at com.jaxio.celerio.template.VelocityGenerator.evaluate(VelocityGenerator.java:53)
at com.jaxio.celerio.template.PreviousEngine.processDynamicFile(PreviousEngine.java:352)
at com.jaxio.celerio.template.TemplateExecution.write(TemplateExecution.java:597)
at com.jaxio.celerio.template.TemplateEngine.produce(TemplateEngine.java:273)
at com.jaxio.celerio.template.TemplateEngine.produceEntities(TemplateEngine.java:227)
at com.jaxio.celerio.template.TemplateEngine.produce(TemplateEngine.java:164)
at com.jaxio.celerio.main.CelerioProducer.produce(CelerioProducer.java:67)
at com.jaxio.celerio.main.CelerioProducer.produce(CelerioProducer.java:60)
at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.process(GenerateMojo.java:220)
at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:201)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR] Invocation of method 'getType' in class com.jaxio.celerio.model.primarykey.NoPrimaryKey threw exception java.lang.IllegalStateException: [AdminAccount] You probably have entity.primaryKey.var in your code, you should use entity.root.primaryKey.var at src\main\java\rest\EntityResource.java.e.vm[line 112, column 87]

Oracle table user doesnot exist

While reverse engineering my oracle database, getting error angular-quickstart: The table named USER could not be found.

In Oracle I cannot create a table named as user. I tried creating different table as account but did not work.

Errors after session expiry

If while searching/listing entities the session expires due to inactivity a request to http://localhost:8080/login is made according to Chrome Dev Tools but this page is not displayed (only seen in the Network tab), Console shows...

gnOperator.service.ts:82 JSON content could not be parsed
    GnOperatorService.handleError @ gnOperator.service.ts:82
    CatchSubscriber.error @ catch.ts:55
    MapSubscriber._next @ map.ts:77
    Subscriber.next @ Subscriber.ts:95
    onLoad @ http.umd.js:1168
    ZoneDelegate.invokeTask @ zone.js:275
    onInvokeTask @ core.umd.js:4382
    ZoneDelegate.invokeTask @ zone.js:274
    Zone.runTask @ zone.js:151
    ZoneTask.invoke @ zone.js:345

message.service.ts:25 ERROR: Could not get the results DETAIL: JSON content could not be parsed

The website is still on e.g. http://localhost:8080/gnOperator-list and to continue I have to explicitly log out and back in.

Might this be due in some way to my earlier report on ts compilation problems?

How to restrict generate-sources

Is it possible to restrict the tables that get processed when reversing a schema? Or would the best approach be simply to edit the generated metada.xml file to remove the unwanted tables?

TIA

Dan

Bug in Template EntityDTOService.java.e.vm

There appears to be a bug in the Template EntityDTOService.java.e.vm, in line 192:

The variable declaration
final int fdepth = depth;
is within a for-loop:
#foreach ($relation in $entity.manyToMany.list)
This leads to the same variable being declared multiple times if several relations exist, causing a compile error.

Taking the declaration out of the loop solved the issue for me (though it would be prettier to surround it with an if-statement)

upload funcinality

In the given example for file upload i cant upload a file of bigger size and it is not supporting .xls

project package

By default the generated app comes as "com.mycompany.myapp"
Is there is specific configuration to be set so that it comes with the intended name, if so where?

Improve Look'n feel

Many friends complained about the raw look'n feel... If s/o wants to help beautify the generated app, please let me know.

vm file based query

Hi i am trying to modify the "entity-detail.component.html.e.vm" file
but the below condition for one to one and one to many relationship always fails

#if($entity.inverseOneToOne.flatUp.size > 0 || $entity.oneToMany.flatUp.size > 0 || $entity.manyToMany.flatUp.size > 0)

Generate entity add simple quote into table name tag

Hello,

I have some trouble with the entity generation.
I have a table named "Delay", but when the template generate the corresponding entity, a simple quote is added to the name, and then i get oracle problems in request "Table or view no exist".

@table(name = " ` DELAY ` "...
instead of
@table(name = "DELAY"...

Regards,

Thanks.

Export .war issue

When I export the generated app as .jar and run it, it works fine.
If I edit the pom file and change packaging to war:

<packaging>war</packaging>

Then when I deploy the generated .war to the webserver it does't work.
Is there another setting which I'm missing?

M_LOCALDATETIME is not implemented yet

All went great until trying to generate source code from my db with...

mvn -Pgen generate-sources

it failed with this error...

[ERROR] Failed to execute goal com.jaxio.celerio:celerio-maven-plugin:4.0.13:generate (Generates files using the extracted database schema.) on project celerio-angular-quickstart: Invocation of method 'getJavaDefinition' in class com.jaxio.celerio.util.MappedType threw exception java.lang.IllegalArgumentException: getJavaDefinition for M_LOCALDATETIME is not implemented yet at src/main/java/domain/CompositePk.java.cpk.vm[line 174, column 63] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jaxio.celerio:celerio-maven-plugin:4.0.13:generate (Generates files using the extracted database schema.) on project celerio-angular-quickstart: Invocation of method 'getJavaDefinition' in class com.jaxio.celerio.util.MappedType threw exception java.lang.IllegalArgumentException: getJavaDefinition for M_LOCALDATETIME is not implemented yet at src/main/java/domain/CompositePk.java.cpk.vm[line 174, column 63]
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Invocation of method 'getJavaDefinition' in class com.jaxio.celerio.util.MappedType threw exception java.lang.IllegalArgumentException: getJavaDefinition for M_LOCALDATETIME is not implemented yet at src/main/java/domain/CompositePk.java.cpk.vm[line 174, column 63]
at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:204)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more

Dan

Cannot read property "" of undefined in case of nullable relation

Hello,

I'm trying to use your framework but I have a big problem with the grid included into the generated "template-list"
Example :
The Car entity has an optional relation with Color entity, and I want to display a "Color column" in my grid.
If the relation is null, then I get a javascript error "Cannot read property "color" of undefined". I would like to have an empty value or a default value for the column, is it possible ?
I tried to change the configuration into celerio-maven-plugin.xml but impossible to find any solution.

Best Regards

Updating Database

What is the best way how to update the application after a database schema update (new tables and relations) without installing everything new?

Test case Issue

Hi i am trying to create VM files for writing test cases foe all entity but i was unable to create files inside "src\test\java" is there any tutorial are guides available for generation of test cases

OneToOne Relation bidirectional not display

Hi,

I have a OneToOne bidirectional. but the relation only appears on the side with the column.
The entity is generated properly, with the annotation @OnetoOne but the template doesn't generate attribute in entity-detail for this one.

Do you have a solution or a fix ? I wanted to display the relation with "Go To" button in both side.

Thanks

oracle issue

when i try to generate and run code using oracle table if the table has more than to columns and it is throwing invalid Identifier error
java.sql.SQLSyntaxErrorException: ORA-00904: "AUTHOR1_"."SEX": invalid identifier
(NOTE : invalid identifier will come only for incorrect column name but column names where correct)

repeated imports in entity-detail.component.ts.e.vm

In entity-detail.component.ts.e.vm, lines 8-12:
#foreach ($relation in $entity.xToOne.list)
#if(!$relation.to.type.equals($entity.model.type))
import {${relation.to.type}} from '../$relation.toEntity.model.var/${relation.toEntity.model.var}';
#end
#end

when creating an Entity with several X-to-One relations with the same target type (e.g., a PROJECT entity with a project manager and a deputy project manager which are both of Type USER), the component gets imported repeatedly, leading to a compile error.

I assume the same happens for Many-To-Many Relations (lines 13-16) though I didn't test that.

EDIT: Changing lines 8-12 to the following solved this for me (solution for lines 13-16 is probably analogous):

#set($imports = [])
#foreach ($relation in $entity.xToOne.list)
#if(!$relation.to.type.equals($entity.model.type) && !$imports.contains($relation.to.type))
import {${relation.to.type}} from '../$relation.toEntity.model.var/${relation.toEntity.model.var}';
#set($temp = $imports.add($relation.to.type))
#end
#end

Bug on step 5

running command:
mvn spring-boot:run -e

image

greetings from chile

swagger-ui.html

Hello Together,

not sure whats going on, but after clickinh on the swagger Menu, I did not see the OpenAPI definition for the REST Interface, but only a redirect to root /.

Setup:

-------------------------------------------------------------------------------
java: openjdk version "1.8.0_141-2-redhat", OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode)
-------------------------------------------------------------------------------
maven: Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00); Default locale: de_DE, platform encoding: Cp1252; OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
-------------------------------------------------------------------------------
node.js: v6.11.2
-------------------------------------------------------------------------------
npm: 3.10.10
-------------------------------------------------------------------------------
angular-cli: 1.2.6
-------------------------------------------------------------------------------
celerio: 4.0.23
-------------------------------------------------------------------------------
spring: 1.5.4

The table named 'Something' could not be found

I have been able to generate the metadata successfully.
However when I try to run 'mvn -e -X -Pgen generate-sources', I get the following output:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jaxio.celerio:celerio-maven-plugin:4.0.18:generate (Generates files using the extracted database schema.) on project celerio-generator-configtool: The table named subscriptions could not be found at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: The table named subscriptions could not be found at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:204) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 more Caused by: java.lang.IllegalArgumentException: The table named subscriptions could not be found at org.springframework.util.Assert.notNull(Assert.java:115) at com.jaxio.celerio.factory.EntityConfigFactory.assertEntityConfigIsValid(EntityConfigFactory.java:81) at com.jaxio.celerio.factory.EntityConfigFactory.assertEntityConfigListIsConsistent(EntityConfigFactory.java:64) at com.jaxio.celerio.factory.ProjectFactory.init(ProjectFactory.java:165) at com.jaxio.celerio.main.CelerioProducer.produce(CelerioProducer.java:66) at com.jaxio.celerio.main.CelerioProducer.produce(CelerioProducer.java:60) at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.process(GenerateMojo.java:220) at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:201)

Customising the UI

The basics are in place and I'm now considering some simple customisation. Do you have any pointers over how to avoid the over-writing of any customisations by subsequent re-generation of the sources? Is it simply a matter of re-applying any customisations with the help of source control?

I'm also wondering whether errors as raised in #16 (comment) are likely to cause problems - has this issue been fixed yet?

Thanks for a great product!

NullPointerException while running quickstart

Followed below steps, without changing the code.

  1. git clone https://github.com/jaxio/celerio-angular-quickstart.git
  2. cd celerio-angular-quickstart/quickstart
  3. ng new web
  4. rm web/src/app/app.module.ts web/src/app/app.component.* web/src/styles.css
  5. mvn -Pdb,metadata,gen generate-sources

while running the command mvn -Pdb,metadata,gen generate-sources ended up with below error. What could be the reason for failure.

_[ERROR] Failed to execute goal com.jaxio.celerio:celerio-maven-plugin:4.0.18:generate (Generates files using the extracted database schema.) on project celerio-angular-quickstart: null: MojoExecutionException: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jaxio.celerio:celerio-maven-plugin:4.0.18:generate (Generates files using the extracted database schema.) on project celerio-angular-quickstart: null
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:204)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 20 more
Caused by: java.lang.NullPointerException
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.removeBaseDir(GenerateMojo.java:446)
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.isDefaultXmlConfiguration(GenerateMojo.java:457)
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.getCelerioConfigurationFromFile(GenerateMojo.java:370)
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.getCelerio(GenerateMojo.java:318)
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.setupConfig(GenerateMojo.java:249)
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.process(GenerateMojo.java:216)
	at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:201)
	... 22 more_

Clob issue

Am facing compilation issue when i try to generate code with oracle database ,
In pojo file under domain folder is having the CLOB variable where it is missing in DTO file so it is throwing error every where

Generated toString() method of Pk class references invalid LocalDateTime.getTime()

I have a table with a datetime column as part of the pk and the generated class's toString() method has...

if (isSailingDateSet()) {
result.append(getSailingDate().getTime());
}

which leads to an error...

[ERROR] symbol: method getTime()
[ERROR] location: class java.time.LocalDateTime

Perhaps this could just omit the getTime()?

This is my only remaining issue so I'll work around them for now and see how the runtime goes.

Dan

Route Reload

Hi,
On app route reload or direct link to an app route I get:

Whitelabel Error Page
There was an unexpected error (type=Not Found, status=404).
No message available

Is there a way to make it work?
With Apache and AngularJS we used .htaccess RewriteRule to overcome this issue.
Is there a way for Spring Boot to do similar?

SQLServer type DateTimeOffset is not supported

Error on generating using SqlServer (2016).

mvn -Pgen generate-sources -e -X

ERROR:

[INFO] Applying conventions...
[ERROR]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.573 s
[INFO] Finished at: 2017-05-16T18:26:04-04:00
[INFO] Final Memory: 26M/242M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.jaxio.celerio:celerio-maven-plugin:4.0.17:generate (Generates files using the extracted database schema.) on project celerio-angular-quickstart: null: MojoExecutionException: NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jaxio.celerio:celerio-maven-plugin:4.0.17:generate (Generates files using the extracted database schema.) on project celerio-angular-quickstart: null
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException
        at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:204)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        ... 20 more
Caused by: java.lang.NullPointerException
        at com.jaxio.celerio.model.support.AttributeSetup.getMappedTypeByGlobalMappingConfiguration(AttributeSetup.java:72)
        at com.jaxio.celerio.model.support.AttributeSetup.getMappedType(AttributeSetup.java:54)
        at com.jaxio.celerio.model.Attribute.getMappedType(Attribute.java:793)
        at com.jaxio.celerio.model.Attribute.isString(Attribute.java:846)
        at com.jaxio.celerio.factory.conventions.AccountConvention.setupAccount(AccountConvention.java:52)
        at com.jaxio.celerio.factory.ProjectFactory.conventions(ProjectFactory.java:378)
        at com.jaxio.celerio.factory.ProjectFactory.init(ProjectFactory.java:191)
        at com.jaxio.celerio.main.CelerioProducer.produce(CelerioProducer.java:66)
        at com.jaxio.celerio.main.CelerioProducer.produce(CelerioProducer.java:60)
        at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.process(GenerateMojo.java:220)
        at com.jaxio.celerio.maven.plugin.celerio.GenerateMojo.execute(GenerateMojo.java:201)
        ... 22 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

metadata.xml:

<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.jaxio.com/schema/celerio">
  <jdbcConnectivity driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost" user="sa" password="tjmt2017" schemaName="dbo" oracleRetrieveRemarks="false" oracleRetrieveSynonyms="true" reverseIndexes="true" reverseOnlyUniqueIndexes="true" catalog="MyTrips">
    <tableNamePatterns/>
    <tableTypes>
      <tableType>TABLE</tableType>
    </tableTypes>
  </jdbcConnectivity>
  <databaseInfo databaseMajorVersion="13" databaseMinorVersion="0" databaseProductName="Microsoft SQL Server" databaseProductVersion="13.00.1601" driverMajorVersion="6" driverMinorVersion="0" driverName="Microsoft JDBC Driver 6.0 for SQL Server" driverVersion="6.0.8112.100" extraInfo=""/>
  <tables>
    <table name="Person" type="TABLE">
      <columns>
        <column name="Id" decimalDigits="0" autoIncrement="true" nullable="false" ordinalPosition="1" size="10" type="INTEGER"/>
        <column name="Nome" decimalDigits="0" autoIncrement="false" nullable="false" ordinalPosition="2" size="10" type="NCHAR"/>
        <column name="DataDeNascimento" decimalDigits="7" autoIncrement="false" nullable="false" ordinalPosition="3" size="34"/>
        <column name="Sexo" decimalDigits="0" autoIncrement="false" nullable="true" ordinalPosition="4" size="10" type="NCHAR"/>
      </columns>
      <indexes>
        <indexe columnName="Id" indexName="PK_Person" nonUnique="false"/>
      </indexes>
      <importedKeys/>
      <primaryKeys>
        <primaryKey>Id</primaryKey>
      </primaryKeys>
    </table>
  </tables>
</metadata>

celerio-maven-plugin.xml:

<?xml version="1.0" encoding="UTF-8"?>
<celerio xmlns="http://www.jaxio.com/schema/celerio" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.jaxio.com/schema/celerio ./celerio.xsd">
    <configuration rootPackage="com.mycompany.myapp" applicationName="sampleapp">
        <!-- Which tables are used for generation -->
        <tables>
            <!-- <table include="false" pattern="*_AUDIT"/> -->
            <table include="false" pattern="jhi_persistent_*"/>
        </tables>

        <!-- global number mapping (optional) -->
        <numberMappings>
            <numberMapping mappedType="M_BOOLEAN" columnSizeMin="1" columnSizeMax="2" columnDecimalDigitsMin="0"
                           columnDecimalDigitsMax="0"/>
            <!-- <numberMapping mappedType="M_BIGDECIMAL" columnSizeMin="10" columnDecimalDigitsMin="4"/> -->
        </numberMappings>

        <!-- global date mapping (optional) -->
        <dateMappings>
            <!-- <dateMapping columnNameRegExp="VERSION" mappedType="M_UTILDATE"/> -->
            <dateMapping columnJdbcType="TIMESTAMP" mappedType="M_LOCALDATETIME"/>
            <dateMapping columnJdbcType="DATE" mappedType="M_LOCALDATE"/>
        </dateMappings>

        <headerComment>
            <lines>
                <line>Project home: https://github.com/jaxio/celerio-angular-quickstart</line>
                <line></line>
                <line>Source code generated by Celerio, an Open Source code generator by Jaxio.</line>
                <line>Documentation: http://www.jaxio.com/documentation/celerio/</line>
                <line>Source code: https://github.com/jaxio/celerio/</line>
                <line>Follow us on twitter: @jaxiosoft</line>
                <line>This header can be customized in Celerio conf...</line>
            </lines>
        </headerComment>

    </configuration>


</celerio>

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.jaxio</groupId>
    <artifactId>celerio-angular-quickstart</artifactId>
    <packaging>jar</packaging>
    <version>1.0.0-SNAPSHOT</version>
    <name>celerio-angular-quickstart</name>
    <description>
        A Spring boot webbapp with Angular JS project generated by Celerio
    </description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
    </parent>

    <properties>
        <!-- Explicitly declaring the source encoding eliminates the following message: -->
        <!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered
            resources, i.e. build is platform dependent! -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <!-- maven-compiler-plugin -->
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>

        <hibernate.version>5.0.2.Final</hibernate.version>
        <spring-security.version>4.0.4.RELEASE</spring-security.version>

        <!-- ~~~~~~~~ -->
        <!-- Database -->
        <!-- ~~~~~~~~ -->

        <!-- **** CHANGE THE PROPERTIES BELOW TO USE YOUR OWN DATABASE **** -->
        <!-- **** DO NOT USE A PRODUCTION DATABASE **** -->

        <!-- H2 DATABASE SETTINGS
        <jdbc.groupId>com.h2database</jdbc.groupId>
        <jdbc.artifactId>h2</jdbc.artifactId>
        <jdbc.version>1.4.187</jdbc.version>

        <jdbc.driver>org.h2.Driver</jdbc.driver>
        <jdbc.url>jdbc:h2:${project.build.directory}/db/angular-lab;MVCC=TRUE;FILE_LOCK=NO</jdbc.url>
        <jdbc.user>root</jdbc.user>
        <jdbc.password>manager</jdbc.password>
        <jdbc.schema></jdbc.schema>
        <jdbc.catalog></jdbc.catalog>
        <hibernate.dialect>org.hibernate.dialect.H2Dialect</hibernate.dialect>
        <sql-maven-plugin.delimiter>;</sql-maven-plugin.delimiter>
        <sql.create.script>01-create.sql</sql.create.script>
-->

        
        <jdbc.groupId>com.microsoft.sqlserver</jdbc.groupId>
        <jdbc.artifactId>sqljdbc42</jdbc.artifactId>
        <jdbc.version>6.0</jdbc.version>

        <jdbc.driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</jdbc.driver>
        <jdbc.url>jdbc:sqlserver://localhost</jdbc.url>
        <jdbc.user>sa</jdbc.user>
        <jdbc.password>somepassword</jdbc.password>
        <jdbc.schema>dbo</jdbc.schema>
        <jdbc.catalog>MyTrips</jdbc.catalog>
        


        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <!-- Version dependencies when used in multiple dependencies -->
        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <celerio-maven-plugin.outputDir>${project.basedir}</celerio-maven-plugin.outputDir>
        <celerio-maven-plugin.version>4.0.17</celerio-maven-plugin.version>

        <celerio-maven-plugin.configuration>../quickstart-conf/celerio-maven-plugin.xml</celerio-maven-plugin.configuration>
        <celerio-maven-plugin.packs.configuration>../quickstart-conf/celerio-template-packs.xml</celerio-maven-plugin.packs.configuration>
        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <!-- Variables substituted in resources file at build time -->
        <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <application.name>${project.name}</application.name>
        <application.version>${project.version}</application.version>
        <application.description>${project.description}</application.description>
        <!-- host port where the application will be deployed -->
        <application.host>localhost</application.host>
        <application.port>8080</application.port>
        <application.contextpath>/demo</application.contextpath>
        <!-- logs -->
        <log.target>${project.build.directory}/logs</log.target>
        <log.level>DEBUG</log.level>
        <log.sql.queries.level>DEBUG</log.sql.queries.level>
        <!-- hibernate, see by src/main/resource/hibernate.properties -->
        <hibernate.show.sql>true</hibernate.show.sql>
        <hibernate.format.sql>true</hibernate.format.sql>
        <hibernate.generate_statistics>true</hibernate.generate_statistics>
        <hibernate.use_sql_comments>true</hibernate.use_sql_comments>
        <hibernate.ehcache.configuration.file>ehcache.xml</hibernate.ehcache.configuration.file>
        <hibernate.use.second.level.cache>false</hibernate.use.second.level.cache>
        <hibernate.use.query.cache>false</hibernate.use.query.cache>

        <!-- use latest versions-->
        <spring-data-releasetrain.version>Hopper-SR1</spring-data-releasetrain.version>

    </properties>

    <dependencies>
        <dependency>
            <groupId>${jdbc.groupId}</groupId>
            <artifactId>${jdbc.artifactId}</artifactId>
            <version>${jdbc.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-java8</artifactId>
            <version>5.0.2.Final</version>
        </dependency>
        <!-- Celerio code completion support in velocity templates -->
        <!-- See pack-angular/META-INF/velocity_implicit.vm -->
        <dependency>
            <groupId>com.jaxio.celerio</groupId>
            <artifactId>celerio-engine</artifactId>
            <version>${celerio-maven-plugin.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-data</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.0.3</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.0.3</version>
        </dependency>

        <!-- ~~~~ -->
        <!-- TEST -->
        <!-- ~~~~ -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.9.5</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.easytesting</groupId>
            <artifactId>fest-assert</artifactId>
            <version>1.4</version>
            <scope>test</scope>
        </dependency>
    </dependencies>


    <build>
        <defaultGoal>spring-boot:run</defaultGoal>
        <!-- Set the name of the war, used as the context root when the app
            is deployed -->
        <finalName>${project.artifactId}</finalName>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>application.yml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <excludes>
                    <exclude>application.yml</exclude>
                </excludes>
            </resource>

            <!-- COPY aot compilation results + aot index.html -->
            <resource>
                <directory>src/main/webapp/aot</directory>
                <filtering>false</filtering>
                <includes>
                    <include>index.html</include>
                    <include>dist/build.js</include>
                    <include>dist/build.js.map</include>
                </includes>
                <targetPath>static</targetPath>
            </resource>

            <!-- COPY other resources required by aot index.html -->
            <resource>
                <directory>src/main/webapp</directory>
                <filtering>false</filtering>
                <includes>
                    <include>node_modules/core-js/client/shim.min.js</include>
                    <include>node_modules/zone.js/dist/zone.min.js</include>
                    <include>node_modules/json.date-extensions/json.date-extensions.min.js</include>
                    <include>node_modules/primeng/resources/**</include>
                    <include>node_modules/@angular/material/core/theming/**</include>
                </includes>
                <targetPath>static</targetPath>
            </resource>
        </resources>

        <testResources>
            <testResource>
                <directory>${celerio-maven-plugin.outputDir}/src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>com.jaxio.celerio</groupId>
                            <artifactId>celerio-engine</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>

            <plugin>
                <!-- http://maven.apache.org/plugins/maven-resources-plugin/ -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.7</version>
                <configuration>
                    <delimiters>
                        <delimiter>@*@</delimiter>
                    </delimiters>
                    <useDefaultDelimiters>false</useDefaultDelimiters>
                    <nonFilteredFileExtensions>
                        <nonFilteredFileExtension>xls</nonFilteredFileExtension>
                        <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                        <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
                    </nonFilteredFileExtensions>
                </configuration>
            </plugin>

            <plugin>
                <!-- http://mojo.codehaus.org/build-helper-maven-plugin/ -->
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.9.1</version>
                <executions>
                    <execution>
                        <id>Adding generated java folder to build</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/main/java</source>
                                <source>src/main/generated-java</source>
                            </sources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>Adding generated java test location to test build</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/test/java</source>
                                <source>src/test/generated-java</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>


            <!-- Compiler plugin enforces Java compatibility and activates
                annotation processors -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        
        <!-- Profiles below are used when Celerio Maven Plugin is present in the build process -->
        <profile>
            <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
            <!-- Extract the database metadata -->
            <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
            <id>metadata</id>
            <build>
                <defaultGoal>generate-sources</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>com.jaxio.celerio</groupId>
                        <artifactId>dbmetadata-maven-plugin</artifactId>
                        <version>${celerio-maven-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>Extract the database schema.</id>
                                <goals>
                                    <goal>extract-metadata</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>${jdbc.groupId}</groupId>
                                <artifactId>${jdbc.artifactId}</artifactId>
                                <version>${jdbc.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
            <!-- Generate the code using Celerio -->
            <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
            <id>gen</id>
            <build>
                <defaultGoal>generate-sources</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>com.jaxio.celerio</groupId>
                        <artifactId>celerio-maven-plugin</artifactId>
                        <version>${celerio-maven-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>Generates files using the extracted database schema.</id>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
            <!-- Delete code generated by Celerio -->
            <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
            <id>cleanGen</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.jaxio.celerio</groupId>
                        <artifactId>celerio-maven-plugin</artifactId>
                        <version>${celerio-maven-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>Delete previously generated files (use .celerio/ folder)</id>
                                <goals>
                                    <goal>cleanGenerated</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

file upload

use file upload component once prime ng releases it.

Generated findAll function references non-existent composite pk fields

The fix for issue #15 gets me further but a compile of the generated sources produces errors in the DTO classes when there are composite pks.

E.g. my gn_messages table has these three columns with the first two being the primary key...
languageId
messageId
messageDescription

and a compile of the generated source errors with...

[ERROR] /home/dan/pharos/celerio/angular/celerio-angular-quickstart/quickstart/src/main/generated-java/com/mycompany/myapp/dto/GnMessagesDTOService.java:[56,45] cannot find symbol
[ERROR] symbol:   variable messageId
[ERROR] location: class com.mycompany.myapp.domain.GnMessages_
[ERROR] /home/dan/pharos/celerio/angular/celerio-angular-quickstart/quickstart/src/main/generated-java/com/mycompany/myapp/dto/GnMessagesDTOService.java:[55,45] cannot find symbol
[ERROR] symbol:   variable languageId
[ERROR] location: class com.mycompany.myapp.domain.GnMessages_

and findAll has this code...

if (gnMessages != null) {
    ExampleMatcher matcher = ExampleMatcher.matching() //
            .withMatcher(GnMessages_.languageId.getName(), match -> match.ignoreCase().startsWith())
            .withMatcher(GnMessages_.messageId.getName(), match -> match.ignoreCase().startsWith())
            .withMatcher(GnMessages_.messageDescription.getName(), match -> match.ignoreCase().startsWith());

but GnMessages_ has been generated as...

public abstract class GnMessages_ {
    // Composite primary key
    public static volatile SingularAttribute<GnMessages, GnMessagesPk> id;

    // Raw attributes
    public static volatile SingularAttribute<GnMessages, String> messageDescription;
}

I've not contributed to an open source project before but if you'd prefer to provide pointers I'd be happy to fork the code and make a pull request. Or just stick to raising the issues as I find them.

Thanks for this project either way - it is teaching me a lot and allowing me to get my head around these newer java technologies!

Dan

ran into issue with font-awsome and running ng-serve

npm install --save font-awesome
1 error Darwin 16.4.0
32 error argv "/usr/local/Cellar/node/7.7.1/bin/node" "/usr/local/bin/npm" "install" "--save" "font-awesom"
33 error node v7.7.1
34 error npm v4.1.2
35 error code E404
36 error 404 Registry returned 404 for GET on https://registry.npmjs.org/font-awesom
37 error 404
38 error 404 'font-awesom' is not in the npm registry.
39 error 404 You should bug the author to publish it (or use the name yourself!)
40 error 404 Note that you can also install from a
41 error 404 tarball, folder, http url, or git url.
42 verbose exit [ 1, true ]

error while running server:
ng serve --proxy-config proxy.conf.json

ERROR in .//css-loader?{"sourceMap":false,"importLoaders":1}!.//postcss-loader!./src/styles.css
Module not found: Error: Can't resolve '@angular/material/core/theming/prebuilt/deeppurple-amber.css' in '/Users/saurabh/work/samples/angular_quickstart/celerio-angular-quickstart/quickstart/web/src'
@ .//css-loader?{"sourceMap":false,"importLoaders":1}!.//postcss-loader!./src/styles.css 3:10-201
@ ./src/styles.css
@ multi ./src/styles.css

How to add users with different roles

I'm now finding this project is working well for me - thank you!

Do you have any advice on how to configure users with different roles?

For example I might like to have a user with read-only access, one with update only in addition to the existing admin user with full privileges.

TIA

Dan

Package.json isue

Hi ,
I was trying to replace the package.json file which was generated by ng with my own file.
I copied my package file into pack-angular-web-src but it is not reflecting

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.