[jboss-svn-commits] JBL Code SVN: r14894 - labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 5 07:28:48 EDT 2007


Author: wrzep
Date: 2007-09-05 07:28:48 -0400 (Wed, 05 Sep 2007)
New Revision: 14894

Modified:
   labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java
Log:
JBLAB-874
gather stats for 'trunk' if possible


Modified: labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java	2007-09-05 11:00:14 UTC (rev 14893)
+++ labs/jbosslabs/trunk/portal-extensions/forge-kosmos-portlets/src/java/org/jboss/forge/kosmos/svn/LabsKosmosSvnDescriptor.java	2007-09-05 11:28:48 UTC (rev 14894)
@@ -24,7 +24,11 @@
 import hu.midori.kosmos.model.SvnRepository;
 import hu.midori.kosmos.protocol.SvnService;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
 import java.util.Date;
 import java.util.List;
 
@@ -33,6 +37,8 @@
 import org.jboss.forge.common.exceptions.ServiceRetrievalException;
 import org.jboss.forge.common.projects.project.rw.RepoTypeRW;
 import org.jboss.forge.kosmos.KosmosException;
+import org.jboss.logging.Logger;
+
 import com.caucho.hessian.client.HessianProxyFactory;
 
 /**
@@ -43,9 +49,11 @@
 	
 	private static final String SVN_SERVICE = "svn-service";
 	
+	private static Logger log = Logger.getLogger(LabsKosmosSvnDescriptor.class);
+	
 	private SvnRepository repository;
 	private Date timestamp;
-
+	
 	public LabsKosmosSvnDescriptor(String projectId, String serviceUrl) throws KosmosException {
 		
 		SvnService service = getService(serviceUrl + SVN_SERVICE);
@@ -113,7 +121,22 @@
 			if (RepoTypeRW.SVN.equals(
 					LabsServices.getProjectsService().getProjectRepoType(projectId))) {
 				
-				return LabsServices.getProjectsService().getProjectAnonRepo(projectId);
+				String svn = LabsServices.getProjectsService().getProjectAnonRepo(projectId);
+				
+				if (svn == null) {
+					return null;
+				}
+				
+				// Provide stats for 'trunk' if possible
+				if (svn.endsWith("/trunk") || svn.endsWith("/trunk/")) {
+					return svn;
+				}
+				
+				String trunkSvn = svn.endsWith("/") ? svn.concat("trunk") : svn.concat("/trunk");
+				if (isProperURL(trunkSvn)) {
+					return trunkSvn;
+				}
+				return svn;
 			}
 			
 		} catch (ServiceRetrievalException e) {
@@ -122,4 +145,24 @@
 		
 		return null;
 	}
+
+	private static boolean isProperURL(String urlString) {
+		
+		try {
+			URL url = new URL(urlString);
+			// Check if it is possible to connect to this URL
+			URLConnection trunkConnection = url.openConnection();
+			trunkConnection.connect();
+			InputStream in = trunkConnection.getInputStream();
+			int r = in.read();
+			in.close();
+			return r != -1;
+			
+		} catch (MalformedURLException e) {
+			log.warn("Malformed URL: " + urlString);
+			return false;
+		} catch (IOException e) {
+			return false;
+		}
+	}
 }




More information about the jboss-svn-commits mailing list