{"id":34567479,"url":"https://github.com/yadickson/autoplsp","last_synced_at":"2025-12-24T09:11:23.116Z","repository":{"id":49458479,"uuid":"93645555","full_name":"yadickson/autoplsp","owner":"yadickson","description":"Maven plugin for generate Java classes from SP DataBase","archived":false,"fork":false,"pushed_at":"2025-07-18T05:56:24.000Z","size":778,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-18T09:43:57.796Z","etag":null,"topics":["database","java","maven-plugin","oracle-database"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yadickson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-06-07T14:37:30.000Z","updated_at":"2024-12-13T22:32:45.000Z","dependencies_parsed_at":"2024-08-01T01:26:18.409Z","dependency_job_id":"75604e3a-c900-49a7-b623-342a7696ba58","html_url":"https://github.com/yadickson/autoplsp","commit_stats":null,"previous_names":[],"tags_count":84,"template":false,"template_full_name":null,"purl":"pkg:github/yadickson/autoplsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadickson%2Fautoplsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadickson%2Fautoplsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadickson%2Fautoplsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadickson%2Fautoplsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yadickson","download_url":"https://codeload.github.com/yadickson/autoplsp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yadickson%2Fautoplsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27999488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","java","maven-plugin","oracle-database"],"created_at":"2025-12-24T09:11:22.310Z","updated_at":"2025-12-24T09:11:23.111Z","avatar_url":"https://github.com/yadickson.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Maven Auto PLSQL/SP Generator Plugin\n\n![version](https://img.shields.io/github/v/release/yadickson/autoplsp?style=flat-square)\n![license](https://img.shields.io/github/license/yadickson/autoplsp?style=flat-square)\n[![build](https://img.shields.io/github/actions/workflow/status/yadickson/autoplsp/maven.yml?branch=master\u0026style=flat-square)](https://github.com/yadickson/autoplsp/actions/workflows/maven.yml)\n![tests](https://img.shields.io/endpoint?style=flat-square\u0026url=https%3A%2F%2Fgist.githubusercontent.com%2Fyadickson%2F2edc636fc2ff6aff4b056d455f3290be%2Fraw%2Fautoplsp-junit-tests.json)\n![coverage](https://img.shields.io/endpoint?style=flat-square\u0026url=https%3A%2F%2Fgist.githubusercontent.com%2Fyadickson%2F2edc636fc2ff6aff4b056d455f3290be%2Fraw%2Fautoplsp-jacoco-coverage.json)\n[![Central OSSRH][oss-nexus-image]][oss-nexus-url]\n[![Central Maven][central-image]][central-url]\n\n\nMaven plugin to generate Java classes from StoredProcedure and Functions in Database\n\n[Examples](https://github.com/yadickson/autoplsp-examples)\n\n## Support\n\n- Oracle DataBase 11g and 12c\n- Basic PostgresSQL\n- Basic SQL Server (Tested 2017, Driver jTDS)\n- Java \u003e= 8\n- Spring Framework \u003e= 4\n- Auto package name detection\n- Configuration file generation for Spring\n- Use output parameters to evaluate process\n- Transaction annotation\n- Command line for all parameters\n- JsonNonNull support\n- Parameter IN builder support\n- Disable documentation generation\n- JUnit5 support\n\n## Oracle\n\n- Procedures\n- Functions\n- Numerics (NUMBER, DECIMAL, INTEGER, FLOAT, REAL, DEC, INT, SMALLINT, BINARY_DOUBLE, BINARY_FLOAT)\n- Texts (CHAR, NCHAR, VARCHAR, VARCHAR2, NVARCHAR2)\n- Lobs (CLOB, NCLOB, BLOB)\n- Time (DATE, TIMESTAMP)\n- ROWID and UROWID\n- REF CURSOR (only output)\n- TYPE OBJECT (only input)\n- TYPE TABLE [NATIVE] (only input)\n- TYPE TABLE [TYPE OBJECT] (only input)\n\n## PostgresSQL\n\n- Procedures\n- Functions\n- Numerics (INTEGER, REAL)\n- Texts (TEXT, CHARACTER)\n- Working in progress\n\n## SQL Server\n\n- Procedures\n- Functions\n- Numerics (INT, BIGINT, SMALLINT, TINYINT, DECIMAL, NUMERIC, FLOAT, REAL, BIT, MONEY, SMALLMONEY)\n- Texts (CHAR, NCHAR, VARCHAR, NVARCHAR, TEXT, NTEXT)\n- Binaries (BINARY, VARBINARY, IMAGE)\n- Time (DATE, TIME, DATETIME, DATETIME2, DATETIMEOFFSET, SMALLDATETIME)\n- REF CURSOR (Not supported)\n- Working in progress\n\n## POM properties\n\n```xml\n\u003cproperties\u003e\n    \u003cmaven.compiler.source\u003e1.7\u003c/maven.compiler.source\u003e\n    \u003cmaven.compiler.target\u003e1.7\u003c/maven.compiler.target\u003e\n    \u003cproject.build.sourceEncoding\u003eUTF-8\u003c/project.build.sourceEncoding\u003e\n\u003c/properties\u003e\n```\n\n## POM dependencies\n\n```xml\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n    \u003cartifactId\u003espring-core\u003c/artifactId\u003e\n    \u003cversion\u003e5.3.26\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n    \u003cartifactId\u003espring-context\u003c/artifactId\u003e\n    \u003cversion\u003e5.3.26\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework\u003c/groupId\u003e\n    \u003cartifactId\u003espring-jdbc\u003c/artifactId\u003e\n    \u003cversion\u003e5.3.26\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.slf4j\u003c/groupId\u003e\n    \u003cartifactId\u003elog4j-over-slf4j\u003c/artifactId\u003e\n    \u003cversion\u003e1.7.36\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ejavax.annotation\u003c/groupId\u003e\n    \u003cartifactId\u003ejavax.annotation-api\u003c/artifactId\u003e\n    \u003cversion\u003e1.3.2\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecommons-lang\u003c/groupId\u003e\n    \u003cartifactId\u003ecommons-lang\u003c/artifactId\u003e\n    \u003cversion\u003e2.6\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003c!-- Unit Testing --\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.junit.jupiter\u003c/groupId\u003e\n    \u003cartifactId\u003ejunit-jupiter-api\u003c/artifactId\u003e\n    \u003cversion\u003e5.8.2\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.junit.jupiter\u003c/groupId\u003e\n    \u003cartifactId\u003ejunit-jupiter-engine\u003c/artifactId\u003e\n    \u003cversion\u003e5.8.2\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.junit.vintage\u003c/groupId\u003e\n    \u003cartifactId\u003ejunit-vintage-engine\u003c/artifactId\u003e\n    \u003cversion\u003e5.8.2\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.junit.jupiter\u003c/groupId\u003e\n    \u003cartifactId\u003ejunit-jupiter-params\u003c/artifactId\u003e\n    \u003cversion\u003e5.8.2\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.mockito\u003c/groupId\u003e\n    \u003cartifactId\u003emockito-core\u003c/artifactId\u003e\n    \u003cversion\u003e4.6.1\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.mockito\u003c/groupId\u003e\n    \u003cartifactId\u003emockito-junit-jupiter\u003c/artifactId\u003e\n    \u003cversion\u003e4.6.1\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n## Oracle\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.oracle.database.jdbc\u003c/groupId\u003e\n    \u003cartifactId\u003eojdbc8\u003c/artifactId\u003e\n    \u003cversion\u003e23.2.0.0\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n## PostgreSQL\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.postgresql\u003c/groupId\u003e\n    \u003cartifactId\u003epostgresql\u003c/artifactId\u003e\n    \u003cversion\u003e42.1.4\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n## SQL Server\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003enet.sourceforge.jtds\u003c/groupId\u003e\n    \u003cartifactId\u003ejtds\u003c/artifactId\u003e\n    \u003cversion\u003e1.3.1\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n## POM plugin config\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003ecom.github.yadickson\u003c/groupId\u003e\n    \u003cartifactId\u003eautoplsp\u003c/artifactId\u003e\n    \u003cversion\u003e...\u003c/version\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cgoals\u003e\n                \u003cgoal\u003egenerator\u003c/goal\u003e\n            \u003c/goals\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n    \u003cconfiguration\u003e\n        \u003cdriver\u003e...\u003c/driver\u003e\n        \u003cconnectionString\u003e...\u003c/connectionString\u003e\n        \u003cuser\u003e...\u003c/user\u003e\n        \u003cpass\u003e...\u003c/pass\u003e\n        \u003cjavaDataSourceName\u003e...DataSource\u003c/javaDataSourceName\u003e\n        \u003cjavaJdbcTemplateName\u003e...JdbcTemplate\u003c/javaJdbcTemplateName\u003e\n        \u003cjndiDataSourceName\u003eJDBC/...\u003c/jndiDataSourceName\u003e\n        \u003cobjectSuffix\u003eObject\u003c/objectSuffix\u003e\n        \u003carraySuffix\u003eArray\u003c/arraySuffix\u003e\n        \u003coutputDirectory\u003e...\u003c/outputDirectory\u003e\n        \u003coutputDirectoryResource\u003e...\u003c/outputDirectoryResource\u003e\n        \u003cfolderNameGenerator\u003e...\u003c/folderNameGenerator\u003e\n        \u003cfolderNameResourceGenerator\u003e...\u003c/folderNameResourceGenerator\u003e\n        \u003coutputConfigFileName\u003e...\u003c/outputConfigFileName\u003e\n        \u003coutParameterCode\u003e...\u003c/outParameterCode\u003e\n        \u003coutParameterMessage\u003e...\u003c/outParameterMessage\u003e\n        \u003cjavaPackageName\u003e...\u003c/javaPackageName\u003e\n        \u003cjsonNonNull\u003e...\u003c/jsonNonNull\u003e\n        \u003clombok\u003etrue/false\u003c/lombok\u003e\n        \u003cheader\u003etrue/false\u003c/header\u003e\n        \u003cbuilder\u003etrue/false\u003c/builder\u003e\n        \u003cserialization\u003etrue/false\u003c/serialization\u003e\n        \u003ctest\u003etrue/false\u003c/test\u003e\n        \u003cjunit\u003ejunit4/junit5\u003c/junit\u003e\n        \u003cposition\u003etrue/false\u003c/position\u003e\n        \u003cdiamond\u003etrue/false\u003c/diamond\u003e\n        \u003cdocumentation\u003etrue/false\u003c/documentation\u003e\n        \u003clogger\u003etrue/false\u003c/logger\u003e\n        \u003cfullConstructor\u003etrue/false\u003c/fullConstructor\u003e\n        \u003cincludes\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n        \u003c/includes\u003e\n        \u003cexcludes\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n        \u003c/excludes\u003e\n        \u003cmappers\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n        \u003c/mappers\u003e\n        \u003cresultset\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n        \u003c/resultset\u003e\n        \u003ctables\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n            \u003cparam\u003e...\u003c/param\u003e\n        \u003c/tables\u003e\n    \u003c/configuration\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003e...driver..\u003c/groupId\u003e\n            \u003cartifactId\u003e..driver..\u003c/artifactId\u003e\n            \u003cversion\u003e..version..\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/plugin\u003e\n```\n\n### driver (required)\n\nJDBC Driver class name, examples:\n\n```\noracle.jdbc.driver.OracleDriver\n```\n```\norg.postgresql.Driver\n```\n```\nnet.sourceforge.jtds.jdbc.Driver\n```\n\n### connectionString (required)\n\nDatabase connection string, examples:\n\n```\njdbc:oracle:thin:@${host}:${port}:${db}\n```\n```\njdbc:postgresql://${host}:${port}/${db}\n```\n```\njdbc:jtds:sqlserver://${host}:${port}/${db}\n```\n\n### user (required)\n\nDatabase username\n\n### pass (required)\n\nDatabase password\n\n### javaDataSourceName (required)\n\nDatasource stereotype name\n\n### javaJdbcTemplateName (optional, default jdbcTemplate)\n\nJdbcTemplate stereotype name\n\n### jndiDataSourceName (required)\n\nDatasource JNDI name\n\n### outputConfigFileName (optional)\n\nDefault value **${project.artifactId}-context.xml**\n\n### outParameterCode (optional - default value OUT_RETURN_CODE)\n\nOutput parameter code to evaluate process.\n\nIf code is Zero (O), **OK**\n\nIf code is not Zero (0), **throw SQLException (OUT_RETURN_MSG, null, OUT_RETURN_CODE)**\n\n### outParameterMessage (optional - default value OUT_RETURN_MSG)\n\nOutput parameter message.\n\n### javaPackageName (required)\n\nPackage name for Java classes\n\n### jsonNonNull (optional - default value false) (since 1.7.12)\n\nAdd @JsonInclude(JsonInclude.Include.NON_NULL) annotation.\n\n### includes -\u003e include sp (optional, default .*)\n\nRegular expression to include procedure and functions names, example SP_YES.*\n\n### excludes -\u003e exclude sp (optional, default none)\n\nRegular expression to exclude procedure and functions names, example SP_NOT.*\n\n### resultset -\u003e resultset (optional, default .*)\n\nRegular expression to find resultset on procedure and functions names, example SP_YES.*\n\n### test (true/false) (default false)\n\nInclude test folder and test classes\n\n### junit (junit4/junit5) (default junit5)\n\nInclude junit configuration\n\n### header (true/false) (default true)\n\nAdd header documentation class\n\n### documentation (true/false) (default true)\n\nAdd documentation classes\n\n### builder (true/false) (default false)\n\nInclude builder parameters only for IN\n\n### lombok (true/false) (default false)\n\nInclude lombok definitions\n\n### serialization (true/false)\n\nAdd serialization class support\n\n\n# Command line support\n\n\u003e mvn clean package -Dautoplsp.driver=... -Dautoplsp.connectionString=... -Dautoplsp.user=... -Dautoplsp.pass=... -Dautoplsp.\u003cothers\u003e=...\n\n## POM Basic Configuration (include all procedure and function)\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003ecom.github.yadickson\u003c/groupId\u003e\n    \u003cartifactId\u003eautoplsp\u003c/artifactId\u003e\n    \u003cversion\u003e...\u003c/version\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cgoals\u003e\n                \u003cgoal\u003egenerator\u003c/goal\u003e\n            \u003c/goals\u003e\n            \u003cconfiguration\u003e\n                \u003cdriver\u003e...\u003c/driver\u003e\n                \u003cconnectionString\u003e...\u003c/connectionString\u003e\n                \u003cuser\u003e...\u003c/user\u003e\n                \u003cpass\u003e...\u003c/pass\u003e\n                \u003cjavaDataSourceName\u003e...DataSource\u003c/javaDataSourceName\u003e\n                \u003cjndiDataSourceName\u003eJDBC/...\u003c/jndiDataSourceName\u003e\n                \u003cjavaPackageName\u003e...\u003c/javaPackageName\u003e\n            \u003c/configuration\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003e...driver..\u003c/groupId\u003e\n            \u003cartifactId\u003e..driver..\u003c/artifactId\u003e\n            \u003cversion\u003e..version..\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/plugin\u003e\n```\n\n## POM Basic Configuration (include one procedure)\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003ecom.github.yadickson\u003c/groupId\u003e\n    \u003cartifactId\u003eautoplsp\u003c/artifactId\u003e\n    \u003cversion\u003e...\u003c/version\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cgoals\u003e\n                \u003cgoal\u003egenerator\u003c/goal\u003e\n            \u003c/goals\u003e\n            \u003cconfiguration\u003e\n                \u003cdriver\u003e...\u003c/driver\u003e\n                \u003cconnectionString\u003e...\u003c/connectionString\u003e\n                \u003cuser\u003e...\u003c/user\u003e\n                \u003cpass\u003e...\u003c/pass\u003e\n                \u003cjavaDataSourceName\u003e...DataSource\u003c/javaDataSourceName\u003e\n                \u003cjndiDataSourceName\u003eJDBC/...\u003c/jndiDataSourceName\u003e\n                \u003coutputDirectory\u003e...\u003c/outputDirectory\u003e\n                \u003cjavaPackageName\u003e...\u003c/javaPackageName\u003e\n                \u003cincludes\u003e\n                    \u003cparam\u003eSP_ADD_VALUES\u003c/param\u003e\n                \u003c/includes\u003e\n            \u003c/configuration\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003e...driver..\u003c/groupId\u003e\n            \u003cartifactId\u003e..driver..\u003c/artifactId\u003e\n            \u003cversion\u003e..version..\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/plugin\u003e\n```\n\n## POM Basic Configuration (include two procedures)\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003ecom.github.yadickson\u003c/groupId\u003e\n    \u003cartifactId\u003eautoplsp\u003c/artifactId\u003e\n    \u003cversion\u003e...\u003c/version\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cgoals\u003e\n                \u003cgoal\u003egenerator\u003c/goal\u003e\n            \u003c/goals\u003e\n            \u003cconfiguration\u003e\n                \u003cdriver\u003e...\u003c/driver\u003e\n                \u003cconnectionString\u003e...\u003c/connectionString\u003e\n                \u003cuser\u003e...\u003c/user\u003e\n                \u003cpass\u003e...\u003c/pass\u003e\n                \u003cjavaDataSourceName\u003e...DataSource\u003c/javaDataSourceName\u003e\n                \u003cjndiDataSourceName\u003eJDBC/...\u003c/jndiDataSourceName\u003e\n                \u003coutputDirectory\u003e...\u003c/outputDirectory\u003e\n                \u003cjavaPackageName\u003e...\u003c/javaPackageName\u003e\n                \u003cincludes\u003e\n                    \u003cparam\u003eSP_ADD_VALUES\u003c/param\u003e\n                    \u003cparam\u003eSP_SUB_VALUES\u003c/param\u003e\n                \u003c/includes\u003e\n            \u003c/configuration\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003e...driver..\u003c/groupId\u003e\n            \u003cartifactId\u003e..driver..\u003c/artifactId\u003e\n            \u003cversion\u003e..version..\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/plugin\u003e\n```\n\n## POM Basic Configuration (exclude one procedure)\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003ecom.github.yadickson\u003c/groupId\u003e\n    \u003cartifactId\u003eautoplsp\u003c/artifactId\u003e\n    \u003cversion\u003e...\u003c/version\u003e\n    \u003cexecutions\u003e\n        \u003cexecution\u003e\n            \u003cgoals\u003e\n                \u003cgoal\u003egenerator\u003c/goal\u003e\n            \u003c/goals\u003e\n            \u003cconfiguration\u003e\n                \u003cdriver\u003e...\u003c/driver\u003e\n                \u003cconnectionString\u003e...\u003c/connectionString\u003e\n                \u003cuser\u003e...\u003c/user\u003e\n                \u003cpass\u003e...\u003c/pass\u003e\n                \u003cjavaDataSourceName\u003e...DataSource\u003c/javaDataSourceName\u003e\n                \u003cjndiDataSourceName\u003eJDBC/...\u003c/jndiDataSourceName\u003e\n                \u003coutputDirectory\u003e...\u003c/outputDirectory\u003e\n                \u003cjavaPackageName\u003e...\u003c/javaPackageName\u003e\n                \u003cexcludes\u003e\n                    \u003cexculde\u003eSP_DIV_VALUES\u003c/exculde\u003e\n                \u003c/excludes\u003e\n            \u003c/configuration\u003e\n        \u003c/execution\u003e\n    \u003c/executions\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003e...driver..\u003c/groupId\u003e\n            \u003cartifactId\u003e..driver..\u003c/artifactId\u003e\n            \u003cversion\u003e..version..\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/plugin\u003e\n```\n\n# How to evaluate result code\n\n**Examples**\n\n```sql\nCREATE OR REPLACE PROCEDURE SP_PROCEDURE\n(\n    OUT_P_CODE OUT NUMBER,\n    OUR_P_MSG OUT VARCHAR2\n)\nAS\nBEGIN\n\n    NULL;\n\nEND SP_PROCEDURE;\n```\n```sql\nCREATE OR REPLACE FUNCTION FN_FUNCTION\n(\n    OUT_P_CODE OUT NUMBER,\n    OUR_P_MSG OUT VARCHAR2\n)\nRETURN NUMBER\nAS\nBEGIN\n\n    RETURN 0;\n\nEND FN_FUNCTION;\n```\n\n# Build project\n\n```bash\nmvn clean package install\n```\n\n# Configuration file generated\n\n**spring/database/[outputConfigFileName]**\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xmlns:tx=\"http://www.springframework.org/schema/tx\"\n       xsi:schemaLocation=\"\n            http://www.springframework.org/schema/beans\n            http://www.springframework.org/schema/beans/spring-beans.xsd\n            http://www.springframework.org/schema/context\n            http://www.springframework.org/schema/context/spring-context-4.0.xsd\n            http://www.springframework.org/schema/tx\n            http://www.springframework.org/schema/tx/spring-tx.xsd\"\u003e\n\n    \u003cbean id=\"...\" name=\"dataSource\" class=\"org.springframework.jndi.JndiObjectFactoryBean\" \u003e\n        \u003cproperty name=\"jndiName\" value=\"...\" /\u003e\n        \u003cproperty name=\"resourceRef\" value=\"true\" /\u003e\n        \u003cproperty name=\"proxyInterface\" value=\"javax.sql.DataSource\" /\u003e\n    \u003c/bean\u003e\n    \n    \u003ctx:annotation-driven transaction-manager=\"transactionManager\"/\u003e\n\n    \u003cbean id=\"transactionManager\" class=\"org.springframework.jdbc.datasource.DataSourceTransactionManager\"\u003e\n        \u003cproperty name=\"dataSource\" ref=\"...\"/\u003e\n    \u003c/bean\u003e\n\n    \u003cbean id=\"...\" name=\"jdbcTemplate\" class=\"org.springframework.jdbc.core.JdbcTemplate\" \u003e\n        \u003cproperty name=\"dataSource\" ref=\"...\" /\u003e\n    \u003c/bean\u003e\n\n    \u003ccontext:component-scan base-package=\"....repository\"/\u003e\n\n\u003c/beans\u003e\n```\n\n# Configuration in the parent project\n\nAdd import resource in *root-context.xml*\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n       xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n       xmlns:context=\"http://www.springframework.org/schema/context\"\n       xsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd\n        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd\"\u003e\n\n    ...\n\n    \u003cimport resource=\"classpath*:spring/database/[outputConfigFileName]\" /\u003e\n\n\u003c/beans\u003e\n```\n\n# Transaction annotation example\n\n```Java\n@Service\npublic class CustomServiceImpl implements CustomService {\n\n...\n\n    @Transactional(rollbackFor = CustomException.class)\n    @Override\n    public Long customMethod() throws CustomException {\n        dao1.execute(...);\n        dao2.execute(...);\n    }\n}\n\n```\n\n# Example with unit test and persistence into src folder \n\n```\n            \u003cplugin\u003e\n                \u003cgroupId\u003ecom.github.yadickson\u003c/groupId\u003e\n                \u003cartifactId\u003eautoplsp\u003c/artifactId\u003e\n                \u003cversion\u003e1.8.0\u003c/version\u003e\n                \u003cconfiguration\u003e\n                    \u003cdriver\u003eoracle.jdbc.driver.OracleDriver\u003c/driver\u003e\n                    \u003cjavaDataSourceName\u003e...\u003c/javaDataSourceName\u003e\n                    \u003cjndiDataSourceName\u003e...\u003c/jndiDataSourceName\u003e\n                    \u003coutParameterCode\u003e...\u003c/outParameterCode\u003e\n                    \u003coutParameterMessage\u003e...\u003c/outParameterMessage\u003e\n                    \u003cjavaPackageName\u003eplsql\u003c/javaPackageName\u003e\n                    \u003coutputDirectory\u003esrc/main/java\u003c/outputDirectory\u003e\n                    \u003coutputDirectoryResource\u003esrc/main/resources\u003c/outputDirectoryResource\u003e\n                    \u003cfolderNameGenerator\u003e.\u003c/folderNameGenerator\u003e\n                    \u003cfolderNameResourceGenerator\u003e.\u003c/folderNameResourceGenerator\u003e\n                    \u003cjsonNonNull\u003efalse\u003c/jsonNonNull\u003e\n                    \u003clombok\u003efalse\u003c/lombok\u003e\n                    \u003cheader\u003efalse\u003c/header\u003e\n                    \u003cbuilder\u003etrue\u003c/builder\u003e\n                    \u003cserialization\u003efalse\u003c/serialization\u003e\n                    \u003ctest\u003etrue\u003c/test\u003e\n                    \u003cjunit\u003ejunit5\u003c/junit\u003e\n                    \u003cposition\u003etrue\u003c/position\u003e\n                    \u003cdiamond\u003etrue\u003c/diamond\u003e\n                    \u003cdocumentation\u003efalse\u003c/documentation\u003e\n                    \u003clogger\u003efalse\u003c/logger\u003e\n                    \u003cfullConstructor\u003etrue\u003c/fullConstructor\u003e\n                \u003c/configuration\u003e\n                \u003cdependencies\u003e\n                    \u003cdependency\u003e\n                        \u003cgroupId\u003e...\u003c/groupId\u003e\n                        \u003cartifactId\u003e...\u003c/artifactId\u003e\n                        \u003cversion\u003e...\u003c/version\u003e\n                    \u003c/dependency\u003e\n                \u003c/dependencies\u003e\n            \u003c/plugin\u003e\n```\n\n# Run command line to persistence into src folder\n\n```\n$ mvn clean autoplsp:generator -Dautoplsp.user=... -Dautoplsp.pass=... -Dautoplsp.connectionString=jdbc:oracle:thin:@...:...:...\n```\n\n# Run test\n\n```\n$ mvn test\n```\n\n\n[oss-nexus-image]: https://img.shields.io/nexus/r/https/oss.sonatype.org/com.github.yadickson/autoplsp.svg\n[oss-nexus-url]: https://oss.sonatype.org/#nexus-search;quick~autoplsp\n\n[central-image]: https://maven-badges.herokuapp.com/maven-central/com.github.yadickson/autoplsp/badge.svg\n[central-url]: https://maven-badges.herokuapp.com/maven-central/com.github.yadickson/autoplsp\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyadickson%2Fautoplsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyadickson%2Fautoplsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyadickson%2Fautoplsp/lists"}