apply plugin: UtilitiesPlugin /* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ class UtilitiesPlugin implements Plugin<Project> { def void apply(Project project) { project.convention.plugins.utilities = new UtilitiesPluginDef() } } class UtilitiesPluginDef { @SuppressWarnings("GrUnnecessarySemicolon") public String determinePackageName(SourceDirectorySet sourceDirectorySet, File javaFile) { final javaFileAbsolutePath = javaFile.absolutePath; for ( File sourceDirectory : sourceDirectorySet.srcDirs ) { final String sourceDirectoryAbsolutePath = sourceDirectory.absolutePath; if ( javaFileAbsolutePath.startsWith( sourceDirectoryAbsolutePath ) ) { final String javaFileRelativePath = javaFileAbsolutePath.substring( sourceDirectoryAbsolutePath.length() + 1, javaFileAbsolutePath.lastIndexOf( File.separator ) ); return javaFileRelativePath.replace( File.separator, "." ); } } throw new RuntimeException( "ugh" ); } String java9ModuleName(Project project) { String name = project.name // alternative is to just use the full project name (don't drop the 'hibernate-' prefix) if ( name.startsWith( 'hibernate-' ) ) { name = name.drop( 'hibernate-'.length() ) } return name } }