<%@ page contentType="text/xml" %><%@ page language="java" %> <%@taglib prefix="s" uri="/struts-tags" %> <% String username = request.getRemoteUser(); String base_dir = request.getContextPath(); com.k_int.jdbc_oai.datamodel.OAIDataProvider provider = (com.k_int.jdbc_oai.datamodel.OAIDataProvider) request.getAttribute("provider"); String oai_url = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+base_dir+"/providers/"+provider.getIdentifier(); int valid_oai_req = 0; java.util.List valid_params = new java.util.ArrayList(); valid_params.add("metadataPrefix"); valid_params.add("from"); valid_params.add("until"); valid_params.add("set"); valid_params.add("verb"); valid_params.add("identifier"); valid_params.add("resumptionToken"); org.springframework.web.context.WebApplicationContext ctx = org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext(application); String admin_email = provider.getAdminEmail(); String oai_repository_identifier = (String) request.getAttribute("system_identifier"); java.sql.Timestamp response_time = new java.sql.Timestamp(System.currentTimeMillis()); java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'"); String earliest_oai_timestamp_str = null; if ( provider.getEarliestTimestamp() != null ) { earliest_oai_timestamp_str=formatter.format(provider.getEarliestTimestamp()); } else { earliest_oai_timestamp_str=""; } if ( admin_email == null ) admin_email="kate.fernie@mla.gov.uk"; String query_string = request.getQueryString(); if ( query_string != null ) { query_string = query_string.replace("&","&").replace("<","<").replace(">",">"); } else query_string = ""; for ( java.util.Enumeration e = request.getParameterNames(); ( ( e.hasMoreElements() ) && ( valid_oai_req == 0 ) ) ; ) { String p = (String) e.nextElement(); if ( !valid_params.contains(p) ) { System.err.println(p+" is an invalid OAI parameter"); valid_oai_req = 4; } if ( request.getParameterValues(p).length > 1 ) { // Cannot have repeated parameters in an OAI request valid_oai_req = 4; } } String req_str = oai_url + "?" + java.net.URLEncoder.encode(query_string,"UTF8"); %> <%=formatter.format(response_time)%> <%=req_str%> <% if ( valid_oai_req != 0 ) { switch ( valid_oai_req ) { case 4: %><% break; case 3: %> break; case 2: %><% break; default: case 1: %><% break; } } else { %> <%=provider.getSystemName()%> <%=oai_url%> 2.0 <%=provider.getAdminEmail()%> <%=earliest_oai_timestamp_str%> persistent YYYY-MM-DDThh:mm:ssZ oai <%=oai_repository_identifier%> : oai:<%=oai_repository_identifier%>:Default/1 <% } %>