2005-08-30

Visa alla stored procedures i SQL-server

Hittade en liten artikel här om hur man listar alla stored procedures i en SQL-server databas.
I korthet ser det ut så här:


SELECT
ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
AND OBJECTPROPERTY
(
OBJECT_ID(ROUTINE_NAME),
'IsMsShipped'
) = 0
ORDER BY ROUTINE_NAME

2005-08-23

Svar från Hammarby sjöstad

Så här svarade man på min fråga om skatestoppers:


Hej
Jag har fått ditt mail vidarebefordrat från Erik Freudenthal.
Tyvärr är det så att fontänen och framför allt bassängen helt enkelt har blivit förstörd av skejtare. Stenarna har gått sönder och fogar har lossnat så att bassängen har börjat läcka. Den tål helt enkelt inte den påfrestningen och ibland vandaliseringenn som skejtarna utsätter den för. Fontänen är ju inte heller avsedd att fungera som en skejtanläggning heller, då hade man ju byggt något som var avsett för den här målgruppen.
För att skydda bassängen och fontänen och få dem att fortsättningsvis fungera har vi sett oss tvungna att montera på sk skatestoppers på kanten.

Hälsningar
Kristina Menyes

2005-08-22

Google

Det går inte att få träff på varken denna blogg eller min hemsida via google så nu prövar jag att ta bort länken till min hemsida från denna blogg.
Skall testa om det är min hemsida som Google har svartlistat.

2005-08-19

Escapa XML för att visa i HTML

För att skriva föregående artikel använde jag detta lilla verktyg.

Server Test Case

Jag hittade ett litet ramverk för att köra Unit tester inne i EJB containern. Finns att ladda ner här.
Det fiffiga med detta ramverk är att man kan skriva helt vanliga unittester. Det enda man behöver göra i sin kod är att extenda ServerTestCase istället för TestCase, sedan deployar man Test-klassen i sin EJB-container. Klassen kan sedan köras som en vanlig JUnit, den lokala kopian av klassen kommar att anropa den kopia som finns inne i ejb containern. Mycket elegant tyckte jag.

Ramverket var nog skrivet för Weblogic men jag anpassade InitialContext parametrarna så att de funkar i JBoss.
Förutom de anvisningar som finns i paketet så måste man:

  1. Lägga till junit.jar i ${JBossDir}/server/default/lib
  2. Konfigurera ejb.xml samt jboss.xml så att unit testerna kan nå de resurser de behöver (t.ex. JDBC connections).

Ungefär så här ser mina xml filer ut:

ejb.xml
=======
<ejb-jar>
<enterprise-beans>
<session>
<ejb-name>
junit.framework.ejb.TestRunnerSession
</ejb-name>
<home>junit.framework.ejb.TestRunnerSessionHome</home>
<remote>junit.framework.ejb.TestRunnerSession</remote>
<ejb-class>
junit.framework.ejb.TestRunnerSessionBean
</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<env-entry>
<description>UserActionLog</description>
<env-entry-name>UserActionLogClass</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>
theapp.model.dao.UserActionLogDAOOracle
</env-entry-value>
</env-entry>
<resource-ref>
<res-ref-name>jdbc/OraclePool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
</enterprise-beans>
</ejb-jar>

jboss.xml
=========

<jboss>
<enterprise-beans>
<session>
<ejb-name>junit.framework.ejb.TestRunnerSession</ejb-name>
<jndi-name>junit.framework.ejb.TestRunnerSession</jndi-name>
<resource-ref>
<res-ref-name>jdbc/OraclePool</res-ref-name>
<jndi-name>java:/jdbc.OracleData</jndi-name>
</resource-ref>
</session>
</enterprise-beans>
</jboss>



2005-08-18

Note to self junit.jar

Hittade ett väldigt trevligt ramverk för att köra unit tester i EJB-container.
Suttit och bråkat i flera timmar med ett ClassNotFoundException tills jag insåg felet. Junit.jar måste ju finnas i classpath för Jboss. Dummkopf!

2005-08-16

EJB Unit test

Satt och implementerade nya funktioner i en DAO. Eftersom jag inte implementerat klient eller ens något interface som utnyttjar funktionaliteten i DAO ville jag skapa ett unit test för att kunna pröva om det funkade.
Jag hamnade rakt i EJB elände, basklassen till alla DAO:er implementerar en funktion, getConnection, som hämtar en connection och denna gör detta get InitialContext o.s.v. i EJBContainern.
Hittade en workaround till detta. Jag skapade en ny inre klass i Unittestet som implementerade om getConnection och skapar en JDBC connection på enklaste sätt. Jag var dessutom tvungen att lägga till JDBC drivrutinen i classpath för mitt unittest.

Så här ser den inre klassen ut:

public class TestDAO extends MyDAO {
protected Connection getConnection(String datasource)
throws NamingException, SQLException {
try {
Class.forName("com.inet.tds.TdsDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return DriverManager.
getConnection(
"jdbc:inetdae:dbServer.com:1433?database=db1"
, "user", "password");
}
}

wsdl2java username

Skulle skapa ny Web-service klient igår. När man kontaktade URLen för att hämta WSDL filen så krävdes det autenticering. Försökte kolla i Axis dokumentationen hur man anger username och password när man kör wsdl2java som en Ant-task men hittade ingenting. Till slut provade jag med:

<axis-wsdl2java
output="./destdir"
url=http://secret.server.se/ws?WSDL
username="luser" password="topsecret">
</AXIS-WSDL2JAVA>


Funkade bra!

2005-08-15

M$ marketing bullshit

Sånt här får mig att inse att Microsoft verkligen är "The Evil Empire":

it (Aereo) will also enable Windows Vista and WinFX applications to generate a positive connection with users on first sight, on first use, and over the long term...

Får man betalt för att skriva sånt dravel, och vad är meningen med det? Alla inser ju att det bara är marketing bullshit, varför publicera det?

Luma

Skickade mail till Hammarby sjöstads hemsida samt till ordförande i Marknämnden, Leif Rönngren för att fråga om vem som beslutat om skate stoppers i Luma fontänen. Får se om de svarar. Så här såg mailet ut:
Hej,

Jag såg att fontänen i vid Luma hållplatsen har utrustats med s.k. "skate stoppers" dvs små metallbitar som skall hindra ungdomar från att skata där.
Varför, och vem beslutar om sådant?
Jag måste säga att metallbitarna är betydligt fulare än de skador som skateboardarna ger.
Att sätta metallbitar för att förhindra skateboarding är som att sätta upp järnrör på en äng för att förhindra fotbollsspel. Stämmer inte detta väldigt dåligt med de insatser som borde göras för öka ungdomars fysiska aktivitet? Skateboard är en av de få spontanidrotter som ungdomar ägnar sig åt.

Vem kan svara på varför detta görs?

Med tack på förhand!

Kan inte jobba

Nätet nere hela förmiddagen. Ett kort i Core switchen skall ha rykt.