Tuesday, January 31, 2017

Jenkins Pipeline Groovy Snippets.


Moved some of the examples to gist.github.com for organizational purposes.


Show all binding variables:

echo "${this.binding.variables}"

Change spaces in underscores for the workspace

def getWorkspace() {
    pwd().replace("%2F", "_")
}

def wipeWorkspace(String workspace) {
    if (workspace) {
        sh "find ${workspace} -mindepth 4 -depth -delete"
    }
}

Show all environment variables.

node {
    sh 'env | sort'
}



Getting absolute path to a Job: 
SCM_JOB is a template attribute with item -> Pipelines
[Pipeline] echo
[name:ASSEMBLY_DESCRIPTORS_BUILD,SCM_JOB:org.jenkinsci.plugins.workflow.job.WorkflowJob@3d71aee8[ShipmentEFS/COMMON/JOBS/Pipeline_leaf_caan], steps:org.jenkinsci.plugins.workflow.cps.DSL@dfb3e3d]

${SCM_JOB['fullName']} = 'ShipmentEFS/Common/Jobs/Pipeline_leaf_caan'

then we can do
node {
    build job: SCM_JOB['fullName']
}








AUXILARY MODELS AND GETTNG THERE CONTENT


// List all auxilary models for logging purpose
echo "${SEFS_CONTEXT}"
echo "${SCM_MODEL}"
echo "class:${BUILD_MODEL.metaClass.toString()}"
echo "methods:${BUILD_MODEL.metaClass.methods}"
echo "fields: ${BUILD_MODEL.metaClass.fields}"
echo "toSTring: ${BUILD_MODEL.toString()}"
echo "testmodel: ${BUILD_MODEL['BUILD_TEST_MODEL']}"

try {
echo "getbinding: ${BUILD_MODEL.getValue('BUILD_TEST_MODEL')}"
} catch (error) {
echo error
}
try {
echo "model:    ${BUILD_MODEL.model}"
def m=BUILD_MODEL.model
echo "meta:    ${m['BUILD_TEST_MODEL']}"
} catch (error) {
echo error
echo "model:    ${m.metaClass.methods}"
}
try {
echo "getmodel: ${BUILD_MODEL.getModel()}"
} catch (error) {
echo error


}

Thursday, January 5, 2017

Spring JPA Hibernate Annotated with custom orm.xml for testing against a HSQL database

Spring JPA Hibernate Annotated with custom orm.xml for testing against a HSQL database



}
DefaultPersistenceUnitManager spum = new DefaultPersistenceUnitManager();
spum.setMappingResources("META-INF/test-orm.xml");
spum.setDefaultDataSource(dataSource);
spum.setPackagesToScan("domain.entity");
spum.afterPropertiesSet();

HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setDatabase(this.databaseVendor());

LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
factoryBean.setPersistenceUnitManager(spum);
factoryBean.setJpaVendorAdapter(vendorAdapter);
final HashMap<String, Object> properties = new HashMap<String, Object>();
properties.put("hibernate.hbm2ddl.auto",
      env.getProperty("domain.hibernate.hbm2ddl.auto"));
properties.put("hibernate.dialect",
      env.getProperty("domain.hibernate.dialect"));
properties.put("hibernate.show_sql",
      env.getProperty("domain.hibernate.show_sql"));
properties.put("hibernate.generate_statistics",
      env.getProperty("domain.hibernate.generate_statistics"));
properties.put("hibernate.format_sql",
      env.getProperty("domain.hibernate.format_sql"));
properties.put("hibernate.default_schema", "SEFS_DASHBOARD_SCHEMA");
Constants.log(properties);
factoryBean.setJpaPropertyMap(properties);
factoryBean.afterPropertiesSet();

return factoryBean.getObject();

}


For debugging use this

   <!-- enable trace for binding -->
   <logger name="org.hibernate.jpa">
      <level value="debug" />
      <appender-ref ref="stdout" />

   </logger>