Skip to content

Commit

Permalink
extend script demo based on user request ... with focus of using java…
Browse files Browse the repository at this point in the history
… classes in my js functions
  • Loading branch information
ake2l committed May 26, 2024
1 parent 80dd181 commit 99c94b3
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
47 changes: 47 additions & 0 deletions src/demo/resources/demo/script/scriptdb2.ben.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>

<setup defaultDataset="US" defaultLocale="en" defaultPageSize="100" defaultSeparator="|">

<!-- define a database that will be referred by the id 'db' later -->
<comment>define a database that will be referred by the id 'db' subsequently</comment>
<database id="db" url="jdbc:h2:mem:testdb" driver="org.h2.Driver" user="sa" schema="PUBLIC"
tableFilter="db_.*"/>

<memstore id="mem"/>

<!-- SQL commands to set up the database schema -->
<execute target="db" onError="warn">
DROP TABLE IF EXISTS db_user;
</execute>

<execute target="db">
CREATE TABLE db_user (
id int NOT NULL,
name varchar(16) NOT NULL,
PRIMARY KEY (id)
);
</execute>

<!-- JavaScript code to create and store entities -->
<execute type="js">
print('DB-URL: ' + db.getUrl());

Entity = Java.type('com.rapiddweller.model.data.Entity');

// Create 1000 users using a loop
for (var i = 1; i &lt;= 1000; i++) {
var user = new Entity('db_user', context.getLocalDescriptorProvider());
user.set('id', i);
user.set('name', 'User' + i);
db.store(user);
}

// Persist everything
db.flush();

print('Created 1000 users successfully.');
</execute>

<echo>Printing generated data</echo>
<iterate type="db_user" source="db" consumer="ConsoleExporter"/>
</setup>
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,17 @@ public void demoScriptDb() {

}

/**
* Demo script db.
*/
@Test
public void demoScriptDb2() {
context.setContextUri("/demo/script");
BeneratorContext benCtx = parseAndExecuteFile("/demo/script/scriptdb2.ben.xml");
Assert.assertEquals("/demo/script", benCtx.getContextUri());

}

/**
* Demo script code.
*/
Expand Down

0 comments on commit 99c94b3

Please sign in to comment.