Changeset 3994


Ignore:
Timestamp:
Nov 22, 2007, 2:46:53 PM (14 years ago)
Author:
Johan Enell
Message:

Merged patch release 2.4.6 to the trunk. Delta 2.4.6 - 2.5

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/build.xml

    r3991 r3994  
    7676  <property name="base.minorversion" value="5" />
    7777  <property name="base.maintenanceversion" value="0beta" />
     78
    7879  <property name="base.version"
    7980    value="${base.majorversion}.${base.minorversion}.${base.maintenanceversion}" />
  • trunk/src/core/net/sf/basedb/core/PluginDefinition.java

    r3979 r3994  
    380380    */
    381381    query.setEntity("pluginDefinition", this.getData());
    382     return HibernateUtil.loadData(Long.class, query) > 0 || super.isUsed();
     382    long count = HibernateUtil.loadData(Long.class, query);
     383    if (count == 0)
     384    {
     385      query = HibernateUtil.getPredefinedQuery(session,
     386        "GET_JOBS_FOR_PLUGINDEFINITION", "count(*)");
     387      /*
     388        SELECT {1}
     389        FROM JobData j
     390        WHERE j.pluginDefinition = :pluginDefinition
     391      */
     392      query.setEntity("pluginDefinition", this.getData());
     393      count = HibernateUtil.loadData(Long.class, query);
     394    }
     395    return count > 0 || super.isUsed();
    383396  }
    384397  /**
     
    386399    <ul>
    387400    <li>{@link PluginConfiguration}:s created from this plugin
     401    <li>{@link Job}:s using this plugin
    388402    <ul>
    389403    @since 2.2
     
    394408    Set<ItemProxy> using = super.getUsingItems();
    395409    org.hibernate.Session session = getDbControl().getHibernateSession();
     410
     411    // Plugin configurations
    396412    org.hibernate.Query query = HibernateUtil.getPredefinedQuery(session,
    397413      "GET_PLUGINCONFIGURATIONS_FOR_PLUGINDEFINITION", "pc.id");
     
    403419    query.setEntity("pluginDefinition", this.getData());
    404420    addUsingItems(using, Item.PLUGINCONFIGURATION, query);
     421
     422    // Jobs
     423    query = HibernateUtil.getPredefinedQuery(session,
     424      "GET_JOBS_FOR_PLUGINDEFINITION", "j.id");
     425      /*
     426        SELECT {1}
     427        FROM JobData j
     428        WHERE j.pluginDefinition = :pluginDefinition
     429      */
     430    query.setEntity("pluginDefinition", this.getData());
     431    addUsingItems(using, Item.JOB, query);
     432   
    405433    return using;
    406434  }
  • trunk/src/core/net/sf/basedb/core/plugin/AbstractPlugin.java

    r3979 r3994  
    135135    <pre class="code">
    136136// <b>In Plugin.invoke() method:</b>
    137 List&gt;PluginParameter&lt;?&gt;&gt; parameters = getParametersForCommand(request.getCommand());
     137List&lt;PluginParameter&lt;?&gt;&gt; parameters = getParametersForCommand(request.getCommand());
    138138List&lt;Throwable&gt; errors =
    139139   validateRequestParameters(parameters, request);
  • trunk/src/core/net/sf/basedb/util/JarClassLoader.java

    r3760 r3994  
    323323      }
    324324      in = jarFile.getInputStream(jarEntry);
    325       byte[] b = new byte[(int)jarEntry.getSize()];
    326       in.read(b, 0, b.length);
     325      int classSize = (int)jarEntry.getSize();
     326      byte[] b = new byte[classSize];
     327      int totalRead = 0;
     328      while (totalRead < classSize)
     329      {
     330        int numRead = in.read(b, totalRead, b.length - totalRead);
     331        if (numRead == -1) break;
     332        totalRead += numRead;
     333      }
     334      if (totalRead != classSize)
     335      {
     336        throw new ClassFormatError("Could not read the complete class for " +
     337          name + ": " + totalRead + " bytes; expected " + classSize + " bytes");
     338      }
    327339      return b;
    328340    }
  • trunk/src/plugins/core/net/sf/basedb/plugins/Base1PluginExecuter.java

    r3789 r3994  
    410410        try
    411411        {
    412           getJobParametersFromXML(String.valueOf(configuration.getValue(jobParametersParameter.getName())));
     412          getJobParametersFromXML(String.valueOf(configuration.getValue(jobParametersParameter.getName())), false);
    413413        }
    414414        catch (BaseException e)
     
    425425          storeValue(job, request, p);
    426426        }
    427         response.setDone("Job configuration complete", Job.ExecutionTime.SHORT);
     427        List<Throwable> errors = validateRequestParameters(getJobParameters(), request);
     428        if (errors == null)
     429          response.setDone("Job configuration complete", Job.ExecutionTime.SHORT);
     430        else
     431          response.setError(errors.size() + " invalid parameter(s) were found in the request", errors);
    428432      }
    429433      else
     
    756760        }
    757761      }
     762      response.setDone("");
    758763    }
    759764    else
     
    804809     
    805810      ListMap<String, String> parameters = new ListMap<String, String>();
    806       for (PluginParameter<?> pp : getJobParametersFromXML(String.valueOf(configuration.getValue(jobParametersParameter.getName()))))
     811      for (PluginParameter<?> pp : getJobParametersFromXML(String.valueOf(configuration.getValue(jobParametersParameter.getName())), true))
    807812      {
    808813        String name = pp.getName();
     
    942947    if (!s.name().equals("plugin"))
    943948    {
    944       throw new BaseException("Bad format on configuration file: " + f.getName());
     949      throw new BaseException("Can't find section 'plugin' in configuration file: " + f.getName());
    945950    }
    946951   
     
    960965        parameters.addContent(jp.toXml());
    961966      }
    962       catch(BaseException e)
     967      catch(Exception e)
    963968      {
    964969        throw new BaseException("Error on line "+dataline.lineNo()+" in the configuration file: " + f.getName(), e);
     
    972977 
    973978  @SuppressWarnings("unchecked")
    974   private List<PluginParameter<?>> getJobParametersFromXML(String xml)
     979  private List<PluginParameter<?>> getJobParametersFromXML(String xml, boolean hideRemoved)
    975980  {
    976981    try
     
    9961001        Element e = it.next();
    9971002        JobParameter jp = new JobParameter(e);
    998         if (positionParameter.containsKey(jp.getPosition()))
    999         {
    1000           throw new BaseException("Duplicate parameter at position "+jp.getPosition());
    1001         }
    1002         positionParameter.put(jp.getPosition(), jp.getPluginParameter());
     1003        if (!jp.isRemoved())
     1004        {
     1005          if (positionParameter.containsKey(jp.getPosition()))
     1006          {
     1007            throw new BaseException("Duplicate parameter at position "+jp.getPosition());
     1008          }
     1009          positionParameter.put(jp.getPosition(), jp.getPluginParameter());
     1010        }
    10031011      }
    10041012      return new ArrayList<PluginParameter<?>>(positionParameter.values());
     
    12751283        throw new BaseException("Cant find the jobparameters specification. Reconfigure the plugin.");
    12761284      }
    1277       jobParameters.addAll(getJobParametersFromXML(xml.toString()));
     1285      jobParameters.addAll(getJobParametersFromXML(xml.toString(), true));
    12781286    }
    12791287    finally
     
    13091317    BioAssaySet bas = null;
    13101318    SpotBatcher spotBatcher = null;
     1319    Boolean doPositionBatch = null;
    13111320
    13121321    HashMap<String, BioAssay> idMap = new HashMap<String, BioAssay>();
     
    13241333      {
    13251334        bas = t.newProduct("new", "new", false);
     1335        doPositionBatch = true;
    13261336        bas.setName(getSourceBioAssaySet(dc).getName());
    1327 
    13281337        List<String> columns = Arrays.asList(ffp.getHeader("columns").split("\\t"));
    13291338        int idCol = columns.indexOf("id");
     
    13771386        if (bas == null)
    13781387        {
    1379           bas = t.newProduct("new", "new", false);
     1388          bas = t.newProduct(null, "new", false);
     1389          doPositionBatch = false;
    13801390        }
    13811391        spotBatcher = bas.getSpotBatcher();
     
    15371547
    15381548    //Batch reporters
    1539     if (bas != null)
     1549    if (bas != null && doPositionBatch)
    15401550    {
    15411551      PositionBatcher posBatcher = bas.getPositionBatcher();
     
    17231733        }
    17241734      }
    1725       removed = !base1ConfigLine[7].equals("0");
     1735      System.err.println(Values.getBoolean(base1ConfigLine[7])+" "+base1ConfigLine[7]);
     1736      removed = Values.getBoolean(base1ConfigLine[7]);
    17261737    }
    17271738
     
    18501861            enums.add(at.getName(), at.getName());
    18511862          }
    1852           StringParameterType t = new StringParameterType(255, defaultValue, true, 1, Values.getInt(options, 30), 1, enums);
     1863          StringParameterType t = new StringParameterType(255, null, false, 1, Values.getInt(options, 30), 1, enums);
    18531864          parameter = new PluginParameter<String>(name, commonName, "", t);
    18541865          break;
     
    18561867        case ENUMERATION:
    18571868        {
    1858           StringParameterType t = new StringParameterType(255, defaultValue, true, 1, Values.getInt(options, 30), 1, enumOptions);
     1869          StringParameterType t = new StringParameterType(255, defaultValue, false, 1, Values.getInt(options, 30), 1, enumOptions);
    18591870          parameter = new PluginParameter<String>(name, commonName, "", t);
    18601871          break;
Note: See TracChangeset for help on using the changeset viewer.