Changeset 807


Ignore:
Timestamp:
05/16/11 00:22:45 (2 years ago)
Author:
philsmart
Message:
 
Location:
raptor-mua/trunk
Files:
10 added
28 edited
1 moved

Legend:

Unmodified
Added
Removed
  • raptor-mua/trunk/.classpath

    r635 r807  
    11<?xml version="1.0" encoding="UTF-8"?> 
    22<classpath> 
    3    <classpathentry kind="src"  path="src/main/java"/> 
    4     <classpathentry kind="src"  path="src/main/resources"/> 
    5     <classpathentry kind="src" output="target/conf" path="src/main/config"/> 
    6     <classpathentry kind="src" path="src/test/java/"/> 
    7     <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> 
    8         <attributes> 
    9             <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
    10         </attributes> 
    11     </classpathentry> 
    12     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 
    13     <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 
    14     <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> 
    15         <attributes> 
    16             <attribute name="owner.project.facets" value="jst.java"/> 
    17         </attributes> 
    18     </classpathentry> 
    19     <classpathentry kind="output" path="target/classes"/> 
    20  
     3        <classpathentry kind="src" path="src/main/java"/> 
     4        <classpathentry kind="src" path="src/main/resources"/> 
     5        <classpathentry kind="src" output="target/conf" path="src/main/config"/> 
     6        <classpathentry kind="src" path="src/test/java"/> 
     7        <classpathentry kind="src" output="target/data" path="src/main/data"/> 
     8        <classpathentry kind="src" output="target/keys" path="src/main/keys"/> 
     9        <classpathentry kind="src" output="target/bin" path="src/main/bin"/> 
     10        <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> 
     11                <attributes> 
     12                        <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
     13                </attributes> 
     14        </classpathentry> 
     15        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 
     16        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 
     17        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"> 
     18                <attributes> 
     19                        <attribute name="owner.project.facets" value="jst.java"/> 
     20                </attributes> 
     21        </classpathentry> 
     22        <classpathentry kind="output" path="target/classes"/> 
    2123</classpath> 
  • raptor-mua/trunk/.settings/org.eclipse.jdt.core.prefs

    r363 r807  
    1 #Thu Jul 15 16:12:11 BST 2010 
     1#Sun May 15 15:43:02 BST 2011 
    22eclipse.preferences.version=1 
    33org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 
  • raptor-mua/trunk/.settings/org.eclipse.wst.common.component

    r733 r807  
    77        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/config"/> 
    88        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/> 
     9        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/data"/> 
     10        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/keys"/> 
     11        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/bin"/> 
    912        <dependent-module deploy-path="/WEB-INF/lib" handle="module:/resource/raptor-parse/raptor-parse"> 
    1013            <dependency-type>uses</dependency-type> 
  • raptor-mua/trunk/pom.xml

    r760 r807  
    212212                        <artifactId>jetty</artifactId> 
    213213                        <groupId>org.mortbay.jetty</groupId> 
     214                </exclusion> 
     215                <exclusion> 
     216                        <artifactId>hibernate</artifactId> 
     217                        <groupId>org.hibernate</groupId> 
    214218                </exclusion> 
    215219            </exclusions> 
     
    365369                                        <artifactId>maven-compiler-plugin</artifactId> 
    366370                                        <configuration> 
    367                                                 <source>1.6</source> 
    368                                                 <target>1.6</target> 
     371                                                <source>1.5</source> 
     372                                                <target>1.5</target> 
    369373                                        </configuration> 
    370374                                </plugin> 
     
    390394                <artifactId>maven-jar-plugin</artifactId> 
    391395                <configuration> 
    392                     <finalName>raptor-mua-${project.version}</finalName> 
     396                    <finalName>raptor-mua</finalName> 
    393397                    <archive> 
    394398                        <manifest> 
  • raptor-mua/trunk/src/main/config/attribute-association.xml

    r799 r807  
    1616                <ref bean="shibPrincipalAttributeAssociationDefinition"/> 
    1717                <ref bean="ezproxyPrincipalAttributeAssociationDefinition"/> 
     18                <ref bean="shibResourceCategoryAttributeAssociationDefinition"/> 
    1819             </list> 
    1920        </property> 
     
    2223    <!-- Association policies to mark resources as internal or external --> 
    2324    <bean id="shibResourceCategoryAttributeAssociationDefinition" class="uk.ac.cardiff.raptor.event.expansion.ResourceCategoryAttributeAssociationDefinition"> 
    24         <property name="definiationName"><value>ShibAssociationDefinition</value></property> 
     25        <property name="definiationName"><value>Shib Resource Category Definition</value></property> 
    2526        <property name="dataConnection"><ref bean="dataConnectionImpl"/></property> 
    2627        <property name="enabled"><value>true</value></property> 
  • raptor-mua/trunk/src/main/config/batch-event-parse.xml

    r787 r807  
    102102 
    103103        <!-- Create the entry handler --> 
    104         <bean name="memoryEntryHandler" class="uk.ac.cardiff.raptor.store.impl.MemoryEntryHandler"></bean> 
     104        <bean name="memoryEntryHandler" class="uk.ac.cardiff.raptor.store.impl.LogFileMemoryEntryHandler"></bean> 
    105105 
    106106        <!-- 
  • raptor-mua/trunk/src/main/config/database.xml

    r799 r807  
    2222                <property name="hibernateProperties"> 
    2323                        <props> 
    24                                  <prop key="hibernate.dialect"> org.hibernate.dialect.PostgreSQLDialect</prop> 
    25                         <!--<prop key="hibernate.dialect"> org.hibernate.dialect.HSQLDialect</prop> 
    26                                 --><prop key="hibernate.show_sql">false</prop> 
     24                                  <prop key="hibernate.dialect"> org.hibernate.dialect.PostgreSQLDialect</prop> 
     25                             <!--<prop key="hibernate.dialect"> org.hibernate.dialect.HSQLDialect</prop>--> 
     26                                <prop key="hibernate.show_sql">false</prop> 
    2727                                <prop key="hibernate.hbm2ddl.auto">update</prop> 
    2828                        </props> 
     
    7777        </property> 
    7878        <property name="jdbcUrl"> 
    79             <value>jdbc:hsqldb:file:data/mua-init;hsqldb.default_table_type=cached</value> 
     79            <value>jdbc:hsqldb:file:data/mua-two;hsqldb.default_table_type=cached</value> 
    8080        </property> 
    8181        <property name="user"> 
  • raptor-mua/trunk/src/main/config/logging.xml

    r787 r807  
    2020<configuration> 
    2121 
    22   <property name="USER_HOME" value="/tmp/" /> 
     22  <property name="LOG_HOME" value="/tmp/" /> 
    2323 
    2424  <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender"> 
     
    2929 
    3030  <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
    31     <file>${USER_HOME}/raptor-mua-process.log</file> 
     31    <file>${LOG_HOME}/raptor-mua-process.log</file> 
    3232    <encoder> 
    3333      <pattern>%5p %d \(%C{3}:%L\) ---&gt; %m%n</pattern> 
     
    3838    <appender-ref ref="stdout"/> 
    3939  </logger> 
    40   <logger name="uk" level="DEBUG"> 
     40  <logger name="uk.ac.cardiff" level="DEBUG"> 
    4141    <appender-ref ref="stdout"/> 
    4242    <appender-ref ref="FILE"/> 
     
    4444  <logger name="org.mortbay" level="INFO"> 
    4545    <appender-ref ref="stdout"/> 
     46    <appender-ref ref="FILE"/> 
    4647  </logger> 
    4748  <logger name="org.hibernate" level="ERROR"> 
    4849    <appender-ref ref="stdout"/> 
     50    <appender-ref ref="FILE"/> 
    4951  </logger> 
    5052 
  • raptor-mua/trunk/src/main/config/mua-core.xml

    r799 r807  
    8080                        <ref bean="MUAEngine"></ref> 
    8181                </property> 
    82                 <property name="backgroundServices"> 
    83                    <ref bean="backgroundServices"/> 
    84                 </property> 
    8582        </bean> 
    8683 
     
    132129    </bean> 
    133130 
    134         <!-- release trigger setup --> 
    135     <bean id="muaResourceClassificationQuickTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> 
    136         <property name="jobDetail"> 
    137             <ref local="muaResourceClassificationJobDetail" /> 
    138         </property> 
    139         <property name="startDelay" value="5000" /> 
    140         <property name="repeatInterval" value="100000" /> 
    141     </bean> 
    142  
    143     <bean id="muaResourceClassificationJobDetail" 
    144         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
    145         <property name="targetObject"> 
    146             <ref bean="MUAProcess" /> 
    147         </property> 
    148         <property name="targetMethod"> 
    149             <value>resourceClassification</value> 
    150         </property> 
    151         <property name="concurrent"> 
    152             <value>false</value> 
    153         </property> 
    154     </bean> 
    155  
    156131    <!--  Trigger setup --> 
    157132    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
    158133        <property name="triggers"> 
    159134            <list> 
    160                 <ref local="muaReleaseQuickTrigger" /> 
    161                 <ref local="muaResourceClassificationQuickTrigger"/> 
     135                <ref local="muaReleaseQuickTrigger" />               
    162136            </list> 
    163137        </property> 
     
    172146 
    173147 
    174         <!-- Class to handle processing of background services --> 
    175     <bean name="backgroundServices" class="uk.ac.cardiff.raptormua.engine.BackgroundServices"> 
    176             <property name="dataConnection"><ref bean="dataConnectionImpl"></ref></property> 
    177     </bean> 
    178148 
    179149        <bean name="persistantEntryHandler" class="uk.ac.cardiff.raptor.store.impl.PersistantEntryHandler"> 
  • raptor-mua/trunk/src/main/config/statistical-units-system.xml

    r697 r807  
    2929                        <bean class="uk.ac.cardiff.model.wsmodel.StatisticParameters"> 
    3030                                        <property name="statisticType"><value>System</value></property> 
     31                    <property name="resourceCategory"><value>EXTERNAL</value></property> 
    3132                                        <property name="unitName"><value>numberOfAuthenticationsPer</value></property> 
    3233                                        <property name="methodParams"> 
     
    6263                        <bean class="uk.ac.cardiff.model.wsmodel.StatisticParameters"> 
    6364                                        <property name="statisticType"><value>System</value></property> 
     65                    <property name="resourceCategory"><value>EXTERNAL</value></property> 
    6466                                        <property name="unitName"><value>numberOfUnqiueUsersPer</value></property> 
    6567                                        <property name="methodParams"> 
     
    9496                        <bean class="uk.ac.cardiff.model.wsmodel.StatisticParameters"> 
    9597                                        <property name="statisticType"><value>System</value></property> 
     98                    <property name="resourceCategory"><value>EXTERNAL</value></property> 
    9699                                        <property name="unitName"><value>numberOfAuthenticationsPerIntervalNumber</value></property> 
    97100                                        <property name="methodParams"> 
     
    127130                        <bean class="uk.ac.cardiff.model.wsmodel.StatisticParameters"> 
    128131                                        <property name="statisticType"><value>System</value></property> 
     132                    <property name="resourceCategory"><value>EXTERNAL</value></property> 
    129133                                        <property name="unitName"><value>top5Resources</value></property> 
    130134                                        <property name="methodParams"> 
     
    167171                        <bean class="uk.ac.cardiff.model.wsmodel.StatisticParameters"> 
    168172                                        <property name="statisticType"><value>System</value></property> 
     173                    <property name="resourceCategory"><value>EXTERNAL</value></property> 
    169174                                        <property name="unitName"><value>numberOfUniqueAuthenticationsPerSP</value></property> 
    170175                                        <property name="methodParams"> 
     
    211216                        <bean class="uk.ac.cardiff.model.wsmodel.StatisticParameters"> 
    212217                                        <property name="statisticType"><value>System</value></property> 
     218                    <property name="resourceCategory"><value>EXTERNAL</value></property> 
    213219                                        <property name="unitName"><value>bottom5Resources</value></property> 
    214220                                        <property name="methodParams"> 
  • raptor-mua/trunk/src/main/config/statistical-units.xml

    r746 r807  
    159159                        </bean> 
    160160                </property> 
     161        <property name="postprocessor"> 
     162            <list> 
     163                <ref bean="groupNameSort"></ref> 
     164            </list> 
     165        </property> 
    161166        </bean> 
    162167 
     
    263268            </bean> 
    264269        </property> 
     270        <property name="postprocessor"> 
     271            <list> 
     272                <ref bean="groupNameSort"></ref> 
     273            </list> 
     274        </property> 
    265275    </bean> 
    266276 
     
    299309            </bean> 
    300310        </property> 
     311        <property name="postprocessor"> 
     312            <list> 
     313                <ref bean="groupNameSort"></ref> 
     314            </list> 
     315        </property> 
    301316    </bean> 
    302317 
     
    305320        <bean id="percentagePost" class = "uk.ac.cardiff.raptormua.engine.statistics.PercentagePostProcessor"> 
    306321        </bean> 
     322     
     323    <bean id="groupNameSort" class = "uk.ac.cardiff.raptormua.engine.statistics.SortGroupsAlphabeticallyPostProcessor"> 
     324    </bean> 
    307325 
    308326        <bean id="ShibbolethMetadataNameFormatter" class = "uk.ac.cardiff.raptormua.engine.statistics.ShibbolethMetadataNameFormatter"> 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/MUAEngine.java

    r799 r807  
    3030import uk.ac.cardiff.model.event.Event; 
    3131import uk.ac.cardiff.model.report.AggregatorGraphModel; 
     32import uk.ac.cardiff.model.resource.ResourceMetadata; 
    3233import uk.ac.cardiff.model.wsmodel.Capabilities; 
    3334import uk.ac.cardiff.model.wsmodel.EventPushMessage; 
     
    4445import uk.ac.cardiff.raptor.remoting.client.ReleaseFailureException; 
    4546import uk.ac.cardiff.raptor.runtimeutils.ReflectionHelper; 
     47import uk.ac.cardiff.raptor.store.EntryHandler; 
    4648import uk.ac.cardiff.raptor.store.StorageEngine; 
    4749import uk.ac.cardiff.raptor.store.TransactionInProgressException; 
     50import uk.ac.cardiff.raptormua.engine.classification.ResourceClassificationBackgroundService; 
    4851import uk.ac.cardiff.raptormua.engine.statistics.Statistic; 
    4952import uk.ac.cardiff.raptormua.engine.statistics.StatisticsHandler; 
     
    176179                capabilities.setSuggestionValues(suggestionValues); 
    177180                capabilities.setNumberOfAuthenticationsStored(storageEngine.getEntryHandler().getNumberOfEntries()); 
     181                 
     182                //set resource metadata 
     183                List<ResourceMetadata> resourceMetadata = (List<ResourceMetadata>) storageEngine.getEntryHandler().query("from ResourceMetadata"); 
     184                log.debug("Setting {} resource metadata",resourceMetadata.size()); 
     185                capabilities.setResourceMetadata(resourceMetadata); 
    178186 
    179187                ArrayList<StatisticalUnitInformation> stats = new ArrayList(); 
     
    227235                                parser.parse(logfileUpload.getData()); 
    228236                                allEvents.addAll(parser.getEntryHandler().getEntries()); 
    229                                 parser.removeAllEntries(); 
     237                                parser.reset(); 
    230238                                result.setStatus("Parsed On the MUA"); 
    231239                                result.setProcessed(true); 
     
    259267                statisticsHandler.updateStatisticalUnit(statisticalUnitInformation); 
    260268 
     269        } 
     270         
     271        public void saveAndApplyResourceClassification(List<ResourceMetadata> resourceMetadata){ 
     272                ResourceClassificationBackgroundService backgroundService = new ResourceClassificationBackgroundService(storageEngine.getEntryHandler()); 
     273                backgroundService.saveResourceMetadataAndApplyAsync(resourceMetadata); 
    261274        } 
    262275 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/classification/ResourceClassificationBackgroundService.java

    r802 r807  
     1/** 
     2 * Copyright (C) 2010 Cardiff University, Wales <smartp@cf.ac.uk> 
     3 * 
     4 * Licensed under the Apache License, Version 2.0 (the "License"); 
     5 * you may not use this file except in compliance with the License. 
     6 * You may obtain a copy of the License at 
     7 * 
     8 *         http://www.apache.org/licenses/LICENSE-2.0 
     9 * 
     10 * Unless required by applicable law or agreed to in writing, software 
     11 * distributed under the License is distributed on an "AS IS" BASIS, 
     12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
     13 * See the License for the specific language governing permissions and 
     14 * limitations under the License. 
     15 */ 
    116/** 
    217 * 
    318 */ 
    4 package uk.ac.cardiff.raptormua.engine; 
     19package uk.ac.cardiff.raptormua.engine.classification; 
    520 
    621import java.util.List; 
     22import java.util.concurrent.ExecutorService; 
     23import java.util.concurrent.Executors; 
    724 
    825import org.slf4j.Logger; 
     
    1229import uk.ac.cardiff.model.event.Event; 
    1330import uk.ac.cardiff.model.resource.ResourceMetadata; 
    14 import uk.ac.cardiff.raptor.store.dao.RaptorDataConnection; 
     31import uk.ac.cardiff.raptor.store.EntryHandler; 
    1532 
    1633/** 
    17  * All background services that work directly off the database store. 
    18  * Is not abstracted through the storage engine or entry handler, so changing 
    19  * the persistence layer may break the functions of this class. 
    2034 * 
    2135 * @author philsmart 
    2236 * 
    2337 */ 
    24 public class BackgroundServices { 
     38public class ResourceClassificationBackgroundService implements SaveAndApplyResourceClassificationCallbackInterface{ 
    2539 
    2640    /** Class logger. */ 
    27     private final Logger log = LoggerFactory.getLogger(BackgroundServices.class); 
     41    private final Logger log = LoggerFactory.getLogger(ResourceClassificationBackgroundService.class); 
    2842 
    2943    /** The MUA's data connection */ 
    30     private RaptorDataConnection dataConnection; 
     44    private EntryHandler entryHandler; 
     45     
     46    /** The ID of the currently executing service */ 
     47    private int currentExecutionId; 
     48     
     49 
     50    public ResourceClassificationBackgroundService(EntryHandler entryHandler){ 
     51        this.entryHandler = entryHandler;         
     52    } 
     53     
     54 
     55        public void callback(Object result) { 
     56                 log.debug("Resource Classification task completed {}, for transaction id [{}]",result, currentExecutionId); 
     57                 
     58        } 
    3159 
    3260 
    33     public void resourceClassification(){ 
    34         List<String> uniqueResource = (List<String>) dataConnection.runQuery("select resourceId from Event group by resourceId",null); 
    35         List<ResourceMetadata> resourceClassification = (List<ResourceMetadata>) dataConnection.runQuery("from ResourceMetadata",null); 
     61 
     62        public void saveResourceMetadataAndApplyAsync(List<ResourceMetadata> resourceMetadata) { 
     63                currentExecutionId = (int)(Math.random()*100000); 
     64                log.info("Resource classification thread started, for transaction id [{}]",currentExecutionId); 
     65                SaveAndApplyResourceClassificationTask storeEntryTask = new SaveAndApplyResourceClassificationTask(entryHandler,resourceMetadata,this); 
     66        ExecutorService es = Executors.newSingleThreadExecutor(); 
     67        es.submit(storeEntryTask); 
     68        es.shutdown(); 
     69                 
     70        } 
    3671 
    3772 
    38         for (String resourceId : uniqueResource){ 
    39             boolean resourceExists=false; 
    40             for (ResourceMetadata resource : resourceClassification){ 
    41                  if (resource.getResourceId().equals(resourceId)){ 
    42                      resourceExists = true; 
    43                  } 
    44             } 
    45             if (!resourceExists){ 
    46                 ResourceMetadata resourceMetadata = new ResourceMetadata(); 
    47                 resourceMetadata.setResourceId(resourceId); 
    48                 resourceMetadata.setExternal(true); 
    49                 resourceMetadata.setInternal(false); 
    50                 resourceClassification.add(resourceMetadata); 
    51             } 
    5273 
    53  
    54         } 
    55         log.debug("Background Service has created or ammended {} resourceId classifications",resourceClassification.size()); 
    56         try{ 
    57             dataConnection.saveAll(resourceClassification); 
    58         } 
    59         catch(DataAccessException e){ 
    60             log.error("Resource Classification Saving Error",e); 
    61         } 
    62  
    63         //sets those that are not set. Does not change existing events 
    64         try{ 
    65             List<Event> eventsNotClassified = (List<Event>) dataConnection.runQuery("from Event where resourceIdCategory=0", null); 
    66  
    67             log.debug("Background Resource Classification Service is appending classifications to {} events",eventsNotClassified.size()); 
    68             for (Event event : eventsNotClassified){ 
    69                 for (ResourceMetadata resource : resourceClassification){ 
    70                     if (event.getResourceId().equals(resource.getResourceId())){ 
    71                         if (resource.isExternal()){ 
    72                             event.setResourceIdCategory(2); 
    73                         } 
    74                         else if (resource.isInternal()){ 
    75                             event.setResourceIdCategory(1); 
    76                         } 
    77                     } 
    78  
    79                 } 
    80             } 
    81             dataConnection.saveAll(eventsNotClassified); 
    82             log.debug("Finished adding event classifications"); 
    83         } 
    84         catch(DataAccessException e){ 
    85             log.error("Error adding event classifications to events without existing classification",e); 
    86         } 
    87  
    88  
    89     } 
    90  
    91  
    92     /** 
    93      * @param dataConnection the dataConnection to set 
    94      */ 
    95     public void setDataConnection(RaptorDataConnection dataConnection) { 
    96         this.dataConnection = dataConnection; 
    97     } 
    98  
    99  
    100     /** 
    101      * @return the dataConnection 
    102      */ 
    103     public RaptorDataConnection getDataConnection() { 
    104         return dataConnection; 
    105     } 
    10674 
    10775 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/CutRowsPostProcessor.java

    r619 r807  
    5252     * @see uk.ac.cardiff.raptormua.engine.statistics.StatisticsPostProcessor#postProcess(uk.ac.cardiff.raptormua.engine.statistics.records.Observation[]) 
    5353     */ 
    54     @Override 
     54 
    5555    public Observation[] postProcess(Observation[] observations) throws PostprocessorException { 
    5656        log.debug("Entries into postprocessor: " + observations.length); 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/NumberFormatterPostProcessor.java

    r619 r807  
    5252         * @see uk.ac.cardiff.raptormua.engine.statistics.StatisticsPostProcessor#postProcess(uk.ac.cardiff.raptormua.engine.statistics.records.Observation[]) 
    5353         */ 
    54         @Override 
    5554        public Observation[] postProcess(Observation[] observations)    throws PostprocessorException { 
    5655                log.debug("Entries into postprocessor: "+observations.length); 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/PercentagePostProcessor.java

    r683 r807  
    3838 
    3939 
    40         /* 
     40        /** 
    4141         * <p> performs all actions directly ('live') on the input object, and passes that back as a reference 
    4242         * to conform with the <code>StatisticsPostProcessor</code> interface </p> 
     
    4545         * @see uk.ac.cardiff.raptormua.engine.statistics.StatisticsPostProcessor#postProcess(uk.ac.cardiff.raptormua.engine.statistics.records.Observation[]) 
    4646         */ 
    47         @Override 
    4847        public Observation[] postProcess(Observation[] observations)    throws PostprocessorException { 
    4948                log.debug("Entries into postprocessor: "+observations.length); 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/RowSortPostProcessor.java

    r683 r807  
    4747 
    4848 
    49         /* 
     49        /** 
    5050         * <p> performs all actions directly ('live') on the input object, and passes that back as a reference 
    5151         * to conform with the <code>StatisticsPostProcessor</code> interface </p> 
     
    5454         * @see uk.ac.cardiff.raptormua.engine.statistics.StatisticsPostProcessor#postProcess(uk.ac.cardiff.raptormua.engine.statistics.records.Observation[]) 
    5555         */ 
    56         @Override 
    5756        public Observation[] postProcess(Observation[] observations)    throws PostprocessorException { 
    5857                log.debug("Entries into postprocessor: "+observations.length); 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/ShibbolethMetadataNameFormatter.java

    r489 r807  
    4747    protected static BasicParserPool parser; 
    4848 
    49     /* use SAML metadata off the filesystem */ 
     49    /** use SAML metadata off the filesystem */ 
    5050    private FilesystemMetadataProvider provider; 
    5151 
    52     /* class logger */ 
    53     static Logger log = LoggerFactory.getLogger(ShibbolethMetadataNameFormatter.class); 
     52    /** class logger */ 
     53    private final Logger log = LoggerFactory.getLogger(ShibbolethMetadataNameFormatter.class); 
    5454 
    5555    /** this is not a proper URI at the moment, just a UNC path */ 
     
    7070 
    7171 
    72         @Override 
    7372        public Observation[] postProcess(Observation[] observations) throws PostprocessorException { 
    7473                log.debug("Entries into postprocessor: {}",observations.length); 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/Statistic.java

    r746 r807  
    5454        private final Logger log = LoggerFactory.getLogger(Statistic.class); 
    5555 
     56        /** The <code>EntryHandler</code> that allows access to all <code>Event</code>s this 
     57         * statistic works off. 
     58         */ 
    5659        private EntryHandler entryHandler; 
    5760 
     61        /** The parameters used to configure this statistic*/ 
    5862        protected StatisticParameters statisticParameters; 
    5963 
     
    6468        private List<StatisticsPostProcessor> postprocessor; 
    6569 
     70        /** After each statistic has been invoked, the results of each series 
     71         * are stored as <code>ObservationSeries</code> in this list. 
     72         */ 
    6673        private List<ObservationSeries> observationSeries; 
    6774 
     75        /**  
     76         * Default constructor. 
     77         */ 
    6878        public Statistic() { 
    6979                setObservationSeries(new ArrayList<ObservationSeries>()); 
    7080        } 
    7181 
     82        /** 
     83         * Method that performs the statistical operation. Overridden by each concrete statistic class. 
     84         *  
     85         * @param methodParams 
     86         * @param sqlWhere 
     87         * @return 
     88         * @throws StatisticalUnitException 
     89         */ 
    7290        public abstract Boolean performStatistic(ArrayList<MethodParameter> methodParams, String sqlWhere) throws StatisticalUnitException; 
    7391 
     
    127145                                gmodel.addGroupLabel(group.getGroupName()); 
    128146                        } 
     147                         
     148                         
    129149                        //now add each series and their values 
    130150                        for (int i=0; i < observationSeries.size(); i++){ 
     
    160180                                gmodel.addGroupLabel(startParser.print(bucket.getStart()) + "  " + endParser.print(bucket.getEnd())); 
    161181                        } 
     182                        //Buckets are time series, and so are already sorted chronologically. 
    162183 
    163184                        for (int i=0; i < observationSeries.size(); i++){ 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/functions/CountEntry.java

    r787 r807  
    6060                        throw new StatisticalUnitException("negative time difference"); 
    6161                } 
     62                 
     63                String resourceCategoryFilter = statisticParameters.getResourceCategory().getSql(); 
     64                log.debug("Resource Category Filter {}",resourceCategoryFilter); 
    6265 
    6366                /* now create that many buckets of length timeIntervalInt */ 
     
    115118                        String query=""; 
    116119                        if (sqlWhere.equals("")) 
    117                                 query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?)"; 
     120                                query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?) and resourceIdCategory "+resourceCategoryFilter; 
    118121                        else 
    119                                 query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?) and "+sqlWhere; 
     122                                query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?) and resourceIdCategory "+resourceCategoryFilter+" and "+sqlWhere; 
    120123                         
    121124                        Object[] params = new Object[]{bucket.getStart().toDate(),bucket.getEnd().toDate(),bucket.getEnd().toDate()}; 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/functions/CountEntryPerInterval.java

    r787 r807  
    7676                        throw new StatisticalUnitException("negative time difference"); 
    7777                } 
     78                 
     79                String resourceCategoryFilter = statisticParameters.getResourceCategory().getSql(); 
     80                log.debug("Resource Category Filter {}",resourceCategoryFilter); 
    7881 
    7982                /* now create that many buckets of length timeIntervalInt */ 
     
    130133                        String query=null; 
    131134                        if (sqlWhere.equals("")) 
    132                                 query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?)"; 
     135                                query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?) and resourceIdCategory "+resourceCategoryFilter; 
    133136                        else 
    134                                 query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?) and "+sqlWhere; 
     137                                query ="select count(*) from "+tableName+" where (eventTime between ? and ?) and (eventTime !=?) and resourceIdCategory "+resourceCategoryFilter+" and "+sqlWhere; 
    135138                         
    136139                        Object[] params = new Object[]{bucket.getStart().toDate(),bucket.getEnd().toDate(),bucket.getEnd().toDate()}; 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/functions/GroupBy.java

    r799 r807  
    6767                String tableName= statisticParameters.getEventType().getHibernateSimpleClassName(); 
    6868                log.debug("Select {}, tableName {}", groupByField, tableName); 
     69                 
     70                String resourceCategoryFilter = statisticParameters.getResourceCategory().getSql(); 
     71                log.debug("Resource Category Filter {}",resourceCategoryFilter); 
    6972 
    7073                String query=""; 
    7174 
    7275                if (sqlWhere.equals("")) { 
    73                         query = "select "+groupByField+" from "+tableName+" where (eventTime between ? and ?) group by ("+groupByField+")"; 
     76                        query = "select "+groupByField+" from "+tableName+" where (eventTime between ? and ?) and resourceIdCategory "+resourceCategoryFilter+" group by ("+groupByField+")"; 
    7477                } else { 
    75                         query = "select "+groupByField+" from "+tableName+" where (eventTime between ? and ?) and "+sqlWhere+" group by ("+groupByField+")"; 
     78                        query = "select "+groupByField+" from "+tableName+" where (eventTime between ? and ?) and resourceIdCategory "+resourceCategoryFilter+" and "+sqlWhere+" group by ("+groupByField+")"; 
    7679                } 
     80         
    7781 
    7882                Object[] params = new Object[]{start.toDate(),end.toDate()}; 
     
    9599                } 
    96100 
    97                 // add the series label or if none specified, add a default 
    98 //              if (statisticParameters.getSeries().getSeriesLabel() == null) 
    99 //                      statisticParameters.getSeries().setSeriesLabel("Distinct Values " + groupByField); 
    100101 
    101102                if (groups.size() == 0) 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/functions/GroupByCountDistinct.java

    r787 r807  
    5858                log.debug("Select {}, tableName {}", groupByField, tableName); 
    5959                 
     60                String resourceCategoryFilter = statisticParameters.getResourceCategory().getSql(); 
     61                log.debug("Resource Category Filter {}",resourceCategoryFilter); 
     62                 
    6063                String query=""; 
    6164                 
    6265                if (sqlWhere.equals("")) { 
    6366                        query = "select " + groupByField + ",count(distinct " + countDistinctField + ") from " + tableName + " where (eventTime between ?" + 
    64                         " and ?) group by (" + groupByField + ")"; 
     67                        " and ?) and resourceIdCategory "+resourceCategoryFilter+" group by (" + groupByField + ")"; 
    6568                } else { 
    6669                        query = "select " + groupByField + ",count(distinct " + countDistinctField + ") from " + tableName + " where (eventTime between ?" + 
    67                         " and ?) and "+sqlWhere+" group by (" + groupByField + ")"; 
     70                        " and ?) and resourceIdCategory "+resourceCategoryFilter+" and "+sqlWhere+" group by (" + groupByField + ")"; 
    6871                }        
    6972                 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/functions/GroupByFrequency.java

    r799 r807  
    6767                String tableName = statisticParameters.getEventType().getHibernateSimpleClassName(); 
    6868                log.debug("Select {}, tableName {}", groupByField, tableName); 
     69                 
     70                String resourceCategoryFilter = statisticParameters.getResourceCategory().getSql(); 
     71                log.debug("Resource Category Filter {}",resourceCategoryFilter); 
    6972 
    7073                String query = ""; 
    7174                if (sqlWhere.equals("")) { 
    72                         query = "select "+groupByField+", count(*) from "+tableName+" where (eventTime between ? and ?) group by ("+groupByField+")"; 
     75                        query = "select "+groupByField+", count(*) from "+tableName+" where (eventTime between ? and ?) and resourceIdCategory "+resourceCategoryFilter+" group by ("+groupByField+")"; 
    7376                } else { 
    74                         query = "select "+groupByField+", count(*) from "+tableName+" where (eventTime between ? and ?) and "+sqlWhere+" group by ("+groupByField+")"; 
     77                        query = "select "+groupByField+", count(*) from "+tableName+" where (eventTime between ? and ?) and resourceIdCategory "+resourceCategoryFilter+" and "+sqlWhere+" group by ("+groupByField+")"; 
    7578                } 
    7679 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/engine/statistics/helper/ObservationComparator.java

    r443 r807  
    3131    private boolean asc; 
    3232 
    33     public ObservationComparator(boolean asc){ 
    34         this.asc = asc; 
     33        public ObservationComparator(boolean asc){ 
     34                this.asc = asc; 
    3535    } 
    3636 
    37     /* (non-Javadoc) 
    38      * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) 
    39      */ 
    40     @Override 
    4137    public int compare(Observation arg0, Observation arg1) { 
    4238        if (asc) 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/service/MUAProcess.java

    r799 r807  
    2626import uk.ac.cardiff.model.AdministrativeFunction.AdministrativeFunctionType; 
    2727import uk.ac.cardiff.model.report.AggregatorGraphModel; 
     28import uk.ac.cardiff.model.resource.ResourceMetadata; 
    2829import uk.ac.cardiff.model.wsmodel.Capabilities; 
    2930import uk.ac.cardiff.model.wsmodel.EventPushMessage; 
     
    8081 
    8182        public void resourceClassification(); 
     83 
     84        public void saveResourceMetadata(List<ResourceMetadata> resourceMetadata); 
    8285} 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/service/impl/MUAProcessImpl.java

    r799 r807  
    3232import uk.ac.cardiff.model.AdministrativeFunction; 
    3333import uk.ac.cardiff.model.report.AggregatorGraphModel; 
     34import uk.ac.cardiff.model.resource.ResourceMetadata; 
    3435import uk.ac.cardiff.model.wsmodel.Capabilities; 
    3536import uk.ac.cardiff.model.wsmodel.EventPushMessage; 
     
    3839import uk.ac.cardiff.model.wsmodel.StatisticalUnitInformation; 
    3940import uk.ac.cardiff.raptor.store.TransactionInProgressException; 
    40 import uk.ac.cardiff.raptormua.engine.BackgroundServices; 
    4141import uk.ac.cardiff.raptormua.engine.MUAEngine; 
     42import uk.ac.cardiff.raptormua.engine.classification.ResourceClassificationBackgroundService; 
    4243import uk.ac.cardiff.raptormua.service.MUAProcess; 
    4344 
     
    5859    private MUAEngine engine; 
    5960 
    60     /** Engine to handle background tasks */ 
    61     private BackgroundServices backgroundServices; 
    6261 
    6362    /** 
     
    103102    } 
    104103 
    105     @Override 
    106104    public void updateStatisticalUnit(StatisticalUnitInformation statisticalUnitInformation) throws SoapFault { 
    107105        boolean success = false; 
     
    124122    } 
    125123 
    126     @Override 
    127124    public boolean performAdministrativeFunction(AdministrativeFunction function) throws SoapFault { 
    128125        if (lockR.tryLock()) { 
     
    146143     * Because this is perform async, the lock is not useful, its the exceptions that are. 
    147144     */ 
    148     @Override 
    149145    public void addAuthentications(EventPushMessage pushed) throws SoapFault { 
    150146        boolean success = false; 
     
    171167    } 
    172168 
    173     @Override 
    174169    public AggregatorGraphModel updateAndInvokeStatisticalUnit(StatisticalUnitInformation statisticalUnitInformation) throws SoapFault { 
    175170        if (lockR.tryLock()) { 
     
    192187         * 
    193188         */ 
    194     @Override 
    195189    public List<LogFileUploadResult> batchUpload(List<LogFileUpload> uploadFiles) throws SoapFault { 
    196190        List<LogFileUploadResult> result= new ArrayList<LogFileUploadResult>(); 
     
    227221    public void resourceClassification(){ 
    228222          log.info("Resource classification background thread called"); 
    229           backgroundServices.resourceClassification(); 
    230     } 
    231  
    232     /** 
    233      * @param backgroundServices the backgroundServices to set 
    234      */ 
    235     public void setBackgroundServices(BackgroundServices backgroundServices) { 
    236         this.backgroundServices = backgroundServices; 
    237     } 
    238  
    239     /** 
    240      * @return the backgroundServices 
    241      */ 
    242     public BackgroundServices getBackgroundServices() { 
    243         return backgroundServices; 
    244     } 
     223          //backgroundServices.resourceClassification(); 
     224    } 
     225     
     226        public void saveResourceMetadata(List<ResourceMetadata> resourceMetadata) { 
     227                log.info("Saving resource metadata (classification) for {} resources",resourceMetadata.size()); 
     228                engine.saveAndApplyResourceClassification(resourceMetadata); 
     229                 
     230        } 
     231 
    245232 
    246233    public void setEngine(MUAEngine engine) { 
     
    252239    } 
    253240 
     241 
    254242} 
  • raptor-mua/trunk/src/main/java/uk/ac/cardiff/raptormua/wsinterface/impl/MultiUnitAggregatorImpl.java

    r799 r807  
    2929import uk.ac.cardiff.model.AdministrativeFunction.AdministrativeFunctionType; 
    3030import uk.ac.cardiff.model.report.AggregatorGraphModel; 
     31import uk.ac.cardiff.model.resource.ResourceMetadata; 
    3132import uk.ac.cardiff.model.wsmodel.Capabilities; 
    3233import uk.ac.cardiff.model.wsmodel.EventPushMessage; 
     
    7071 
    7172 
    72         @Override 
    7373        public void updateStatisticalUnit(StatisticalUnitInformation statisticalUnitInformation) throws SoapFault { 
    7474            processService.updateStatisticalUnit(statisticalUnitInformation); 
     
    7777 
    7878 
    79         @Override 
    8079        public boolean performAdministrativeFunction(AdministrativeFunction function) throws SoapFault { 
    8180            return processService.performAdministrativeFunction(function); 
     
    8382 
    8483 
    85         @Override 
    8684        public void addAuthentications(EventPushMessage pushed) throws SoapFault{ 
    8785            processService.addAuthentications(pushed); 
     
    8987        } 
    9088 
    91         @Override 
    9289        public AggregatorGraphModel updateAndInvokeStatisticalUnit(StatisticalUnitInformation statisticalUnitInformation) throws SoapFault { 
    9390                return processService.updateAndInvokeStatisticalUnit(statisticalUnitInformation); 
     
    9895        } 
    9996 
     97        public void saveResourceMetadata(List<ResourceMetadata> resourceMetadata) { 
     98                processService.saveResourceMetadata(resourceMetadata); 
     99                 
     100        } 
     101 
    100102 
    101103 
  • raptor-mua/trunk/src/main/resources/package.xml

    r760 r807  
    4545        </fileSet> 
    4646        <fileSet> 
     47            <directory>target/data</directory> 
     48            <outputDirectory>data</outputDirectory> 
     49            <includes> 
     50                <include>*</include> 
     51            </includes> 
     52        </fileSet> 
     53        <fileSet> 
     54            <directory>target/keys</directory> 
     55            <outputDirectory>keys</outputDirectory> 
     56            <includes> 
     57                <include>*</include> 
     58            </includes> 
     59        </fileSet> 
     60        <fileSet> 
    4761            <directory>target/bin</directory> 
    4862            <outputDirectory>bin</outputDirectory> 
Note: See TracChangeset for help on using the changeset viewer.