Changeset 6437


Ignore:
Timestamp:
08/11/15 13:34:50 (9 years ago)
Author:
Twan Goosen
Message:

Major dependency upgrades: bumped Wicket to 7.x and Spring to 4.x and made required migration changes in code

Location:
vlo/trunk/vlo-web-app
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • vlo/trunk/vlo-web-app/pom.xml

    r6436 r6437  
    1919
    2020    <properties>
    21         <wicket.version>6.20.0</wicket.version>
    22         <spring.version>3.2.14.RELEASE</spring.version>
     21        <wicket.version>7.0.0</wicket.version>
     22        <spring.version>4.2.0.RELEASE</spring.version>
    2323        <jetty.version>8.1.17.v20150415</jetty.version>
    2424        <!-- selects the appender for the log4j root logger -->
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/ResourceTypeCssBehaviour.java

    r4881 r6437  
    1919import eu.clarin.cmdi.vlo.pojo.ResourceInfo;
    2020import org.apache.wicket.behavior.AttributeAppender;
     21import org.apache.wicket.migrate.StringResourceModelMigration;
    2122import org.apache.wicket.model.IModel;
    22 import org.apache.wicket.model.StringResourceModel;
    2323
    2424/**
     
    3535                // to one of the properties in resourceTypeClass.properties file
    3636                // (defaults to "")
    37                 new StringResourceModel("resourcetype.${resourceType}.class", resourceInfoModel, "", new Object[0]));
     37                StringResourceModelMigration.of("resourcetype.${resourceType}.class", resourceInfoModel, "", new Object[0]));
    3838        // separate CSS classes with a space
    3939        setSeparator(" ");
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/model/SolrFieldNameModel.java

    r6206 r6437  
    2020import org.apache.wicket.Application;
    2121import org.apache.wicket.model.IModel;
     22import org.apache.wicket.model.Model;
    2223import org.apache.wicket.model.PropertyModel;
    2324import org.apache.wicket.model.StringResourceModel;
    24 import org.apache.wicket.settings.def.ResourceSettings;
    2525
    2626/**
     
    4141   
    4242    public SolrFieldNameModel(IModel<String> model) {
    43         super("field.${}",
    44                 model,
    45                 model.getObject()); // default to internal field name)
     43        super("field.${}", model);
     44        setDefaultValue(Model.of(model.getObject())); //TODO: check if this is necessary, added on migration to Wicket 7
    4645    }
    4746
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/RecordPage.java

    r6305 r6437  
    213213
    214214    private void createSearchLinks(String id) {
    215         final SolrFieldModel<String> searchPageModel = new SolrFieldModel<String>(getModel(), FacetConstants.FIELD_SEARCHPAGE);
    216         final SolrFieldModel<String> searchServiceModel = new SolrFieldModel<String>(getModel(), FacetConstants.FIELD_SEARCH_SERVICE);
     215        final SolrFieldModel<String> searchPageModel = new SolrFieldModel<>(getModel(), FacetConstants.FIELD_SEARCHPAGE);
     216        final SolrFieldModel<String> searchServiceModel = new SolrFieldModel<>(getModel(), FacetConstants.FIELD_SEARCH_SERVICE);
    217217        add(new WebMarkupContainer(id) {
    218218            {
    219219                //Add search page links (can be multiple)
    220                 add(new ListView<String>("searchPage", new CollectionListModel<String>(searchPageModel)) {
     220                add(new ListView<String>("searchPage", new CollectionListModel<>(searchPageModel)) {
    221221
    222222                    @Override
     
    227227
    228228                // We assume there can be multiple content search endpoints too
    229                 add(new ListView<String>("contentSearch", new CollectionListModel<String>(searchServiceModel)) {
     229                add(new ListView<String>("contentSearch", new CollectionListModel<>(searchServiceModel)) {
    230230
    231231                    @Override
     
    305305        // Put the name of the record in the page title
    306306        return new StringResourceModel("recordpage.title",
    307                 new NullFallbackModel(new SolrFieldStringModel(getModel(), FacetConstants.FIELD_NAME), getString("recordpage.unnamedrecord")),
    308                 DEFAULT_PAGE_TITLE);
     307                new NullFallbackModel(new SolrFieldStringModel(getModel(), FacetConstants.FIELD_NAME), getString("recordpage.unnamedrecord")))
     308                .setDefaultValue(DEFAULT_PAGE_TITLE);
    309309    }
    310310
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/pages/VloBasePage.java

    r6405 r6437  
    3333import org.apache.wicket.markup.html.link.ExternalLink;
    3434import org.apache.wicket.markup.html.panel.FeedbackPanel;
     35import org.apache.wicket.migrate.StringResourceModelMigration;
    3536import org.apache.wicket.model.IModel;
    3637import org.apache.wicket.model.Model;
    37 import org.apache.wicket.model.StringResourceModel;
    3838import org.apache.wicket.request.mapper.parameter.PageParameters;
    3939import org.apache.wicket.request.resource.CssResourceReference;
     
    155155     */
    156156    public IModel<String> getPageDescriptionModel() {
    157         return new StringResourceModel("vloDescription", null, (Object[]) null);
     157        return StringResourceModelMigration.of("vloDescription", null, (Object[]) null);
    158158    }
    159159
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/RecordNavigationPanel.java

    r4872 r6437  
    2222import org.apache.wicket.markup.html.basic.Label;
    2323import org.apache.wicket.markup.html.panel.GenericPanel;
     24import org.apache.wicket.migrate.StringResourceModelMigration;
    2425import org.apache.wicket.model.AbstractReadOnlyModel;
    2526import org.apache.wicket.model.IModel;
    2627import org.apache.wicket.model.PropertyModel;
    27 import org.apache.wicket.model.StringResourceModel;
    2828
    2929/**
     
    3838        super(id, model);
    3939
     40       
     41       
    4042        // Add a label 'record X of Y'
    41         add(new Label("recordIndex", new StringResourceModel("record.navigation.index", this, model,
     43        add(new Label("recordIndex", StringResourceModelMigration.of("record.navigation.index", this, model,
    4244                new Object[]{
    4345                    // These values get inserted into the string
     
    4547                    new ShiftedIndexModel(new PropertyModel<Long>(model, "index"), +1),
    4648                    // Second: total result count, unmodified
    47                     new PropertyModel<Integer>(model, "resultCount")
     49                    new PropertyModel<>(model, "resultCount")
    4850                }
    4951        )));
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/ResourceLinkDetailsPanel.java

    r4907 r6437  
    2020import org.apache.wicket.markup.html.basic.Label;
    2121import org.apache.wicket.markup.html.panel.Panel;
     22import org.apache.wicket.migrate.StringResourceModelMigration;
    2223import org.apache.wicket.model.CompoundPropertyModel;
    2324import org.apache.wicket.model.IModel;
    24 import org.apache.wicket.model.StringResourceModel;
    2525
    2626/**
     
    3434    public ResourceLinkDetailsPanel(String id, IModel<ResourceInfo> model) {
    3535        super(id, model);
    36         setDefaultModel(new CompoundPropertyModel<ResourceInfo>(model));
     36        setDefaultModel(new CompoundPropertyModel<>(model));
    3737        // get the friendly name of the resource type dynamically from the resource bundle
    38         add(new Label("resourceType", new StringResourceModel("resourcetype.${resourceType}.singular", model, model.getObject().getResourceType())));
     38        add(new Label("resourceType", StringResourceModelMigration.of("resourcetype.${resourceType}.singular", model, model.getObject().getResourceType())));
    3939        add(new Label("fileName"));
    4040        add(new Label("mimeType"));
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/record/ResourceLinksPanel.java

    r6331 r6437  
    2525import java.util.Collection;
    2626import java.util.List;
    27 import org.apache.wicket.Component;
    2827import org.apache.wicket.MarkupContainer;
    2928import org.apache.wicket.ajax.AjaxRequestTarget;
     
    6261
    6362        // list view that shows all resources as links that show a resource details panel when clicked
    64         final ResourcesListView resourceListing = new ResourcesListView("resource", new CollectionListModel<String>(model));
     63        final ResourcesListView resourceListing = new ResourcesListView("resource", new CollectionListModel<>(model));
    6564        add(resourceListing);
    6665
     
    9089    private class ResourcesListView extends PageableListView<String> {
    9190
    92         public ResourcesListView(String id, IModel<? extends List<? extends String>> model) {
     91        public ResourcesListView(String id, IModel<? extends List<String>> model) {
    9392            super(id, model, ITEMS_PER_PAGE);
    9493            setReuseItems(true);
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/AllFacetValuesPanel.java

    r6005 r6437  
    129129
    130130    private DataView<FacetField.Count> createValuesView(String id) {
    131         final IModel<String> fieldNameModel = new PropertyModel<String>(getModel(), "name");
     131        final IModel<String> fieldNameModel = new PropertyModel<>(getModel(), "name");
    132132        return new DataView<FacetField.Count>(id, valuesProvider, ITEMS_PER_PAGE) {
    133133
    134134            @Override
    135135            protected void populateItem(final Item<FacetField.Count> item) {
    136                 item.setDefaultModel(new CompoundPropertyModel<FacetField.Count>(item.getModel()));
     136                item.setDefaultModel(new CompoundPropertyModel<>(item.getModel()));
    137137
    138138                // link to select an individual facet value
     
    169169        options.add(sortSelect);
    170170
    171         final TextField filterField = new TextField<String>("filter", new PropertyModel(filterModel, "name"));
     171        final TextField filterField = new TextField<>("filter", new PropertyModel(filterModel, "name"));
    172172        filterField.add(new AjaxFormComponentUpdatingBehavior("keyup") {
    173173
     
    201201
    202202        // Model that holds the actual number of occurences filtered on
    203         final IModel<Integer> minOccurenceModel = new PropertyModel<Integer>(filterModel, "minimalOccurence");
     203        final IModel<Integer> minOccurenceModel = new PropertyModel<>(filterModel, "minimalOccurence");
    204204        // Model that represents the filter state ('bridge' between filter and selection)
    205205        final IModel<Boolean> bridgeStateModel = Model.of(false);
    206206        // Model that represents the *selected* number of minimal occurences (passes it on if not decoupled)
    207         final IModel<Integer> minOccurenceSelectModel = new BridgeOuterModel<Integer>(minOccurenceModel, bridgeStateModel, 2);
     207        final IModel<Integer> minOccurenceSelectModel = new BridgeOuterModel<>(minOccurenceModel, bridgeStateModel, 2);
    208208        // Model that links the actual filter, selection and bridge (object opens and closes it)
    209         final IModel<Boolean> minOccurenceCheckBoxModel = new BridgeModel<Integer>(minOccurenceModel, minOccurenceSelectModel, bridgeStateModel, 0);
     209        final IModel<Boolean> minOccurenceCheckBoxModel = new BridgeModel<>(minOccurenceModel, minOccurenceSelectModel, bridgeStateModel, 0);
    210210
    211211        // checkbox to open and close the 'bridge'
     
    215215
    216216        // Dropdown to select a value (which is applied to the filter if the 'bridge' is open)
    217         final DropDownChoice<Integer> minOccurence = new DropDownChoice<Integer>("minOccurences", minOccurenceSelectModel, ImmutableList.of(2, 5, 10, 100, 1000));
     217        final DropDownChoice<Integer> minOccurence = new DropDownChoice<>("minOccurences", minOccurenceSelectModel, ImmutableList.of(2, 5, 10, 100, 1000));
    218218        minOccurence.add(new UpdateOptionsFormBehavior(options) {
    219219
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/FacetValuesPanel.java

    r6005 r6437  
    7676    @SpringBean
    7777    private FieldValueConverterProvider fieldValueConverterProvider;
     78
    7879    /**
    7980     * Creates a new panel with selectable values for a single facet
     
    132133    private Form createFilterForm(String id) {
    133134        final Form filterForm = new Form(id);
    134         final TextField<String> filterField = new TextField<String>("filterText",
     135        final TextField<String> filterField = new TextField<>("filterText",
    135136                new PropertyModel<String>(filterModel, "name"));
    136137        // make field update
     
    154155     */
    155156    private DataView createValuesView(String id) {
    156         final FacetFieldValuesProvider valuesProvider = new FacetFieldValuesProvider(getModel(), MAX_NUMBER_OF_FACETS_TO_SHOW, LOW_PRIORITY_VALUES, fieldValueConverterProvider){
     157        final FacetFieldValuesProvider valuesProvider = new FacetFieldValuesProvider(getModel(), MAX_NUMBER_OF_FACETS_TO_SHOW, LOW_PRIORITY_VALUES, fieldValueConverterProvider) {
    157158
    158159            @Override
     
    163164        };
    164165        // partition the values according to the specified partition size
    165         final PartitionedDataProvider<Count, FieldValuesOrder> partitionedValuesProvider = new PartitionedDataProvider<FacetField.Count, FieldValuesOrder>(valuesProvider, subListSize);
     166        final PartitionedDataProvider<Count, FieldValuesOrder> partitionedValuesProvider = new PartitionedDataProvider<>(valuesProvider, subListSize);
    166167
    167168        // create the view for the partitions
    168         final DataView<List<? extends Count>> valuesView = new DataView<List<? extends Count>>(id, partitionedValuesProvider) {
    169 
    170             @Override
    171             protected void populateItem(Item<List<? extends Count>> item) {
     169        final DataView<List<Count>> valuesView = new DataView<List<Count>>(id, partitionedValuesProvider) {
     170
     171            @Override
     172            protected void populateItem(Item<List<Count>> item) {
    172173                // create a list view for the values in this partition
    173                 item.add(new ListView<Count>("facetValues", item.getModel()) {
     174                item.add(new ListView("facetValues", item.getModel()) {
    174175
    175176                    @Override
    176                     protected void populateItem(ListItem<Count> item) {
     177                    protected void populateItem(ListItem item) {
    177178                        addFacetValue("facetSelect", item);
    178179                    }
     
    190191     */
    191192    private void addFacetValue(String id, final ListItem<Count> item) {
    192         item.setDefaultModel(new CompoundPropertyModel<Count>(item.getModel()));
     193        item.setDefaultModel(new CompoundPropertyModel<>(item.getModel()));
    193194
    194195        // link to select an individual facet value
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemCollapsedPanel.java

    r4998 r6437  
    3333import org.apache.wicket.markup.repeater.data.DataView;
    3434import org.apache.wicket.markup.repeater.data.IDataProvider;
     35import org.apache.wicket.migrate.StringResourceModelMigration;
    3536import org.apache.wicket.model.IModel;
    3637import org.apache.wicket.model.StringResourceModel;
     
    5960
    6061        // get model for resources
    61         final SolrFieldModel<String> resourcesModel = new SolrFieldModel<String>(documentModel, FacetConstants.FIELD_RESOURCE);
     62        final SolrFieldModel<String> resourcesModel = new SolrFieldModel<>(documentModel, FacetConstants.FIELD_RESOURCE);
    6263        // wrap with a count provider
    6364        final ResouceTypeCountDataProvider countProvider = new ResouceTypeCountDataProvider(resourcesModel, countingService);
     
    112113            // first create a string model that provides the type of resources
    113114            // in the right number (plural or singular, conveniently supplied by ResourceTypeCount)
    114             final StringResourceModel resourceTypeModel = new StringResourceModel("resourcetype.${resourceType}.${number}", resourceTypeCountModel, "?");
     115            final StringResourceModel resourceTypeModel = StringResourceModelMigration.of("resourcetype.${resourceType}.${number}", resourceTypeCountModel, "?");
    115116            // inject this into the resource string that combines it with count
    116             return new StringResourceModel("resources.typecount", this, resourceTypeCountModel, resourceTypeModel);
     117            return StringResourceModelMigration.of("resources.typecount", this, resourceTypeCountModel, resourceTypeModel);
    117118        }
    118119    }
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SearchResultItemExpandedPanel.java

    r6268 r6437  
    3737import org.apache.solr.common.SolrDocument;
    3838import org.apache.wicket.ajax.AjaxRequestTarget;
    39 import org.apache.wicket.extensions.markup.html.basic.SmartLinkLabel;
    4039import org.apache.wicket.markup.html.WebMarkupContainer;
    4140import org.apache.wicket.markup.html.basic.Label;
     
    4443import org.apache.wicket.markup.html.list.PageableListView;
    4544import org.apache.wicket.markup.html.panel.GenericPanel;
     45import org.apache.wicket.migrate.StringResourceModelMigration;
    4646import org.apache.wicket.model.AbstractReadOnlyModel;
    4747import org.apache.wicket.model.IModel;
    4848import org.apache.wicket.model.Model;
    4949import org.apache.wicket.model.PropertyModel;
    50 import org.apache.wicket.model.StringResourceModel;
    5150import org.apache.wicket.spring.injection.annot.SpringBean;
    5251
     
    9493
    9594    private WebMarkupContainer createResourcesView(String id, final IModel<SearchContext> selectionModel) {
    96         final SolrFieldModel<String> resourceModel = new SolrFieldModel<String>(getModel(), FacetConstants.FIELD_RESOURCE);
     95        final SolrFieldModel<String> resourceModel = new SolrFieldModel<>(getModel(), FacetConstants.FIELD_RESOURCE);
    9796        // create a container for the list view that is only visible if there actually are resources
    9897        final WebMarkupContainer container = new WebMarkupContainer(id) {
     
    119118        };
    120119        // add a record page link that shows the number of resources not shown
    121         moreLink.add(new Label("moreLabel", new StringResourceModel("resources.more", new AbstractReadOnlyModel<Integer>() {
     120        moreLink.add(new Label("moreLabel", StringResourceModelMigration.of("resources.more", new AbstractReadOnlyModel<Integer>() {
    122121
    123122            @Override
     
    134133    private PageableListView createResourcesList(String id, SolrFieldModel<String> resourceModel) {
    135134        // list of resources in this record
    136         final IModel<List<String>> resourceListModel = new CollectionListModel<String>(resourceModel);
     135        final IModel<List<String>> resourceListModel = new CollectionListModel<>(resourceModel);
    137136        // use a a pageable view so that the number of resources actually shown is limited
    138137        return new PageableListView<String>(id, resourceListModel, MAX_RESOURCES_TO_SHOW) {
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/panels/search/SimpleSearchBrowsePanel.java

    r6248 r6437  
    3838import org.apache.wicket.markup.html.list.ListView;
    3939import org.apache.wicket.markup.html.panel.GenericPanel;
     40import org.apache.wicket.migrate.StringResourceModelMigration;
    4041import org.apache.wicket.model.AbstractReadOnlyModel;
    4142import org.apache.wicket.model.IModel;
    4243import org.apache.wicket.model.Model;
    4344import org.apache.wicket.model.PropertyModel;
    44 import org.apache.wicket.model.StringResourceModel;
    4545import org.apache.wicket.spring.injection.annot.SpringBean;
    4646
     
    8282        };
    8383        // set label on basis of string defined in resource bundle that takes the count model as a parameter
    84         browseAllLink.add(new Label("recordCount", new StringResourceModel("simplesearch.allrecords", documentCountModel, new Object[]{})));
     84        browseAllLink.add(new Label("recordCount", StringResourceModelMigration.of("simplesearch.allrecords", documentCountModel, new Object[]{})));
    8585        add(browseAllLink);
    8686
     
    110110         * Model that holds the currently selected facet
    111111         */
    112         private final IModel<String> selectedFacetModel = new Model<String>(null);
     112        private final IModel<String> selectedFacetModel = new Model<>(null);
    113113        private final IModel<QueryFacetsSelection> selectionModel;
    114114
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/provider/FacetFieldValuesProvider.java

    r6040 r6437  
    8888     */
    8989    public FacetFieldValuesProvider(IModel<FacetField> model, int max, Collection<String> lowPriorityValues, FieldValueConverterProvider fieldValueConverterProvider) {
    90         this(model, max, lowPriorityValues, new SortParam<FieldValuesOrder>(FieldValuesOrder.COUNT, false), fieldValueConverterProvider);
     90        this(model, max, lowPriorityValues, new SortParam<>(FieldValuesOrder.COUNT, false), fieldValueConverterProvider);
    9191    }
    9292
     
    122122
    123123    @Override
    124     public Iterator<? extends FacetField.Count> iterator(long first, long count) {
     124    public Iterator<FacetField.Count> iterator(long first, long count) {
    125125        // return iterator starting at specified offset
    126126        return getList().listIterator((int) first);
     
    128128
    129129    @Override
    130     public List<? extends FacetField.Count> getList() {
     130    public List<FacetField.Count> getList() {
    131131        final Iterable<Count> filteredValues = getFilteredValues();
    132132        // sort what remains
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/provider/ListProvider.java

    r5140 r6437  
    2626public interface ListProvider<T> {
    2727
    28     List<? extends T> getList();
     28    List<T> getList();
    2929   
    3030}
  • vlo/trunk/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/wicket/provider/PartitionedDataProvider.java

    r5154 r6437  
    1717package eu.clarin.cmdi.vlo.wicket.provider;
    1818
     19import com.google.common.base.Functions;
    1920import com.google.common.collect.ImmutableList;
    2021import com.google.common.collect.Iterators;
     
    3435 * @param <S> the type of the sorting parameter
    3536 */
    36 public class PartitionedDataProvider<T, S> implements ISortableDataProvider<List<? extends T>, S> {
     37public class PartitionedDataProvider<T, S> implements ISortableDataProvider<List<T>, S> {
    3738
    38     private final ISortableDataProvider<? extends T, S> provider;
     39    private final ISortableDataProvider<T, S> provider;
    3940    private final int partitionSize;
    4041
     
    5152
    5253    @Override
    53     public Iterator<? extends List<? extends T>> iterator(long first, long count) {
     54    public Iterator<? extends List<T>> iterator(long first, long count) {
    5455        if (partitionSize > 0) {
    5556            // translate first, count to item level
    5657            final long itemsFirst = first * partitionSize;
    5758            final long itemsCount = count * partitionSize;
     59            // reduce wildcard to upper bound (i.e. remove "? extends")
     60            final Iterator<T> iterator
     61                    = Iterators.transform(provider.iterator(itemsFirst, itemsCount), Functions.<T>identity());
    5862            // split up values
    59             return Iterators.partition(provider.iterator(itemsFirst, itemsCount), partitionSize);
     63            return Iterators.partition(iterator, partitionSize);
    6064        } else {
    6165            // return a single list (wrapped in a singleton iterator)
    62             final List<? extends T> valuesList;
     66            final List<T> valuesList;
    6367            if (provider instanceof ListProvider) {
    6468                // get list straight out of provider, prevent double wrapping
     
    9195
    9296    @Override
    93     public IModel<List<? extends T>> model(List<? extends T> object) {
     97    public IModel<List<T>> model(List<T> object) {
    9498        // Iterators.partition sometimes returns lists that are not deeply serializable,
    9599        // so we need to copy this into a serializable list here :(
Note: See TracChangeset for help on using the changeset viewer.