def test_custom_config(self): xc = XMvnConfig() xc.add_custom_option("buildSettings/compilerSource", "1.5") et = self._read_current_conf() root = et.getroot() cs = self.__find(root, "xmvn:buildSettings/xmvn:compilerSource") self.assertEqual(cs.text.strip(), "1.5")
def test_aliases(self): xc = XMvnConfig() a = Artifact('gId', 'aId') a1 = Artifact('gIda1', 'aIda1') a2 = Artifact('gIda2', 'aIda2') xc.add_aliases(a, [a1, a2]) et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual( self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual( self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") aliases = self.__findall(rule, "xmvn:aliases/xmvn:alias") self.assertEqual( self.__find(aliases[0], "xmvn:groupId").text.strip(), "gIda1") self.assertEqual( self.__find(aliases[0], "xmvn:artifactId").text.strip(), "aIda1") self.assertEqual( self.__find(aliases[1], "xmvn:groupId").text.strip(), "gIda2") self.assertEqual( self.__find(aliases[1], "xmvn:artifactId").text.strip(), "aIda2")
def test_index_init(self): self.__clean() xc = XMvnConfig() a = Artifact('gId', 'aId') a1 = Artifact('agId', 'aaId') xc.add_aliases(a, [a1]) ind = self._read_index() self.assertEqual(ind, 1) xc.add_aliases(a, [a1]) ind = self._read_index() self.assertEqual(ind, 2)
def test_package_mappings(self): xc = XMvnConfig() a = Artifact('gId', 'aId') xc.add_package_mapping(a, 'package') et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual(self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual(self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") self.assertEqual(self.__find(rule, "xmvn:targetPackage").text.strip(), "package")
def test_compat_versions(self): xc = XMvnConfig() a = Artifact('gId', 'aId') xc.add_compat_versions(a, ['version1','version2']) et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual(self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual(self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") files = self.__findall(rule, "xmvn:versions/xmvn:version") self.assertEqual(files[0].text.strip(), "version1") self.assertEqual(files[1].text.strip(), "version2")
def test_custom_config_xml(self): xc = XMvnConfig() xc.add_custom_option( "buildSettings/compilerSource", """<versions> <version>1.5</version> <version>1.6</version> </versions> """) et = self._read_current_conf() root = et.getroot() versions = self.__find( root, "xmvn:buildSettings/xmvn:compilerSource/xmvn:versions") self.assertEqual(len(versions), 2) v1, v2 = self.__findall(versions, "xmvn:version") self.assertEqual(v1.text.strip(), "1.5") self.assertEqual(v2.text.strip(), "1.6")
def test_file_mappings(self): xc = XMvnConfig() a = Artifact('gId', 'aId') xc.add_file_mapping(a, ['path1','path2']) et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual(self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual(self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") files = self.__findall(rule, "xmvn:files/xmvn:file") self.assertEqual(files[0].text.strip(), "path1") self.assertEqual(files[1].text.strip(), "path2")
def test_custom_config_xml(self): xc = XMvnConfig() xc.add_custom_option("buildSettings/compilerSource", """<versions> <version>1.5</version> <version>1.6</version> </versions> """) et = self._read_current_conf() root = et.getroot() versions = self.__find(root, "xmvn:buildSettings/xmvn:compilerSource/xmvn:versions") self.assertEqual(len(versions), 2) v1, v2 = self.__findall(versions, "xmvn:version") self.assertEqual(v1.text.strip(), "1.5") self.assertEqual(v2.text.strip(), "1.6")
def test_package_mappings(self): xc = XMvnConfig() a = Artifact('gId', 'aId') xc.add_package_mapping(a, 'package') et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual( self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual( self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") self.assertEqual( self.__find(rule, "xmvn:targetPackage").text.strip(), "package")
def test_compat_versions(self): xc = XMvnConfig() a = Artifact('gId', 'aId') xc.add_compat_versions(a, ['version1', 'version2']) et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual( self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual( self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") files = self.__findall(rule, "xmvn:versions/xmvn:version") self.assertEqual(files[0].text.strip(), "version1") self.assertEqual(files[1].text.strip(), "version2")
def test_file_mappings(self): xc = XMvnConfig() a = Artifact('gId', 'aId') xc.add_file_mapping(a, ['path1', 'path2']) et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual( self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual( self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") files = self.__findall(rule, "xmvn:files/xmvn:file") self.assertEqual(files[0].text.strip(), "path1") self.assertEqual(files[1].text.strip(), "path2")
def test_aliases(self): xc = XMvnConfig() a = Artifact('gId', 'aId') a1 = Artifact('gIda1', 'aIda1') a2 = Artifact('gIda2', 'aIda2') xc.add_aliases(a, [a1, a2]) et = self._read_current_conf() root = et.getroot() rule = self.__find(root, "xmvn:artifactManagement/xmvn:rule") aglob = self.__find(rule, "xmvn:artifactGlob") self.assertEqual(self.__find(aglob, "xmvn:groupId").text.strip(), "gId") self.assertEqual(self.__find(aglob, "xmvn:artifactId").text.strip(), "aId") aliases = self.__findall(rule, "xmvn:aliases/xmvn:alias") self.assertEqual(self.__find(aliases[0], "xmvn:groupId").text.strip(), "gIda1") self.assertEqual(self.__find(aliases[0], "xmvn:artifactId").text.strip(), "aIda1") self.assertEqual(self.__find(aliases[1], "xmvn:groupId").text.strip(), "gIda2") self.assertEqual(self.__find(aliases[1], "xmvn:artifactId").text.strip(), "aIda2")
Examples of valid specifications: commons-lang:commons-lang:1.2 commons-lang:commons-lang:war: commons-lang:commons-lang:war:test-jar: commons-lang:commons-lang:war:test-jar:3.1 *:commons-lang (equivalent to ':commons-lang') """ if __name__ == "__main__": parser = SaneParser(usage=usage, epilog=epilog) sys.argv = args_to_unicode(sys.argv) (options, args) = parser.parse_args() if len(args) == 0: parser.error("At least one argument required") elif len(args) > 2: parser.error("At most 2 arguments are expected") elif len(args) == 1: args.append("__default") try: orig = Artifact.from_mvn_str(args[0]) XMvnConfig().add_package_mapping(orig, args[1]) except (ArtifactValidationException, ArtifactFormatException) as e: parser.error("{e}: Provided artifact strings were invalid. " "Please see help and check your arguments".format(e=e)) sys.exit(1) except JavaPackagesToolsException as e: sys.exit(e)
Wildcards (*) and empty parts in specifications are allowed (treated as wildcard). Examples of valid specifications: commons-lang:commons-lang:1.2 commons-lang:commons-lang:war: commons-lang:commons-lang:war:test-jar: commons-lang:commons-lang:war:test-jar:3.1 *:commons-lang (equivalent to ':commons-lang') """ if __name__ == "__main__": parser = SaneParser(usage=usage, epilog=epilog) sys.argv = args_to_unicode(sys.argv) (options, args) = parser.parse_args() if len(args) < 2: parser.error("At least 2 arguments are required") try: orig = Artifact.from_mvn_str(args[0]) aliases = [] for alias in args[1:]: aliases.append(Artifact.from_mvn_str(alias)) XMvnConfig().add_aliases(orig, aliases) except (ArtifactValidationException, ArtifactFormatException) as e: parser.error("{e}: Provided artifact strings were invalid. " "Please see help and check your arguments".format(e=e)) sys.exit(1)
"--singleton", action="store_true", help="Singleton packaging (one artifact per package).") parser.add_option("-X", "--debug", action="store_true", help="Enable Maven debugging output (implies -d).") parser.add_option( "--xmvn-javadoc", action="store_true", help="Use experimental XMvn javadoc MOJO to generate javadocs.") sys.argv = args_to_unicode(sys.argv) (options, args) = parser.parse_args() xc = XMvnConfig() if options.gradle: base_goal = "build" mvn_args = ["gradle-local", "--no-daemon"] else: base_goal = "verify" mvn_args = ["xmvn", "--batch-mode"] if not command_exists(mvn_args[0]): if options.gradle: print( "gradle-local package is not installed, please install it to proceed", file=sys.stderr) else: # xmvn command is provided by xmvn package, but maven-local
return self.epilog usage = "usage: %prog [options] <optionstr> <content>" epilog = """ Add custom configuration option optionstr -- XPath-like expression for specifying XMvn configuration option location with '/' used as delimiter example: buildSettings/compilerSource content -- XML content to be added to specified node. Can be just text, XML node or multiple nodes. examples: someText <someNode>someText</someNode><someOtherNode/> """ if __name__ == "__main__": parser = SaneParser(usage=usage, epilog=epilog) sys.argv = args_to_unicode(sys.argv) (options, args) = parser.parse_args() if len(args) != 2: parser.error("Exactly 2 arguments are required") try: XMvnConfig().add_custom_option(args[0], args[1]) except JavaPackagesToolsException as e: sys.exit(e)
groupId:artifactId[:extension[:classifier]][:version] Wildcards (*) and empty parts in specifications are allowed (treated as wildcard). Examples of valid specifications: commons-lang:commons-lang:1.2 commons-lang:commons-lang:war: commons-lang:commons-lang:war:test-jar: commons-lang:commons-lang:war:test-jar:3.1 *:commons-lang (equivalent to ':commons-lang') """ if __name__ == "__main__": parser = SaneParser(usage=usage, epilog=epilog) sys.argv = args_to_unicode(sys.argv) (options, args) = parser.parse_args() if len(args) < 2: parser.error("At least 2 arguments are required") try: orig = Artifact.from_mvn_str(args[0]) orig.validate(allow_backref=False) XMvnConfig().add_compat_versions(orig, args[1:]) except (ArtifactValidationException, ArtifactFormatException) as e: parser.error("{e}: Provided artifact strings were invalid. " "Please see help and check your arguments".format(e=e)) sys.exit(1) except JavaPackagesToolsException as e: sys.exit(e)
Wildcards (*) and empty parts in specifications are allowed (treated as wildcard). Examples of valid specifications: commons-lang:commons-lang:1.2 commons-lang:commons-lang:war: commons-lang:commons-lang:war:test-jar: commons-lang:commons-lang:war:test-jar:3.1 *:commons-lang (equivalent to ':commons-lang') """ if __name__ == "__main__": parser = SaneParser(usage=usage, epilog=epilog) (options, args) = parser.parse_args() if len(args) < 2: parser.error("At least 2 arguments are required") try: orig = Artifact.from_mvn_str(args[0]) orig.validate(allow_backref=False) XMvnConfig().add_file_mapping(orig, args[1:]) except (ArtifactValidationException, ArtifactFormatException) as e: parser.error("{e}: Provided artifact strings were invalid. " "Please see help and check your arguments".format(e=e)) sys.exit(1) except XMvnConfigException as e: parser.error("Incorrect configuration: {e}".format(e=e)) sys.exit(1) except JavaPackagesToolsException as e: sys.exit(e)
action="store_true", help="Skip javadoc generation and installation.") parser.add_option("-s", "--singleton", action="store_true", help="Singleton packaging (one artifact per package).") parser.add_option("-X", "--debug", action="store_true", help="Enable Maven debugging output (implies -d).") parser.add_option("--xmvn-javadoc", action="store_true", help="Use experimental XMvn javadoc MOJO to generate javadocs.") sys.argv = args_to_unicode(sys.argv) (options, args) = parser.parse_args() xc = XMvnConfig() if options.gradle: base_goal = "build" mvn_args = ["gradle-local", "--no-daemon"] else: base_goal = "verify" mvn_args = ["xmvn", "--batch-mode"] if not command_exists(mvn_args[0]): if options.gradle: print("gradle-local package is not installed, please install it to proceed", file=sys.stderr) else: # xmvn command is provided by xmvn package, but maven-local # pulls in bunch of maven plugins which may come handy print("maven-local package is not installed, please install it to proceed", file=sys.stderr)