/** {@inheritDoc} */ @Override public void init(FilterConfig config) throws ServletException { // rewrap datasources in GlobalNamingResources with ResourceLink in // context.xml System.setProperty( Parameters.PARAMETER_SYSTEM_PREFIX + Parameter.REWRAP_DATASOURCES.getCode(), Boolean.TRUE.toString()); if (Parameters.getParameter(Parameter.SQL_TRANSFORM_PATTERN) == null) { // regexp pour agréger les paramètres bindés dans les critères // de requêtes SQL tels que "in (?, ?, ?, ?)" et ainsi pour éviter // que ces requêtes ayant un nombre variable de paramètres soient // considérées comme différentes ; // de fait cela agrège aussi les values des inserts System.setProperty( Parameters.PARAMETER_SYSTEM_PREFIX + Parameter.SQL_TRANSFORM_PATTERN.getCode(), "\\([\\?, ]+\\)"); } if (Parameters.getParameter(Parameter.DISPLAYED_COUNTERS) == null) { // disable jsp counter to fix // https://github.com/javamelody/liferay-javamelody/issues/5, // the jsp counter does not display anything anyway. // In consequence, jsf, job, ejb, jpa, spring, guice are also // disabled. System.setProperty( Parameters.PARAMETER_SYSTEM_PREFIX + Parameter.DISPLAYED_COUNTERS.getCode(), "http,sql,error,log"); } super.init(config); LOG.debug("JavaMelody is monitoring Liferay"); }
public void actionPerformed(ActionEvent e) { String defaultHost = Parameters.getParameter("telnet.defaultHost", "localhost"); String hostname = JOptionPane.showInputDialog(Edit.getFrame(), "Hostname:", defaultHost); if (hostname != null) { Edit.openFile("telnet://" + hostname); } }
static Map<String, DataSource> getJndiDataSources() throws NamingException { final Map<String, DataSource> dataSources = new LinkedHashMap<String, DataSource>(2); final String datasourcesParameter = Parameters.getParameter(Parameter.DATASOURCES); if (datasourcesParameter == null) { dataSources.putAll(getJndiDataSourcesAt("java:comp/env/jdbc")); // pour jboss sans jboss-env.xml ou sans resource-ref dans web.xml : dataSources.putAll(getJndiDataSourcesAt("java:/jdbc")); // pour JavaEE 6 : // (voir par exemple // http://smokeandice.blogspot.com/2009/12/datasourcedefinition-hidden-gem-from.html) dataSources.putAll(getJndiDataSourcesAt("java:global/jdbc")); // pour WebLogic 10 et WebSphere 7, cf issue 68 dataSources.putAll(getJndiDataSourcesAt("jdbc")); } else if (datasourcesParameter.trim().length() != 0) { // NOPMD final InitialContext initialContext = new InitialContext(); for (final String datasource : datasourcesParameter.split(",")) { final String jndiName = datasource.trim(); // ici, on n'ajoute pas java:/comp/env // et on suppose qu'il n'en faut pas ou que cela a été ajouté dans le paramétrage final DataSource dataSource = (DataSource) initialContext.lookup(jndiName); dataSources.put(jndiName, dataSource); } initialContext.close(); } return Collections.unmodifiableMap(dataSources); }
boolean stop() { boolean ok; try { JdbcWrapperHelper.rebindInitialDataSources(servletContext); // si jboss, glassfish ou weblogic avec datasource, on désencapsule aussi les objets wrappés final Map<String, DataSource> jndiDataSources = JdbcWrapperHelper.getJndiDataSources(); final boolean rewrapDataSources = Boolean.parseBoolean(Parameters.getParameter(Parameter.REWRAP_DATASOURCES)); for (final Map.Entry<String, DataSource> entry : jndiDataSources.entrySet()) { final String jndiName = entry.getKey(); final DataSource dataSource = entry.getValue(); if (rewrapDataSources || isServerNeedsRewrap(jndiName)) { unwrapDataSource(jndiName, dataSource); } } JdbcWrapperHelper.clearProxyCache(); ok = true; } catch (final Throwable t) { // NOPMD // ça n'a pas marché, tant pis LOG.debug("rebinding initial datasources failed, skipping", t); ok = false; } return ok; }
/** * @return Nombre de jours avant qu'un fichier de graphique JRobin (extension .rrd) qui n'est plus * utilisé, soit considéré comme obsolète et soit supprimé automatiquement, à minuit (90 par * défaut, soit 3 mois). */ private static int getObsoleteGraphsDays() { final String param = Parameters.getParameter(Parameter.OBSOLETE_GRAPHS_DAYS); if (param != null) { // lance une NumberFormatException si ce n'est pas un nombre final int result = Integer.parseInt(param); if (result <= 0) { throw new IllegalStateException( "The parameter obsolete-graphs-days should be > 0 (90 recommended)"); } return result; } return DEFAULT_OBSOLETE_GRAPHS_DAYS; }
public void actionPerformed(ActionEvent e) { ETextArea target = (ETextArea) getFocusedComponent(); try { Document document = target.getDocument(); int position = target.getCaretPosition(); String whitespace = target.getIndentationOfLineAtOffset(position); String prefix = "{\n" + whitespace + Parameters.getParameter("indent.string"); String suffix = "\n" + whitespace + "}"; document.insertString(position, prefix + suffix, null); target.setCaretPosition(position + prefix.length()); } catch (BadLocationException ex) { ex.printStackTrace(); } }
boolean rebindDataSources() { boolean ok; // on cherche une datasource avec InitialContext pour afficher nom et version bdd + nom et // version driver jdbc // (le nom de la dataSource recherchée dans JNDI est du genre jdbc/Xxx qui est le nom standard // d'une DataSource) try { final boolean rewrapDataSources = Boolean.parseBoolean(Parameters.getParameter(Parameter.REWRAP_DATASOURCES)); if (rewrapDataSources) { // on annule le rebinding éventuellement fait avant par SessionListener // si rewrap-datasources est défini dans le filter JdbcWrapperHelper.rebindInitialDataSources(servletContext); } final Map<String, DataSource> jndiDataSources = JdbcWrapperHelper.getJndiDataSources(); LOG.debug("datasources found in JNDI: " + jndiDataSources.keySet()); for (final Map.Entry<String, DataSource> entry : jndiDataSources.entrySet()) { final String jndiName = entry.getKey(); final DataSource dataSource = entry.getValue(); if (rewrapDataSources || isServerNeedsRewrap(jndiName)) { rewrapDataSource(jndiName, dataSource); } else if (!isProxyAlready(dataSource)) { // si dataSource est déjà un proxy, il ne faut pas faire un proxy d'un proxy ni un // rebinding final DataSource dataSourceProxy = createDataSourceProxy(jndiName, dataSource); JdbcWrapperHelper.rebindDataSource(servletContext, jndiName, dataSource, dataSourceProxy); LOG.debug( "datasource rebinded: " + jndiName + " from class " + dataSource.getClass().getName() + " to class " + dataSourceProxy.getClass().getName()); } } ok = true; } catch (final Throwable t) { // NOPMD // ça n'a pas marché, tant pis LOG.debug("rebinding datasources failed, skipping", t); ok = false; } return ok; }
@Override public int parseArguments(Parameters params) throws CmdLineException { String macString = params.getParameter(0); String[] macStringArray = null; if (macString.matches("[0-9a-fA-F]{12}")) /* * When entering this clause our MAC address is a hexadecimal string * with 12 digit. Hence we have no delimiter to split. So we simply * split after each two characters. */ macStringArray = macString.split("(?<=\\G.{2})"); else if (macString.matches("([0-9a-fA-F]{1,2}[^0-9a-fA-F]+){5}[0-9a-fA-F]{1,2}")) /* * When entering this clause our MAC address is a in the form * XX#XX#XX#XX#XX#XX where XX is a hexadecimal string with one or two * digits and # is a delimiter which contains no hexadecimal digit. * In most cases # is a dash (-), a colon (:) or a space ( ). * We just need to split by our delimiter. */ macStringArray = macString.split("[^0-9a-fA-F]+"); else throw new CmdLineException(owner, Messages.ILLEGAL_MAC_ADDRESS, macString); byte[] mac = new byte[6]; for (int i = 0; i < 6; i++) /* * Yes, we really need to parse a short here... ;-) * Explanation: All six MAC address parts are unsigned bytes in * hexadecimal representation. They lay between 0x00 and 0xff * respectively 0 and 255. The Java data type byte is signed. It * lays between -128 and 127. Therefore we need to "convert" the * upper half of our unsigned values to negative to obtain the * correct bit representation (think of the two's complement). This * is done best by parsing short (or int or long) and casting to * byte. */ mac[i] = (byte) Short.parseShort(macStringArray[i], 16); setter.asFieldSetter().addValue(mac); return 1; }
@Override public int parseArguments(Parameters params) throws CmdLineException { setter.addValue(params.getParameter(0)); return 1; }
private static boolean isMonitoringDisabled() { // on doit réévaluer ici le paramètre, car au départ le servletContext // n'est pas forcément défini si c'est un driver jdbc sans dataSource return Boolean.parseBoolean(Parameters.getParameter(Parameter.DISABLED)); }