Hyphens in Java Package Name
When creating a location for a Java class, be aware that the package name must match that of the repository folder location with any hyphens in the path properly escaped.
While using hyphens in the names of repository items is a recommended practice in AEM development, hyphens are illegal within Java package names.
The underlying CRX platform must be able to distinguish between an actual underscore ' ' and a hyphen '-'. Thus, in JCR, the hyphen must be replaced with its unicode value (u002d) and escaped with an underscore ' '.
For example, if the repository path is /apps/my-example/component/info/Info.java , the package name should be java package apps.my_002dexample.component.info;
Notice that an underscore must similarly be escaped, such that _ becomes _005f .