From 2fdec0d484176178e96269341c000325cf32280f Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Tue, 28 Jun 2011 17:34:23 -0700 Subject: [PATCH] no longer doing caching --- .../org/kohsuke/github/GHOrganization.java | 2 +- .../java/org/kohsuke/github/GHPerson.java | 33 ++++--------------- .../java/org/kohsuke/github/GHRepository.java | 4 +-- src/test/java/org/kohsuke/AppTest.java | 11 +++++++ 4 files changed, 20 insertions(+), 30 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GHOrganization.java b/src/main/java/org/kohsuke/github/GHOrganization.java index 04e4cd068..6aec2259b 100644 --- a/src/main/java/org/kohsuke/github/GHOrganization.java +++ b/src/main/java/org/kohsuke/github/GHOrganization.java @@ -33,7 +33,7 @@ public class GHOrganization extends GHPerson { f.getSelectByName("team_id").getOptionByText(team).setSelected(true); f.submit(f.getButtonByCaption("Create Repository")); - return refreshRepository(name); + return getRepository(name); // GHRepository r = new Poster(root).withCredential() // .with("name", name).with("description", description).with("homepage", homepage) diff --git a/src/main/java/org/kohsuke/github/GHPerson.java b/src/main/java/org/kohsuke/github/GHPerson.java index 3e905c05b..625ae03d1 100644 --- a/src/main/java/org/kohsuke/github/GHPerson.java +++ b/src/main/java/org/kohsuke/github/GHPerson.java @@ -17,43 +17,22 @@ public abstract class GHPerson { protected int public_gist_count,public_repo_count,following_count,id; - /** - * Repositories that this user owns. - */ - private transient Map repositories; - /** * Gets the repositories this user owns. */ public synchronized Map getRepositories() throws IOException { - if (repositories==null) { - repositories = Collections.synchronizedMap(new TreeMap()); - for (int i=1; ; i++) { - Map map = root.retrieve("/repos/show/" + login + "?page=" + i, JsonRepositories.class).wrap(root); - repositories.putAll(map); - if (map.isEmpty()) break; - } + Map repositories = new TreeMap(); + for (int i=1; ; i++) { + Map map = root.retrieve("/repos/show/" + login + "?page=" + i, JsonRepositories.class).wrap(root); + repositories.putAll(map); + if (map.isEmpty()) break; } return Collections.unmodifiableMap(repositories); } - /** - * Fetches the repository of the given name from GitHub, and return it. - */ - protected GHRepository refreshRepository(String name) throws IOException { - if (repositories==null) getRepositories(); // fetch the base first - GHRepository r = fetchRepository(name); - repositories.put(name,r); - return r; - } - - protected GHRepository fetchRepository(String name) throws IOException { - return root.retrieve("/repos/show/" + login + '/' + name, JsonRepository.class).wrap(root); - } - public GHRepository getRepository(String name) throws IOException { - return getRepositories().get(name); + return root.retrieve("/repos/show/" + login + '/' + name, JsonRepository.class).wrap(root); } /** diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index fd7051897..abfbfbbb1 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -241,7 +241,7 @@ public class GHRepository { if (org.getLogin().equals(f.getInputByName("organization").getValueAttribute())) { // found it f.submit((HtmlButton)f.getElementsByTagName("button").get(0)); - return org.refreshRepository(name); + return org.getRepository(name); } } catch (ElementNotFoundException e) { // continue @@ -264,7 +264,7 @@ public class GHRepository { f.submit((HtmlButton)f.getElementsByTagName("button").get(0)); // overwrite fields - final GHRepository r = getOwner().fetchRepository(newName); + final GHRepository r = getOwner().getRepository(newName); for (Field fi : getClass().getDeclaredFields()) { if (Modifier.isStatic(fi.getModifiers())) continue; fi.setAccessible(true); diff --git a/src/test/java/org/kohsuke/AppTest.java b/src/test/java/org/kohsuke/AppTest.java index a039efacf..d11428fb6 100644 --- a/src/test/java/org/kohsuke/AppTest.java +++ b/src/test/java/org/kohsuke/AppTest.java @@ -5,6 +5,7 @@ import org.kohsuke.github.GHOrganization; import org.kohsuke.github.GHOrganization.Permission; import org.kohsuke.github.GHRepository; import org.kohsuke.github.GHTeam; +import org.kohsuke.github.GHUser; import org.kohsuke.github.GitHub; import java.io.IOException; @@ -20,8 +21,18 @@ public class AppTest extends TestCase { assertFalse(GitHub.connect("totally","bogus").isCredentialValid()); } + public void testMembership() throws Exception { + GitHub gitHub = GitHub.connect(); + Set members = gitHub.getOrganization("jenkinsci").getRepository("violations-plugin").getCollaboratorNames(); + System.out.println(members.contains("kohsuke")); + } + public void testApp() throws IOException { GitHub gitHub = GitHub.connect(); +// GHPullRequest i = gitHub.getOrganization("jenkinsci").getRepository("sandbox").getPullRequest(1); +// for (GHIssueComment c : i.getComments()) +// System.out.println(c); +// System.out.println(i); // gitHub.getMyself().getRepository("perforce-plugin").setEmailServiceHook("kk@kohsuke.org");