packages follow groupId.artifactId
should throw when acting without transaction