| <?xml version="1.0" encoding="UTF-8"?> |
| <pmd-cpd> |
| <duplication lines="53" tokens="282"> |
| <file line="205" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java"/> |
| <file line="261" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java"/> |
| <codefragment> |
| <![CDATA[ |
| private List<Individual> getIndividuals( XMLReader xml, boolean isCommitor, String xpathExpr ) |
| throws XMLException |
| { |
| List<Individual> ret = new ArrayList<Individual>(); |
| |
| List<Element> modelPersonList = xml.getElementList( xpathExpr ); |
| |
| Iterator<Element> iter = modelPersonList.iterator(); |
| while ( iter.hasNext() ) |
| { |
| Element elemPerson = iter.next(); |
| Individual individual = new Individual(); |
| |
| if ( isCommitor ) |
| { |
| individual.setPrincipal( elemPerson.elementTextTrim( "id" ) ); |
| } |
| |
| individual.setCommitor( isCommitor ); |
| individual.setEmail( elemPerson.elementTextTrim( "email" ) ); |
| individual.setName( elemPerson.elementTextTrim( "name" ) ); |
| individual.setOrganization( elemPerson.elementTextTrim( "organization" ) ); |
| individual.setOrganizationUrl( elemPerson.elementTextTrim( "organizationUrl" ) ); |
| individual.setUrl( elemPerson.elementTextTrim( "url" ) ); |
| individual.setTimezone( elemPerson.elementTextTrim( "timezone" ) ); |
| individual.setIndividualEmail( elemPerson.elementTextTrim( "email" ) ); |
| |
| // Roles |
| Element elemRoles = elemPerson.element( "roles" ); |
| if ( elemRoles != null ) |
| { |
| List<Element> roleNames = elemRoles.elements( "role" ); |
| Iterator<Element> itRole = roleNames.iterator(); |
| while ( itRole.hasNext() ) |
| { |
| Element role = itRole.next(); |
| individual.addRole( role.getTextTrim() ); |
| } |
| } |
| |
| // Properties |
| individual.setProperties( getProperties( elemPerson.element( "properties" ) ) ); |
| |
| ret.add( individual ); |
| } |
| |
| return ret; |
| } |
| |
| private IssueManagement getIssueManagement( XMLReader xml ) |
| throws XMLException |
| { |
| Element elemIssueMgmt = xml.getElement( "//project/issueManagement" ); |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="53" tokens="261"> |
| <file line="306" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java"/> |
| <file line="355" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java"/> |
| <codefragment> |
| <![CDATA[ |
| private List<MailingList> getMailingLists( XMLReader xml ) |
| throws XMLException |
| { |
| List<MailingList> mailingLists = new ArrayList<MailingList>(); |
| |
| List<Element> mailingListElems = xml.getElementList( "//project/mailingLists/mailingList" ); |
| for ( Element elemMailingList : mailingListElems ) |
| { |
| MailingList mlist = new MailingList(); |
| |
| mlist.setName( elemMailingList.elementTextTrim( "name" ) ); |
| mlist.setSubscribeAddress( elemMailingList.elementTextTrim( "subscribe" ) ); |
| mlist.setUnsubscribeAddress( elemMailingList.elementTextTrim( "unsubscribe" ) ); |
| mlist.setPostAddress( elemMailingList.elementTextTrim( "post" ) ); |
| mlist.setMainArchiveUrl( elemMailingList.elementTextTrim( "archive" ) ); |
| |
| Element elemOtherArchives = elemMailingList.element( "otherArchives" ); |
| if ( elemOtherArchives != null ) |
| { |
| List<String> otherArchives = new ArrayList<String>(); |
| List<Element> others = elemOtherArchives.elements( "otherArchive" ); |
| for ( Element other : others ) |
| { |
| String otherArchive = other.getTextTrim(); |
| otherArchives.add( otherArchive ); |
| } |
| |
| mlist.setOtherArchives( otherArchives ); |
| } |
| |
| mailingLists.add( mlist ); |
| } |
| |
| return mailingLists; |
| } |
| |
| private Organization getOrganization( XMLReader xml ) |
| throws XMLException |
| { |
| Element elemOrg = xml.getElement( "//project/organization" ); |
| if ( elemOrg != null ) |
| { |
| Organization org = new Organization(); |
| |
| org.setOrganizationName( elemOrg.elementTextTrim( "name" ) ); |
| org.setName( elemOrg.elementTextTrim( "name" ) ); |
| org.setUrl( elemOrg.elementTextTrim( "url" ) ); |
| |
| return org; |
| } |
| |
| return null; |
| } |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="40" tokens="194"> |
| <file line="91" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java"/> |
| <file line="102" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java"/> |
| <codefragment> |
| <![CDATA[ |
| model.setRelocation( getRelocation( xml ) ); |
| |
| model.setOrigin( "filesystem" ); |
| |
| return model; |
| } |
| |
| private ArtifactReference getArtifactReference( Element elemPlugin, String defaultType ) |
| { |
| ArtifactReference reference = new ArtifactReference(); |
| |
| reference.setGroupId( StringUtils.defaultString( elemPlugin.elementTextTrim( "groupId" ) ) ); |
| reference.setArtifactId( elemPlugin.elementTextTrim( "artifactId" ) ); |
| reference.setVersion( StringUtils.defaultString( elemPlugin.elementTextTrim( "version" ) ) ); |
| reference.setClassifier( StringUtils.defaultString( elemPlugin.elementTextTrim( "classifier" ) ) ); |
| reference.setType( StringUtils.defaultIfEmpty( elemPlugin.elementTextTrim( "type" ), defaultType ) ); |
| |
| return reference; |
| } |
| |
| /** |
| * Get List of {@link ArtifactReference} objects from xpath expr. |
| */ |
| private List<ArtifactReference> getArtifactReferenceList( XMLReader xml, String xpathExpr, String defaultType ) |
| throws XMLException |
| { |
| List<ArtifactReference> refs = new ArrayList<ArtifactReference>(); |
| |
| Iterator<Element> it = xml.getElementList( xpathExpr ).iterator(); |
| while ( it.hasNext() ) |
| { |
| Element elemPlugin = it.next(); |
| |
| refs.add( getArtifactReference( elemPlugin, defaultType ) ); |
| } |
| |
| return refs; |
| } |
| |
| private List<ArtifactReference> getBuildExtensions( XMLReader xml ) |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="29" tokens="142"> |
| <file line="143" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java"/> |
| <file line="169" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java"/> |
| <codefragment> |
| <![CDATA[ |
| private List<Dependency> getDependencyList( XMLReader xml, String parts[] ) |
| throws XMLException |
| { |
| List<Dependency> dependencyList = new ArrayList<Dependency>(); |
| |
| Element project = xml.getElement( "//project" ); |
| |
| Element depsParent = project; |
| |
| for ( String part : parts ) |
| { |
| depsParent = depsParent.element( part ); |
| if ( depsParent == null ) |
| { |
| return dependencyList; |
| } |
| } |
| |
| Iterator<Element> it = depsParent.elementIterator( "dependency" ); |
| while ( it.hasNext() ) |
| { |
| Element elemDependency = it.next(); |
| Dependency dependency = new Dependency(); |
| |
| dependency.setGroupId( elemDependency.elementTextTrim( "groupId" ) ); |
| dependency.setArtifactId( elemDependency.elementTextTrim( "artifactId" ) ); |
| dependency.setVersion( elemDependency.elementTextTrim( "version" ) ); |
| |
| dependency.setClassifier( StringUtils.defaultString( elemDependency.elementTextTrim( "classifier" ) ) ); |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="33" tokens="128"> |
| <file line="205" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java"/> |
| <file line="245" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java"/> |
| <codefragment> |
| <![CDATA[ |
| public Set<String> getVersions( VersionedReference reference ) |
| throws ContentNotFoundException |
| { |
| File groupDir = new File( repository.getLocation(), reference.getGroupId() ); |
| |
| if ( !groupDir.exists() ) |
| { |
| throw new ContentNotFoundException( "Unable to get versions using a non-existant groupId directory: " |
| + groupDir.getAbsolutePath() ); |
| } |
| |
| if ( !groupDir.isDirectory() ) |
| { |
| throw new ContentNotFoundException( "Unable to get versions using a non-directory: " |
| + groupDir.getAbsolutePath() ); |
| } |
| |
| Set<String> foundVersions = new HashSet<String>(); |
| |
| // First gather up the versions found as artifacts in the managed repository. |
| File typeDirs[] = groupDir.listFiles(); |
| for ( File typeDir : typeDirs ) |
| { |
| if ( !typeDir.isDirectory() ) |
| { |
| // Skip it, we only care about directories. |
| continue; |
| } |
| |
| if ( !typeDir.getName().endsWith( "s" ) ) |
| { |
| // Skip it, we only care about directories that end in "s". |
| } |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="26" tokens="113"> |
| <file line="278" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java"/> |
| <file line="328" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java"/> |
| <codefragment> |
| <![CDATA[ |
| private List<License> getLicenses( XMLReader xml ) |
| throws XMLException |
| { |
| List<License> licenses = new ArrayList<License>(); |
| |
| Element elemLicenses = xml.getElement( "//project/licenses" ); |
| |
| if ( elemLicenses != null ) |
| { |
| List<Element> licenseList = elemLicenses.elements( "license" ); |
| for ( Element elemLicense : licenseList ) |
| { |
| License license = new License(); |
| |
| // TODO: Create LicenseIdentity class to managed license ids. |
| // license.setId( elemLicense.elementTextTrim("id") ); |
| license.setName( elemLicense.elementTextTrim( "name" ) ); |
| license.setUrl( elemLicense.elementTextTrim( "url" ) ); |
| license.setComments( elemLicense.elementTextTrim( "comments" ) ); |
| |
| licenses.add( license ); |
| } |
| } |
| |
| return licenses; |
| } |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="21" tokens="113"> |
| <file line="393" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java"/> |
| <file line="425" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java"/> |
| <codefragment> |
| <![CDATA[ |
| private void getVersionedVersions( File typeDir, VersionedReference reference, Set<String> foundVersions ) |
| { |
| File repoFiles[] = typeDir.listFiles(); |
| for ( int i = 0; i < repoFiles.length; i++ ) |
| { |
| if ( repoFiles[i].isDirectory() ) |
| { |
| // Skip it. it's a directory. |
| continue; |
| } |
| |
| String relativePath = PathUtil.getRelative( repository.getLocation(), repoFiles[i] ); |
| |
| if ( filetypes.matchesArtifactPattern( relativePath ) ) |
| { |
| try |
| { |
| ArtifactReference artifact = toArtifactReference( relativePath ); |
| if ( StringUtils.equals( artifact.getArtifactId(), reference.getArtifactId() ) |
| && artifact.getVersion().startsWith( reference.getVersion() ) ) |
| { |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="27" tokens="112"> |
| <file line="441" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java"/> |
| <file line="491" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java"/> |
| <codefragment> |
| <![CDATA[ |
| Map<String, Dependency> parentDepMap = createDependencyMap( parentDepMgmt ); |
| Set<String> uniqueKeys = new HashSet<String>(); |
| uniqueKeys.addAll( mainDepMap.keySet() ); |
| uniqueKeys.addAll( parentDepMap.keySet() ); |
| |
| Iterator<String> it = uniqueKeys.iterator(); |
| while ( it.hasNext() ) |
| { |
| String key = it.next(); |
| Dependency parentDep = parentDepMap.get( key ); |
| Dependency mainDep = mainDepMap.get( key ); |
| |
| if ( parentDep == null ) |
| { |
| // Means there is no parent depMan entry to override main depMan. |
| merged.add( mainDep ); |
| } |
| else |
| { |
| // Parent depMan entry exists (main doesn't have to). |
| // Merge the parent over the main depMan entry. |
| merged.add( merge( mainDep, parentDep ) ); |
| } |
| } |
| |
| return merged; |
| } |
| ]]> |
| </codefragment> |
| </duplication> |
| <duplication lines="31" tokens="104"> |
| <file line="82" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedDefaultRepositoryContent.java"/> |
| <file line="144" path="/Users/Deng/Checkouts/archiva-1.3.x/target/checkout/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/ManagedLegacyRepositoryContent.java"/> |
| <codefragment> |
| <![CDATA[ |
| supportFile.delete(); |
| } |
| } |
| |
| public String getId() |
| { |
| return repository.getId(); |
| } |
| |
| public Set<ArtifactReference> getRelatedArtifacts( ArtifactReference reference ) |
| throws ContentNotFoundException |
| { |
| File artifactFile = toFile( reference ); |
| File repoDir = artifactFile.getParentFile(); |
| |
| if ( !repoDir.exists() ) |
| { |
| throw new ContentNotFoundException( "Unable to get related artifacts using a non-existant directory: " |
| + repoDir.getAbsolutePath() ); |
| } |
| |
| if ( !repoDir.isDirectory() ) |
| { |
| throw new ContentNotFoundException( "Unable to get related artifacts using a non-directory: " |
| + repoDir.getAbsolutePath() ); |
| } |
| |
| Set<ArtifactReference> foundArtifacts = new HashSet<ArtifactReference>(); |
| |
| // First gather up the versions found as artifacts in the managed repository. |
| File projectParentDir = repoDir.getParentFile(); |
| ]]> |
| </codefragment> |
| </duplication> |
| </pmd-cpd> |